summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail/ui/OnePaneController.java
diff options
context:
space:
mode:
authorScott Kennedy <skennedy@google.com>2013-07-10 17:33:57 -0700
committerScott Kennedy <skennedy@google.com>2013-07-10 17:38:13 -0700
commit0eaef6fb257f220687434cda763354ec5f8cb5bc (patch)
tree28bb5037b76430404a0113ac6bc97796181c071b /src/com/android/mail/ui/OnePaneController.java
parent2b254dc9185d903f7ae01db4fac4eb060bb68f6f (diff)
downloadandroid_packages_apps_UnifiedEmail-0eaef6fb257f220687434cda763354ec5f8cb5bc.tar.gz
android_packages_apps_UnifiedEmail-0eaef6fb257f220687434cda763354ec5f8cb5bc.tar.bz2
android_packages_apps_UnifiedEmail-0eaef6fb257f220687434cda763354ec5f8cb5bc.zip
Up button should go up
Previously, it was always opening the drawer, even if it showed the up caret. Bug: 9761890 Change-Id: I337c84683207e2dcb22cb55a66f9e79087016e2e
Diffstat (limited to 'src/com/android/mail/ui/OnePaneController.java')
-rw-r--r--src/com/android/mail/ui/OnePaneController.java40
1 files changed, 38 insertions, 2 deletions
diff --git a/src/com/android/mail/ui/OnePaneController.java b/src/com/android/mail/ui/OnePaneController.java
index b18ddb6d8..df198aeb9 100644
--- a/src/com/android/mail/ui/OnePaneController.java
+++ b/src/com/android/mail/ui/OnePaneController.java
@@ -21,7 +21,9 @@ import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.LoaderManager.LoaderCallbacks;
+import android.database.Cursor;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.widget.ListView;
@@ -407,6 +409,33 @@ public final class OnePaneController extends AbstractActivityController {
// onFolderSelected(current.parent);
}
+ private void navigateUp() {
+ new AsyncTask<Void, Void, Folder>() {
+ @Override
+ protected Folder doInBackground(final Void... params) {
+ final Folder folder;
+
+ final Cursor cursor = mContext.getContentResolver().query(mFolder.parent,
+ UIProvider.FOLDERS_PROJECTION, null, null, null);
+
+ if (cursor == null) {
+ folder = mInbox;
+ } else {
+ cursor.moveToFirst();
+ folder = new Folder(cursor);
+ cursor.close();
+ }
+
+ return folder;
+ }
+
+ @Override
+ protected void onPostExecute(final Folder result) {
+ onFolderSelected(result);
+ }
+ }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null);
+ }
+
/**
* Switch to the Inbox by creating a new conversation list context that loads the inbox.
*/
@@ -447,8 +476,15 @@ public final class OnePaneController extends AbstractActivityController {
}
if (mode == ViewMode.CONVERSATION_LIST
|| mode == ViewMode.WAITING_FOR_ACCOUNT_INITIALIZATION) {
- // Up affordance: show the drawer.
- toggleFolderListState();
+ final boolean isTopLevel = (mFolder == null) || (mFolder.parent == Uri.EMPTY);
+
+ if (isTopLevel) {
+ // Show the drawer.
+ toggleFolderListState();
+ } else {
+ navigateUp();
+ }
+
return true;
}
if (mode == ViewMode.CONVERSATION