[Settings] Apply WifiCallingQueryImsState
Apply design of WifiCallingQueryImsState to source code which accessing WifiCalling. Bug: 140542283 Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSettingsForSubTest Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingPreferenceControllerTest Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSettingsTest Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSliceHelperTest Change-Id: I0db966742d63cfe9a1ef4e1b06f6b5c81f681927
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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() {
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user