diff options
author | Mindy Pereira <mindyp@google.com> | 2012-07-26 16:02:49 -0700 |
---|---|---|
committer | Mindy Pereira <mindyp@google.com> | 2012-07-26 16:13:44 -0700 |
commit | 6d8e7fe77c3a3ecfac7bb3bdf0f87f7f89f66b77 (patch) | |
tree | 456b006f1ae4d5a5aec65e61e73d94a4b2110e72 /src/com/android | |
parent | dc728105dda28d053f86a05f24f1180f6de15558 (diff) | |
download | android_packages_apps_UnifiedEmail-6d8e7fe77c3a3ecfac7bb3bdf0f87f7f89f66b77.tar.gz android_packages_apps_UnifiedEmail-6d8e7fe77c3a3ecfac7bb3bdf0f87f7f89f66b77.tar.bz2 android_packages_apps_UnifiedEmail-6d8e7fe77c3a3ecfac7bb3bdf0f87f7f89f66b77.zip |
Fixup Folder model; make ConversationListFragment observer on folder changes
That way, we properly show the "loading" bar
Change-Id: I780fb1cc9cc78d8c3d05d5b3ab7fa8a83b5090e2
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/mail/ui/ControllableActivity.java | 5 | ||||
-rw-r--r-- | src/com/android/mail/ui/ConversationListFragment.java | 20 | ||||
-rw-r--r-- | src/com/android/mail/ui/FolderSelectionActivity.java | 11 | ||||
-rw-r--r-- | src/com/android/mail/ui/MailActivity.java | 11 |
4 files changed, 43 insertions, 4 deletions
diff --git a/src/com/android/mail/ui/ControllableActivity.java b/src/com/android/mail/ui/ControllableActivity.java index 4580c6c0c..049a10136 100644 --- a/src/com/android/mail/ui/ControllableActivity.java +++ b/src/com/android/mail/ui/ControllableActivity.java @@ -17,6 +17,8 @@ package com.android.mail.ui; +import android.database.DataSetObserver; + import com.android.mail.providers.Conversation; import com.android.mail.providers.Folder; import com.android.mail.ui.ViewMode.ModeChangeListener; @@ -102,4 +104,7 @@ public interface ControllableActivity extends HelpCallback, RestrictedActivity, SubjectDisplayChanger getSubjectDisplayChanger(); ErrorListener getErrorListener(); + + void registerFolderObserver(DataSetObserver folderObserver); + void unregisterFolderObserver(DataSetObserver folderObserver); } diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java index 0e0bbd7f8..70fe51401 100644 --- a/src/com/android/mail/ui/ConversationListFragment.java +++ b/src/com/android/mail/ui/ConversationListFragment.java @@ -21,6 +21,7 @@ import android.app.Activity; import android.app.ListFragment; import android.content.Context; import android.content.res.Resources; +import android.database.DataSetObserver; import android.os.Bundle; import android.os.Handler; import android.os.Parcelable; @@ -114,6 +115,7 @@ public final class ConversationListFragment extends ListFragment implements private ConversationListFooterView mFooterView; private int mSwipeAction; private ErrorListener mErrorListener; + private DataSetObserver mFolderObserver = new FolderObserver(); /** * Constructor needs to be public to handle orientation changes and activity lifecycle events. @@ -122,6 +124,14 @@ public final class ConversationListFragment extends ListFragment implements super(); } + // update the pager title strip as the Folder's conversation count changes + private class FolderObserver extends DataSetObserver { + @Override + public void onChanged() { + onFolderUpdated(mActivity.getFolder()); + } + } + /** * Creates a new instance of {@link ConversationListFragment}, initialized to display * conversation list context. @@ -205,20 +215,21 @@ public final class ConversationListFragment extends ListFragment implements mActivity = (ControllableActivity) activity; mCallbacks = mActivity.getListHandler(); mErrorListener = mActivity.getErrorListener(); - mListAdapter = new AnimatedAdapter(mActivity.getApplicationContext(), -1, getConversationListCursor(), mActivity.getSelectedSet(), mAccount, mActivity.getSettings(), mActivity.getViewMode(), mListView); // Start off with the current state of the folder being viewed. - onFolderUpdated(mActivity.getFolder()); mFooterView = (ConversationListFooterView) LayoutInflater.from( mActivity.getActivityContext()).inflate(R.layout.conversation_list_footer_view, null); + mListAdapter = new AnimatedAdapter(mActivity.getApplicationContext(), -1, + getConversationListCursor(), mActivity.getSelectedSet(), mAccount, + mActivity.getSettings(), mActivity.getViewMode(), mListView); mListAdapter.addFooter(mFooterView); mListView.setAdapter(mListAdapter); mListView.setSelectionSet(mActivity.getSelectedSet()); mListAdapter.hideFooter(); - mActivity.setViewModeListener(this); + mActivity.registerFolderObserver(mFolderObserver); mTabletDevice = Utils.useTabletUI(mActivity.getApplicationContext()); initializeUiForFirstDisplay(); configureSearchResultHeader(); @@ -379,6 +390,7 @@ public final class ConversationListFragment extends ListFragment implements public void onStop() { super.onStop(); mHandler.removeCallbacks(mUpdateTimestampsRunnable); + mActivity.unregisterFolderObserver(mFolderObserver); } @Override @@ -402,7 +414,7 @@ public final class ConversationListFragment extends ListFragment implements */ private void showList() { mListView.setEmptyView(null); - onFolderUpdated(mViewContext.folder); + onFolderUpdated(mActivity.getFolder()); } /** diff --git a/src/com/android/mail/ui/FolderSelectionActivity.java b/src/com/android/mail/ui/FolderSelectionActivity.java index 1452ef575..0423a0a20 100644 --- a/src/com/android/mail/ui/FolderSelectionActivity.java +++ b/src/com/android/mail/ui/FolderSelectionActivity.java @@ -24,6 +24,7 @@ import android.appwidget.AppWidgetManager; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.database.DataSetObserver; import android.net.Uri; import android.os.Bundle; import android.view.DragEvent; @@ -331,4 +332,14 @@ public class FolderSelectionActivity extends Activity implements OnClickListener public Folder getFolder() { return null; } + + @Override + public void registerFolderObserver(DataSetObserver observer) { + // Do nothing. + } + + @Override + public void unregisterFolderObserver(DataSetObserver observer) { + // DO nothing. + } } diff --git a/src/com/android/mail/ui/MailActivity.java b/src/com/android/mail/ui/MailActivity.java index e7e0f80f0..bc89b65c8 100644 --- a/src/com/android/mail/ui/MailActivity.java +++ b/src/com/android/mail/ui/MailActivity.java @@ -19,6 +19,7 @@ package com.android.mail.ui; import android.app.Dialog; import android.content.Intent; +import android.database.DataSetObserver; import android.nfc.NdefMessage; import android.nfc.NdefRecord; import android.nfc.NfcAdapter; @@ -394,4 +395,14 @@ public class MailActivity extends AbstractMailActivity implements ControllableAc public Folder getFolder() { return mController.getFolder(); } + + @Override + public void registerFolderObserver(DataSetObserver observer) { + mController.registerFolderObserver(observer); + } + + @Override + public void unregisterFolderObserver(DataSetObserver observer) { + mController.unregisterFolderObserver(observer); + } } |