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;
                 }