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

Commit 532e58af authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "All upstream mobile connection management is now in...

Merge "Merge "All upstream mobile connection management is now in UpstreamNetworkMonitor" am: c1987487 am: 555812a3 am: 65e01ec4 am: 0b4b94b0"
parents ecfb39ef eaa71806
Loading
Loading
Loading
Loading
+4 −36
Original line number Diff line number Diff line
@@ -975,8 +975,6 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering
        private final ArrayList<TetherInterfaceStateMachine> mNotifyList;
        private final IPv6TetheringCoordinator mIPv6TetheringCoordinator;

        private int mPreviousMobileType = ConnectivityManager.TYPE_NONE;

        private static final int UPSTREAM_SETTLE_TIME_MS     = 10000;

        TetherMasterSM(String name, Looper looper) {
@@ -1010,43 +1008,14 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering
                return false;
            }

            protected boolean requestUpstreamMobileConnection(int apnType) {
                if (apnType == ConnectivityManager.TYPE_NONE) { return false; }

                if (apnType != mPreviousMobileType) {
                    // Unregister any previous mobile upstream callback because
                    // this request, if any, will be different.
                    unrequestUpstreamMobileConnection();
                }

                if (mUpstreamNetworkMonitor.mobileNetworkRequested()) {
                    // Looks like we already filed a request for this apnType.
                    return true;
                }

                switch (apnType) {
                    case ConnectivityManager.TYPE_MOBILE_DUN:
                    case ConnectivityManager.TYPE_MOBILE:
                    case ConnectivityManager.TYPE_MOBILE_HIPRI:
                        mPreviousMobileType = apnType;
                        break;
                    default:
                        return false;
                }

                // TODO: Replace this with a call to pass the current tethering
                // configuration to mUpstreamNetworkMonitor and let it handle
                // choosing APN type accordingly.
                mUpstreamNetworkMonitor.updateMobileRequiresDun(
                        apnType == ConnectivityManager.TYPE_MOBILE_DUN);

            protected boolean requestUpstreamMobileConnection() {
                mUpstreamNetworkMonitor.updateMobileRequiresDun(mConfig.isDunRequired);
                mUpstreamNetworkMonitor.registerMobileNetworkRequest();
                return true;
            }

            protected void unrequestUpstreamMobileConnection() {
                mUpstreamNetworkMonitor.releaseMobileNetworkRequest();
                mPreviousMobileType = ConnectivityManager.TYPE_NONE;
            }

            protected boolean turnOnMasterTetherSettings() {
@@ -1128,11 +1097,10 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering
                    case ConnectivityManager.TYPE_MOBILE_DUN:
                    case ConnectivityManager.TYPE_MOBILE_HIPRI:
                        // If we're on DUN, put our own grab on it.
                        requestUpstreamMobileConnection(upType);
                        requestUpstreamMobileConnection();
                        break;
                    case ConnectivityManager.TYPE_NONE:
                        if (tryCell &&
                                requestUpstreamMobileConnection(preferredUpstreamMobileApn)) {
                        if (tryCell && requestUpstreamMobileConnection()) {
                            // We think mobile should be coming up; don't set a retry.
                        } else {
                            sendMessageDelayed(CMD_RETRY_UPSTREAM, UPSTREAM_SETTLE_TIME_MS);