aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2016-05-14 23:41:43 +0200
committerChristian Schneppe <christian@pix-art.de>2016-05-14 23:41:43 +0200
commit62111a544d3044e2f3597e2251f1b4d77072369b (patch)
tree38a1515cf732c1654774a8a05d2fb62f8a63592f
parentafa331e3f88f559e0e31af5f26108d48592ed0a4 (diff)
refactored handling of endConversation
Diffstat (limited to '')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java57
-rw-r--r--src/main/res/layout/dialog_clear_history.xml3
-rw-r--r--src/main/res/menu/conversations.xml7
-rw-r--r--src/main/res/values-de/strings.xml4
-rw-r--r--src/main/res/values/strings.xml2
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" />
</LinearLayout> \ 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,11 +42,16 @@
android:showAsAction="never"
android:title="@string/action_clear_history"/>
<item
- android:id="@+id/action_archive"
+ android:id="@+id/action_archive_chat"
android:orderInCategory="60"
android:showAsAction="never"
android:title="@string/action_end_conversation"/>
<item
+ android:id="@+id/action_archive_muc"
+ android:orderInCategory="60"
+ android:showAsAction="never"
+ android:title="@string/action_end_conversation_muc"/>
+ <item
android:id="@+id/action_mute"
android:orderInCategory="70"
android:showAsAction="never"
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 9d1801f67..a272ecb49 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -594,4 +594,8 @@
<string name="account_status_bind_failure">Bindungsfehler</string>
<string name="uninstall">Deinstallieren</string>
<string name="uninstall_plugins">Wir haben den VoiceRecorder und das ShareLocation Plugin direkt integriert. Die Plugins sind nicht länger erforderlich und sollten deinstalliert werden.</string>
+ <string name="account_status_host_unknown">Domäne wurde nicht erkannt</string>
+ <string name="action_end_conversation_muc">Konferenz verlassen</string>
+ <string name="default_resource"></string>
+ <string name="leave_conference_warning">Willst du die Konferenz wirklich verlassen? Du wirst keine neuen Nachrichten mehr bekommen, bis du der Konferenz erneut beitrittst.</string>
</resources>
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 @@
<string name="locating">Locating…</string>
<string name="uninstall_plugins">We have integrated the VoiceRecorder and ShareLocation plugin directly into the messenger. You should uninstall the plugins.</string>
<string name="uninstall">Uninstall</string>
+ <string name="action_end_conversation_muc">Leave conference</string>
+ <string name="leave_conference_warning">Do you really want to leave this conference? You will no longer be notified of new messages until joining the conference again.</string>
</resources>