Loading src/com/android/settings/network/telephony/MobileNetworkUtils.java +12 −7 Original line number Diff line number Diff line Loading @@ -80,12 +80,16 @@ public class MobileNetworkUtils { } /** * Returns true if Wifi calling is enabled for at least one phone. * Returns true if Wifi calling is enabled for at least one subscription. */ public static boolean isWifiCallingEnabled(Context context) { int phoneCount = context.getSystemService(TelephonyManager.class).getPhoneCount(); for (int i = 0; i < phoneCount; i++) { if (isWifiCallingEnabled(context, i)) { SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class); if (subManager == null) { Log.e(TAG, "isWifiCallingEnabled: couldn't get system service."); return false; } for (int subId : subManager.getActiveSubscriptionIdList()) { if (isWifiCallingEnabled(context, subId)) { return true; } } Loading @@ -93,11 +97,12 @@ public class MobileNetworkUtils { } /** * Returns true if Wifi calling is enabled for the specific phone with id {@code phoneId}. * Returns true if Wifi calling is enabled for the specific subscription with id {@code subId}. */ public static boolean isWifiCallingEnabled(Context context, int phoneId) { public static boolean isWifiCallingEnabled(Context context, int subId) { final PhoneAccountHandle simCallManager = TelecomManager.from(context).getSimCallManager(); TelecomManager.from(context).getSimCallManagerForSubscription(subId); final int phoneId = SubscriptionManager.getSlotIndex(subId); boolean isWifiCallingEnabled; if (simCallManager != null) { Loading src/com/android/settings/network/telephony/VideoCallingPreferenceController.java +1 −2 Original line number Diff line number Diff line Loading @@ -63,8 +63,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC @Override public int getAvailabilityStatus(int subId) { return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID && MobileNetworkUtils.isWifiCallingEnabled(mContext, SubscriptionManager.getPhoneId(subId)) && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId) && isVideoCallEnabled(subId) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; Loading src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +3 −3 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont super(context, key); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class); mSimCallManager = context.getSystemService(TelecomManager.class).getSimCallManager(); mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper()); mEditableWfcRoamingMode = true; mUseWfcHomeModeForRoaming = false; Loading @@ -77,8 +76,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont @Override public int getAvailabilityStatus(int subId) { return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID && MobileNetworkUtils.isWifiCallingEnabled(mContext, SubscriptionManager.getPhoneId(subId)) && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } Loading Loading @@ -155,6 +153,8 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont mSubId = subId; mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId); mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId)); mSimCallManager = mContext.getSystemService(TelecomManager.class) .getSimCallManagerForSubscription(mSubId); if (mCarrierConfigManager != null) { final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId); if (carrierConfig != null) { Loading Loading
src/com/android/settings/network/telephony/MobileNetworkUtils.java +12 −7 Original line number Diff line number Diff line Loading @@ -80,12 +80,16 @@ public class MobileNetworkUtils { } /** * Returns true if Wifi calling is enabled for at least one phone. * Returns true if Wifi calling is enabled for at least one subscription. */ public static boolean isWifiCallingEnabled(Context context) { int phoneCount = context.getSystemService(TelephonyManager.class).getPhoneCount(); for (int i = 0; i < phoneCount; i++) { if (isWifiCallingEnabled(context, i)) { SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class); if (subManager == null) { Log.e(TAG, "isWifiCallingEnabled: couldn't get system service."); return false; } for (int subId : subManager.getActiveSubscriptionIdList()) { if (isWifiCallingEnabled(context, subId)) { return true; } } Loading @@ -93,11 +97,12 @@ public class MobileNetworkUtils { } /** * Returns true if Wifi calling is enabled for the specific phone with id {@code phoneId}. * Returns true if Wifi calling is enabled for the specific subscription with id {@code subId}. */ public static boolean isWifiCallingEnabled(Context context, int phoneId) { public static boolean isWifiCallingEnabled(Context context, int subId) { final PhoneAccountHandle simCallManager = TelecomManager.from(context).getSimCallManager(); TelecomManager.from(context).getSimCallManagerForSubscription(subId); final int phoneId = SubscriptionManager.getSlotIndex(subId); boolean isWifiCallingEnabled; if (simCallManager != null) { Loading
src/com/android/settings/network/telephony/VideoCallingPreferenceController.java +1 −2 Original line number Diff line number Diff line Loading @@ -63,8 +63,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC @Override public int getAvailabilityStatus(int subId) { return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID && MobileNetworkUtils.isWifiCallingEnabled(mContext, SubscriptionManager.getPhoneId(subId)) && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId) && isVideoCallEnabled(subId) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; Loading
src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +3 −3 Original line number Diff line number Diff line Loading @@ -68,7 +68,6 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont super(context, key); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class); mSimCallManager = context.getSystemService(TelecomManager.class).getSimCallManager(); mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper()); mEditableWfcRoamingMode = true; mUseWfcHomeModeForRoaming = false; Loading @@ -77,8 +76,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont @Override public int getAvailabilityStatus(int subId) { return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID && MobileNetworkUtils.isWifiCallingEnabled(mContext, SubscriptionManager.getPhoneId(subId)) && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } Loading Loading @@ -155,6 +153,8 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont mSubId = subId; mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId); mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId)); mSimCallManager = mContext.getSystemService(TelecomManager.class) .getSimCallManagerForSubscription(mSubId); if (mCarrierConfigManager != null) { final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId); if (carrierConfig != null) { Loading