[Settings] Hidden API remove - WFC mode settings
Change API from getWfcMode/setWfcMode into APIs within ImsMmTelManager. Bug: 140542283 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingPreferenceControllerTest make RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSettingsForSubTest make RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSliceHelperTest atest WifiCallingSettingUiTest Change-Id: I2ee01852cb4ee90fe9db256d3333f461cc070da5
This commit is contained in:
@@ -29,12 +29,12 @@ import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.ims.ImsMmTelManager;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.ims.ImsConfig;
|
||||
import com.android.ims.ImsManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
@@ -54,6 +54,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
|
||||
CarrierConfigManager mCarrierConfigManager;
|
||||
@VisibleForTesting
|
||||
ImsManager mImsManager;
|
||||
private ImsMmTelManager mImsMmTelManager;
|
||||
@VisibleForTesting
|
||||
PhoneAccountHandle mSimCallManager;
|
||||
private PhoneCallStateListener mPhoneStateListener;
|
||||
@@ -88,7 +89,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
Intent intent = mPreference.getIntent();
|
||||
final Intent intent = mPreference.getIntent();
|
||||
if (intent != null) {
|
||||
intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
|
||||
}
|
||||
@@ -98,14 +99,14 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (mSimCallManager != null) {
|
||||
Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
|
||||
final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
|
||||
mSimCallManager);
|
||||
if (intent == null) {
|
||||
// Do nothing in this case since preference is invisible
|
||||
return;
|
||||
}
|
||||
final PackageManager pm = mContext.getPackageManager();
|
||||
List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
|
||||
final List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
|
||||
preference.setTitle(resolutions.get(0).loadLabel(pm));
|
||||
preference.setSummary(null);
|
||||
preference.setIntent(intent);
|
||||
@@ -126,16 +127,18 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
|
||||
}
|
||||
}
|
||||
final boolean isRoaming = mTelephonyManager.isNetworkRoaming();
|
||||
int wfcMode = mImsManager.getWfcMode(isRoaming && !useWfcHomeModeForRoaming);
|
||||
final int wfcMode = (isRoaming && !useWfcHomeModeForRoaming)
|
||||
? mImsMmTelManager.getVoWiFiRoamingModeSetting() :
|
||||
mImsMmTelManager.getVoWiFiModeSetting();
|
||||
switch (wfcMode) {
|
||||
case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
|
||||
case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
|
||||
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
|
||||
break;
|
||||
case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
|
||||
case ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED:
|
||||
resId = com.android.internal.R.string
|
||||
.wfc_mode_cellular_preferred_summary;
|
||||
break;
|
||||
case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
|
||||
case ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED:
|
||||
resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
|
||||
break;
|
||||
default:
|
||||
@@ -150,14 +153,20 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
|
||||
|
||||
public WifiCallingPreferenceController init(int subId) {
|
||||
mSubId = subId;
|
||||
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
|
||||
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
|
||||
.createForSubscriptionId(mSubId);
|
||||
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
|
||||
mImsMmTelManager = getImsMmTelManager(mSubId);
|
||||
mSimCallManager = mContext.getSystemService(TelecomManager.class)
|
||||
.getSimCallManagerForSubscription(mSubId);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
protected ImsMmTelManager getImsMmTelManager(int subId) {
|
||||
return ImsMmTelManager.createForSubscriptionId(subId);
|
||||
}
|
||||
|
||||
private class PhoneCallStateListener extends PhoneStateListener {
|
||||
|
||||
public PhoneCallStateListener(Looper looper) {
|
||||
|
Reference in New Issue
Block a user