[Settings] Adjust code for performance
Reorder code flow to reduce redundent work. Bug: 213836977 Change-Id: Ifd57d1f6a007d6a1c9bcae597e6e9674ce54d8bc Test: Junit VpnPreferenceControllerTest
This commit is contained in:
@@ -65,15 +65,11 @@ public class VpnPreferenceController extends AbstractPreferenceController
|
|||||||
.build();
|
.build();
|
||||||
private static final String TAG = "VpnPreferenceController";
|
private static final String TAG = "VpnPreferenceController";
|
||||||
|
|
||||||
private final UserManager mUserManager;
|
|
||||||
private ConnectivityManager mConnectivityManager;
|
private ConnectivityManager mConnectivityManager;
|
||||||
private final VpnManager mVpnManager;
|
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
public VpnPreferenceController(Context context) {
|
public VpnPreferenceController(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
|
||||||
mVpnManager = context.getSystemService(VpnManager.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -131,18 +127,20 @@ public class VpnPreferenceController extends AbstractPreferenceController
|
|||||||
if (mPreference == null) {
|
if (mPreference == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
UserManager userManager = mContext.getSystemService(UserManager.class);
|
||||||
|
VpnManager vpnManager = mContext.getSystemService(VpnManager.class);
|
||||||
// Copied from SystemUI::SecurityControllerImpl
|
// Copied from SystemUI::SecurityControllerImpl
|
||||||
SparseArray<VpnConfig> vpns = new SparseArray<>();
|
SparseArray<VpnConfig> vpns = new SparseArray<>();
|
||||||
final List<UserInfo> users = mUserManager.getUsers();
|
final List<UserInfo> users = userManager.getUsers();
|
||||||
int connectedLegacyVpnCount = 0;
|
int connectedLegacyVpnCount = 0;
|
||||||
for (UserInfo user : users) {
|
for (UserInfo user : users) {
|
||||||
VpnConfig cfg = mVpnManager.getVpnConfig(user.id);
|
VpnConfig cfg = vpnManager.getVpnConfig(user.id);
|
||||||
if (cfg == null) {
|
if (cfg == null) {
|
||||||
continue;
|
continue;
|
||||||
} else if (cfg.legacy) {
|
} else if (cfg.legacy) {
|
||||||
// Legacy VPNs should do nothing if the network is disconnected. Third-party
|
// Legacy VPNs should do nothing if the network is disconnected. Third-party
|
||||||
// VPN warnings need to continue as traffic can still go to the app.
|
// VPN warnings need to continue as traffic can still go to the app.
|
||||||
final LegacyVpnInfo legacyVpn = mVpnManager.getLegacyVpnInfo(user.id);
|
final LegacyVpnInfo legacyVpn = vpnManager.getLegacyVpnInfo(user.id);
|
||||||
if (legacyVpn == null || legacyVpn.state != LegacyVpnInfo.STATE_CONNECTED) {
|
if (legacyVpn == null || legacyVpn.state != LegacyVpnInfo.STATE_CONNECTED) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
@@ -152,7 +150,9 @@ public class VpnPreferenceController extends AbstractPreferenceController
|
|||||||
vpns.put(user.id, cfg);
|
vpns.put(user.id, cfg);
|
||||||
}
|
}
|
||||||
int numberOfNonLegacyVpn = vpns.size() - connectedLegacyVpnCount;
|
int numberOfNonLegacyVpn = vpns.size() - connectedLegacyVpnCount;
|
||||||
final UserInfo userInfo = mUserManager.getUserInfo(UserHandle.myUserId());
|
String summary = getInsecureVpnSummaryOverride(numberOfNonLegacyVpn);
|
||||||
|
if (summary == null) {
|
||||||
|
final UserInfo userInfo = userManager.getUserInfo(UserHandle.myUserId());
|
||||||
final int uid;
|
final int uid;
|
||||||
if (userInfo.isRestricted()) {
|
if (userInfo.isRestricted()) {
|
||||||
uid = userInfo.restrictedProfileParentId;
|
uid = userInfo.restrictedProfileParentId;
|
||||||
@@ -160,14 +160,13 @@ public class VpnPreferenceController extends AbstractPreferenceController
|
|||||||
uid = userInfo.id;
|
uid = userInfo.id;
|
||||||
}
|
}
|
||||||
VpnConfig vpn = vpns.get(uid);
|
VpnConfig vpn = vpns.get(uid);
|
||||||
String summary;
|
|
||||||
if (vpn == null) {
|
if (vpn == null) {
|
||||||
summary = mContext.getString(R.string.vpn_disconnected_summary);
|
summary = mContext.getString(R.string.vpn_disconnected_summary);
|
||||||
} else {
|
} else {
|
||||||
summary = getNameForVpnConfig(vpn, UserHandle.of(uid));
|
summary = getNameForVpnConfig(vpn, UserHandle.of(uid));
|
||||||
}
|
}
|
||||||
String summaryOverride = getInsecureVpnSummaryOverride(numberOfNonLegacyVpn);
|
}
|
||||||
final String finalSummary = (summaryOverride != null) ? summaryOverride : summary;
|
final String finalSummary = summary;
|
||||||
ThreadUtils.postOnMainThread(() -> mPreference.setSummary(finalSummary));
|
ThreadUtils.postOnMainThread(() -> mPreference.setSummary(finalSummary));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user