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

Commit 9d20d989 authored by Ta-wei Yen's avatar Ta-wei Yen
Browse files

Add device and carrier flags for video calling fallback

These flags let the system dialer/contacts/SMS app determine if
integration with video calling apps are allowed if the carrier video
calling is not available.

EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK in PhoneAccount.getExtras()
should be checked first. This flag is disabled by default and OEMs
will need to enable it.

If the device supports the fallback, then
CarrierConfigManager.KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL should be
checked so individual carriers can ban the feature. This flag is
allowed by default.

Change-Id: Id46f684254402acb9142f87684ddff2d830f1701
Fixes: 62264468
Test: manual
parent 98485fc8
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -90,6 +90,18 @@ public final class PhoneAccount implements Parcelable {
    public static final String EXTRA_SUPPORTS_HANDOVER_TO =
            "android.telecom.extra.SUPPORTS_HANDOVER_TO";

    /**
     * Boolean {@link PhoneAccount} extras key (see {@link PhoneAccount#getExtras()}) which
     * indicates whether this {@link PhoneAccount} supports using a fallback if video calling is
     * not available. This extra is for device level support, {@link
     * android.telephony.CarrierConfigManager#KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL} should also
     * be checked to ensure it is not disabled by individual carrier.
     *
     * @hide
     */
    public static final String EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK =
            "android.telecom.extra.SUPPORTS_VIDEO_CALLING_FALLBACK";

    /**
     * Boolean {@link PhoneAccount} extras key (see {@link PhoneAccount#getExtras()}) which
     * indicates whether this {@link PhoneAccount} is capable of supporting a request to handover a
+10 −0
Original line number Diff line number Diff line
@@ -1219,6 +1219,15 @@ public class CarrierConfigManager {
     */
    public static final String KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO = "video_calls_can_be_hd_audio";

    /**
     * Whether system apps are allowed to use fallback if carrier video call is not available.
     * Defaults to {@code true}.
     *
     * @hide
     */
    public static final String KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL =
            "allow_video_calling_fallback_bool";

    /**
     * Defines operator-specific {@link com.android.ims.ImsReasonInfo} mappings.
     *
@@ -1665,6 +1674,7 @@ public class CarrierConfigManager {
        sDefaults.putBoolean(KEY_ALLOW_ADD_CALL_DURING_VIDEO_CALL_BOOL, true);
        sDefaults.putBoolean(KEY_WIFI_CALLS_CAN_BE_HD_AUDIO, true);
        sDefaults.putBoolean(KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO, true);
        sDefaults.putBoolean(KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL, true);

        sDefaults.putStringArray(KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY, null);
        sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL, false);