From 62111a544d3044e2f3597e2251f1b4d77072369b Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 14 May 2016 23:41:43 +0200 Subject: refactored handling of endConversation --- .../conversations/ui/ConversationActivity.java | 57 ++++++++++++++++------ src/main/res/layout/dialog_clear_history.xml | 3 +- src/main/res/menu/conversations.xml | 7 ++- src/main/res/values-de/strings.xml | 4 ++ src/main/res/values/strings.xml | 2 + 5 files changed, 57 insertions(+), 16 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 053bd03d7..335c5a813 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -299,7 +299,7 @@ public class ConversationActivity extends XmppActivity }; } }); - listView.enableSwipeToDismiss(); + //listView.enableSwipeToDismiss(); listView.setSwipingLayout(R.id.swipeable_item); listView.setUndoStyle(EnhancedListView.UndoStyle.SINGLE_POPUP); listView.setUndoHideDelay(10000); @@ -540,7 +540,8 @@ public class ConversationActivity extends XmppActivity public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.conversations, menu); final MenuItem menuSecure = menu.findItem(R.id.action_security); - final MenuItem menuArchive = menu.findItem(R.id.action_archive); + final MenuItem menuArchiveChat = menu.findItem(R.id.action_archive_chat); + final MenuItem menuArchiveMuc = menu.findItem(R.id.action_archive_muc); final MenuItem menuAttach = menu.findItem(R.id.action_attach_file); final MenuItem menuClearHistory = menu.findItem(R.id.action_clear_history); final MenuItem menuAdd = menu.findItem(R.id.action_add); @@ -550,7 +551,8 @@ public class ConversationActivity extends XmppActivity final MenuItem menuUpdater = menu.findItem(R.id.action_check_updates); if (isConversationsOverviewVisable() && isConversationsOverviewHideable()) { - menuArchive.setVisible(false); + menuArchiveChat.setVisible(false); + menuArchiveMuc.setVisible(false); menuSecure.setVisible(false); menuInviteContact.setVisible(false); menuAttach.setVisible(false); @@ -562,6 +564,12 @@ public class ConversationActivity extends XmppActivity //hide settings, accounts and updater in all menus except in main window menuUpdater.setVisible(false); + if (this.getSelectedConversation().getMode() == Conversation.MODE_SINGLE) { + menuArchiveMuc.setVisible(false); + } else { + menuArchiveChat.setVisible(false); + } + if (this.getSelectedConversation() != null) { if (this.getSelectedConversation().getNextEncryption() != Message.ENCRYPTION_NONE) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { @@ -788,11 +796,24 @@ public class ConversationActivity extends XmppActivity case R.id.action_attach_file: attachFileDialog(); break; - case R.id.action_archive: + case R.id.action_archive_chat: this.endConversation(getSelectedConversation()); break; -/* - case R.id.action_contact_details: + case R.id.action_archive_muc: + AlertDialog.Builder builder = new AlertDialog.Builder(this); + 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), + new OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + endConversation(getSelectedConversation()); + } + }); + builder.create().show(); + break; +/* case R.id.action_contact_details: switchToContactDetails(getSelectedConversation().getContact()); break; case R.id.action_muc_details: @@ -864,8 +885,11 @@ public class ConversationActivity extends XmppActivity builder.setTitle(getString(R.string.clear_conversation_history)); View dialogView = getLayoutInflater().inflate( R.layout.dialog_clear_history, null); - final CheckBox endConversationCheckBox = (CheckBox) dialogView - .findViewById(R.id.end_conversation_checkbox); + final CheckBox endConversationCheckBox = (CheckBox) dialogView + .findViewById(R.id.end_conversation_checkbox); + if (conversation.getMode() == Conversation.MODE_SINGLE) { + endConversationCheckBox.setVisibility(View.VISIBLE); + } builder.setView(dialogView); builder.setNegativeButton(getString(R.string.cancel), null); builder.setPositiveButton(getString(R.string.delete_messages), @@ -874,12 +898,17 @@ public class ConversationActivity extends XmppActivity @Override public void onClick(DialogInterface dialog, int which) { ConversationActivity.this.xmppConnectionService.clearConversationHistory(conversation); - if (endConversationCheckBox.isChecked()) { - endConversation(conversation); - } else { - updateConversationList(); - ConversationActivity.this.mConversationFragment.updateMessages(); - } + if (conversation.getMode() == Conversation.MODE_SINGLE) { + if (endConversationCheckBox.isChecked()) { + endConversation(conversation); + } else { + updateConversationList(); + ConversationActivity.this.mConversationFragment.updateMessages(); + } + } else { + updateConversationList(); + ConversationActivity.this.mConversationFragment.updateMessages(); + } } }); builder.create().show(); diff --git a/src/main/res/layout/dialog_clear_history.xml b/src/main/res/layout/dialog_clear_history.xml index 252808c84..3d738e8a1 100644 --- a/src/main/res/layout/dialog_clear_history.xml +++ b/src/main/res/layout/dialog_clear_history.xml @@ -16,6 +16,7 @@ android:id="@+id/end_conversation_checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/also_end_conversation" /> + android:text="@string/also_end_conversation" + android:visibility="gone" /> \ No newline at end of file diff --git a/src/main/res/menu/conversations.xml b/src/main/res/menu/conversations.xml index 7155b8ce5..de13d9a42 100644 --- a/src/main/res/menu/conversations.xml +++ b/src/main/res/menu/conversations.xml @@ -42,10 +42,15 @@ android:showAsAction="never" android:title="@string/action_clear_history"/> + Bindungsfehler Deinstallieren Wir haben den VoiceRecorder und das ShareLocation Plugin direkt integriert. Die Plugins sind nicht länger erforderlich und sollten deinstalliert werden. + Domäne wurde nicht erkannt + Konferenz verlassen + + Willst du die Konferenz wirklich verlassen? Du wirst keine neuen Nachrichten mehr bekommen, bis du der Konferenz erneut beitrittst. diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 3556a972f..a8d62e3d3 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -630,5 +630,7 @@ Locating… We have integrated the VoiceRecorder and ShareLocation plugin directly into the messenger. You should uninstall the plugins. Uninstall + Leave conference + Do you really want to leave this conference? You will no longer be notified of new messages until joining the conference again. -- cgit v1.2.3