Make sure the widget gets reset if the folder disappears
b/10735037
Change-Id: I4b81282601901253a789a58c92eff4b99d0e4635
diff --git a/src/com/android/mail/widget/BaseWidgetProvider.java b/src/com/android/mail/widget/BaseWidgetProvider.java
index 4719a1f..6de221f 100644
--- a/src/com/android/mail/widget/BaseWidgetProvider.java
+++ b/src/com/android/mail/widget/BaseWidgetProvider.java
@@ -318,8 +318,7 @@
final String folderDisplayName) {
final RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
- final boolean isAccountValid = isAccountValid(context, account);
- if (!isAccountValid || Utils.isEmpty(folderUri)) {
+ if (!isAccountValid(context, account) || !isFolderValid(context, folderUri)) {
// Widget has not been configured yet
remoteViews.setViewVisibility(R.id.widget_folder, View.GONE);
remoteViews.setViewVisibility(R.id.widget_account_noflip, View.GONE);
@@ -363,7 +362,7 @@
}
protected boolean isFolderValid(Context context, Uri folderUri) {
- if (folderUri != null) {
+ if (!Utils.isEmpty(folderUri)) {
final Cursor folderCursor =
context.getContentResolver().query(folderUri,
UIProvider.FOLDERS_PROJECTION, null, null, null);
diff --git a/src/com/android/mail/widget/WidgetService.java b/src/com/android/mail/widget/WidgetService.java
index 7ad6095..f288957 100644
--- a/src/com/android/mail/widget/WidgetService.java
+++ b/src/com/android/mail/widget/WidgetService.java
@@ -539,6 +539,10 @@
if (loader == mFolderLoader) {
if (!isDataValid(data)) {
+ // Our folder may have disappeared on us
+ BaseWidgetProvider.updateWidget(mContext, mAppWidgetId, mAccount, mFolderType,
+ mFolderUri, mFolderConversationListUri, mFolderDisplayName);
+
return;
}