[Settings] Adjust code for performance
Reorder code flow to reduce redundent work.
Bug: 213836977
Change-Id: Ifd57d1f6a007d6a1c9bcae597e6e9674ce54d8bc
Test: Junit VpnPreferenceControllerTest
diff --git a/src/com/android/settings/network/VpnPreferenceController.java b/src/com/android/settings/network/VpnPreferenceController.java
index 0df6582..d745ff5 100644
--- a/src/com/android/settings/network/VpnPreferenceController.java
+++ b/src/com/android/settings/network/VpnPreferenceController.java
@@ -65,15 +65,11 @@
.build();
private static final String TAG = "VpnPreferenceController";
- private final UserManager mUserManager;
private ConnectivityManager mConnectivityManager;
- private final VpnManager mVpnManager;
private Preference mPreference;
public VpnPreferenceController(Context context) {
super(context);
- mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
- mVpnManager = context.getSystemService(VpnManager.class);
}
@Override
@@ -131,18 +127,20 @@
if (mPreference == null) {
return;
}
+ UserManager userManager = mContext.getSystemService(UserManager.class);
+ VpnManager vpnManager = mContext.getSystemService(VpnManager.class);
// Copied from SystemUI::SecurityControllerImpl
SparseArray<VpnConfig> vpns = new SparseArray<>();
- final List<UserInfo> users = mUserManager.getUsers();
+ final List<UserInfo> users = userManager.getUsers();
int connectedLegacyVpnCount = 0;
for (UserInfo user : users) {
- VpnConfig cfg = mVpnManager.getVpnConfig(user.id);
+ VpnConfig cfg = vpnManager.getVpnConfig(user.id);
if (cfg == null) {
continue;
} else if (cfg.legacy) {
// 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.
- final LegacyVpnInfo legacyVpn = mVpnManager.getLegacyVpnInfo(user.id);
+ final LegacyVpnInfo legacyVpn = vpnManager.getLegacyVpnInfo(user.id);
if (legacyVpn == null || legacyVpn.state != LegacyVpnInfo.STATE_CONNECTED) {
continue;
} else {
@@ -152,22 +150,23 @@
vpns.put(user.id, cfg);
}
int numberOfNonLegacyVpn = vpns.size() - connectedLegacyVpnCount;
- final UserInfo userInfo = mUserManager.getUserInfo(UserHandle.myUserId());
- final int uid;
- if (userInfo.isRestricted()) {
- uid = userInfo.restrictedProfileParentId;
- } else {
- uid = userInfo.id;
+ String summary = getInsecureVpnSummaryOverride(numberOfNonLegacyVpn);
+ if (summary == null) {
+ final UserInfo userInfo = userManager.getUserInfo(UserHandle.myUserId());
+ final int uid;
+ if (userInfo.isRestricted()) {
+ uid = userInfo.restrictedProfileParentId;
+ } else {
+ uid = userInfo.id;
+ }
+ VpnConfig vpn = vpns.get(uid);
+ if (vpn == null) {
+ summary = mContext.getString(R.string.vpn_disconnected_summary);
+ } else {
+ summary = getNameForVpnConfig(vpn, UserHandle.of(uid));
+ }
}
- VpnConfig vpn = vpns.get(uid);
- String summary;
- if (vpn == null) {
- summary = mContext.getString(R.string.vpn_disconnected_summary);
- } else {
- 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));
}