Commit a7e4a25f authored by Grigory Fedorov's avatar Grigory Fedorov

ContactList options menu get hidden when there are no active accounts.

parent 0f98f208
...@@ -46,6 +46,7 @@ import com.xabber.android.data.Application; ...@@ -46,6 +46,7 @@ import com.xabber.android.data.Application;
import com.xabber.android.data.NetworkException; import com.xabber.android.data.NetworkException;
import com.xabber.android.data.SettingsManager; import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.account.AccountManager; import com.xabber.android.data.account.AccountManager;
import com.xabber.android.data.account.CommonState;
import com.xabber.android.data.account.OnAccountChangedListener; import com.xabber.android.data.account.OnAccountChangedListener;
import com.xabber.android.data.entity.BaseEntity; import com.xabber.android.data.entity.BaseEntity;
import com.xabber.android.data.extension.avatar.AvatarManager; import com.xabber.android.data.extension.avatar.AvatarManager;
...@@ -57,7 +58,7 @@ import com.xabber.android.data.notification.NotificationManager; ...@@ -57,7 +58,7 @@ import com.xabber.android.data.notification.NotificationManager;
import com.xabber.android.data.roster.AbstractContact; import com.xabber.android.data.roster.AbstractContact;
import com.xabber.android.data.roster.RosterContact; import com.xabber.android.data.roster.RosterContact;
import com.xabber.android.data.roster.RosterManager; import com.xabber.android.data.roster.RosterManager;
import com.xabber.android.ui.ContactListFragment.OnContactClickListener; import com.xabber.android.ui.ContactListFragment.ContactListFragmentListener;
import com.xabber.android.ui.dialog.AccountChooseDialogFragment; import com.xabber.android.ui.dialog.AccountChooseDialogFragment;
import com.xabber.android.ui.dialog.AccountChooseDialogFragment.OnChoosedListener; import com.xabber.android.ui.dialog.AccountChooseDialogFragment.OnChoosedListener;
import com.xabber.android.ui.dialog.ContactIntegrationDialogFragment; import com.xabber.android.ui.dialog.ContactIntegrationDialogFragment;
...@@ -81,7 +82,7 @@ import java.util.Locale; ...@@ -81,7 +82,7 @@ import java.util.Locale;
* @author alexander.ivanov * @author alexander.ivanov
*/ */
public class ContactList extends ManagedActivity implements OnAccountChangedListener, public class ContactList extends ManagedActivity implements OnAccountChangedListener,
View.OnClickListener, OnChoosedListener, OnContactClickListener, ContactListDrawerFragment.ContactListDrawerListener, Toolbar.OnMenuItemClickListener { View.OnClickListener, OnChoosedListener, ContactListFragmentListener, ContactListDrawerFragment.ContactListDrawerListener, Toolbar.OnMenuItemClickListener {
/** /**
* Select contact to be invited to the room was requested. * Select contact to be invited to the room was requested.
...@@ -111,6 +112,7 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -111,6 +112,7 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
private BarPainter barPainter; private BarPainter barPainter;
private ActionBarDrawerToggle drawerToggle; private ActionBarDrawerToggle drawerToggle;
private DrawerLayout drawerLayout; private DrawerLayout drawerLayout;
private Menu optionsMenu;
public static Intent createPersistentIntent(Context context) { public static Intent createPersistentIntent(Context context) {
Intent intent = new Intent(context, ContactList.class); Intent intent = new Intent(context, ContactList.class);
...@@ -162,7 +164,8 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -162,7 +164,8 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
drawerLayout.setDrawerListener(drawerToggle); drawerLayout.setDrawerListener(drawerToggle);
toolbar.inflateMenu(R.menu.contact_list); toolbar.inflateMenu(R.menu.contact_list);
setUpSearchView(toolbar.getMenu()); optionsMenu = toolbar.getMenu();
setUpSearchView(optionsMenu);
toolbar.setOnMenuItemClickListener(this); toolbar.setOnMenuItemClickListener(this);
barPainter = new BarPainter(this, toolbar); barPainter = new BarPainter(this, toolbar);
...@@ -558,6 +561,30 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList ...@@ -558,6 +561,30 @@ public class ContactList extends ManagedActivity implements OnAccountChangedList
} }
} }
@Override
public void onContactListChange(CommonState commonState) {
switch (commonState) {
case empty:
case disabled:
for (int i = 0; i < optionsMenu.size(); i++) {
optionsMenu.getItem(i).setVisible(false);
}
break;
case offline:
case waiting:
case connecting:
case roster:
case online:
for (int i = 0; i < optionsMenu.size(); i++) {
optionsMenu.getItem(i).setVisible(true);
}
break;
}
}
private void createShortcut(AbstractContact abstractContact) { private void createShortcut(AbstractContact abstractContact) {
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, ChatViewer.createShortCutIntent(this, intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, ChatViewer.createShortCutIntent(this,
......
package com.xabber.android.ui; package com.xabber.android.ui;
import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
...@@ -91,6 +92,15 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis ...@@ -91,6 +92,15 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis
private FloatingActionButton scrollToChatsActionButton; private FloatingActionButton scrollToChatsActionButton;
private AccountPainter accountPainter; private AccountPainter accountPainter;
private ContactListFragmentListener contactListFragmentListener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
contactListFragmentListener = (ContactListFragmentListener) activity;
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.contact_list_fragment, container, false); View view = inflater.inflate(R.layout.contact_list_fragment, container, false);
...@@ -149,6 +159,12 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis ...@@ -149,6 +159,12 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis
unregisterListeners(); unregisterListeners();
} }
@Override
public void onDetach() {
super.onDetach();
contactListFragmentListener = null;
}
@Override @Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) { public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
...@@ -171,7 +187,7 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis ...@@ -171,7 +187,7 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object object = parent.getAdapter().getItem(position); Object object = parent.getAdapter().getItem(position);
if (object instanceof AbstractContact) { if (object instanceof AbstractContact) {
((OnContactClickListener) getActivity()).onContactClick((AbstractContact) object); contactListFragmentListener.onContactClick((AbstractContact) object);
} else if (object instanceof GroupConfiguration) { } else if (object instanceof GroupConfiguration) {
GroupConfiguration groupConfiguration = (GroupConfiguration) object; GroupConfiguration groupConfiguration = (GroupConfiguration) object;
adapter.setExpanded(groupConfiguration.getAccount(), groupConfiguration.getUser(), adapter.setExpanded(groupConfiguration.getAccount(), groupConfiguration.getUser(),
...@@ -328,7 +344,7 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis ...@@ -328,7 +344,7 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis
} }
buttonView.setOnClickListener(listener); buttonView.setOnClickListener(listener);
contactListFragmentListener.onContactListChange(commonState);
} }
...@@ -443,8 +459,11 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis ...@@ -443,8 +459,11 @@ public class ContactListFragment extends Fragment implements OnAccountChangedLis
popup.show(); popup.show();
} }
public interface OnContactClickListener { public interface ContactListFragmentListener {
void onContactClick(AbstractContact contact); void onContactClick(AbstractContact contact);
void onContactListChange(CommonState commonState);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment