IMS: Check ConferDialer config according to subscriptions
Check whether conference dialer is enabled from resource
according to the current active subscriptions.
Change-Id: I5e44b1ea74f327e88fe4f66a129d2b34a4b2bff8
CRs-Fixed: 1020028
diff --git a/src/com/android/dialer/util/IntentUtil.java b/src/com/android/dialer/util/IntentUtil.java
index cff261c..8d47075 100644
--- a/src/com/android/dialer/util/IntentUtil.java
+++ b/src/com/android/dialer/util/IntentUtil.java
@@ -17,6 +17,7 @@
package com.android.dialer.util;
import android.content.Intent;
+import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
@@ -25,9 +26,12 @@
import android.telecom.VideoProfile;
import android.content.Context;
import com.android.dialer.R;
+import android.telephony.SubscriptionManager;
+import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import com.android.contacts.common.CallUtil;
+import java.util.List;
/**
* Utilities for creation of intents in Dialer, such as {@link Intent#ACTION_CALL}.
@@ -162,12 +166,26 @@
* if true, conference dialer is enabled.
*/
public static boolean isConferDialerEnabled(Context context) {
- if (context.getResources().getBoolean(R.bool.config_enable_conference_dialer)) {
- TelephonyManager telephonyMgr = (TelephonyManager)
- context.getSystemService(Context.TELEPHONY_SERVICE);
- return telephonyMgr.isImsRegistered();
+ boolean isEnabled = false;
+ List<SubscriptionInfo> subInfos = SubscriptionManager.from(context)
+ .getActiveSubscriptionInfoList();
+ if (subInfos != null) {
+ for (SubscriptionInfo subInfo : subInfos ) {
+ if (SubscriptionManager.isValidSubscriptionId(subInfo.getSubscriptionId())) {
+ Resources subRes = SubscriptionManager.getResourcesForSubId(context,
+ subInfo.getSubscriptionId());
+ if (subRes.getBoolean(R.bool.config_enable_conference_dialer)) {
+ TelephonyManager telephonyMgr = (TelephonyManager) context.
+ getSystemService(Context.TELEPHONY_SERVICE);
+ isEnabled = telephonyMgr.isImsRegistered();
+ if (isEnabled) {
+ break;
+ }
+ }
+ }
+ }
}
- return false;
+ return isEnabled;
}
/**