Commit 6dd5005b authored by Grigory Fedorov's avatar Grigory Fedorov

No context menu for active chats.

parent 03708487
...@@ -56,9 +56,8 @@ public class ContextMenuHelper { ...@@ -56,9 +56,8 @@ public class ContextMenuHelper {
private ContextMenuHelper() { private ContextMenuHelper() {
} }
public static void createContactContextMenu( public static void createContactContextMenu(final FragmentActivity activity,
final FragmentActivity activity, final UpdatableAdapter adapter, final UpdatableAdapter adapter, AbstractContact abstractContact, ContextMenu menu) {
AbstractContact abstractContact, ContextMenu menu) {
final String account = abstractContact.getAccount(); final String account = abstractContact.getAccount();
final String user = abstractContact.getUser(); final String user = abstractContact.getUser();
menu.setHeaderTitle(abstractContact.getName()); menu.setHeaderTitle(abstractContact.getName());
...@@ -68,7 +67,6 @@ public class ContextMenuHelper { ...@@ -68,7 +67,6 @@ public class ContextMenuHelper {
MUCEditor.createIntent(activity, account, user)); MUCEditor.createIntent(activity, account, user));
menu.add(R.string.muc_delete).setOnMenuItemClickListener( menu.add(R.string.muc_delete).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
MUCDeleteDialogFragment.newInstance(account, user) MUCDeleteDialogFragment.newInstance(account, user)
...@@ -76,19 +74,16 @@ public class ContextMenuHelper { ...@@ -76,19 +74,16 @@ public class ContextMenuHelper {
"MUC_DELETE"); "MUC_DELETE");
return true; return true;
} }
}); });
if (MUCManager.getInstance().isDisabled(account, user)) if (MUCManager.getInstance().isDisabled(account, user))
menu.add(R.string.muc_join).setOnMenuItemClickListener( menu.add(R.string.muc_join).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
MUCManager.getInstance().joinRoom(account, MUCManager.getInstance().joinRoom(account,
user, true); user, true);
return true; return true;
} }
}); });
else else
menu.add(R.string.muc_leave).setOnMenuItemClickListener( menu.add(R.string.muc_leave).setOnMenuItemClickListener(
...@@ -194,52 +189,47 @@ public class ContextMenuHelper { ...@@ -194,52 +189,47 @@ public class ContextMenuHelper {
} }
public static void createGroupContextMenu(final FragmentActivity activity, public static void createGroupContextMenu(final FragmentActivity activity,
UpdatableAdapter adapter, final String account, final String group, UpdatableAdapter adapter, final String account, final String group, ContextMenu menu) {
ContextMenu menu) { menu.setHeaderTitle(GroupManager.getInstance().getGroupName(account, group));
menu.setHeaderTitle(GroupManager.getInstance().getGroupName(account, if (!group.equals(GroupManager.ACTIVE_CHATS) && !group.equals(GroupManager.IS_ROOM)) {
group));
if (group != GroupManager.ACTIVE_CHATS && group != GroupManager.IS_ROOM) {
menu.add(R.string.group_rename).setOnMenuItemClickListener( menu.add(R.string.group_rename).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
GroupRenameDialogFragment.newInstance( GroupRenameDialogFragment.newInstance(
account == GroupManager.NO_ACCOUNT ? null account.equals(GroupManager.NO_ACCOUNT) ? null : account,
: account, group.equals(GroupManager.NO_GROUP) ? null
group == GroupManager.NO_GROUP ? null
: group).show(activity.getFragmentManager(), : group).show(activity.getFragmentManager(),
"GROUP_RENAME"); "GROUP_RENAME");
return true; return true;
} }
}); });
if (group != GroupManager.NO_GROUP) if (!group.equals(GroupManager.NO_GROUP)) {
menu.add(R.string.group_remove).setOnMenuItemClickListener( menu.add(R.string.group_remove).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
GroupDeleteDialogFragment GroupDeleteDialogFragment.newInstance(
.newInstance( account.equals(GroupManager.NO_ACCOUNT) ? null : account, group)
account == GroupManager.NO_ACCOUNT ? null
: account, group)
.show(activity.getFragmentManager(), "GROUP_DELETE"); .show(activity.getFragmentManager(), "GROUP_DELETE");
return true; return true;
} }
}); });
}
}
if (!group.equals(GroupManager.ACTIVE_CHATS)) {
createOfflineModeContextMenu(adapter, account, group, menu);
} }
createOfflineModeContextMenu(adapter, account, group, menu);
} }
public static void createAccountContextMenu( public static void createAccountContextMenu( final FragmentActivity activity, UpdatableAdapter adapter,
final FragmentActivity activity, UpdatableAdapter adapter, final String account, ContextMenu menu) {
final String account, ContextMenu menu) { menu.setHeaderTitle(AccountManager.getInstance().getVerboseName(account));
menu.setHeaderTitle(AccountManager.getInstance() AccountItem accountItem = AccountManager.getInstance().getAccount(account);
.getVerboseName(account));
AccountItem accountItem = AccountManager.getInstance().getAccount(
account);
ConnectionState state = accountItem.getState(); ConnectionState state = accountItem.getState();
if (state == ConnectionState.waiting) if (state == ConnectionState.waiting) {
menu.add(R.string.account_reconnect).setOnMenuItemClickListener( menu.add(R.string.account_reconnect).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
...@@ -253,67 +243,56 @@ public class ContextMenuHelper { ...@@ -253,67 +243,56 @@ public class ContextMenuHelper {
} }
}); });
menu.add(R.string.status_editor).setIntent( }
StatusEditor.createIntent(activity, account)); menu.add(R.string.status_editor).setIntent(StatusEditor.createIntent(activity, account));
menu.add(R.string.account_editor).setIntent( menu.add(R.string.account_editor).setIntent(AccountEditor.createIntent(activity, account));
AccountEditor.createIntent(activity, account));
if (state.isConnected()) { if (state.isConnected()) {
menu.add(R.string.contact_viewer).setOnMenuItemClickListener( menu.add(R.string.contact_viewer).setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() { new MenuItem.OnMenuItemClickListener() {
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
String user = AccountManager.getInstance() String user = AccountManager.getInstance().getAccount(account).getRealJid();
.getAccount(account).getRealJid(); if (user == null) {
if (user == null) Application.getInstance().onError(R.string.NOT_CONNECTED);
Application.getInstance().onError( } else {
R.string.NOT_CONNECTED); activity.startActivity(ContactViewer.createIntent(activity, account, user));
else {
activity.startActivity(ContactViewer
.createIntent(activity, account, user));
} }
return true; return true;
} }
}); });
menu.add(R.string.contact_add).setIntent( menu.add(R.string.contact_add).setIntent(ContactAdd.createIntent(activity, account));
ContactAdd.createIntent(activity, account));
} }
if (SettingsManager.contactsShowAccounts()) if (SettingsManager.contactsShowAccounts()) {
createOfflineModeContextMenu(adapter, account, null, menu); createOfflineModeContextMenu(adapter, account, null, menu);
}
} }
private static void createOfflineModeContextMenu(UpdatableAdapter adapter, private static void createOfflineModeContextMenu(UpdatableAdapter adapter,
String account, String group, ContextMenu menu) { String account, String group, ContextMenu menu) {
SubMenu mapMode = menu.addSubMenu(R.string.show_offline_settings); SubMenu mapMode = menu.addSubMenu(R.string.show_offline_settings);
mapMode.setHeaderTitle(R.string.show_offline_settings); mapMode.setHeaderTitle(R.string.show_offline_settings);
MenuItem always = mapMode.add(R.string.show_offline_settings, 0, 0, MenuItem always = mapMode.add(R.string.show_offline_settings, 0, 0, R.string.show_offline_always)
R.string.show_offline_always).setOnMenuItemClickListener( .setOnMenuItemClickListener(
new OfflineModeClickListener(adapter, account, group, new OfflineModeClickListener(adapter, account, group, ShowOfflineMode.always));
ShowOfflineMode.always)); MenuItem normal = mapMode.add(R.string.show_offline_settings, 0, 0, R.string.show_offline_normal).setOnMenuItemClickListener(
MenuItem normal = mapMode.add(R.string.show_offline_settings, 0, 0, new OfflineModeClickListener(adapter, account, group, ShowOfflineMode.normal));
R.string.show_offline_normal).setOnMenuItemClickListener( MenuItem never = mapMode.add(R.string.show_offline_settings, 0, 0, R.string.show_offline_never).setOnMenuItemClickListener(
new OfflineModeClickListener(adapter, account, group, new OfflineModeClickListener(adapter, account, group, ShowOfflineMode.never));
ShowOfflineMode.normal));
MenuItem never = mapMode.add(R.string.show_offline_settings, 0, 0,
R.string.show_offline_never).setOnMenuItemClickListener(
new OfflineModeClickListener(adapter, account, group,
ShowOfflineMode.never));
mapMode.setGroupCheckable(R.string.show_offline_settings, true, true); mapMode.setGroupCheckable(R.string.show_offline_settings, true, true);
ShowOfflineMode showOfflineMode = GroupManager.getInstance() ShowOfflineMode showOfflineMode = GroupManager.getInstance().getShowOfflineMode(account,
.getShowOfflineMode(account,
group == null ? GroupManager.IS_ACCOUNT : group); group == null ? GroupManager.IS_ACCOUNT : group);
if (showOfflineMode == ShowOfflineMode.always) if (showOfflineMode == ShowOfflineMode.always) {
always.setChecked(true); always.setChecked(true);
else if (showOfflineMode == ShowOfflineMode.normal) } else if (showOfflineMode == ShowOfflineMode.normal) {
normal.setChecked(true); normal.setChecked(true);
else if (showOfflineMode == ShowOfflineMode.never) } else if (showOfflineMode == ShowOfflineMode.never) {
never.setChecked(true); never.setChecked(true);
else } else {
throw new IllegalStateException(); throw new IllegalStateException();
}
} }
private static class OfflineModeClickListener implements private static class OfflineModeClickListener implements MenuItem.OnMenuItemClickListener {
MenuItem.OnMenuItemClickListener {
private final UpdatableAdapter adapter; private final UpdatableAdapter adapter;
private final String account; private final String account;
......
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