Snap for 5970985 from 1ef9eacbe16a39470f6480d82448d480b0935df0 to qt-d4-release
Change-Id: I36e940d4aaf95a19f00ec937d839bd2e37807d91
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 608acdb..f2501c3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -26,6 +26,13 @@
 
     <string name="app_name" translatable="false">Unified Email</string>
 
+    <!-- The name of the permission to get widget update notifications. -->
+    <string name="permission_update_widget" translatable="false">com.android.email.permission.GET_WIDGET_UPDATE</string>
+    <!-- Permission label for receiving updates for the widget. -->
+    <string name="permission_update_widget_label">Update widget</string>
+    <!-- Permission description for receiving updates for the widget. -->
+    <string name="permission_update_widget_desc">Allows the app to receive notifications when the widget should be refreshed, including the account name and folder name.</string>
+
     <!-- Compose -->
     <!-- Shown in Compose; the sender of the message [CHAR LIMIT=10] -->
     <string name="from">From</string>
diff --git a/src/com/android/mail/compose/ComposeActivity.java b/src/com/android/mail/compose/ComposeActivity.java
index ef2f0a9..4352c79 100644
--- a/src/com/android/mail/compose/ComposeActivity.java
+++ b/src/com/android/mail/compose/ComposeActivity.java
@@ -247,7 +247,7 @@
     private static final String EXTRA_IN_REFERENCE_TO_MESSAGE = "in-reference-to-message";
     // If this is a reply/forward then this extra will hold a uri we must query
     // to get the original message.
-    protected static final String EXTRA_IN_REFERENCE_TO_MESSAGE_URI = "in-reference-to-message-uri";
+    public static final String EXTRA_IN_REFERENCE_TO_MESSAGE_URI = "in-reference-to-message-uri";
     // If this is an action to edit an existing draft message, this extra will hold the
     // draft message
     private static final String ORIGINAL_DRAFT_MESSAGE = "original-draft-message";
diff --git a/src/com/android/mail/widget/BaseWidgetProvider.java b/src/com/android/mail/widget/BaseWidgetProvider.java
index bbed266..4866782 100644
--- a/src/com/android/mail/widget/BaseWidgetProvider.java
+++ b/src/com/android/mail/widget/BaseWidgetProvider.java
@@ -314,10 +314,18 @@
         updateWidgetIntent.putExtra(EXTRA_FOLDER_TYPE, folderType);
         updateWidgetIntent.putExtra(EXTRA_FOLDER_CAPABILITIES, folderCapabilities);
         updateWidgetIntent.putExtra(EXTRA_FOLDER_URI, folderUri);
-        updateWidgetIntent.putExtra(EXTRA_FOLDER_CONVERSATION_LIST_URI, folderConversationListUri);
-        updateWidgetIntent.putExtra(EXTRA_FOLDER_DISPLAY_NAME, folderDisplayName);
 
-        context.sendBroadcast(updateWidgetIntent);
+        if (folderConversationListUri != null) {
+            updateWidgetIntent.putExtra(EXTRA_FOLDER_CONVERSATION_LIST_URI,
+                    folderConversationListUri);
+        }
+        if (folderDisplayName != null) {
+            updateWidgetIntent.putExtra(EXTRA_FOLDER_DISPLAY_NAME, folderDisplayName);
+        }
+        updateWidgetIntent.setPackage(context.getPackageName());
+
+        context.sendBroadcast(updateWidgetIntent,
+                context.getString(R.string.permission_update_widget));
     }
 
     public static void validateAllWidgets(Context context, String accountMimeType) {