set folder selection on activity attached

since attaching a fragment to the activity is async, we may not
have the fragment by the time the folder is selected
let the folderlistfragment set the selection once the activity is attached

Change-Id: I10aad32af1982a4b349492fd449c42a58c37bc4f
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 79cc955..1fa57af 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -518,6 +518,11 @@
     }
 
     @Override
+    public Folder getFolder() {
+        return mFolder;
+    }
+
+    @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == ADD_ACCOUNT_REQUEST_CODE) {
             // We were waiting for the user to create an account
diff --git a/src/com/android/mail/ui/ActivityController.java b/src/com/android/mail/ui/ActivityController.java
index d35e189..ee36df0 100644
--- a/src/com/android/mail/ui/ActivityController.java
+++ b/src/com/android/mail/ui/ActivityController.java
@@ -299,4 +299,9 @@
      * Load the default inbox associated with the current account.
      */
     public abstract void loadAccountInbox();
+
+    /**
+     * Return the folder currently being viewed by the activity.
+     */
+    public abstract Folder getFolder();
 }
diff --git a/src/com/android/mail/ui/ControllableActivity.java b/src/com/android/mail/ui/ControllableActivity.java
index 3950a98..486b863 100644
--- a/src/com/android/mail/ui/ControllableActivity.java
+++ b/src/com/android/mail/ui/ControllableActivity.java
@@ -18,6 +18,7 @@
 package com.android.mail.ui;
 
 import com.android.mail.providers.Conversation;
+import com.android.mail.providers.Folder;
 import com.android.mail.ui.ViewMode.ModeChangeListener;
 import com.android.mail.ui.FolderListFragment;
 
@@ -78,4 +79,9 @@
     DragListener getDragListener();
 
     void onConversationSeen(Conversation conv);
+
+    /**
+     * Get the folder currently being accessed by the activity.
+     */
+    Folder getCurrentFolder();
 }
diff --git a/src/com/android/mail/ui/FolderListFragment.java b/src/com/android/mail/ui/FolderListFragment.java
index 2e980ec..912f7d7 100644
--- a/src/com/android/mail/ui/FolderListFragment.java
+++ b/src/com/android/mail/ui/FolderListFragment.java
@@ -114,6 +114,7 @@
             // Activity is finishing, just bail.
             return;
         }
+        selectFolder(mActivity.getCurrentFolder());
         getLoaderManager().initLoader(FOLDER_LOADER_ID, Bundle.EMPTY, this);
     }
 
diff --git a/src/com/android/mail/ui/FolderSelectionActivity.java b/src/com/android/mail/ui/FolderSelectionActivity.java
index ba2317a..b9deaaf 100644
--- a/src/com/android/mail/ui/FolderSelectionActivity.java
+++ b/src/com/android/mail/ui/FolderSelectionActivity.java
@@ -319,4 +319,9 @@
     public void onConversationSeen(Conversation conv) {
         // Do nothing.
     }
+
+    @Override
+    public Folder getCurrentFolder() {
+        return null;
+    }
 }
diff --git a/src/com/android/mail/ui/MailActivity.java b/src/com/android/mail/ui/MailActivity.java
index ba44317..dd2c149 100644
--- a/src/com/android/mail/ui/MailActivity.java
+++ b/src/com/android/mail/ui/MailActivity.java
@@ -300,4 +300,9 @@
     public void onConversationSeen(Conversation conv) {
         mController.onConversationSeen(conv);
     }
+
+    @Override
+    public Folder getCurrentFolder() {
+        return mController.getFolder();
+    }
 }