diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index b3627adcf67b5..5549ced4a3514 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3130,10 +3130,7 @@ public class ConnectivityService extends IConnectivityManager.Stub Settings.Global.TETHER_SUPPORTED, defaultVal) != 0) && !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING); return tetherEnabledInSettings && mUserManager.isAdminUser() && - ((mTethering.getTetherableUsbRegexs().length != 0 || - mTethering.getTetherableWifiRegexs().length != 0 || - mTethering.getTetherableBluetoothRegexs().length != 0) && - mTethering.getUpstreamIfaceTypes().length != 0); + mTethering.hasTetherableConfiguration(); } @Override diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 611b7a83a1635..b82dd60d6b0fd 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -205,7 +205,7 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering return (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); } - void updateConfiguration() { + private void updateConfiguration() { mConfig = new TetheringConfiguration(mContext); } @@ -817,6 +817,17 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering return mConfig; } + public boolean hasTetherableConfiguration() { + final TetheringConfiguration cfg = mConfig; + final boolean hasDownstreamConfiguration = + (cfg.tetherableUsbRegexs.length != 0) || + (cfg.tetherableWifiRegexs.length != 0) || + (cfg.tetherableBluetoothRegexs.length != 0); + final boolean hasUpstreamConfiguration = !cfg.preferredUpstreamIfaceTypes.isEmpty(); + + return hasDownstreamConfiguration && hasUpstreamConfiguration; + } + // TODO - update callers to use getTetheringConfiguration(), // which has only final members. public String[] getTetherableUsbRegexs() { @@ -864,17 +875,6 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering return ConnectivityManager.TETHER_ERROR_NO_ERROR; } - public int[] getUpstreamIfaceTypes() { - updateConfiguration(); // TODO - remove? - final Collection upstreams = mConfig.preferredUpstreamIfaceTypes; - final int[] values = new int[upstreams.size()]; - int i = 0; - for (Integer u : upstreams) { - values[i++] = u.intValue(); - } - return values; - } - // TODO review API - maybe return ArrayList here and below? public String[] getTetheredIfaces() { ArrayList list = new ArrayList();