Merge "Import translations. DO NOT MERGE" into jb-ub-mail-ur10
diff --git a/res/menu-sw600dp-land/conversation_actions.xml b/res/menu-sw600dp-land/conversation_actions.xml
index 3a74345..a9ff1ef 100644
--- a/res/menu-sw600dp-land/conversation_actions.xml
+++ b/res/menu-sw600dp-land/conversation_actions.xml
@@ -78,7 +78,7 @@
<!-- Always available -->
<item
- android:id="@+id/change_folder"
+ android:id="@+id/change_folders"
android:title="@string/menu_change_folders"
android:showAsAction="never"
android:icon="@drawable/ic_menu_folders_holo_light" />
diff --git a/res/menu-sw600dp-land/conversation_list_search_results_actions.xml b/res/menu-sw600dp-land/conversation_list_search_results_actions.xml
index b57f539..42cbfd6 100644
--- a/res/menu-sw600dp-land/conversation_list_search_results_actions.xml
+++ b/res/menu-sw600dp-land/conversation_list_search_results_actions.xml
@@ -37,7 +37,7 @@
<!-- Always available -->
<item
- android:id="@+id/change_folder"
+ android:id="@+id/change_folders"
android:title="@string/menu_change_folders"
android:showAsAction="never"
android:icon="@drawable/ic_menu_folders_holo_light" />
diff --git a/res/menu/ad_actions.xml b/res/menu/ad_actions.xml
new file mode 100644
index 0000000..7f4c542
--- /dev/null
+++ b/res/menu/ad_actions.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright (C) 2013 Google Inc.
+ Licensed to The Android Open Source Project.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/star"
+ android:showAsAction="always"
+ android:title="@string/add_star"
+ android:icon="@drawable/ic_star_off_convo_view_holo_light" />
+
+ <item android:id="@+id/remove_star"
+ android:showAsAction="always"
+ android:title="@string/remove_star"
+ android:icon="@drawable/ic_star_on_convo_view_holo_light" />
+
+ <item android:id="@+id/delete"
+ android:showAsAction="always"
+ android:title="@string/delete"
+ android:icon="@drawable/ic_menu_trash_holo_light"/>
+
+ <item android:id="@+id/forward"
+ android:showAsAction="always"
+ android:title="@string/forward"
+ android:icon="@drawable/ic_forward_holo_light" />
+
+ <!-- Always available -->
+ <item android:id="@+id/settings"
+ android:showAsAction="never"
+ android:title="@string/menu_settings" />
+
+ <!-- Always available -->
+ <item android:id="@+id/feedback_menu_item"
+ android:showAsAction="never"
+ android:title="@string/feedback" />
+
+ <!-- Always available -->
+ <item android:id="@+id/help_info_menu_item"
+ android:showAsAction="never"
+ android:title="@string/help_and_info" />
+</menu>
\ No newline at end of file
diff --git a/res/menu/conversation_actions.xml b/res/menu/conversation_actions.xml
index 9d63506..6f408f2 100644
--- a/res/menu/conversation_actions.xml
+++ b/res/menu/conversation_actions.xml
@@ -67,7 +67,7 @@
<!-- Always available -->
<item
- android:id="@+id/change_folder"
+ android:id="@+id/change_folders"
android:title="@string/menu_change_folders"
android:showAsAction="never"
android:icon="@drawable/ic_menu_folders_holo_light" />
diff --git a/res/menu/conversation_list_selection_actions_menu.xml b/res/menu/conversation_list_selection_actions_menu.xml
index b866497..8447068 100644
--- a/res/menu/conversation_list_selection_actions_menu.xml
+++ b/res/menu/conversation_list_selection_actions_menu.xml
@@ -73,7 +73,7 @@
android:icon="@drawable/ic_menu_move_to_holo_light" />
<item
- android:id="@+id/change_folder"
+ android:id="@+id/change_folders"
android:showAsAction="never"
android:title="@string/menu_change_folders"
android:icon="@drawable/ic_menu_folders_holo_light" />
diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java
index af91d60..11997bd 100644
--- a/src/com/android/mail/browse/ConversationItemView.java
+++ b/src/com/android/mail/browse/ConversationItemView.java
@@ -1638,17 +1638,17 @@
* drag, if drag is enabled.
*/
@Override
- public void toggleSelectedStateOrBeginDrag() {
+ public boolean toggleSelectedStateOrBeginDrag() {
ViewMode mode = mActivity.getViewMode();
if (mIsExpansiveTablet && mode.isListMode()) {
- beginDragMode();
+ return beginDragMode();
} else {
- toggleSelectedState();
+ return toggleSelectedState();
}
}
@Override
- public void toggleSelectedState() {
+ public boolean toggleSelectedState() {
if (mHeader != null && mHeader.conversation != null && mSelectedConversationSet != null) {
mSelected = !mSelected;
setSelected(mSelected);
@@ -1673,7 +1673,11 @@
// usually waits for a layout pass, but we don't need a full layout,
// just an update to the background.
requestLayout();
+
+ return true;
}
+
+ return false;
}
/**
@@ -2027,9 +2031,9 @@
/**
* Begin drag mode. Keep the conversation selected (NOT toggle selection) and start drag.
*/
- private void beginDragMode() {
- if (mLastTouchX < 0 || mLastTouchY < 0) {
- return;
+ private boolean beginDragMode() {
+ if (mLastTouchX < 0 || mLastTouchY < 0 || mSelectedConversationSet == null) {
+ return false;
}
// If this is already checked, don't bother unchecking it!
if (!mSelected) {
@@ -2053,11 +2057,13 @@
if (isDimensionNegative) {
LogUtils.e(LOG_TAG, "ConversationItemView: dimension is negative: "
+ "width=%d, height=%d", width, height);
- return;
+ return false;
}
mActivity.startDragMode();
// Start drag mode
startDrag(data, new ShadowBuilder(this, count, mLastTouchX, mLastTouchY), null, 0);
+
+ return true;
}
/**
diff --git a/src/com/android/mail/browse/SelectedConversationsActionMenu.java b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
index 8c4c7b4..bd3f570 100644
--- a/src/com/android/mail/browse/SelectedConversationsActionMenu.java
+++ b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
@@ -157,7 +157,7 @@
LogUtils.d(LOG_TAG, "Not in a starred folder.");
starConversations(false);
}
- } else if (itemId == R.id.move_to || itemId == R.id.change_folder) {
+ } else if (itemId == R.id.move_to || itemId == R.id.change_folders) {
boolean cantMove = false;
Account acct = mAccount;
// Special handling for virtual folders
diff --git a/src/com/android/mail/browse/SendersView.java b/src/com/android/mail/browse/SendersView.java
index f69a20c..48646ec 100644
--- a/src/com/android/mail/browse/SendersView.java
+++ b/src/com/android/mail/browse/SendersView.java
@@ -396,19 +396,16 @@
getSenderResources(context, resourceCachingRequired);
// Clear any existing sender fragments; we must re-make all of them.
header.senderFragments.clear();
- String[] senders = TextUtils.split(sendersString, Address.ADDRESS_DELIMETER);
- String[] namesOnly = new String[senders.length];
- Rfc822Token[] senderTokens;
+ // TODO: unify this with ConversationItemView.calculateTextsAndBitmaps's tokenization
+ final Rfc822Token[] senders = Rfc822Tokenizer.tokenize(sendersString);
+ final String[] namesOnly = new String[senders.length];
String display;
for (int i = 0; i < senders.length; i++) {
- senderTokens = Rfc822Tokenizer.tokenize(senders[i]);
- if (senderTokens != null && senderTokens.length > 0) {
- display = Address.decodeAddressName(senderTokens[0].getName());
- if (TextUtils.isEmpty(display)) {
- display = senderTokens[0].getAddress();
- }
- namesOnly[i] = display;
+ display = Address.decodeAddressName(senders[i].getName());
+ if (TextUtils.isEmpty(display)) {
+ display = senders[i].getAddress();
}
+ namesOnly[i] = display;
}
generateSenderFragments(header, namesOnly, readStyleSpan);
} finally {
diff --git a/src/com/android/mail/browse/SwipeableConversationItemView.java b/src/com/android/mail/browse/SwipeableConversationItemView.java
index 7396e7b..96bf59d 100644
--- a/src/com/android/mail/browse/SwipeableConversationItemView.java
+++ b/src/com/android/mail/browse/SwipeableConversationItemView.java
@@ -78,17 +78,21 @@
}
@Override
- public void toggleSelectedStateOrBeginDrag() {
+ public boolean toggleSelectedStateOrBeginDrag() {
if (mConversationItemView != null) {
- mConversationItemView.toggleSelectedStateOrBeginDrag();
+ return mConversationItemView.toggleSelectedStateOrBeginDrag();
}
+
+ return false;
}
@Override
- public void toggleSelectedState() {
+ public boolean toggleSelectedState() {
if (mConversationItemView != null) {
- mConversationItemView.toggleSelectedState();
+ return mConversationItemView.toggleSelectedState();
}
+
+ return false;
}
@Override
diff --git a/src/com/android/mail/browse/ToggleableItem.java b/src/com/android/mail/browse/ToggleableItem.java
index 2b7e739..b2cfa94 100644
--- a/src/com/android/mail/browse/ToggleableItem.java
+++ b/src/com/android/mail/browse/ToggleableItem.java
@@ -18,6 +18,6 @@
package com.android.mail.browse;
public interface ToggleableItem {
- void toggleSelectedStateOrBeginDrag();
- void toggleSelectedState();
+ boolean toggleSelectedStateOrBeginDrag();
+ boolean toggleSelectedState();
}
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 01024a8..c25d1d2 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -1313,6 +1313,10 @@
return true;
}
+ if (mActivity.getViewMode().isAdMode()) {
+ return onAdOptionsItemSelected(item);
+ }
+
final int id = item.getItemId();
LogUtils.d(LOG_TAG, "AbstractController.onOptionsItemSelected(%d) called.", id);
boolean handled = true;
@@ -1377,7 +1381,7 @@
Utils.sendFeedback(mActivity, mAccount, false);
} else if (id == R.id.manage_folders_item) {
Utils.showManageFolder(mActivity.getActivityContext(), mAccount);
- } else if (id == R.id.move_to || id == R.id.change_folder) {
+ } else if (id == R.id.move_to || id == R.id.change_folders) {
final FolderSelectionDialog dialog = FolderSelectionDialog.getInstance(
mActivity.getActivityContext(), mAccount, this,
Conversation.listOf(mCurrentConversation), isBatch, mFolder,
@@ -1413,6 +1417,31 @@
return handled;
}
+ private boolean onAdOptionsItemSelected(MenuItem item) {
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {
+ onUpPressed();
+ } else if (id == R.id.star) {
+
+ } else if (id == R.id.remove_star) {
+
+ } else if (id == R.id.forward) {
+
+ } else if (id == R.id.delete) {
+
+ } else if (id == R.id.settings) {
+ Utils.showSettings(mActivity.getActivityContext(), mAccount);
+ } else if (id == R.id.help_info_menu_item) {
+ Utils.showHelp(mActivity.getActivityContext(), mAccount, getHelpContext());
+ } else if (id == R.id.feedback_menu_item) {
+ Utils.sendFeedback(mActivity, mAccount, false);
+ } else {
+ return false;
+ }
+
+ return true;
+ }
+
/**
* Opens an {@link EmptyFolderDialogFragment} for the current folder.
*/
@@ -2065,6 +2094,11 @@
if (!ViewMode.isConversationMode(newMode)) {
setCurrentConversation(null);
}
+
+ if (!ViewMode.isAdMode(newMode)) {
+ setCurrentStarrable(null);
+ }
+
// If the viewmode is not set, preserve existing icon.
if (newMode != ViewMode.UNKNOWN) {
resetActionBarIcon();
@@ -2459,6 +2493,11 @@
}
}
+ @Override
+ public void setCurrentStarrable(Starrable starrable) {
+ mActionBarView.setCurrentStarrable(starrable);
+ }
+
/**
* {@link LoaderManager} currently has a bug in
* {@link LoaderManager#restartLoader(int, Bundle, android.app.LoaderManager.LoaderCallbacks)}
@@ -3182,7 +3221,7 @@
// dragged/ dropped conversations.
if (convListFragment != null) {
LogUtils.d(LOG_TAG, "AAC.requestDelete: ListFragment is handling delete.");
- convListFragment.requestDelete(R.id.change_folder, conversations,
+ convListFragment.requestDelete(R.id.change_folders, conversations,
new DroppedInStarredAction(conversations, mFolder, folder));
}
}
@@ -3204,7 +3243,7 @@
@Override
public void performAction() {
ToastBarOperation undoOp = new ToastBarOperation(mConversations.size(),
- R.id.change_folder, ToastBarOperation.UNDO, true /* batch */, mInitialFolder);
+ R.id.change_folders, ToastBarOperation.UNDO, true /* batch */, mInitialFolder);
onUndoAvailable(undoOp);
ArrayList<ConversationOperation> ops = new ArrayList<ConversationOperation>();
ContentValues values = new ContentValues();
@@ -3770,7 +3809,7 @@
Collection<FolderOperation> folders, boolean isDestructive, boolean isBatch,
boolean showUndo, final boolean isMoveTo, final Folder actionFolder) {
return new FolderDestruction(target, folders, isDestructive, isBatch, showUndo,
- isMoveTo ? R.id.move_folder : R.id.change_folder, actionFolder);
+ isMoveTo ? R.id.move_folder : R.id.change_folders, actionFolder);
}
@Override
diff --git a/src/com/android/mail/ui/AbstractConversationViewFragment.java b/src/com/android/mail/ui/AbstractConversationViewFragment.java
index 0356ed5..52e5b5f 100644
--- a/src/com/android/mail/ui/AbstractConversationViewFragment.java
+++ b/src/com/android/mail/ui/AbstractConversationViewFragment.java
@@ -296,7 +296,7 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- mChangeFoldersMenuItem = menu.findItem(R.id.change_folder);
+ mChangeFoldersMenuItem = menu.findItem(R.id.change_folders);
}
@Override
diff --git a/src/com/android/mail/ui/ControllableActivity.java b/src/com/android/mail/ui/ControllableActivity.java
index 03cee93..266416b 100644
--- a/src/com/android/mail/ui/ControllableActivity.java
+++ b/src/com/android/mail/ui/ControllableActivity.java
@@ -19,7 +19,6 @@
import com.android.mail.browse.ConversationListFooterView;
import com.android.mail.providers.Folder;
-import com.android.mail.ui.ViewMode.ModeChangeListener;
/**
* A controllable activity is an Activity that has a Controller attached. This activity must be
@@ -36,18 +35,6 @@
ViewMode getViewMode();
/**
- * Sets the listener for receiving ViewMode changes.
- * @param listener
- */
- void setViewModeListener(ModeChangeListener listener);
-
- /**
- * Removes the given listener from receiving ViewMode changes.
- * @param listener
- */
- void unsetViewModeListener(ModeChangeListener listener);
-
- /**
* Returns the object that handles {@link ConversationListCallbacks} that is associated with
* this activity.
* @return
diff --git a/src/com/android/mail/ui/ConversationListCallbacks.java b/src/com/android/mail/ui/ConversationListCallbacks.java
index 370a265..09a354b 100644
--- a/src/com/android/mail/ui/ConversationListCallbacks.java
+++ b/src/com/android/mail/ui/ConversationListCallbacks.java
@@ -47,6 +47,7 @@
Conversation getCurrentConversation();
void setCurrentConversation(Conversation c);
+ void setCurrentStarrable(Starrable starrable);
/**
* Returns whether the initial conversation has begun but not finished loading. If this returns
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index 8e6fa24..d8b3d74 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -17,8 +17,6 @@
package com.android.mail.ui;
-import com.google.common.collect.ImmutableList;
-
import android.app.Activity;
import android.app.ListFragment;
import android.app.LoaderManager;
@@ -67,6 +65,7 @@
import com.android.mail.utils.LogTag;
import com.android.mail.utils.LogUtils;
import com.android.mail.utils.Utils;
+import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -529,7 +528,7 @@
mListAdapter.destroy();
mListView.setAdapter(null);
- mActivity.unsetViewModeListener(this);
+ mActivity.getViewMode().removeListener(this);
if (mFolderObserver != null) {
mFolderObserver.unregisterAndDestroy();
mFolderObserver = null;
@@ -571,8 +570,7 @@
if (!(view instanceof ConversationItemView)) {
return false;
}
- ((ConversationItemView) view).toggleSelectedStateOrBeginDrag();
- return true;
+ return ((ConversationItemView) view).toggleSelectedStateOrBeginDrag();
}
/**
diff --git a/src/com/android/mail/ui/FolderSelectionActivity.java b/src/com/android/mail/ui/FolderSelectionActivity.java
index 90101cf..14a1089 100644
--- a/src/com/android/mail/ui/FolderSelectionActivity.java
+++ b/src/com/android/mail/ui/FolderSelectionActivity.java
@@ -37,7 +37,6 @@
import com.android.mail.providers.Account;
import com.android.mail.providers.Folder;
import com.android.mail.providers.FolderWatcher;
-import com.android.mail.ui.ViewMode.ModeChangeListener;
import com.android.mail.utils.LogTag;
import com.android.mail.utils.LogUtils;
import com.android.mail.utils.Observable;
@@ -328,14 +327,6 @@
}
@Override
- public void setViewModeListener(ModeChangeListener listener) {
- }
-
- @Override
- public void unsetViewModeListener(ModeChangeListener listener) {
- }
-
- @Override
public ConversationListCallbacks getListHandler() {
return null;
}
diff --git a/src/com/android/mail/ui/MailActionBarView.java b/src/com/android/mail/ui/MailActionBarView.java
index 8dfe699..73ef8dc 100644
--- a/src/com/android/mail/ui/MailActionBarView.java
+++ b/src/com/android/mail/ui/MailActionBarView.java
@@ -106,6 +106,8 @@
private FolderObserver mFolderObserver;
+ private Starrable mCurrentStarrable;
+
/** A handler that changes the subtitle when it receives a message. */
private final class SubtitleHandler extends Handler {
/** Message sent to display the account email address in the subtitle. */
@@ -259,6 +261,8 @@
return R.menu.conversation_actions;
case ViewMode.WAITING_FOR_ACCOUNT_INITIALIZATION:
return R.menu.wait_mode_actions;
+ case ViewMode.AD:
+ return R.menu.ad_actions;
}
LogUtils.wtf(LOG_TAG, "Menu requested for unknown view mode");
return R.menu.conversation_list_menu;
@@ -331,6 +335,7 @@
setEmptyMode();
break;
case ViewMode.CONVERSATION:
+ case ViewMode.AD:
closeSearchField();
mActionBar.setDisplayHomeAsUpEnabled(true);
setEmptyMode();
@@ -419,6 +424,11 @@
Utils.setMenuItemVisibility(menu, R.id.compose, false);
Utils.setMenuItemVisibility(menu, R.id.search, false);
break;
+ case ViewMode.AD:
+ final boolean isStarred = mCurrentStarrable.isStarred();
+ Utils.setMenuItemVisibility(menu, R.id.star, !isStarred);
+ Utils.setMenuItemVisibility(menu, R.id.remove_star, isStarred);
+ break;
}
return false;
@@ -495,7 +505,7 @@
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
actionItems++;
}
- } else if (itemId == R.id.change_folder) {
+ } else if (itemId == R.id.change_folders) {
final boolean showChangeFolder = account
.supportsCapability(AccountCapabilities.MULTIPLE_FOLDERS_PER_CONV);
menuItem.setVisible(showChangeFolder);
@@ -783,6 +793,10 @@
mCurrentConversation = conversation;
}
+ public void setCurrentStarrable(Starrable starrable) {
+ mCurrentStarrable = starrable;
+ }
+
//We need to do this here instead of in the fragment
public void setConversationModeOptions(Menu menu) {
if (mCurrentConversation == null) {
diff --git a/src/com/android/mail/ui/MailActivity.java b/src/com/android/mail/ui/MailActivity.java
index bae406a..91ad082 100644
--- a/src/com/android/mail/ui/MailActivity.java
+++ b/src/com/android/mail/ui/MailActivity.java
@@ -36,7 +36,6 @@
import com.android.mail.compose.ComposeActivity;
import com.android.mail.providers.Folder;
-import com.android.mail.ui.ViewMode.ModeChangeListener;
import com.android.mail.utils.StorageLowState;
import com.android.mail.utils.Utils;
@@ -290,16 +289,6 @@
}
@Override
- public void setViewModeListener(ModeChangeListener listener) {
- mViewMode.addListener(listener);
- }
-
- @Override
- public void unsetViewModeListener(ModeChangeListener listener) {
- mViewMode.removeListener(listener);
- }
-
- @Override
public ConversationListCallbacks getListHandler() {
return mController;
}
diff --git a/src/com/android/mail/ui/OnePaneController.java b/src/com/android/mail/ui/OnePaneController.java
index b4b6993..72680ad 100644
--- a/src/com/android/mail/ui/OnePaneController.java
+++ b/src/com/android/mail/ui/OnePaneController.java
@@ -286,7 +286,7 @@
|| action == R.id.mark_not_spam
|| action == R.id.report_phishing
|| action == R.id.refresh
- || action == R.id.change_folder) {
+ || action == R.id.change_folders) {
return false;
} else {
return true;
@@ -348,7 +348,7 @@
mActivity.finish();
} else if (mViewMode.isListMode() && !inInbox(mAccount, mConvListContext)) {
transitionToInbox();
- } else if (mViewMode.isConversationMode()) {
+ } else if (mViewMode.isConversationMode() || mViewMode.isAdMode()) {
transitionBackToConversationListMode(false /* inLoaderCallbacks */);
} else {
mActivity.finish();
@@ -436,7 +436,8 @@
} else {
navigateUp();
}
- } else if (mode == ViewMode.CONVERSATION || mode == ViewMode.SEARCH_RESULTS_CONVERSATION) {
+ } else if (mode == ViewMode.CONVERSATION || mode == ViewMode.SEARCH_RESULTS_CONVERSATION
+ || mode == ViewMode.AD) {
// Same as go back.
handleBackPress();
}
diff --git a/src/com/android/mail/ui/Starrable.java b/src/com/android/mail/ui/Starrable.java
new file mode 100644
index 0000000..34fc569
--- /dev/null
+++ b/src/com/android/mail/ui/Starrable.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2013 Google Inc.
+ * Licensed to The Android Open Source Project.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.mail.ui;
+
+/**
+ * Interface for data types that can be starred for use in {@link MailActionBarView}.
+ */
+public interface Starrable {
+ public boolean isStarred();
+}
diff --git a/src/com/android/mail/ui/ToastBarOperation.java b/src/com/android/mail/ui/ToastBarOperation.java
index dd62a47..a01d54d 100644
--- a/src/com/android/mail/ui/ToastBarOperation.java
+++ b/src/com/android/mail/ui/ToastBarOperation.java
@@ -125,7 +125,7 @@
resId = R.plurals.conversation_deleted;
} else if (mAction == R.id.remove_folder) {
return context.getString(R.string.folder_removed, mFolder.name);
- } else if (mAction == R.id.change_folder) {
+ } else if (mAction == R.id.change_folders) {
resId = R.plurals.conversation_folder_changed;
} else if (mAction == R.id.move_folder) {
return context.getString(R.string.conversation_folder_moved, mFolder.name);
diff --git a/src/com/android/mail/ui/ViewMode.java b/src/com/android/mail/ui/ViewMode.java
index aee794d..5847327 100644
--- a/src/com/android/mail/ui/ViewMode.java
+++ b/src/com/android/mail/ui/ViewMode.java
@@ -17,10 +17,11 @@
package com.android.mail.ui;
+import android.os.Bundle;
+
import com.android.mail.utils.LogUtils;
import com.google.common.collect.Lists;
-import android.os.Bundle;
import java.util.ArrayList;
/**
@@ -62,6 +63,10 @@
*/
public static final int WAITING_FOR_ACCOUNT_INITIALIZATION = 5;
/**
+ * Mode when showing ads.
+ */
+ public static final int AD = 6;
+ /**
* Uncertain mode. The mode has not been initialized.
*/
public static final int UNKNOWN = 0;
@@ -149,6 +154,13 @@
}
/**
+ * Requests a transition of the mode to show an ad.
+ */
+ public void enterAdMode() {
+ setModeInternal(AD);
+ }
+
+ /**
* @return The current mode.
*/
public int getMode() {
@@ -186,6 +198,14 @@
return mode == WAITING_FOR_ACCOUNT_INITIALIZATION;
}
+ public boolean isAdMode() {
+ return isAdMode(mMode);
+ }
+
+ public static boolean isAdMode(final int mode) {
+ return mode == AD;
+ }
+
/**
* Restoring from a saved state restores only the mode. It does not restore the listeners of
* this object.