Merge "Settings: Fix WifiSettings FC when rotating screen" am: f558fc27d9
am: 3531a34760
am: caa0bbd931
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1975409 Change-Id: I56e489c2867242dfc425aba6dea8896d903ab4c3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -189,6 +189,8 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
|
||||
// Worker thread used for WifiPickerTracker work
|
||||
private HandlerThread mWorkerThread;
|
||||
private Handler mMainHandler;
|
||||
private Handler mWorkerHandler;
|
||||
|
||||
@VisibleForTesting
|
||||
WifiPickerTracker mWifiPickerTracker;
|
||||
@@ -289,11 +291,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,
|
||||
@@ -365,6 +369,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();
|
||||
@@ -649,7 +657,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();
|
||||
@@ -687,6 +695,10 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
|
||||
@Override
|
||||
public void onWifiEntriesChanged() {
|
||||
if (isFinishingOrDestroyed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mIsWifiEntryListStale) {
|
||||
mIsWifiEntryListStale = false;
|
||||
updateWifiEntryPreferences();
|
||||
|
Reference in New Issue
Block a user