Run VPN refresh on a HandlerThread
Bug: 28315317 Change-Id: I1aa4748b9454db5abf866b3ea71a9c46cceca82d
This commit is contained in:
@@ -31,6 +31,7 @@ import android.net.NetworkCapabilities;
|
|||||||
import android.net.NetworkRequest;
|
import android.net.NetworkRequest;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerThread;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
@@ -95,6 +96,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements
|
|||||||
private Map<String, LegacyVpnPreference> mLegacyVpnPreferences = new ArrayMap<>();
|
private Map<String, LegacyVpnPreference> mLegacyVpnPreferences = new ArrayMap<>();
|
||||||
private Map<AppVpnInfo, AppPreference> mAppPreferences = new ArrayMap<>();
|
private Map<AppVpnInfo, AppPreference> mAppPreferences = new ArrayMap<>();
|
||||||
|
|
||||||
|
private HandlerThread mUpdaterThread;
|
||||||
private Handler mUpdater;
|
private Handler mUpdater;
|
||||||
private LegacyVpnInfo mConnectedLegacyVpn;
|
private LegacyVpnInfo mConnectedLegacyVpn;
|
||||||
|
|
||||||
@@ -180,7 +182,9 @@ public class VpnSettings extends RestrictedSettingsFragment implements
|
|||||||
|
|
||||||
// Trigger a refresh
|
// Trigger a refresh
|
||||||
if (mUpdater == null) {
|
if (mUpdater == null) {
|
||||||
mUpdater = new Handler(this);
|
mUpdaterThread = new HandlerThread("Refresh VPN list in background");
|
||||||
|
mUpdaterThread.start();
|
||||||
|
mUpdater = new Handler(mUpdaterThread.getLooper(), this);
|
||||||
}
|
}
|
||||||
mUpdater.sendEmptyMessage(RESCAN_MESSAGE);
|
mUpdater.sendEmptyMessage(RESCAN_MESSAGE);
|
||||||
}
|
}
|
||||||
@@ -197,12 +201,15 @@ public class VpnSettings extends RestrictedSettingsFragment implements
|
|||||||
|
|
||||||
if (mUpdater != null) {
|
if (mUpdater != null) {
|
||||||
mUpdater.removeCallbacksAndMessages(null);
|
mUpdater.removeCallbacksAndMessages(null);
|
||||||
|
mUpdater = null;
|
||||||
|
mUpdaterThread.quit();
|
||||||
|
mUpdaterThread = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override @WorkerThread
|
||||||
public boolean handleMessage(Message message) {
|
public boolean handleMessage(Message message) {
|
||||||
mUpdater.removeMessages(RESCAN_MESSAGE);
|
mUpdater.removeMessages(RESCAN_MESSAGE);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user