Merge "[Settings] Apply WifiCallingQueryImsState" into rvc-dev

This commit is contained in:
Bonian Chen
2020-03-31 16:09:27 +00:00
committed by Android (Google) Code Review
8 changed files with 89 additions and 111 deletions

View File

@@ -27,10 +27,6 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting;
import com.android.ims.ImsManager;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.MobileNetworkUtils;
/**
* Controller class for querying Wifi calling status
*/
@@ -66,12 +62,6 @@ public class WifiCallingQueryImsState extends ImsQueryController {
return (new ImsQueryWfcUserSetting(subId)).query();
}
@VisibleForTesting
ImsManager getImsManager(int subId) {
return ImsManager.getInstance(mContext,
SubscriptionUtil.getPhoneId(mContext, subId));
}
/**
* Check whether Wifi Calling is a supported feature on this subscription
*
@@ -107,8 +97,15 @@ public class WifiCallingQueryImsState extends ImsQueryController {
if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
return false;
}
return isWifiCallingProvisioned()
&& MobileNetworkUtils.isImsServiceStateReady(getImsManager(mSubId));
if (!isWifiCallingProvisioned()) {
return false;
}
try {
return isServiceStateReady(mSubId);
} catch (InterruptedException | IllegalArgumentException | ImsException exception) {
Log.w(LOG_TAG, "fail to get WFC service status. subId=" + mSubId, exception);
}
return false;
}
/**

View File

@@ -54,9 +54,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.widget.SwitchBar;
/**
@@ -100,7 +98,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
private boolean mUseWfcHomeModeForRoaming = false;
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private com.android.ims.ImsManager mImsManager;
private ImsMmTelManager mImsMmTelManager;
private ProvisioningManager mProvisioningManager;
private TelephonyManager mTelephonyManager;
@@ -270,12 +267,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
return ProvisioningManager.createForSubscriptionId(mSubId);
}
@VisibleForTesting
com.android.ims.ImsManager getImsManager() {
return com.android.ims.ImsManager.getInstance(getActivity(),
SubscriptionUtil.getPhoneId(getActivity(), mSubId));
}
@VisibleForTesting
ImsMmTelManager getImsMmTelManager() {
if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
@@ -299,12 +290,9 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
FRAGMENT_BUNDLE_SUBID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
}
mImsManager = getImsManager();
mProvisioningManager = getImsProvisioningManager();
mImsMmTelManager = getImsMmTelManager();
mTelephonyManager = getActivity().getSystemService(TelephonyManager.class);
mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
mButtonWfcMode.setOnPreferenceChangeListener(this);
@@ -341,7 +329,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
@VisibleForTesting
boolean isWfcProvisionedOnDevice() {
return MobileNetworkUtils.isWfcProvisionedOnDevice(mSubId);
return queryImsState(mSubId).isWifiCallingProvisioned();
}
private void updateBody() {

View File

@@ -19,10 +19,8 @@ package com.android.settings.wifi.calling;
import android.content.Context;
import android.telephony.SubscriptionManager;
import com.android.ims.ImsManager;
import com.android.settings.SettingsActivity;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.network.telephony.MobileNetworkUtils;
public class WifiCallingSuggestionActivity extends SettingsActivity {
@@ -30,11 +28,7 @@ public class WifiCallingSuggestionActivity extends SettingsActivity {
final WifiCallingQueryImsState queryState =
new WifiCallingQueryImsState(context,
SubscriptionManager.getDefaultVoiceSubscriptionId());
if (!ImsManager.isWfcEnabledByPlatform(context) ||
!MobileNetworkUtils.isWfcProvisionedOnDevice(
SubscriptionManager.getDefaultVoiceSubscriptionId())) {
return true;
}
return queryState.isEnabledByUser() && queryState.isAllowUserControl();
return (!queryState.isWifiCallingProvisioned())
|| (queryState.isEnabledByUser() && queryState.isAllowUserControl());
}
}