From ab832bcff72c024c0936080ec6e55fdafd20a7da Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Tue, 18 Nov 2014 13:51:04 +0100 Subject: [PATCH] properly remove conversations context menu --- .../ui/ConversationActivity.java | 56 +++++++------------ .../ui/ConversationFragment.java | 5 +- src/main/res/menu/conversations.xml | 7 +++ src/main/res/menu/conversations_context.xml | 11 ---- 4 files changed, 27 insertions(+), 52 deletions(-) delete mode 100644 src/main/res/menu/conversations_context.xml diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index bc3635199..721ad9c30 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -75,7 +75,6 @@ public class ConversationActivity extends XmppActivity implements private List conversationList = new ArrayList<>(); private Conversation mSelectedConversation = null; - private Conversation mSelectedConversationForContext = null; private ListView listView; private ConversationFragment mConversationFragment; @@ -226,42 +225,6 @@ public class ConversationActivity extends XmppActivity implements } } - /*@Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - getMenuInflater().inflate(R.menu.conversations_context, menu); - AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) menuInfo; - this.mSelectedConversationForContext = this.conversationList.get(acmi.position); - menu.setHeaderTitle(this.mSelectedConversationForContext.getName()); - MenuItem enableNotifications = menu.findItem(R.id.action_unmute); - MenuItem disableNotifications = menu.findItem(R.id.action_mute); - if (this.mSelectedConversationForContext.isMuted()) { - disableNotifications.setVisible(false); - } else { - enableNotifications.setVisible(false); - } - super.onCreateContextMenu(menu,v,menuInfo); - } - - @Override - public boolean onContextItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.action_archive: - endConversation(mSelectedConversationForContext); - return true; - case R.id.action_mute: - muteConversationDialog(mSelectedConversationForContext); - return true; - case R.id.action_unmute: - mSelectedConversationForContext.setMutedTill(0); - xmppConnectionService.updateConversation(mSelectedConversationForContext); - updateConversationList(); - ConversationActivity.this.mConversationFragment.updateMessages(); - return true; - default: - return super.onContextItemSelected(item); - } - }*/ - public void openConversation() { ActionBar ab = getActionBar(); if (ab != null) { @@ -298,6 +261,7 @@ public class ConversationActivity extends XmppActivity implements MenuItem menuAdd = menu.findItem(R.id.action_add); MenuItem menuInviteContact = menu.findItem(R.id.action_invite); MenuItem menuMute = menu.findItem(R.id.action_mute); + MenuItem menuUnmute = menu.findItem(R.id.action_unmute); if (isConversationsOverviewVisable() && isConversationsOverviewHideable()) { @@ -309,6 +273,7 @@ public class ConversationActivity extends XmppActivity implements menuAttach.setVisible(false); menuClearHistory.setVisible(false); menuMute.setVisible(false); + menuUnmute.setVisible(false); } else { menuAdd.setVisible(!isConversationsOverviewHideable()); if (this.getSelectedConversation() != null) { @@ -323,6 +288,11 @@ public class ConversationActivity extends XmppActivity implements menuMucDetails.setVisible(false); menuInviteContact.setVisible(false); } + if (this.getSelectedConversation().isMuted()) { + menuMute.setVisible(false); + } else { + menuUnmute.setVisible(false); + } } } return true; @@ -464,6 +434,9 @@ public class ConversationActivity extends XmppActivity implements case R.id.action_mute: muteConversationDialog(getSelectedConversation()); break; + case R.id.action_unmute: + unmuteConversation(getSelectedConversation()); + break; default: break; } @@ -639,11 +612,20 @@ public class ConversationActivity extends XmppActivity implements .updateConversation(conversation); updateConversationList(); ConversationActivity.this.mConversationFragment.updateMessages(); + invalidateOptionsMenu(); } }); builder.create().show(); } + public void unmuteConversation(final Conversation conversation) { + conversation.setMutedTill(0); + this.xmppConnectionService.databaseBackend.updateConversation(conversation); + updateConversationList(); + ConversationActivity.this.mConversationFragment.updateMessages(); + invalidateOptionsMenu(); + } + @Override public boolean onKeyDown(final int keyCode, final KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 7c421d541..16f68423f 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -525,10 +525,7 @@ public class ConversationFragment extends Fragment { @Override public void onClick(View v) { - conversation.setMutedTill(0); - activity.xmppConnectionService.databaseBackend - .updateConversation(conversation); - updateMessages(); + activity.unmuteConversation(conversation); } }); } else if (!contact.showInRoster() diff --git a/src/main/res/menu/conversations.xml b/src/main/res/menu/conversations.xml index 3edee120a..d68c1436e 100644 --- a/src/main/res/menu/conversations.xml +++ b/src/main/res/menu/conversations.xml @@ -49,6 +49,13 @@ android:orderInCategory="70" android:showAsAction="never" android:title="@string/disable_notifications"/> + + + - - - - \ No newline at end of file