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

Commit 78d31b29 authored by Sarah Chin's avatar Sarah Chin Committed by Android (Google) Code Review
Browse files

Merge changes from topic "presubmit-am-73836f355b0a465c913523423cbfa265" into tm-mainline-prod

* changes:
  [automerge] DataSettingsManager notify when data override rules change 2p: 41c7c3b7
  DataSettingsManager notify when data override rules change
parents a8be3535 a64951d8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -195,6 +195,8 @@ public class DataEvaluation {
        DATA_SERVICE_STATE_CHANGED,
        /** When data is enabled or disabled (by user, carrier, thermal, etc...) */
        DATA_ENABLED_CHANGED,
        /** When data enabled overrides are changed (MMS always allowed, data on non-DDS sub). */
        DATA_ENABLED_OVERRIDE_CHANGED,
        /** When data roaming is enabled or disabled. */
        ROAMING_ENABLED_CHANGED,
        /** When voice call ended (for concurrent voice/data not supported RAT). */
+14 −0
Original line number Diff line number Diff line
@@ -787,6 +787,20 @@ public class DataNetworkController extends Handler {
                                        DataEvaluationReason.DATA_ENABLED_CHANGED));
                            }
                            @Override
                            public void onDataEnabledOverrideChanged(boolean enabled,
                                    @TelephonyManager.MobileDataPolicy int policy) {
                                // If data enabled override is enabled by the user, evaluate the
                                // unsatisfied network requests and then attempt to setup data
                                // networks to satisfy them. If data enabled override is disabled,
                                // evaluate the existing data networks and see if they need to be
                                // torn down.
                                logl("onDataEnabledOverrideChanged: enabled=" + enabled);
                                sendMessage(obtainMessage(enabled
                                                ? EVENT_REEVALUATE_UNSATISFIED_NETWORK_REQUESTS
                                                : EVENT_REEVALUATE_EXISTING_DATA_NETWORKS,
                                        DataEvaluationReason.DATA_ENABLED_OVERRIDE_CHANGED));
                            }
                            @Override
                            public void onDataRoamingEnabledChanged(boolean enabled) {
                                // If data roaming is enabled by the user, evaluate the unsatisfied
                                // network requests and then attempt to setup data networks to
+22 −4
Original line number Diff line number Diff line
@@ -131,6 +131,16 @@ public class DataSettingsManager extends Handler {
        public void onDataEnabledChanged(boolean enabled,
                @TelephonyManager.DataEnabledChangedReason int reason) {}

        /**
         * Called when data enabled override changed.
         *
         * @param enabled {@code true} indicates data enabled override is enabled.
         * @param policy {@link TelephonyManager.MobileDataPolicy} indicating the policy that was
         *               enabled or disabled.
         */
        public void onDataEnabledOverrideChanged(boolean enabled,
                @TelephonyManager.MobileDataPolicy int policy) {}

        /**
         * Called when data roaming enabled state changed.
         *
@@ -235,6 +245,8 @@ public class DataSettingsManager extends Handler {
                if (SubscriptionController.getInstance()
                        .setDataEnabledOverrideRules(mSubId, mDataEnabledOverride.getRules())) {
                    updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_OVERRIDE);
                    notifyDataEnabledOverrideChanged(alwaysAllow,
                            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED);
                }
                break;
            }
@@ -248,13 +260,12 @@ public class DataSettingsManager extends Handler {
                if (SubscriptionController.getInstance()
                        .setDataEnabledOverrideRules(mSubId, mDataEnabledOverride.getRules())) {
                    updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_OVERRIDE);
                    notifyDataEnabledOverrideChanged(allow, TelephonyManager
                            .MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL);
                }
                break;
            }
            case EVENT_PROVISIONED_CHANGED: {
                updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_UNKNOWN);
                break;
            }
            case EVENT_PROVISIONED_CHANGED:
            case EVENT_PROVISIONING_DATA_ENABLED_CHANGED: {
                updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_UNKNOWN);
                break;
@@ -562,6 +573,13 @@ public class DataSettingsManager extends Handler {
        mPhone.notifyDataEnabled(enabled, reason);
    }

    private void notifyDataEnabledOverrideChanged(boolean enabled,
            @TelephonyManager.MobileDataPolicy int policy) {
        logl("notifyDataEnabledOverrideChanged: enabled=" + enabled);
        mDataSettingsManagerCallbacks.forEach(callback -> callback.invokeFromExecutor(
                () -> callback.onDataEnabledOverrideChanged(enabled, policy)));
    }

    /**
     * Register the callback for receiving information from {@link DataSettingsManager}.
     *
+9 −0
Original line number Diff line number Diff line
@@ -524,6 +524,8 @@ public class DataNetworkControllerTest extends TelephonyTest {
        doReturn(true).when(mSST).isConcurrentVoiceAndDataAllowed();
        doReturn(PhoneConstants.State.IDLE).when(mCT).getState();
        doReturn("").when(mSubscriptionController).getDataEnabledOverrideRules(anyInt());
        doReturn(true).when(mSubscriptionController).setDataEnabledOverrideRules(
                anyInt(), anyString());

        for (int transport : new int[]{AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
                AccessNetworkConstants.TRANSPORT_TYPE_WLAN}) {
@@ -1101,6 +1103,13 @@ public class DataNetworkControllerTest extends TelephonyTest {
        verifyConnectedNetworkHasDataProfile(mGeneralPurposeDataProfile);
        verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
        verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL);

        // Remove MMS data enabled override
        mDataNetworkControllerUT.getDataSettingsManager().setAlwaysAllowMmsData(false);
        processAllMessages();

        // Make sure MMS is torn down when the override is disabled.
        verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_MMS);
    }

    @Test