Loading src/com/android/settings/network/ApnSettings.java +43 −22 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,8 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.provider.Telephony; import android.provider.Telephony; import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; import android.telephony.PreciseDataConnectionState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; Loading @@ -52,8 +54,6 @@ import android.widget.Toast; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceGroup; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.settings.R; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.RestrictedSettingsFragment; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; Loading Loading @@ -107,6 +107,7 @@ public class ApnSettings extends RestrictedSettingsFragment private static boolean mRestoreDefaultApnMode; private static boolean mRestoreDefaultApnMode; private UserManager mUserManager; private UserManager mUserManager; private TelephonyManager mTelephonyManager; private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler; private HandlerThread mRestoreDefaultApnThread; private HandlerThread mRestoreDefaultApnThread; Loading @@ -130,22 +131,24 @@ public class ApnSettings extends RestrictedSettingsFragment super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); } } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { @Override @Override public void onReceive(Context context, Intent intent) { public void onPreciseDataConnectionStateChanged( if (intent.getAction().equals( PreciseDataConnectionState dataConnectionState) { TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) { if (dataConnectionState.getState() == TelephonyManager.DATA_CONNECTED) { PhoneConstants.DataState state = getMobileDataState(intent); switch (state) { case CONNECTED: if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { fillList(); fillList(); } else { } else { showDialog(DIALOG_RESTORE_DEFAULTAPN); showDialog(DIALOG_RESTORE_DEFAULTAPN); } } break; } } } else if(intent.getAction().equals( } }; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals( TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) { TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) { if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, Loading @@ -156,6 +159,7 @@ public class ApnSettings extends RestrictedSettingsFragment // subscription has changed // subscription has changed mSubId = extraSubId; mSubId = extraSubId; mSubscriptionInfo = getSubscriptionInfo(mSubId); mSubscriptionInfo = getSubscriptionInfo(mSubId); restartPhoneStateListener(mSubId); } } fillList(); fillList(); } } Loading @@ -163,13 +167,25 @@ public class ApnSettings extends RestrictedSettingsFragment } } }; }; private static PhoneConstants.DataState getMobileDataState(Intent intent) { private void restartPhoneStateListener(int subId) { String str = intent.getStringExtra(PhoneConstants.STATE_KEY); if (mRestoreDefaultApnMode) { if (str != null) { return; return Enum.valueOf(PhoneConstants.DataState.class, str); } } else { return PhoneConstants.DataState.DISCONNECTED; final TelephonyManager updatedTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); if (updatedTelephonyManager == null) { return; } } // restart monitoring when subscription has been changed mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); mTelephonyManager = updatedTelephonyManager; mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE); } } @Override @Override Loading @@ -185,12 +201,12 @@ public class ApnSettings extends RestrictedSettingsFragment SubscriptionManager.INVALID_SUBSCRIPTION_ID); SubscriptionManager.INVALID_SUBSCRIPTION_ID); mPhoneId = SubscriptionUtil.getPhoneId(activity, mSubId); mPhoneId = SubscriptionUtil.getPhoneId(activity, mSubId); mIntentFilter = new IntentFilter( mIntentFilter = new IntentFilter( TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED); mIntentFilter.addAction(TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED); setIfOnlyAvailableForAdmins(true); setIfOnlyAvailableForAdmins(true); mSubscriptionInfo = getSubscriptionInfo(mSubId); mSubscriptionInfo = getSubscriptionInfo(mSubId); mTelephonyManager = activity.getSystemService(TelephonyManager.class); CarrierConfigManager configManager = (CarrierConfigManager) CarrierConfigManager configManager = (CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE); getSystemService(Context.CARRIER_CONFIG_SERVICE); Loading Loading @@ -235,6 +251,8 @@ public class ApnSettings extends RestrictedSettingsFragment getActivity().registerReceiver(mReceiver, mIntentFilter); getActivity().registerReceiver(mReceiver, mIntentFilter); restartPhoneStateListener(mSubId); if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { fillList(); fillList(); } } Loading @@ -249,6 +267,9 @@ public class ApnSettings extends RestrictedSettingsFragment } } getActivity().unregisterReceiver(mReceiver); getActivity().unregisterReceiver(mReceiver); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } } @Override @Override Loading Loading
src/com/android/settings/network/ApnSettings.java +43 −22 Original line number Original line Diff line number Diff line Loading @@ -38,6 +38,8 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.provider.Telephony; import android.provider.Telephony; import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; import android.telephony.PreciseDataConnectionState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; Loading @@ -52,8 +54,6 @@ import android.widget.Toast; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceGroup; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.settings.R; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.RestrictedSettingsFragment; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; Loading Loading @@ -107,6 +107,7 @@ public class ApnSettings extends RestrictedSettingsFragment private static boolean mRestoreDefaultApnMode; private static boolean mRestoreDefaultApnMode; private UserManager mUserManager; private UserManager mUserManager; private TelephonyManager mTelephonyManager; private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnUiHandler mRestoreApnUiHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler; private RestoreApnProcessHandler mRestoreApnProcessHandler; private HandlerThread mRestoreDefaultApnThread; private HandlerThread mRestoreDefaultApnThread; Loading @@ -130,22 +131,24 @@ public class ApnSettings extends RestrictedSettingsFragment super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); } } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { @Override @Override public void onReceive(Context context, Intent intent) { public void onPreciseDataConnectionStateChanged( if (intent.getAction().equals( PreciseDataConnectionState dataConnectionState) { TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) { if (dataConnectionState.getState() == TelephonyManager.DATA_CONNECTED) { PhoneConstants.DataState state = getMobileDataState(intent); switch (state) { case CONNECTED: if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { fillList(); fillList(); } else { } else { showDialog(DIALOG_RESTORE_DEFAULTAPN); showDialog(DIALOG_RESTORE_DEFAULTAPN); } } break; } } } else if(intent.getAction().equals( } }; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals( TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) { TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) { if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, Loading @@ -156,6 +159,7 @@ public class ApnSettings extends RestrictedSettingsFragment // subscription has changed // subscription has changed mSubId = extraSubId; mSubId = extraSubId; mSubscriptionInfo = getSubscriptionInfo(mSubId); mSubscriptionInfo = getSubscriptionInfo(mSubId); restartPhoneStateListener(mSubId); } } fillList(); fillList(); } } Loading @@ -163,13 +167,25 @@ public class ApnSettings extends RestrictedSettingsFragment } } }; }; private static PhoneConstants.DataState getMobileDataState(Intent intent) { private void restartPhoneStateListener(int subId) { String str = intent.getStringExtra(PhoneConstants.STATE_KEY); if (mRestoreDefaultApnMode) { if (str != null) { return; return Enum.valueOf(PhoneConstants.DataState.class, str); } } else { return PhoneConstants.DataState.DISCONNECTED; final TelephonyManager updatedTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); if (updatedTelephonyManager == null) { return; } } // restart monitoring when subscription has been changed mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); mTelephonyManager = updatedTelephonyManager; mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE); } } @Override @Override Loading @@ -185,12 +201,12 @@ public class ApnSettings extends RestrictedSettingsFragment SubscriptionManager.INVALID_SUBSCRIPTION_ID); SubscriptionManager.INVALID_SUBSCRIPTION_ID); mPhoneId = SubscriptionUtil.getPhoneId(activity, mSubId); mPhoneId = SubscriptionUtil.getPhoneId(activity, mSubId); mIntentFilter = new IntentFilter( mIntentFilter = new IntentFilter( TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED); mIntentFilter.addAction(TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED); setIfOnlyAvailableForAdmins(true); setIfOnlyAvailableForAdmins(true); mSubscriptionInfo = getSubscriptionInfo(mSubId); mSubscriptionInfo = getSubscriptionInfo(mSubId); mTelephonyManager = activity.getSystemService(TelephonyManager.class); CarrierConfigManager configManager = (CarrierConfigManager) CarrierConfigManager configManager = (CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE); getSystemService(Context.CARRIER_CONFIG_SERVICE); Loading Loading @@ -235,6 +251,8 @@ public class ApnSettings extends RestrictedSettingsFragment getActivity().registerReceiver(mReceiver, mIntentFilter); getActivity().registerReceiver(mReceiver, mIntentFilter); restartPhoneStateListener(mSubId); if (!mRestoreDefaultApnMode) { if (!mRestoreDefaultApnMode) { fillList(); fillList(); } } Loading @@ -249,6 +267,9 @@ public class ApnSettings extends RestrictedSettingsFragment } } getActivity().unregisterReceiver(mReceiver); getActivity().unregisterReceiver(mReceiver); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } } @Override @Override Loading