From f4210294ace6440054c32b01d0811e9b95085c0d Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Fri, 21 Apr 2017 15:07:12 +0900 Subject: [PATCH] ConnectivityService: regroup bool <-> int conversions This patch cleanups conversion of boolean values to ints when reading configuration values or sending Messages whose arg1 or arg2 has boolean semantics. Test: runtest frameworks-net Change-Id: I5187d17cd746486f63b1c410d191c30edd93ff6f --- .../android/server/ConnectivityService.java | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index e386988b57..408b7ed055 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -876,8 +876,8 @@ public class ConnectivityService extends IConnectivityManager.Stub } private void handleMobileDataAlwaysOn() { - final boolean enable = (Settings.Global.getInt( - mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON, 1) == 1); + final boolean enable = toBool(Settings.Global.getInt( + mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON, 1)); final boolean isEnabled = (mNetworkRequests.get(mDefaultMobileDataRequest) != null); if (enable == isEnabled) { return; // Nothing to do. @@ -2230,7 +2230,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } case NetworkMonitor.EVENT_PROVISIONING_NOTIFICATION: { final int netId = msg.arg2; - final boolean visible = (msg.arg1 != 0); + final boolean visible = toBool(msg.arg1); final NetworkAgentInfo nai; synchronized (mNetworkForNetId) { nai = mNetworkForNetId.get(netId); @@ -2683,7 +2683,7 @@ public class ConnectivityService extends IConnectivityManager.Stub public void setAcceptUnvalidated(Network network, boolean accept, boolean always) { enforceConnectivityInternalPermission(); mHandler.sendMessage(mHandler.obtainMessage(EVENT_SET_ACCEPT_UNVALIDATED, - accept ? 1 : 0, always ? 1: 0, network)); + encodeBool(accept), encodeBool(always), network)); } @Override @@ -2720,7 +2720,7 @@ public class ConnectivityService extends IConnectivityManager.Stub if (always) { nai.asyncChannel.sendMessage( - NetworkAgent.CMD_SAVE_ACCEPT_UNVALIDATED, accept ? 1 : 0); + NetworkAgent.CMD_SAVE_ACCEPT_UNVALIDATED, encodeBool(accept)); } if (!accept) { @@ -2921,7 +2921,8 @@ public class ConnectivityService extends IConnectivityManager.Stub break; } case EVENT_SET_ACCEPT_UNVALIDATED: { - handleSetAcceptUnvalidated((Network) msg.obj, msg.arg1 != 0, msg.arg2 != 0); + Network network = (Network) msg.obj; + handleSetAcceptUnvalidated(network, toBool(msg.arg1), toBool(msg.arg2)); break; } case EVENT_SET_AVOID_UNVALIDATED: { @@ -2956,8 +2957,7 @@ public class ConnectivityService extends IConnectivityManager.Stub break; } case EVENT_REVALIDATE_NETWORK: { - boolean hasConnectivity = (msg.arg2 == 1); - handleReportNetworkConnectivity((Network) msg.obj, msg.arg1, hasConnectivity); + handleReportNetworkConnectivity((Network) msg.obj, msg.arg1, toBool(msg.arg2)); break; } } @@ -3074,9 +3074,10 @@ public class ConnectivityService extends IConnectivityManager.Stub @Override public boolean isTetheringSupported() { enforceTetherAccessPermission(); - int defaultVal = (mSystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1); - boolean tetherEnabledInSettings = (Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.TETHER_SUPPORTED, defaultVal) != 0) + int defaultVal = encodeBool(!mSystemProperties.get("ro.tether.denied").equals("true")); + boolean tetherSupported = toBool(Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.TETHER_SUPPORTED, defaultVal)); + boolean tetherEnabledInSettings = tetherSupported && !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING); // Elevate to system UID to avoid caller requiring MANAGE_USERS permission. @@ -3088,8 +3089,7 @@ public class ConnectivityService extends IConnectivityManager.Stub Binder.restoreCallingIdentity(token); } - return tetherEnabledInSettings && adminUser && - mTethering.hasTetherableConfiguration(); + return tetherEnabledInSettings && adminUser && mTethering.hasTetherableConfiguration(); } @Override @@ -3168,7 +3168,7 @@ public class ConnectivityService extends IConnectivityManager.Stub enforceAccessPermission(); enforceInternetPermission(); final int uid = Binder.getCallingUid(); - final int connectivityInfo = hasConnectivity ? 1 : 0; + final int connectivityInfo = encodeBool(hasConnectivity); mHandler.sendMessage( mHandler.obtainMessage(EVENT_REVALIDATE_NETWORK, uid, connectivityInfo, network)); } @@ -3902,7 +3902,7 @@ public class ConnectivityService extends IConnectivityManager.Stub final long ident = Binder.clearCallingIdentity(); try { final ContentResolver cr = mContext.getContentResolver(); - Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, enable ? 1 : 0); + Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, encodeBool(enable)); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", enable); mContext.sendBroadcastAsUser(intent, UserHandle.ALL); @@ -5578,4 +5578,12 @@ public class ConnectivityService extends IConnectivityManager.Stub private void logNetworkEvent(NetworkAgentInfo nai, int evtype) { mMetricsLog.log(new NetworkEvent(nai.network.netId, evtype)); } + + private static boolean toBool(int encodedBoolean) { + return encodedBoolean != 0; // Only 0 means false. + } + + private static int encodeBool(boolean b) { + return b ? 1 : 0; + } }