diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-11-18 13:51:04 +0100 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-11-18 13:51:04 +0100 |
commit | ab832bcff72c024c0936080ec6e55fdafd20a7da (patch) | |
tree | 563f2f704c0b9e41b84b890cfb3bf81190b971f5 | |
parent | d29c861d034b65b2004f21a3d1c350a12fc6fbc5 (diff) |
properly remove conversations context menu
4 files changed, 27 insertions, 52 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index bc363519..721ad9c3 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<Conversation> 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 7c421d54..16f68423 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 3edee120..d68c1436 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"/> + + <item + android:id="@+id/action_unmute" + android:orderInCategory="71" + android:showAsAction="never" + android:title="@string/enable_notifications"/> + <item android:id="@+id/action_accounts" android:orderInCategory="90" diff --git a/src/main/res/menu/conversations_context.xml b/src/main/res/menu/conversations_context.xml deleted file mode 100644 index 28dc2a6d..00000000 --- a/src/main/res/menu/conversations_context.xml +++ /dev/null @@ -1,11 +0,0 @@ -<menu xmlns:android="http://schemas.android.com/apk/res/android" > - <item - android:id="@+id/action_archive" - android:title="@string/action_end_conversation"/> - <item - android:id="@+id/action_mute" - android:title="@string/disable_notifications"/> - <item - android:id="@+id/action_unmute" - android:title="@string/enable_notifications"/> -</menu>
\ No newline at end of file |