Loading src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java +31 −15 Original line number Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.settings.network.telephony.cdma; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_UNKNOWN; import android.content.Context; import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.Log; import androidx.preference.ListPreference; import androidx.preference.Preference; Loading @@ -33,6 +35,7 @@ import com.android.settings.network.telephony.MobileNetworkUtils; */ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceController implements ListPreference.OnPreferenceChangeListener { private static final String TAG = "CdmaSystemSelectPreferenceController"; public CdmaSystemSelectPreferenceController(Context context, String key) { super(context, key); Loading @@ -42,8 +45,16 @@ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceCont public void updateState(Preference preference) { super.updateState(preference); final ListPreference listPreference = (ListPreference) preference; listPreference.setVisible(getAvailabilityStatus() == AVAILABLE); final int mode = mTelephonyManager.getCdmaRoamingMode(); boolean isVisible = (getAvailabilityStatus() == AVAILABLE); listPreference.setVisible(isVisible); if (!isVisible) { return; } boolean hasTelephonyMgr = mTelephonyManager != null; try { final int mode = hasTelephonyMgr ? mTelephonyManager.getCdmaRoamingMode() : TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT; if (mode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) { if (mode == TelephonyManager.CDMA_ROAMING_MODE_HOME || mode == TelephonyManager.CDMA_ROAMING_MODE_ANY) { Loading @@ -53,12 +64,17 @@ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceCont } } final int settingsNetworkMode = MobileNetworkUtils.getNetworkTypeFromRaf( final int settingsNetworkMode = hasTelephonyMgr ? MobileNetworkUtils.getNetworkTypeFromRaf( (int) mTelephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)) : NETWORK_MODE_UNKNOWN; final boolean enableList = settingsNetworkMode != NETWORK_MODE_LTE_GSM_WCDMA && settingsNetworkMode != NETWORK_MODE_NR_LTE_GSM_WCDMA; listPreference.setEnabled(enableList); } catch (Exception exception) { Log.e(TAG, "Fail to access framework API", exception); } } @Override Loading Loading
src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java +31 −15 Original line number Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.settings.network.telephony.cdma; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_UNKNOWN; import android.content.Context; import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.Log; import androidx.preference.ListPreference; import androidx.preference.Preference; Loading @@ -33,6 +35,7 @@ import com.android.settings.network.telephony.MobileNetworkUtils; */ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceController implements ListPreference.OnPreferenceChangeListener { private static final String TAG = "CdmaSystemSelectPreferenceController"; public CdmaSystemSelectPreferenceController(Context context, String key) { super(context, key); Loading @@ -42,8 +45,16 @@ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceCont public void updateState(Preference preference) { super.updateState(preference); final ListPreference listPreference = (ListPreference) preference; listPreference.setVisible(getAvailabilityStatus() == AVAILABLE); final int mode = mTelephonyManager.getCdmaRoamingMode(); boolean isVisible = (getAvailabilityStatus() == AVAILABLE); listPreference.setVisible(isVisible); if (!isVisible) { return; } boolean hasTelephonyMgr = mTelephonyManager != null; try { final int mode = hasTelephonyMgr ? mTelephonyManager.getCdmaRoamingMode() : TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT; if (mode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) { if (mode == TelephonyManager.CDMA_ROAMING_MODE_HOME || mode == TelephonyManager.CDMA_ROAMING_MODE_ANY) { Loading @@ -53,12 +64,17 @@ public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceCont } } final int settingsNetworkMode = MobileNetworkUtils.getNetworkTypeFromRaf( final int settingsNetworkMode = hasTelephonyMgr ? MobileNetworkUtils.getNetworkTypeFromRaf( (int) mTelephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)) : NETWORK_MODE_UNKNOWN; final boolean enableList = settingsNetworkMode != NETWORK_MODE_LTE_GSM_WCDMA && settingsNetworkMode != NETWORK_MODE_NR_LTE_GSM_WCDMA; listPreference.setEnabled(enableList); } catch (Exception exception) { Log.e(TAG, "Fail to access framework API", exception); } } @Override Loading