wifi: refine API: notifyCountryCodeChanged

Feedback from API council:
1. Change to return void
2. Rethrow exception instead of logging
3. Consider passing and notifying the new value for country code

Bug: 216637965
Test: atest -c WifiNl80211ManagerTest
Trst: atest -c FrameworksWifiTests
Change-Id: If40f9434e20fd960a65de37c341d8bd6f57ed9d9
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 82539e8..2822737 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -8856,7 +8856,7 @@
     method @Nullable public android.net.wifi.nl80211.DeviceWiphyCapabilities getDeviceWiphyCapabilities(@NonNull String);
     method @NonNull public java.util.List<android.net.wifi.nl80211.NativeScanResult> getScanResults(@NonNull String, int);
     method @Nullable public android.net.wifi.nl80211.WifiNl80211Manager.TxPacketCounters getTxPacketCounters(@NonNull String);
-    method public boolean notifyCountryCodeChanged();
+    method public void notifyCountryCodeChanged(@Nullable String);
     method @Nullable public static android.net.wifi.nl80211.WifiNl80211Manager.OemSecurityType parseOemSecurityTypeElement(int, int, @NonNull byte[]);
     method @Deprecated public boolean registerApCallback(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.nl80211.WifiNl80211Manager.SoftApCallback);
     method public boolean registerCountryCodeChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.nl80211.WifiNl80211Manager.CountryCodeChangedListener);
diff --git a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
index d3eb8e0..9604475 100644
--- a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
+++ b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
@@ -1269,18 +1269,19 @@
      * support the NL80211_CMD_REG_CHANGED (otherwise it will find out on its own). The wificond
      * updates in internal state in response to this Country Code update.
      *
-     * @return true on success, false otherwise.
+     * @param newCountryCode new country code. An ISO-3166-alpha2 country code which is 2-Character
+     *                       alphanumeric.
      */
-    public boolean notifyCountryCodeChanged() {
-        try {
-            if (mWificond != null) {
-                mWificond.notifyCountryCodeChanged();
-                return true;
-            }
-        } catch (RemoteException e1) {
-            Log.e(TAG, "Failed to notify country code changed due to remote exception");
+    public void notifyCountryCodeChanged(@Nullable String newCountryCode) {
+        if (mWificond == null) {
+            new RemoteException("Wificond service doesn't exist!").rethrowFromSystemServer();
         }
-        return false;
+        try {
+            mWificond.notifyCountryCodeChanged();
+            Log.i(TAG, "Receive country code change to " + newCountryCode);
+        } catch (RemoteException re) {
+            re.rethrowFromSystemServer();
+        }
     }
 
     /**
diff --git a/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java b/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java
index 4032a7b..a750696 100644
--- a/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java
@@ -1143,17 +1143,17 @@
     @Test
     public void testNotifyCountryCodeChanged() throws Exception {
         doNothing().when(mWificond).notifyCountryCodeChanged();
-        assertTrue(mWificondControl.notifyCountryCodeChanged());
+        mWificondControl.notifyCountryCodeChanged(TEST_COUNTRY_CODE);
         verify(mWificond).notifyCountryCodeChanged();
     }
 
     /**
      * Tests notifyCountryCodeChanged with RemoteException
      */
-    @Test
+    @Test(expected = RuntimeException.class)
     public void testNotifyCountryCodeChangedRemoteException() throws Exception {
         doThrow(new RemoteException()).when(mWificond).notifyCountryCodeChanged();
-        assertFalse(mWificondControl.notifyCountryCodeChanged());
+        mWificondControl.notifyCountryCodeChanged(TEST_COUNTRY_CODE);
         verify(mWificond).notifyCountryCodeChanged();
     }