summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2012-07-26 16:02:49 -0700
committerMindy Pereira <mindyp@google.com>2012-07-26 16:13:44 -0700
commit6d8e7fe77c3a3ecfac7bb3bdf0f87f7f89f66b77 (patch)
tree456b006f1ae4d5a5aec65e61e73d94a4b2110e72 /src/com/android
parentdc728105dda28d053f86a05f24f1180f6de15558 (diff)
downloadandroid_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.java5
-rw-r--r--src/com/android/mail/ui/ConversationListFragment.java20
-rw-r--r--src/com/android/mail/ui/FolderSelectionActivity.java11
-rw-r--r--src/com/android/mail/ui/MailActivity.java11
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);
+ }
}