Loading core/java/android/net/ConnectivityManager.java +19 −41 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; import android.os.ServiceSpecificException; import android.os.SystemClock; import android.provider.Settings; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -808,7 +807,7 @@ public class ConnectivityManager { private INetworkManagementService mNMService; private INetworkPolicyManager mNPManager; private TetheringManager mTetheringManager; private final TetheringManager mTetheringManager; /** * Tests if a given integer represents a valid network type. Loading Loading @@ -2275,6 +2274,7 @@ public class ConnectivityManager { public ConnectivityManager(Context context, IConnectivityManager service) { mContext = Preconditions.checkNotNull(context, "missing context"); mService = Preconditions.checkNotNull(service, "missing IConnectivityManager"); mTetheringManager = (TetheringManager) mContext.getSystemService(Context.TETHERING_SERVICE); sInstance = this; } Loading Loading @@ -2348,28 +2348,6 @@ public class ConnectivityManager { return getInstanceOrNull(); } private static final int TETHERING_TIMEOUT_MS = 60_000; private final Object mTetheringLock = new Object(); private TetheringManager getTetheringManager() { synchronized (mTetheringLock) { if (mTetheringManager != null) { return mTetheringManager; } final long before = System.currentTimeMillis(); while ((mTetheringManager = (TetheringManager) mContext.getSystemService( Context.TETHERING_SERVICE)) == null) { if (System.currentTimeMillis() - before > TETHERING_TIMEOUT_MS) { Log.e(TAG, "Timeout waiting tethering service not ready yet"); throw new IllegalStateException("No tethering service yet"); } SystemClock.sleep(100); } return mTetheringManager; } } /** * Get the set of tetherable, available interfaces. This list is limited by * device configuration and current interface existence. Loading @@ -2383,7 +2361,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableIfaces() { return getTetheringManager().getTetherableIfaces(); return mTetheringManager.getTetherableIfaces(); } /** Loading @@ -2398,7 +2376,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetheredIfaces() { return getTetheringManager().getTetheredIfaces(); return mTetheringManager.getTetheredIfaces(); } /** Loading @@ -2419,7 +2397,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetheringErroredIfaces() { return getTetheringManager().getTetheringErroredIfaces(); return mTetheringManager.getTetheringErroredIfaces(); } /** Loading Loading @@ -2463,7 +2441,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int tether(String iface) { return getTetheringManager().tether(iface); return mTetheringManager.tether(iface); } /** Loading @@ -2487,7 +2465,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int untether(String iface) { return getTetheringManager().untether(iface); return mTetheringManager.untether(iface); } /** Loading @@ -2513,7 +2491,7 @@ public class ConnectivityManager { @RequiresPermission(anyOf = {android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported() { return getTetheringManager().isTetheringSupported(); return mTetheringManager.isTetheringSupported(); } /** Loading Loading @@ -2606,7 +2584,7 @@ public class ConnectivityManager { final TetheringRequest request = new TetheringRequest.Builder(type) .setSilentProvisioning(!showProvisioningUi).build(); getTetheringManager().startTethering(request, executor, tetheringCallback); mTetheringManager.startTethering(request, executor, tetheringCallback); } /** Loading @@ -2625,7 +2603,7 @@ public class ConnectivityManager { @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int type) { getTetheringManager().stopTethering(type); mTetheringManager.stopTethering(type); } /** Loading Loading @@ -2683,7 +2661,7 @@ public class ConnectivityManager { synchronized (mTetheringEventCallbacks) { mTetheringEventCallbacks.put(callback, tetherCallback); getTetheringManager().registerTetheringEventCallback(executor, tetherCallback); mTetheringManager.registerTetheringEventCallback(executor, tetherCallback); } } Loading @@ -2705,7 +2683,7 @@ public class ConnectivityManager { synchronized (mTetheringEventCallbacks) { final TetheringEventCallback tetherCallback = mTetheringEventCallbacks.remove(callback); getTetheringManager().unregisterTetheringEventCallback(tetherCallback); mTetheringManager.unregisterTetheringEventCallback(tetherCallback); } } Loading @@ -2725,7 +2703,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableUsbRegexs() { return getTetheringManager().getTetherableUsbRegexs(); return mTetheringManager.getTetherableUsbRegexs(); } /** Loading @@ -2743,7 +2721,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableWifiRegexs() { return getTetheringManager().getTetherableWifiRegexs(); return mTetheringManager.getTetherableWifiRegexs(); } /** Loading @@ -2762,7 +2740,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableBluetoothRegexs() { return getTetheringManager().getTetherableBluetoothRegexs(); return mTetheringManager.getTetherableBluetoothRegexs(); } /** Loading @@ -2786,7 +2764,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int setUsbTethering(boolean enable) { return getTetheringManager().setUsbTethering(enable); return mTetheringManager.setUsbTethering(enable); } /** Loading Loading @@ -2903,7 +2881,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int getLastTetherError(String iface) { return getTetheringManager().getLastTetherError(iface); return mTetheringManager.getLastTetherError(iface); } /** @hide */ Loading Loading @@ -2974,7 +2952,7 @@ public class ConnectivityManager { } }; getTetheringManager().requestLatestTetheringEntitlementResult(type, wrappedListener, mTetheringManager.requestLatestTetheringEntitlementResult(type, wrappedListener, showEntitlementUi); } Loading Loading @@ -4484,7 +4462,7 @@ public class ConnectivityManager { public void factoryReset() { try { mService.factoryReset(); getTetheringManager().stopAllTethering(); mTetheringManager.stopAllTethering(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading
core/java/android/net/ConnectivityManager.java +19 −41 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; import android.os.ServiceSpecificException; import android.os.SystemClock; import android.provider.Settings; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -808,7 +807,7 @@ public class ConnectivityManager { private INetworkManagementService mNMService; private INetworkPolicyManager mNPManager; private TetheringManager mTetheringManager; private final TetheringManager mTetheringManager; /** * Tests if a given integer represents a valid network type. Loading Loading @@ -2275,6 +2274,7 @@ public class ConnectivityManager { public ConnectivityManager(Context context, IConnectivityManager service) { mContext = Preconditions.checkNotNull(context, "missing context"); mService = Preconditions.checkNotNull(service, "missing IConnectivityManager"); mTetheringManager = (TetheringManager) mContext.getSystemService(Context.TETHERING_SERVICE); sInstance = this; } Loading Loading @@ -2348,28 +2348,6 @@ public class ConnectivityManager { return getInstanceOrNull(); } private static final int TETHERING_TIMEOUT_MS = 60_000; private final Object mTetheringLock = new Object(); private TetheringManager getTetheringManager() { synchronized (mTetheringLock) { if (mTetheringManager != null) { return mTetheringManager; } final long before = System.currentTimeMillis(); while ((mTetheringManager = (TetheringManager) mContext.getSystemService( Context.TETHERING_SERVICE)) == null) { if (System.currentTimeMillis() - before > TETHERING_TIMEOUT_MS) { Log.e(TAG, "Timeout waiting tethering service not ready yet"); throw new IllegalStateException("No tethering service yet"); } SystemClock.sleep(100); } return mTetheringManager; } } /** * Get the set of tetherable, available interfaces. This list is limited by * device configuration and current interface existence. Loading @@ -2383,7 +2361,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableIfaces() { return getTetheringManager().getTetherableIfaces(); return mTetheringManager.getTetherableIfaces(); } /** Loading @@ -2398,7 +2376,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetheredIfaces() { return getTetheringManager().getTetheredIfaces(); return mTetheringManager.getTetheredIfaces(); } /** Loading @@ -2419,7 +2397,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetheringErroredIfaces() { return getTetheringManager().getTetheringErroredIfaces(); return mTetheringManager.getTetheringErroredIfaces(); } /** Loading Loading @@ -2463,7 +2441,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int tether(String iface) { return getTetheringManager().tether(iface); return mTetheringManager.tether(iface); } /** Loading @@ -2487,7 +2465,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int untether(String iface) { return getTetheringManager().untether(iface); return mTetheringManager.untether(iface); } /** Loading @@ -2513,7 +2491,7 @@ public class ConnectivityManager { @RequiresPermission(anyOf = {android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported() { return getTetheringManager().isTetheringSupported(); return mTetheringManager.isTetheringSupported(); } /** Loading Loading @@ -2606,7 +2584,7 @@ public class ConnectivityManager { final TetheringRequest request = new TetheringRequest.Builder(type) .setSilentProvisioning(!showProvisioningUi).build(); getTetheringManager().startTethering(request, executor, tetheringCallback); mTetheringManager.startTethering(request, executor, tetheringCallback); } /** Loading @@ -2625,7 +2603,7 @@ public class ConnectivityManager { @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int type) { getTetheringManager().stopTethering(type); mTetheringManager.stopTethering(type); } /** Loading Loading @@ -2683,7 +2661,7 @@ public class ConnectivityManager { synchronized (mTetheringEventCallbacks) { mTetheringEventCallbacks.put(callback, tetherCallback); getTetheringManager().registerTetheringEventCallback(executor, tetherCallback); mTetheringManager.registerTetheringEventCallback(executor, tetherCallback); } } Loading @@ -2705,7 +2683,7 @@ public class ConnectivityManager { synchronized (mTetheringEventCallbacks) { final TetheringEventCallback tetherCallback = mTetheringEventCallbacks.remove(callback); getTetheringManager().unregisterTetheringEventCallback(tetherCallback); mTetheringManager.unregisterTetheringEventCallback(tetherCallback); } } Loading @@ -2725,7 +2703,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableUsbRegexs() { return getTetheringManager().getTetherableUsbRegexs(); return mTetheringManager.getTetherableUsbRegexs(); } /** Loading @@ -2743,7 +2721,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableWifiRegexs() { return getTetheringManager().getTetherableWifiRegexs(); return mTetheringManager.getTetherableWifiRegexs(); } /** Loading @@ -2762,7 +2740,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public String[] getTetherableBluetoothRegexs() { return getTetheringManager().getTetherableBluetoothRegexs(); return mTetheringManager.getTetherableBluetoothRegexs(); } /** Loading @@ -2786,7 +2764,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int setUsbTethering(boolean enable) { return getTetheringManager().setUsbTethering(enable); return mTetheringManager.setUsbTethering(enable); } /** Loading Loading @@ -2903,7 +2881,7 @@ public class ConnectivityManager { @UnsupportedAppUsage @Deprecated public int getLastTetherError(String iface) { return getTetheringManager().getLastTetherError(iface); return mTetheringManager.getLastTetherError(iface); } /** @hide */ Loading Loading @@ -2974,7 +2952,7 @@ public class ConnectivityManager { } }; getTetheringManager().requestLatestTetheringEntitlementResult(type, wrappedListener, mTetheringManager.requestLatestTetheringEntitlementResult(type, wrappedListener, showEntitlementUi); } Loading Loading @@ -4484,7 +4462,7 @@ public class ConnectivityManager { public void factoryReset() { try { mService.factoryReset(); getTetheringManager().stopAllTethering(); mTetheringManager.stopAllTethering(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading