Fix ViLTE is not available when WiFi Calling is disabled

Bug: 141831293
Test: 1. Set carrier config carrier_wfc_ims_available_bool to false,
then verify Wi-Fi calling option is not shown.
      2. Set carrier config carrier_vt_available_bool to false, then
      verify video calling option is not shown.
      3. Set both carrier_wfc_ims_available_bool and
      carrier_vt_available_bool to false, then verify calling category
      is not shown.

Change-Id: Ibec13fbeb5acf1d62342286687b2ba969beb4e14
Merged-In: Ibec13fbeb5acf1d62342286687b2ba969beb4e14
This commit is contained in:
Josh Hou
2019-10-22 16:16:35 +08:00
parent 001a2e774d
commit e2cdd74174
7 changed files with 56 additions and 21 deletions

View File

@@ -49,9 +49,6 @@ import java.util.List;
public class WifiCallingPreferenceController extends TelephonyBasePreferenceController implements
LifecycleObserver, OnStart, OnStop {
@VisibleForTesting
static final String KEY_PREFERENCE_CATEGORY = "calling_category";
private TelephonyManager mTelephonyManager;
@VisibleForTesting
CarrierConfigManager mCarrierConfigManager;
@@ -95,13 +92,6 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
if (intent != null) {
intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
}
if (!isAvailable()) {
// Set category as invisible
final Preference preferenceCateogry = screen.findPreference(KEY_PREFERENCE_CATEGORY);
if (preferenceCateogry != null) {
preferenceCateogry.setVisible(false);
}
}
}
@Override
@@ -158,12 +148,14 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
mTelephonyManager.getCallState(mSubId) == TelephonyManager.CALL_STATE_IDLE);
}
public void init(int subId) {
public WifiCallingPreferenceController init(int subId) {
mSubId = subId;
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
mSimCallManager = mContext.getSystemService(TelecomManager.class)
.getSimCallManagerForSubscription(mSubId);
return this;
}
private class PhoneCallStateListener extends PhoneStateListener {