Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b47bd86 authored by Bonian Chen's avatar Bonian Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Replacing accessing of PhoneConstants$DataState"

parents 708fe3c0 3446cfeb
Loading
Loading
Loading
Loading
+43 −22
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
@@ -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,
@@ -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();
                }
                }
@@ -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
@@ -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);
@@ -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();
        }
        }
@@ -249,6 +267,9 @@ public class ApnSettings extends RestrictedSettingsFragment
        }
        }


        getActivity().unregisterReceiver(mReceiver);
        getActivity().unregisterReceiver(mReceiver);

        mTelephonyManager.listen(mPhoneStateListener,
                PhoneStateListener.LISTEN_NONE);
    }
    }


    @Override
    @Override