From 9d20d98919d1e941bb941875f59b646437d2874e Mon Sep 17 00:00:00 2001 From: Ta-wei Yen Date: Fri, 2 Jun 2017 11:07:07 -0700 Subject: [PATCH] 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 --- telecomm/java/android/telecom/PhoneAccount.java | 12 ++++++++++++ .../java/android/telephony/CarrierConfigManager.java | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index b5d9d3935c535..4390fae226e56 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -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 diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index f2d2253a8f38d..414780869a4df 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -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);