Make inside conversation unread work; merge twopane/onepane controller logic.
These were the same!
Also inside conversation unread was not going back to the conv list.
Change-Id: Ia06bc9f33e424bb8677a9bb360e05dc7de91e811
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index f481cd5..07efd27 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -612,7 +612,39 @@
final int id = item.getItemId();
LogUtils.d(LOG_TAG, "AbstractController.onOptionsItemSelected(%d) called.", id);
boolean handled = true;
+ final Collection<Conversation> target = Conversation.listOf(mCurrentConversation);
+ final Settings settings = mAccount.settings;
switch (id) {
+ case R.id.archive: {
+ final boolean showDialog = (settings != null && settings.confirmArchive);
+ confirmAndDelete(target, showDialog, R.plurals.confirm_archive_conversation,
+ getAction(R.id.archive, target));
+ break;
+ }
+ case R.id.delete: {
+ final boolean showDialog = (settings != null && settings.confirmDelete);
+ confirmAndDelete(target, showDialog, R.plurals.confirm_delete_conversation,
+ getAction(R.id.delete, target));
+ break;
+ }
+ case R.id.mark_important:
+ updateCurrentConversation(ConversationColumns.PRIORITY,
+ UIProvider.ConversationPriority.HIGH);
+ break;
+ case R.id.mark_not_important:
+ updateCurrentConversation(ConversationColumns.PRIORITY,
+ UIProvider.ConversationPriority.LOW);
+ break;
+ case R.id.mute:
+ requestDelete(target, getAction(R.id.mute, target));
+ break;
+ case R.id.report_spam:
+ requestDelete(target, getAction(R.id.report_spam, target));
+ break;
+ case R.id.inside_conversation_unread:
+ updateCurrentConversation(ConversationColumns.READ, false);
+ mViewMode.enterConversationListMode();
+ break;
case android.R.id.home:
onUpPressed();
break;
@@ -1512,12 +1544,6 @@
mConversationListCursor.updateInt(mContext, mTarget,
ConversationColumns.PRIORITY, UIProvider.ConversationPriority.LOW);
break;
- case R.id.inside_conversation_unread:
- LogUtils.d(LOG_TAG, "Marking conversation unread");
- mConversationListCursor.updateBoolean(mContext, mTarget,
- ConversationColumns.READ, false);
- undoEnabled = false;
- onBackPressed();
}
if (undoEnabled) {
onUndoAvailable(new UndoOperation(mTarget.size(), mAction));
diff --git a/src/com/android/mail/ui/OnePaneController.java b/src/com/android/mail/ui/OnePaneController.java
index eb8bcb0..edcbacb 100644
--- a/src/com/android/mail/ui/OnePaneController.java
+++ b/src/com/android/mail/ui/OnePaneController.java
@@ -416,50 +416,6 @@
}
@Override
- public boolean onOptionsItemSelected(MenuItem item) {
- boolean handled = true;
- final Collection<Conversation> target = Conversation.listOf(mCurrentConversation);
- final Settings settings = mAccount.settings;
- switch (item.getItemId()) {
- case R.id.archive: {
- LogUtils.d(LOG_TAG, "Entering archive");
- final boolean showDialog = (settings != null && settings.confirmArchive);
- confirmAndDelete(target, showDialog, R.plurals.confirm_archive_conversation,
- getAction(R.id.archive, target));
- break;
- }
- case R.id.delete: {
- final boolean showDialog = (settings != null && settings.confirmDelete);
- confirmAndDelete(target, showDialog,
- R.plurals.confirm_delete_conversation, getAction(R.id.delete, target));
- break;
- }
- case R.id.inside_conversation_unread:
- // Mark as unread and advance.
- requestUpdate(target, getAction(R.id.inside_conversation_unread, target));
- break;
- case R.id.mark_important:
- updateCurrentConversation(ConversationColumns.PRIORITY,
- UIProvider.ConversationPriority.HIGH);
- break;
- case R.id.mark_not_important:
- updateCurrentConversation(ConversationColumns.PRIORITY,
- UIProvider.ConversationPriority.LOW);
- break;
- case R.id.mute:
- requestDelete(target, getAction(R.id.mute, target));
- break;
- case R.id.report_spam:
- requestDelete(target, getAction(R.id.report_spam, target));
- break;
- default:
- handled = false;
- break;
- }
- return handled || super.onOptionsItemSelected(item);
- }
-
- @Override
public void onUndoAvailable(UndoOperation op) {
if (op != null && mAccount.supportsCapability(UIProvider.AccountCapabilities.UNDO)) {
final int mode = mViewMode.getMode();
diff --git a/src/com/android/mail/ui/TwoPaneController.java b/src/com/android/mail/ui/TwoPaneController.java
index 3fd9bfe..9022d46 100644
--- a/src/com/android/mail/ui/TwoPaneController.java
+++ b/src/com/android/mail/ui/TwoPaneController.java
@@ -353,55 +353,6 @@
}
@Override
- public boolean onOptionsItemSelected(MenuItem item) {
- boolean handled = true;
- LogUtils.d(LOG_TAG, "TwoPane.onOptionsItemSelected(%d) called.", item.getItemId());
- final Collection<Conversation> target = Conversation.listOf(mCurrentConversation);
- final Settings settings = mAccount.settings;
- switch (item.getItemId()) {
- case R.id.archive: {
- final boolean showDialog = (settings != null && settings.confirmArchive);
- confirmAndDelete(target, showDialog, R.plurals.confirm_archive_conversation,
- getAction(R.id.archive, target));
- break;
- }
- case R.id.delete: {
- final boolean showDialog = (settings != null && settings.confirmDelete);
- confirmAndDelete(target, showDialog, R.plurals.confirm_delete_conversation,
- getAction(R.id.delete, target));
- break;
- }
- case R.id.inside_conversation_unread:
- updateCurrentConversation(ConversationColumns.READ, false);
- break;
- case R.id.mark_important:
- updateCurrentConversation(ConversationColumns.PRIORITY,
- UIProvider.ConversationPriority.HIGH);
- break;
- case R.id.mark_not_important:
- updateCurrentConversation(ConversationColumns.PRIORITY,
- UIProvider.ConversationPriority.LOW);
- break;
- case R.id.mute:
- ConversationListFragment convList = getConversationListFragment();
- if (convList != null) {
- convList.requestDelete(target, getAction(R.id.mute, target));
- }
- break;
- case R.id.report_spam:
- convList = getConversationListFragment();
- if (convList != null) {
- convList.requestDelete(target, getAction(R.id.report_spam, target));
- }
- break;
- default:
- handled = false;
- break;
- }
- return handled || super.onOptionsItemSelected(item);
- }
-
- @Override
public void onUndoAvailable(UndoOperation op) {
final int mode = mViewMode.getMode();
final FrameLayout.LayoutParams params;