Merge "Update search for mobile network"

This commit is contained in:
Lei Yu
2019-02-13 22:43:22 +00:00
committed by Android (Google) Code Review
9 changed files with 46 additions and 34 deletions

View File

@@ -54,6 +54,8 @@ public class EnabledNetworkModePreferenceController extends
public int getAvailabilityStatus(int subId) {
boolean visible;
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
final TelephonyManager telephonyManager = TelephonyManager
.from(mContext).createForSubscriptionId(subId);
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
visible = false;
} else if (carrierConfig == null) {
@@ -63,8 +65,8 @@ public class EnabledNetworkModePreferenceController extends
visible = false;
} else if (carrierConfig.getBoolean(
CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
&& !mTelephonyManager.getServiceState().getRoaming()
&& mTelephonyManager.getServiceState().getDataRegState()
&& !telephonyManager.getServiceState().getRoaming()
&& telephonyManager.getServiceState().getDataRegState()
== ServiceState.STATE_IN_SERVICE) {
visible = false;
} else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {

View File

@@ -30,7 +30,6 @@ import androidx.preference.Preference;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
/**
* Preference controller for "Preferred network mode"
@@ -51,6 +50,8 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe
@Override
public int getAvailabilityStatus(int subId) {
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
final TelephonyManager telephonyManager = TelephonyManager
.from(mContext).createForSubscriptionId(subId);
boolean visible;
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
visible = false;
@@ -61,8 +62,8 @@ public class PreferredNetworkModePreferenceController extends TelephonyBasePrefe
visible = false;
} else if (carrierConfig.getBoolean(
CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
&& !mTelephonyManager.getServiceState().getRoaming()
&& mTelephonyManager.getServiceState().getDataRegState()
&& !telephonyManager.getServiceState().getRoaming()
&& telephonyManager.getServiceState().getDataRegState()
== ServiceState.STATE_IN_SERVICE) {
visible = false;
} else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {

View File

@@ -34,7 +34,6 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.ims.ImsManager;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -49,7 +48,6 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
private Preference mPreference;
private TelephonyManager mTelephonyManager;
private CarrierConfigManager mCarrierConfigManager;
private PersistableBundle mCarrierConfig;
@VisibleForTesting
ImsManager mImsManager;
private PhoneCallStateListener mPhoneStateListener;
@@ -67,7 +65,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
&& MobileNetworkUtils.isWifiCallingEnabled(mContext,
SubscriptionManager.getPhoneId(subId))
&& isVideoCallEnabled()
&& isVideoCallEnabled(subId)
? AVAILABLE
: CONDITIONALLY_UNAVAILABLE;
}
@@ -94,7 +92,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
public void updateState(Preference preference) {
super.updateState(preference);
final SwitchPreference switchPreference = (SwitchPreference) preference;
final boolean videoCallEnabled = isVideoCallEnabled();
final boolean videoCallEnabled = isVideoCallEnabled(mSubId, mImsManager);
switchPreference.setVisible(videoCallEnabled);
if (videoCallEnabled) {
final boolean is4gLteEnabled = mImsManager.isEnhanced4gLteModeSettingEnabledByUser()
@@ -119,7 +117,6 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
public VideoCallingPreferenceController init(int subId) {
mSubId = subId;
mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
}
@@ -127,15 +124,25 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
return this;
}
private boolean isVideoCallEnabled(int subId) {
final ImsManager imsManager = subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
? ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(subId))
: null;
return isVideoCallEnabled(subId, imsManager);
}
@VisibleForTesting
boolean isVideoCallEnabled() {
return mCarrierConfig != null && mImsManager != null
&& mImsManager.isVtEnabledByPlatform()
&& mImsManager.isVtProvisionedOnDevice()
&& MobileNetworkUtils.isImsServiceStateReady(mImsManager)
&& (mCarrierConfig.getBoolean(
boolean isVideoCallEnabled(int subId, ImsManager imsManager) {
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
final TelephonyManager telephonyManager = TelephonyManager
.from(mContext).createForSubscriptionId(subId);
return carrierConfig != null && imsManager != null
&& imsManager.isVtEnabledByPlatform()
&& imsManager.isVtProvisionedOnDevice()
&& MobileNetworkUtils.isImsServiceStateReady(imsManager)
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
|| mTelephonyManager.isDataEnabled());
|| telephonyManager.isDataEnabled());
}
@Override

View File

@@ -67,7 +67,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
public int getAvailabilityStatus(int subId) {
return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
&& MobileNetworkUtils.isWifiCallingEnabled(mContext,
SubscriptionManager.getPhoneId(mSubId))
SubscriptionManager.getPhoneId(subId))
? AVAILABLE
: UNSUPPORTED_ON_DEVICE;
}

View File

@@ -29,8 +29,8 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -38,7 +38,7 @@ import com.android.settingslib.core.lifecycle.events.OnStop;
/**
* Preference controller related to CDMA category
*/
public abstract class CdmaBasePreferenceController extends BasePreferenceController
public abstract class CdmaBasePreferenceController extends TelephonyBasePreferenceController
implements LifecycleObserver, OnStart, OnStop {
protected Preference mPreference;
@@ -64,8 +64,8 @@ public abstract class CdmaBasePreferenceController extends BasePreferenceControl
}
@Override
public int getAvailabilityStatus() {
return MobileNetworkUtils.isCdmaOptions(mContext, mSubId)
public int getAvailabilityStatus(int subId) {
return MobileNetworkUtils.isCdmaOptions(mContext, subId)
? AVAILABLE
: CONDITIONALLY_UNAVAILABLE;
}

View File

@@ -44,8 +44,8 @@ public class CdmaSubscriptionPreferenceController extends CdmaBasePreferenceCont
}
@Override
public int getAvailabilityStatus() {
return MobileNetworkUtils.isCdmaOptions(mContext, mSubId) && deviceSupportsNvAndRuim()
public int getAvailabilityStatus(int subId) {
return MobileNetworkUtils.isCdmaOptions(mContext, subId) && deviceSupportsNvAndRuim()
? AVAILABLE
: CONDITIONALLY_UNAVAILABLE;
}

View File

@@ -29,9 +29,9 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyTogglePreferenceController;
import java.util.ArrayList;
import java.util.List;
@@ -39,7 +39,7 @@ import java.util.List;
/**
* Preference controller for "Auto Select Network"
*/
public class AutoSelectPreferenceController extends TogglePreferenceController {
public class AutoSelectPreferenceController extends TelephonyTogglePreferenceController {
private int mSubId;
private TelephonyManager mTelephonyManager;
@@ -54,8 +54,8 @@ public class AutoSelectPreferenceController extends TogglePreferenceController {
}
@Override
public int getAvailabilityStatus() {
return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext,mSubId)
public int getAvailabilityStatus(int subId) {
return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)
? AVAILABLE
: CONDITIONALLY_UNAVAILABLE;
}

View File

@@ -33,11 +33,13 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
/**
* Preference controller for "Open network select"
*/
public class OpenNetworkSelectPagePreferenceController extends BasePreferenceController implements
public class OpenNetworkSelectPagePreferenceController extends
TelephonyBasePreferenceController implements
AutoSelectPreferenceController.OnNetworkSelectModeListener {
private int mSubId;
@@ -51,8 +53,8 @@ public class OpenNetworkSelectPagePreferenceController extends BasePreferenceCon
}
@Override
public int getAvailabilityStatus() {
return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, mSubId)
public int getAvailabilityStatus(int subId) {
return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)
? AVAILABLE
: CONDITIONALLY_UNAVAILABLE;
}

View File

@@ -84,14 +84,14 @@ public class VideoCallingPreferenceControllerTest {
@Test
public void isVideoCallEnabled_allFlagsOn_returnTrue() {
assertThat(mController.isVideoCallEnabled()).isTrue();
assertThat(mController.isVideoCallEnabled(SUB_ID, mImsManager)).isTrue();
}
@Test
public void isVideoCallEnabled_disabledByPlatform_returnFalse() {
doReturn(false).when(mImsManager).isVtEnabledByPlatform();
assertThat(mController.isVideoCallEnabled()).isFalse();
assertThat(mController.isVideoCallEnabled(SUB_ID, mImsManager)).isFalse();
}
@Test
@@ -100,7 +100,7 @@ public class VideoCallingPreferenceControllerTest {
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, false);
doReturn(false).when(mTelephonyManager).isDataEnabled();
assertThat(mController.isVideoCallEnabled()).isFalse();
assertThat(mController.isVideoCallEnabled(SUB_ID, mImsManager)).isFalse();
}
@Test