Make TelephonyProvider a singleton across users

Messaging apps need to access it from secondary users

Bug: 18194892
Change-Id: Ia7401c287f4b920ac4de5102f33ded22bbf0f5b9
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c1c2795..f1cd72b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -32,6 +32,7 @@
         <provider android:name="TelephonyProvider"
                   android:authorities="telephony"
                   android:exported="true"
+                  android:singleUser="true"
                   android:multiprocess="false" />
 
         <!-- This is a singleton provider that is used by all users.
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 5c7948f..e7b96d4 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -35,6 +35,7 @@
 import android.net.Uri;
 import android.os.Binder;
 import android.os.Environment;
+import android.os.UserHandle;
 import android.provider.Telephony;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -884,7 +885,8 @@
         }
 
         if (notify) {
-            getContext().getContentResolver().notifyChange(Telephony.Carriers.CONTENT_URI, null);
+            getContext().getContentResolver().notifyChange(Telephony.Carriers.CONTENT_URI, null,
+                    true, UserHandle.USER_ALL);
         }
 
         return result;
@@ -997,7 +999,8 @@
         }
 
         if (count > 0) {
-            getContext().getContentResolver().notifyChange(Telephony.Carriers.CONTENT_URI, null);
+            getContext().getContentResolver().notifyChange(Telephony.Carriers.CONTENT_URI, null,
+                    true, UserHandle.USER_ALL);
         }
 
         return count;
@@ -1110,11 +1113,11 @@
             switch (uriType) {
                 case URL_SIMINFO:
                     getContext().getContentResolver().notifyChange(
-                            SubscriptionManager.CONTENT_URI, null);
+                            SubscriptionManager.CONTENT_URI, null, true, UserHandle.USER_ALL);
                     break;
                 default:
                     getContext().getContentResolver().notifyChange(
-                            Telephony.Carriers.CONTENT_URI, null);
+                            Telephony.Carriers.CONTENT_URI, null, true, UserHandle.USER_ALL);
             }
         }