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

Commit 1cc2f202 authored by Jack Yu's avatar Jack Yu Committed by Android (Google) Code Review
Browse files

Merge "Added the Carrier Config for DataStallRecoveryManager"

parents fe294d46 a7846ec9
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
@@ -4180,6 +4180,56 @@ public class CarrierConfigManager {
    public static final String KEY_GBA_UA_TLS_CIPHER_SUITE_INT =
            "gba_ua_tls_cipher_suite_int";

    /**
     * The data stall recovery timers array in milliseconds, each element is the delay before
     * performining next recovery action.
     *
     * The default value of timers array are: [180000ms, 180000ms, 180000ms] (3 minutes)
     * Array[0]: It's the timer between RECOVERY_ACTION GET_DATA_CALL_LIST and CLEANUP, if data
     * stall symptom still occurred, it will perform next recovery action after 180000ms.
     * Array[1]: It's the timer between RECOVERY_ACTION CLEANUP and RADIO_RESTART, if data stall
     * symptom still occurred, it will perform next recovery action after 180000ms.
     * Array[2]: It's the timer between RECOVERY_ACTION RADIO_RESTART and RESET_MODEM, if data stall
     * symptom still occurred, it will perform next recovery action after 180000ms.
     *
     * See the {@code RECOVERY_ACTION_*} constants in
     * {@link com.android.internal.telephony.data.DataStallRecoveryManager}
     * @hide
     */
    public static final String KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY =
            "data_stall_recovery_timers_long_array";

    /**
     * The data stall recovery action boolean array, we use this array to determine if the
     * data stall recovery action needs to be skipped.
     *
     * For example, if the carrier use the same APN for both of IA and default type,
     * the data call will not disconnect in modem side (so the RECOVERY_ACTION_CLEANUP
     * did not effect). In this case, we can config the boolean variable of action
     * RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the recovery
     * action procedure.
     *
     * The default value of boolean array are: [false, false, false, false]
     * Array[0]: When performing the recovery action, we can use this boolean value to determine
     * if we need to perform RECOVERY_ACTION_GET_DATA_CALL_LIST.
     * Array[1]: If data stall symptom still occurred, we can use this boolean value to determine
     * if we need to perform RECOVERY_ACTION_CLEANUP. For example, if the carrier use the same APN
     * for both of IA and default type, the data call will not disconnect in modem side
     * (so the RECOVERY_ACTION_CLEANUP did not effect). In this case, we can config the boolean
     * variable of action RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the
     * recovery action procedure.
     * Array[2]: If data stall symptom still occurred, we can use this boolean value to determine
     * if we need to perform RECOVERY_ACTION_RADIO_RESTART.
     * Array[3]: If data stall symptom still occurred, we can use this boolean value to determine
     * if we need to perform RECOVERY_ACTION_MODEM_RESET.
     *
     * See the {@code RECOVERY_ACTION_*} constants in
     * {@link com.android.internal.telephony.data.DataStallRecoveryManager}
     * @hide
     */
    public static final String KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY =
            "data_stall_recovery_should_skip_bool_array";

    /**
     * Configs used by ImsServiceEntitlement.
     */
@@ -6172,6 +6222,11 @@ public class CarrierConfigManager {
                        + "target=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN, type=allowed"});
        sDefaults.putInt(KEY_CELLULAR_USAGE_SETTING_INT,
                SubscriptionManager.USAGE_SETTING_UNKNOWN);
        // Default data stall recovery configurations.
        sDefaults.putLongArray(KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY,
                new long[] {180000, 180000, 180000});
        sDefaults.putBooleanArray(KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY,
                new boolean[] {false, false, false, false});
    }

    /**