diff options
Diffstat (limited to '')
-rw-r--r-- | res/layout/dialog_clear_history.xml | 18 | ||||
-rw-r--r-- | res/menu/conversations.xml | 6 | ||||
-rw-r--r-- | res/values/strings.xml | 5 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ConversationActivity.java | 28 |
4 files changed, 52 insertions, 5 deletions
diff --git a/res/layout/dialog_clear_history.xml b/res/layout/dialog_clear_history.xml new file mode 100644 index 00000000..789bbae9 --- /dev/null +++ b/res/layout/dialog_clear_history.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="8dp"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/clear_histor_msg" + android:textSize="18sp" + android:paddingBottom="8dp"/> + <CheckBox + android:id="@+id/end_conversation_checkbox" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/also_end_conversation"/> +</LinearLayout> diff --git a/res/menu/conversations.xml b/res/menu/conversations.xml index 3dfc12dd..b6e82c40 100644 --- a/res/menu/conversations.xml +++ b/res/menu/conversations.xml @@ -43,7 +43,11 @@ android:orderInCategory="50" android:showAsAction="never" android:title="@string/action_end_conversation"/> - + <item + android:id="@+id/action_clear_history" + android:orderInCategory="60" + android:showAsAction="never" + android:title="@string/action_clear_history"/> <item android:id="@+id/action_accounts" android:orderInCategory="90" diff --git a/res/values/strings.xml b/res/values/strings.xml index edea0f82..c0adec56 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -54,4 +54,9 @@ <string name="send_rejected">rejected</string> <string name="receiving_image">Receiving image file. Please wait…</string> <string name="preparing_image">Preparing image for transmission. Please wait…</string> + <string name="action_clear_history">Clear history</string> + <string name="clear_conversation_history">Clear Conversation history</string> + <string name="clear_histor_msg">Do you want to delete all messages within this Conversation?\n\n<b>Warning:</b> This will not influence messages stored on other devices or servers.</string> + <string name="delete_messages">Delete messages</string> + <string name="also_end_conversation">End this conversations afterwards</string> </resources> diff --git a/src/eu/siacs/conversations/ui/ConversationActivity.java b/src/eu/siacs/conversations/ui/ConversationActivity.java index 6ce31302..9b908138 100644 --- a/src/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/eu/siacs/conversations/ui/ConversationActivity.java @@ -14,9 +14,11 @@ import eu.siacs.conversations.utils.UIHelper; import android.os.Bundle; import android.preference.PreferenceManager; import android.app.AlertDialog; +import android.app.AlertDialog.Builder; import android.app.FragmentTransaction; import android.content.Context; import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; @@ -239,6 +241,7 @@ public class ConversationActivity extends XmppActivity { MenuItem menuInviteContacts = (MenuItem) menu .findItem(R.id.action_invite); MenuItem menuAttach = (MenuItem) menu.findItem(R.id.action_attach_file); + MenuItem menuClearHistory = (MenuItem) menu.findItem(R.id.action_clear_history); if ((spl.isOpen() && (spl.isSlideable()))) { menuArchive.setVisible(false); @@ -247,21 +250,18 @@ public class ConversationActivity extends XmppActivity { menuSecure.setVisible(false); menuInviteContacts.setVisible(false); menuAttach.setVisible(false); + menuClearHistory.setVisible(false); } else { ((MenuItem) menu.findItem(R.id.action_add)).setVisible(!spl .isSlideable()); if (this.getSelectedConversation() != null) { if (this.getSelectedConversation().getMode() == Conversation.MODE_MULTI) { - menuMucDetails.setVisible(true); menuContactDetails.setVisible(false); menuSecure.setVisible(false); - menuInviteContacts.setVisible(true); menuAttach.setVisible(false); } else { - menuContactDetails.setVisible(true); menuMucDetails.setVisible(false); menuInviteContacts.setVisible(false); - menuAttach.setVisible(true); if (this.getSelectedConversation().getLatestMessage() .getEncryption() != Message.ENCRYPTION_NONE) { menuSecure.setIcon(R.drawable.ic_action_secure); @@ -391,11 +391,31 @@ public class ConversationActivity extends XmppActivity { } break; + case R.id.action_clear_history: + clearHistoryDialog(getSelectedConversation()); + break; default: break; } return super.onOptionsItemSelected(item); } + + protected void clearHistoryDialog(Conversation conversation) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(getString(R.string.clear_conversation_history)); + View dialogView = getLayoutInflater().inflate(R.layout.dialog_clear_history, null); + builder.setView(dialogView); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.setPositiveButton(getString(R.string.delete_messages), new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + // TODO Auto-generated method stub + + } + }); + builder.create().show(); + } protected ConversationFragment swapConversationFragment() { ConversationFragment selectedFragment = new ConversationFragment(); |