diff --git a/src/com/android/settings/network/InternetUpdater.java b/src/com/android/settings/network/InternetUpdater.java index dd70cef62af..cb8d32ca161 100644 --- a/src/com/android/settings/network/InternetUpdater.java +++ b/src/com/android/settings/network/InternetUpdater.java @@ -20,6 +20,7 @@ import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; +import static androidx.lifecycle.Lifecycle.Event.ON_DESTROY; import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE; import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; @@ -191,6 +192,12 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange mContext.unregisterReceiver(mWifiStateReceiver); } + /** @OnLifecycleEvent(ON_DESTROY) */ + @OnLifecycleEvent(ON_DESTROY) + public void onDestroy() { + mAirplaneModeEnabler.close(); + } + @Override public void onAirplaneModeChanged(boolean isAirplaneModeOn) { fetchActiveNetwork(); diff --git a/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java b/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java index d61ca00473e..5ab2ce06aa3 100644 --- a/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java +++ b/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java @@ -107,6 +107,13 @@ public class InternetUpdaterTest { any(ConnectivityManager.NetworkCallback.class)); } + @Test + public void onDestroy_shouldCloseCallback() { + mInternetUpdater.onDestroy(); + + verify(mAirplaneModeEnabler).close(); + } + @Test public void updateInternetAvailable_wifiConnectedAndNoValidated_internetUnavailable() { final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder()