Remove polling of TetheringManager in ConnectivityManager.
Test: manual Bug: 144742179 Change-Id: I196b320788be96c120f771d2fcdf032a73e26b5f
This commit is contained in:
@@ -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;
|
||||
@@ -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.
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -2383,7 +2361,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetherableIfaces() {
|
||||
return getTetheringManager().getTetherableIfaces();
|
||||
return mTetheringManager.getTetherableIfaces();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2398,7 +2376,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetheredIfaces() {
|
||||
return getTetheringManager().getTetheredIfaces();
|
||||
return mTetheringManager.getTetheredIfaces();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2419,7 +2397,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetheringErroredIfaces() {
|
||||
return getTetheringManager().getTetheringErroredIfaces();
|
||||
return mTetheringManager.getTetheringErroredIfaces();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2463,7 +2441,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public int tether(String iface) {
|
||||
return getTetheringManager().tether(iface);
|
||||
return mTetheringManager.tether(iface);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2487,7 +2465,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public int untether(String iface) {
|
||||
return getTetheringManager().untether(iface);
|
||||
return mTetheringManager.untether(iface);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2683,7 +2661,7 @@ public class ConnectivityManager {
|
||||
|
||||
synchronized (mTetheringEventCallbacks) {
|
||||
mTetheringEventCallbacks.put(callback, tetherCallback);
|
||||
getTetheringManager().registerTetheringEventCallback(executor, tetherCallback);
|
||||
mTetheringManager.registerTetheringEventCallback(executor, tetherCallback);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2705,7 +2683,7 @@ public class ConnectivityManager {
|
||||
synchronized (mTetheringEventCallbacks) {
|
||||
final TetheringEventCallback tetherCallback =
|
||||
mTetheringEventCallbacks.remove(callback);
|
||||
getTetheringManager().unregisterTetheringEventCallback(tetherCallback);
|
||||
mTetheringManager.unregisterTetheringEventCallback(tetherCallback);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2725,7 +2703,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetherableUsbRegexs() {
|
||||
return getTetheringManager().getTetherableUsbRegexs();
|
||||
return mTetheringManager.getTetherableUsbRegexs();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2743,7 +2721,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetherableWifiRegexs() {
|
||||
return getTetheringManager().getTetherableWifiRegexs();
|
||||
return mTetheringManager.getTetherableWifiRegexs();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2762,7 +2740,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public String[] getTetherableBluetoothRegexs() {
|
||||
return getTetheringManager().getTetherableBluetoothRegexs();
|
||||
return mTetheringManager.getTetherableBluetoothRegexs();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2786,7 +2764,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public int setUsbTethering(boolean enable) {
|
||||
return getTetheringManager().setUsbTethering(enable);
|
||||
return mTetheringManager.setUsbTethering(enable);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2903,7 +2881,7 @@ public class ConnectivityManager {
|
||||
@UnsupportedAppUsage
|
||||
@Deprecated
|
||||
public int getLastTetherError(String iface) {
|
||||
return getTetheringManager().getLastTetherError(iface);
|
||||
return mTetheringManager.getLastTetherError(iface);
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -2974,7 +2952,7 @@ public class ConnectivityManager {
|
||||
}
|
||||
};
|
||||
|
||||
getTetheringManager().requestLatestTetheringEntitlementResult(type, wrappedListener,
|
||||
mTetheringManager.requestLatestTetheringEntitlementResult(type, wrappedListener,
|
||||
showEntitlementUi);
|
||||
}
|
||||
|
||||
@@ -4483,7 +4461,7 @@ public class ConnectivityManager {
|
||||
public void factoryReset() {
|
||||
try {
|
||||
mService.factoryReset();
|
||||
getTetheringManager().stopAllTethering();
|
||||
mTetheringManager.stopAllTethering();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user