diff --git a/packages/SettingsLib/src/com/android/settingslib/connectivity/ConnectivitySubsystemsRecoveryManager.java b/packages/SettingsLib/src/com/android/settingslib/connectivity/ConnectivitySubsystemsRecoveryManager.java index 02d1c2e65c8dc..64cb0f1b7885f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/connectivity/ConnectivitySubsystemsRecoveryManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/connectivity/ConnectivitySubsystemsRecoveryManager.java @@ -210,7 +210,8 @@ public class ConnectivitySubsystemsRecoveryManager { } private void checkIfAllSubsystemsRestartsAreDone() { - if (!mWifiRestartInProgress && !mTelephonyRestartInProgress) { + if (!mWifiRestartInProgress && !mTelephonyRestartInProgress + && mCurrentRecoveryCallback != null) { mCurrentRecoveryCallback.onSubsystemRestartOperationEnd(); mCurrentRecoveryCallback = null; } @@ -283,8 +284,10 @@ public class ConnectivitySubsystemsRecoveryManager { stopTrackingTelephonyRestart(); mWifiRestartInProgress = false; mTelephonyRestartInProgress = false; - mCurrentRecoveryCallback.onSubsystemRestartOperationEnd(); - mCurrentRecoveryCallback = null; + if (mCurrentRecoveryCallback != null) { + mCurrentRecoveryCallback.onSubsystemRestartOperationEnd(); + mCurrentRecoveryCallback = null; + } }, RESTART_TIMEOUT_MS); } });