Loading src/com/android/settings/wifi/WifiSettings.java +15 −3 Original line number Diff line number Diff line Loading @@ -190,6 +190,8 @@ public class WifiSettings extends RestrictedSettingsFragment // Worker thread used for WifiPickerTracker work private HandlerThread mWorkerThread; private Handler mMainHandler; private Handler mWorkerHandler; @VisibleForTesting WifiPickerTracker mWifiPickerTracker; Loading Loading @@ -290,11 +292,13 @@ public class WifiSettings extends RestrictedSettingsFragment return SystemClock.elapsedRealtime(); } }; mMainHandler = new Handler(Looper.getMainLooper()); mWorkerHandler = mWorkerThread.getThreadHandler(); mWifiPickerTracker = FeatureFactory.getFactory(context) .getWifiTrackerLibProvider() .createWifiPickerTracker(getSettingsLifecycle(), context, new Handler(Looper.getMainLooper()), mWorkerThread.getThreadHandler(), mMainHandler, mWorkerHandler, elapsedRealtimeClock, MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, Loading Loading @@ -366,6 +370,10 @@ public class WifiSettings extends RestrictedSettingsFragment if (mWifiEnabler != null) { mWifiEnabler.teardownSwitchController(); } // remove all msg and callback in main handler and worker handler mMainHandler.removeCallbacksAndMessages(null); mWorkerHandler.removeCallbacksAndMessages(null); mWorkerThread.quit(); super.onDestroyView(); Loading Loading @@ -650,7 +658,7 @@ public class WifiSettings extends RestrictedSettingsFragment /** Called when the state of Wifi has changed. */ @Override public void onWifiStateChanged() { if (mIsRestricted) { if (mIsRestricted || isFinishingOrDestroyed()) { return; } final int wifiState = mWifiPickerTracker.getWifiState(); Loading Loading @@ -688,6 +696,10 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { if (isFinishingOrDestroyed()) { return; } if (mIsWifiEntryListStale) { mIsWifiEntryListStale = false; updateWifiEntryPreferences(); Loading tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,11 @@ public class WifiSettingsTest { @Test public void onWifiEntriesChanged_shouldChangeNextButtonState() { final FragmentActivity activity = mock(FragmentActivity.class); doReturn(false).when(activity).isFinishing(); doReturn(false).when(activity).isDestroyed(); doReturn(activity).when(mWifiSettings).getActivity(); mWifiSettings.onWifiEntriesChanged(); verify(mWifiSettings).changeNextButtonState(anyBoolean()); Loading Loading
src/com/android/settings/wifi/WifiSettings.java +15 −3 Original line number Diff line number Diff line Loading @@ -190,6 +190,8 @@ public class WifiSettings extends RestrictedSettingsFragment // Worker thread used for WifiPickerTracker work private HandlerThread mWorkerThread; private Handler mMainHandler; private Handler mWorkerHandler; @VisibleForTesting WifiPickerTracker mWifiPickerTracker; Loading Loading @@ -290,11 +292,13 @@ public class WifiSettings extends RestrictedSettingsFragment return SystemClock.elapsedRealtime(); } }; mMainHandler = new Handler(Looper.getMainLooper()); mWorkerHandler = mWorkerThread.getThreadHandler(); mWifiPickerTracker = FeatureFactory.getFactory(context) .getWifiTrackerLibProvider() .createWifiPickerTracker(getSettingsLifecycle(), context, new Handler(Looper.getMainLooper()), mWorkerThread.getThreadHandler(), mMainHandler, mWorkerHandler, elapsedRealtimeClock, MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, Loading Loading @@ -366,6 +370,10 @@ public class WifiSettings extends RestrictedSettingsFragment if (mWifiEnabler != null) { mWifiEnabler.teardownSwitchController(); } // remove all msg and callback in main handler and worker handler mMainHandler.removeCallbacksAndMessages(null); mWorkerHandler.removeCallbacksAndMessages(null); mWorkerThread.quit(); super.onDestroyView(); Loading Loading @@ -650,7 +658,7 @@ public class WifiSettings extends RestrictedSettingsFragment /** Called when the state of Wifi has changed. */ @Override public void onWifiStateChanged() { if (mIsRestricted) { if (mIsRestricted || isFinishingOrDestroyed()) { return; } final int wifiState = mWifiPickerTracker.getWifiState(); Loading Loading @@ -688,6 +696,10 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { if (isFinishingOrDestroyed()) { return; } if (mIsWifiEntryListStale) { mIsWifiEntryListStale = false; updateWifiEntryPreferences(); Loading
tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,11 @@ public class WifiSettingsTest { @Test public void onWifiEntriesChanged_shouldChangeNextButtonState() { final FragmentActivity activity = mock(FragmentActivity.class); doReturn(false).when(activity).isFinishing(); doReturn(false).when(activity).isDestroyed(); doReturn(activity).when(mWifiSettings).getActivity(); mWifiSettings.onWifiEntriesChanged(); verify(mWifiSettings).changeNextButtonState(anyBoolean()); Loading