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

Commit 088c30b5 authored by Sarah Chin's avatar Sarah Chin Committed by android-build-merger
Browse files

Merge "Handle 5G meteredness in telephony framework"

am: df94694c

Change-Id: I4904f7dcd9db571df0c46770054ab4641f776940
parents 2fba6233 df94694c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -22,5 +22,5 @@ oneway interface INetworkPolicyListener {
    void onMeteredIfacesChanged(in String[] meteredIfaces);
    void onRestrictBackgroundChanged(boolean restrictBackground);
    void onUidPoliciesChanged(int uid, int uidPolicies);
    void onSubscriptionOverride(int subId, int overrideMask, int overrideValue);
    void onSubscriptionOverride(int subId, int overrideMask, int overrideValue, long networkTypeMask);
}
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ interface INetworkPolicyManager {
    SubscriptionPlan[] getSubscriptionPlans(int subId, String callingPackage);
    void setSubscriptionPlans(int subId, in SubscriptionPlan[] plans, String callingPackage);
    String getSubscriptionPlansOwner(int subId);
    void setSubscriptionOverride(int subId, int overrideMask, int overrideValue, long timeoutMillis, String callingPackage);
    void setSubscriptionOverride(int subId, int overrideMask, int overrideValue, long networkTypeMask, long timeoutMillis, String callingPackage);

    void factoryReset(String subscriber);

+2 −1
Original line number Diff line number Diff line
@@ -380,6 +380,7 @@ public class NetworkPolicyManager {
        @Override public void onMeteredIfacesChanged(String[] meteredIfaces) { }
        @Override public void onRestrictBackgroundChanged(boolean restrictBackground) { }
        @Override public void onUidPoliciesChanged(int uid, int uidPolicies) { }
        @Override public void onSubscriptionOverride(int subId, int overrideMask, int overrideValue) { }
        @Override public void onSubscriptionOverride(int subId, int overrideMask, int overrideValue,
                long networkTypeMask) { }
    }
}
+21 −11
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.os.RoSystemProperties;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.DumpUtils;
@@ -3309,7 +3310,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

    @Override
    public void setSubscriptionOverride(int subId, int overrideMask, int overrideValue,
            long timeoutMillis, String callingPackage) {
            long networkTypeMask, long timeoutMillis, String callingPackage) {
        enforceSubscriptionPlanAccess(subId, Binder.getCallingUid(), callingPackage);

        // We can only override when carrier told us about plans
@@ -3327,11 +3328,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        final boolean overrideEnabled = Settings.Global.getInt(mContext.getContentResolver(),
                NETPOLICY_OVERRIDE_ENABLED, 1) != 0;
        if (overrideEnabled || overrideValue == 0) {
            mHandler.sendMessage(mHandler.obtainMessage(MSG_SUBSCRIPTION_OVERRIDE,
                    overrideMask, overrideValue, subId));
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = subId;
            args.arg2 = overrideMask;
            args.arg3 = overrideValue;
            args.arg4 = networkTypeMask;
            mHandler.sendMessage(mHandler.obtainMessage(MSG_SUBSCRIPTION_OVERRIDE, args));
            if (timeoutMillis > 0) {
                mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SUBSCRIPTION_OVERRIDE,
                        overrideMask, 0, subId), timeoutMillis);
                args.arg3 = 0;
                mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SUBSCRIPTION_OVERRIDE, args),
                        timeoutMillis);
            }
        }
    }
@@ -4467,10 +4473,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    }

    private void dispatchSubscriptionOverride(INetworkPolicyListener listener, int subId,
            int overrideMask, int overrideValue) {
            int overrideMask, int overrideValue, long networkTypeMask) {
        if (listener != null) {
            try {
                listener.onSubscriptionOverride(subId, overrideMask, overrideValue);
                listener.onSubscriptionOverride(subId, overrideMask, overrideValue,
                        networkTypeMask);
            } catch (RemoteException ignored) {
            }
        }
@@ -4571,13 +4578,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    return true;
                }
                case MSG_SUBSCRIPTION_OVERRIDE: {
                    final int overrideMask = msg.arg1;
                    final int overrideValue = msg.arg2;
                    final int subId = (int) msg.obj;
                    final SomeArgs args = (SomeArgs) msg.obj;
                    final int subId = (int) args.arg1;
                    final int overrideMask = (int) args.arg2;
                    final int overrideValue = (int) args.arg3;
                    final long networkTypeMask = (long) args.arg4;
                    final int length = mListeners.beginBroadcast();
                    for (int i = 0; i < length; i++) {
                        final INetworkPolicyListener listener = mListeners.getBroadcastItem(i);
                        dispatchSubscriptionOverride(listener, subId, overrideMask, overrideValue);
                        dispatchSubscriptionOverride(listener, subId, overrideMask, overrideValue,
                                networkTypeMask);
                    }
                    mListeners.finishBroadcast();
                    return true;
+9 −0
Original line number Diff line number Diff line
@@ -3017,6 +3017,13 @@ public class CarrierConfigManager {
    public static final String KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL =
            "ping_test_before_data_switch_bool";

    /**
     * Controls time in milli seconds until DcTracker reevaluates 5G connection state.
     * @hide
     */
    public static final String KEY_5G_WATCHDOG_TIME_MS_LONG =
            "5g_watchdog_time_long";

    /**
     * Indicates zero or more emergency number prefix(es), because some carrier requires
     * if users dial an emergency number address with a specific prefix, the combination of the
@@ -3841,6 +3848,8 @@ public class CarrierConfigManager {
        /* Default value is 3 seconds. */
        sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG, 3000);
        sDefaults.putBoolean(KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL, true);
        /* Default value is 1 hour. */
        sDefaults.putLong(KEY_5G_WATCHDOG_TIME_MS_LONG, 3600000);
        sDefaults.putAll(Gps.getDefaults());
        sDefaults.putIntArray(KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY,
                new int[] {
Loading