Notify the profile when cloned settings are changed.

In SettingsProvider, for settings that are cloned from the parent
to the profile:
When the parent value is changed, notify ContentObservers in the
profile as well.

BUG:21414456
Change-Id: Ie0560d1332174499d067db9978553843b640a161
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 41043eb..8d9f3fd 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -1774,6 +1774,26 @@
             Uri uri = getNotificationUriFor(key, name);
 
             sendNotify(uri, userId);
+            if (isSecureSettingsKey(key)) {
+                maybeNotifyProfiles(userId, uri, name, sSecureCloneToManagedSettings);
+            } else if (isSystemSettingsKey(key)) {
+                maybeNotifyProfiles(userId, uri, name, sSystemCloneToManagedSettings);
+            }
+        }
+
+        private void maybeNotifyProfiles(int userId, Uri uri, String name,
+                Set<String> keysCloned) {
+            if (keysCloned.contains(name)) {
+                List<UserInfo> profiles = mUserManager.getProfiles(userId);
+                int size = profiles.size();
+                for (int i = 0; i < size; i++) {
+                    UserInfo profile = profiles.get(i);
+                    // the notification for userId has already been sent.
+                    if (profile.id != userId) {
+                        sendNotify(uri, profile.id);
+                    }
+                }
+            }
         }
 
         private int makeKey(int type, int userId) {