From b4373eb8758e3fbfef6987d4239abfbc579f8b33 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 8 Apr 2018 00:50:29 +0200 Subject: fix menu entries --- .../pixart/messenger/ui/ConversationFragment.java | 38 +++++++++++++--------- .../pixart/messenger/ui/ConversationsActivity.java | 6 ++++ .../java/de/pixart/messenger/ui/XmppActivity.java | 3 +- src/main/res/menu/fragment_conversation.xml | 15 --------- 4 files changed, 30 insertions(+), 32 deletions(-) diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 39534be2d..1d0a0fce3 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -1098,13 +1098,18 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke final MenuItem menuNeedHelp = menu.findItem(R.id.action_create_issue); final MenuItem menuSearchHistory = menu.findItem(R.id.action_search_history); final MenuItem menuSearchUpdates = menu.findItem(R.id.action_check_updates); + final MenuItem menuArchiveChat = menu.findItem(R.id.action_archive_chat); + final MenuItem menuEditProfiles = menu.findItem(R.id.action_accounts); if (conversation != null) { if (conversation.getMode() == Conversation.MODE_MULTI) { menuInviteContact.setVisible(true); + menuArchiveChat.setTitle(R.string.action_end_conversation_muc); } else { menuInviteContact.setVisible(false); + menuArchiveChat.setTitle(R.string.action_end_conversation); } + menuEditProfiles.setVisible(false); menuNeedHelp.setVisible(true); menuSearchHistory.setVisible(true); menuSearchUpdates.setVisible(false); @@ -1388,22 +1393,23 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke handleAttachmentSelection(item); break; case R.id.action_archive_chat: - activity.xmppConnectionService.archiveConversation(conversation); - activity.onConversationArchived(conversation); - break; - case R.id.action_archive_muc: - activity.runOnUiThread(() -> { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(getString(R.string.action_end_conversation_muc)); - builder.setMessage(getString(R.string.leave_conference_warning)); - builder.setNegativeButton(getString(R.string.cancel), null); - builder.setPositiveButton(getString(R.string.action_end_conversation_muc), - (dialog, which) -> { - activity.xmppConnectionService.archiveConversation(conversation); - activity.onConversationArchived(conversation); - }); - builder.create().show(); - }); + if (conversation.getMode() == Conversation.MODE_SINGLE) { + activity.xmppConnectionService.archiveConversation(conversation); + activity.onConversationArchived(conversation); + } else { + activity.runOnUiThread(() -> { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(getString(R.string.action_end_conversation_muc)); + builder.setMessage(getString(R.string.leave_conference_warning)); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.setPositiveButton(getString(R.string.action_end_conversation_muc), + (dialog, which) -> { + activity.xmppConnectionService.archiveConversation(conversation); + activity.onConversationArchived(conversation); + }); + builder.create().show(); + }); + } break; case R.id.action_invite: startActivityForResult(ChooseContactActivity.create(activity, conversation), REQUEST_INVITE_TO_CONVERSATION); diff --git a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java index 00d5e2a7c..a7d1db8e7 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java @@ -444,6 +444,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_conversations, menu); MenuItem qrCodeScanMenuItem = menu.findItem(R.id.action_scan_qr_code); + final MenuItem menuEditProfiles = menu.findItem(R.id.action_accounts); if (qrCodeScanMenuItem != null) { Fragment fragment = getFragmentManager().findFragmentById(R.id.main_fragment); boolean visible = getResources().getBoolean(R.bool.show_qr_code_scan) @@ -451,6 +452,11 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio && fragment instanceof ConversationsOverviewFragment; qrCodeScanMenuItem.setVisible(visible); } + if (xmppConnectionServiceBound && xmppConnectionService.getAccounts().size() == 1 && !xmppConnectionService.multipleAccounts()) { + menuEditProfiles.setTitle(R.string.mgmt_account_edit); + } else { + menuEditProfiles.setTitle(R.string.action_accounts); + } return super.onCreateOptionsMenu(menu); } diff --git a/src/main/java/de/pixart/messenger/ui/XmppActivity.java b/src/main/java/de/pixart/messenger/ui/XmppActivity.java index 76d6f2fa5..8bfe7d2fa 100644 --- a/src/main/java/de/pixart/messenger/ui/XmppActivity.java +++ b/src/main/java/de/pixart/messenger/ui/XmppActivity.java @@ -122,6 +122,7 @@ public abstract class XmppActivity extends AppCompatActivity { registerListeners(); registeredListeners = true; } + invalidateOptionsMenu(); onBackendConnected(); } @@ -383,7 +384,7 @@ public abstract class XmppActivity extends AppCompatActivity { startActivity(new Intent(this, SettingsActivity.class)); break; case R.id.action_accounts: - if (xmppConnectionService.getAccounts().size() == 1 && !xmppConnectionService.multipleAccounts()) { + if (xmppConnectionServiceBound && this.xmppConnectionService.getAccounts().size() == 1 && !this.xmppConnectionService.multipleAccounts()) { final Intent intent = new Intent(getApplicationContext(), EditAccountActivity.class); Account mAccount = xmppConnectionService.getAccounts().get(0); intent.putExtra("jid", mAccount.getJid().asBareJid().toString()); diff --git a/src/main/res/menu/fragment_conversation.xml b/src/main/res/menu/fragment_conversation.xml index 0a34e4de1..78edffeca 100644 --- a/src/main/res/menu/fragment_conversation.xml +++ b/src/main/res/menu/fragment_conversation.xml @@ -72,21 +72,6 @@ android:orderInCategory="60" app:showAsAction="never" android:title="@string/action_end_conversation" /> - - -