Merge "Update search for mobile network"
This commit is contained in:
@@ -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)) {
|
||||
|
@@ -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)) {
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user