Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ced7df1 authored by Amos Bianchi's avatar Amos Bianchi Committed by Gerrit Code Review
Browse files

Merge "Remove polling of TetheringManager in ConnectivityManager."

parents 2fe22290 b118c9b7
Loading
Loading
Loading
Loading
+19 −41
Original line number Diff line number Diff line
@@ -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);
    }

@@ -4484,7 +4462,7 @@ public class ConnectivityManager {
    public void factoryReset() {
        try {
            mService.factoryReset();
            getTetheringManager().stopAllTethering();
            mTetheringManager.stopAllTethering();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }