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

Commit 77f466d8 authored by fionaxu's avatar fionaxu
Browse files

new reset carrier signals/actions

- new carrier signal intended for notifying carrier apps that all
carrier actions has been reset due to sim load/absent.
- default carrier apps clean up UI on reset actions.

Bug: 34626476
Test: Manual test on TMO and ZIP SIM
Change-Id: I232dd19294e99fb0a7d53ca1b5c049e6e3e2e050
Merged-in: I232dd19294e99fb0a7d53ca1b5c049e6e3e2e050
parent 4898b704
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
        <receiver android:name="com.android.carrierdefaultapp.CarrierDefaultBroadcastReceiver">
            <intent-filter>
                <action android:name="com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED" />
                <action android:name="com.android.internal.telephony.CARRIER_SIGNAL_RESET" />
            </intent-filter>
        </receiver>
        <service android:name="com.android.carrierdefaultapp.ProvisionObserver"
+4 −0
Original line number Diff line number Diff line
@@ -91,6 +91,10 @@ public class CustomConfigLoader {
                    arg1 = intent.getStringExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY);
                    arg2 = intent.getStringExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY);
                    break;
                case TelephonyIntents.ACTION_CARRIER_SIGNAL_RESET:
                    configs = b.getStringArray(CarrierConfigManager
                            .KEY_CARRIER_DEFAULT_ACTIONS_ON_RESET);
                    break;
                default:
                    Rlog.e(TAG, "load carrier config failure with un-configured key: " +
                            intent.getAction());
+19 −1
Original line number Diff line number Diff line
@@ -983,6 +983,20 @@ public class CarrierConfigManager {
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
            "carrier_default_actions_on_dcfailure_string_array";

    /**
     * Defines carrier-specific actions which act upon
     * com.android.internal.telephony.CARRIER_SIGNAL_RESET, used for customization of the
     * default carrier app
     * Format: "CARRIER_ACTION_IDX, ..."
     * Where {@code CARRIER_ACTION_IDX} is an integer defined in
     * {@link com.android.carrierdefaultapp.CarrierActionUtils CarrierActionUtils}
     * Example:
     * {@link com.android.carrierdefaultapp.CarrierActionUtils
     * #CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS clear all notifications on reset}
     * @hide
     */
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_RESET =
            "carrier_default_actions_on_reset_string_array";
    /**
     * Defines a list of acceptable redirection url for default carrier app
     * @hides
@@ -1504,7 +1518,8 @@ public class CarrierConfigManager {
        sDefaults.putStringArray(KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY,
                new String[]{
                        "com.android.carrierdefaultapp/.CarrierDefaultBroadcastReceiver:" +
                                "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED"
                                "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED," +
                                "com.android.internal.telephony.CARRIER_SIGNAL_RESET"
                });
        sDefaults.putStringArray(KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY, null);

@@ -1515,6 +1530,9 @@ public class CarrierConfigManager {
                        //4: CARRIER_ACTION_DISABLE_METERED_APNS
                        //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                });
        sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_RESET, new String[]{
                "6" //6: CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS
                });
        sDefaults.putStringArray(KEY_CARRIER_DEFAULT_REDIRECTION_URL_STRING_ARRAY, null);

        // Rat families: {GPRS, EDGE}, {EVDO, EVDO_A, EVDO_B}, {UMTS, HSPA, HSDPA, HSUPA, HSPAP},
+15 −3
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ public class TelephonyIntents {
     * <ul>
     *   <li>apnType</li><dd>A string with the apn type.</dd>
     *   <li>redirectionUrl</li><dd>redirection url string</dd>
     *   <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
     *   <li>subId</li><dd>Sub Id which associated the data connection failure.</dd>
     * </ul>
     * <p class="note">This is a protected intent that can only be sent by the system.</p>
     */
@@ -415,7 +415,7 @@ public class TelephonyIntents {
     * <ul>
     *   <li>apnType</li><dd>A string with the apn type.</dd>
     *   <li>errorCode</li><dd>A integer with dataFailCause.</dd>
     *   <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
     *   <li>subId</li><dd>Sub Id which associated the data connection failure.</dd>
     * </ul>
     * <p class="note">This is a protected intent that can only be sent by the system. </p>
     */
@@ -432,13 +432,25 @@ public class TelephonyIntents {
     *                        IPV4V6)</dd>
     *   <li>pcoId</li><dd>An integer indicating the pco id for the data.</dd>
     *   <li>pcoValue</li><dd>A byte array of pco data read from modem.</dd>
     *   <li>subId</dt><li>Sub Id which associated the data connection.</dd>
     *   <li>subId</li><dd>Sub Id which associated the data connection.</dd>
     * </ul>
     * <p class="note">This is a protected intent that can only be sent by the system. </p>
     */
    public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE =
            "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE";

    /**
     * <p>Broadcast Action: when framework reset all carrier actions on sim load or absent.
     * intended for carrier apps clean up (clear UI e.g.) and only sent to the specified carrier app
     * The intent will have the following extra values:</p>
     * <ul>
     *   <li>subId</li><dd>Sub Id which associated the data connection failure.</dd>
     * </ul>
     * <p class="note">This is a protected intent that can only be sent by the system.</p>
     */
    public static final String ACTION_CARRIER_SIGNAL_RESET =
            "com.android.internal.telephony.CARRIER_SIGNAL_RESET";

    // CARRIER_SIGNAL_ACTION extra keys
    public static final String EXTRA_REDIRECTION_URL_KEY = "redirectionUrl";
    public static final String EXTRA_ERROR_CODE_KEY = "errorCode";