Merge "Notify on restore"
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 8242752..fd98fa6 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -2839,11 +2839,15 @@
                     throw new IllegalArgumentException("Invalid subId " + url);
                 }
                 if (DBG) log("subIdString = " + subIdString + " subId = " + subId);
-                // FIXME use subId in query
             }
+            // intentional fall through from above case
+
             case URL_RESTOREAPN: {
                 count = 1;
                 restoreDefaultAPN(subId);
+                getContext().getContentResolver().notifyChange(
+                        Uri.withAppendedPath(CONTENT_URI, "restore/subId/" + subId), null,
+                        true, UserHandle.USER_ALL);
                 break;
             }
 
diff --git a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
index e1a048e..5e6cb3a 100644
--- a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
+++ b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java
@@ -84,10 +84,11 @@
     private TelephonyProviderTestable mTelephonyProviderTestable;
 
     private int notifyChangeCount;
+    private int notifyChangeRestoreCount;
 
     private static final String TEST_SUBID = "1";
     private static final String TEST_OPERATOR = "123456";
-    // Used to test the path for URL_TELEPHONY_USING_SUBID with subid 0
+    // Used to test the path for URL_TELEPHONY_USING_SUBID with subid 1
     private static final Uri CONTENT_URI_WITH_SUBID = Uri.parse(
             "content://telephony/carriers/subId/" + TEST_SUBID);
 
@@ -119,6 +120,9 @@
                 public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork,
                         int userHandle) {
                     notifyChangeCount++;
+                    if (URL_RESTOREAPN_USING_SUBID.equals(uri)) {
+                        notifyChangeRestoreCount++;
+                    }
                 }
             };
 
@@ -191,6 +195,7 @@
         mContext = new MockContextWithProvider(mTelephonyProviderTestable);
         mContentResolver = (MockContentResolver) mContext.getContentResolver();
         notifyChangeCount = 0;
+        notifyChangeRestoreCount = 0;
     }
 
     @Override
@@ -1114,5 +1119,6 @@
         cursor = mContentResolver.query(
                 Carriers.CONTENT_URI, testProjection, null, null, null);
         assertEquals(0, cursor.getCount());
+        assertEquals(3, notifyChangeRestoreCount);
     }
 }