Move ConversationListFooterView click handling
Since the click handling for the ConversationListFooterView is
essentially the same as that of the ToastBar, move click handling
into the Activity Controller
Change-Id: I14b8ef6788b929e82d61b8393195b703c210021d
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index cc8736c..ce24a08 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -2421,11 +2421,7 @@
final Uri uri = folder.refreshUri;
if (uri != null) {
- if (mFolderSyncTask != null) {
- mFolderSyncTask.cancel(true);
- }
- mFolderSyncTask = new AsyncRefreshTask(mActivity.getActivityContext(), uri);
- mFolderSyncTask.execute();
+ startAsyncRefreshTask(uri);
}
}
};
@@ -2446,16 +2442,20 @@
return new ActionClickedListener() {
@Override
public void onActionClicked() {
- DialogFragment fragment = (DialogFragment)
- mFragmentManager.findFragmentByTag(SYNC_ERROR_DIALOG_FRAGMENT_TAG);
- if (fragment == null) {
- fragment = SyncErrorDialogFragment.newInstance();
- }
- fragment.show(mFragmentManager, SYNC_ERROR_DIALOG_FRAGMENT_TAG);
+ showStorageErrorDialog();
}
};
}
+ private void showStorageErrorDialog() {
+ DialogFragment fragment = (DialogFragment)
+ mFragmentManager.findFragmentByTag(SYNC_ERROR_DIALOG_FRAGMENT_TAG);
+ if (fragment == null) {
+ fragment = SyncErrorDialogFragment.newInstance();
+ }
+ fragment.show(mFragmentManager, SYNC_ERROR_DIALOG_FRAGMENT_TAG);
+ }
+
private ActionClickedListener getInternalErrorClickedListener() {
return new ActionClickedListener() {
@Override
@@ -2465,4 +2465,49 @@
}
};
}
+
+ @Override
+ public void onFooterViewErrorActionClick(Folder folder, int errorStatus) {
+ Uri uri = null;
+ switch (errorStatus) {
+ case UIProvider.LastSyncResult.CONNECTION_ERROR:
+ if (folder != null && folder.refreshUri != null) {
+ uri = folder.refreshUri;
+ }
+ break;
+ case UIProvider.LastSyncResult.AUTH_ERROR:
+ // TODO - open sign-in page here
+ return;
+ case UIProvider.LastSyncResult.SECURITY_ERROR:
+ return; // Currently we do nothing for security errors.
+ case UIProvider.LastSyncResult.STORAGE_ERROR:
+ showStorageErrorDialog();
+ return;
+ case UIProvider.LastSyncResult.INTERNAL_ERROR:
+ Utils.sendFeedback(
+ mActivity.getActivityContext(), mAccount, true /* reportingProblem */);
+ return;
+ default:
+ return;
+ }
+
+ if (uri != null) {
+ startAsyncRefreshTask(uri);
+ }
+ }
+
+ @Override
+ public void onFooterViewLoadMoreClick(Folder folder) {
+ if (folder != null && folder.loadMoreUri != null) {
+ startAsyncRefreshTask(folder.loadMoreUri);
+ }
+ }
+
+ private void startAsyncRefreshTask(Uri uri) {
+ if (mFolderSyncTask != null) {
+ mFolderSyncTask.cancel(true);
+ }
+ mFolderSyncTask = new AsyncRefreshTask(mActivity.getActivityContext(), uri);
+ mFolderSyncTask.execute();
+ }
}