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

Commit b7e5f7bf authored by chen xu's avatar chen xu Committed by android-build-merger
Browse files

listen to subId change and update dateEnabledSettings

am: fc1020f7

Change-Id: I785a17b001e2e89ccedac768fcf9c71637258f93
parents 12708db2 fc1020f7
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.util.LocalLog;
import android.util.Pair;

@@ -97,12 +98,29 @@ public class DataEnabledSettings {

    private final Phone mPhone;

    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;

    private ContentResolver mResolver = null;

    private final RegistrantList mOverallDataEnabledChangedRegistrants = new RegistrantList();

    private final LocalLog mSettingChangeLocalLog = new LocalLog(50);

    // for msim, user data enabled setting depends on subId.
    private final SubscriptionManager.OnSubscriptionsChangedListener
            mOnSubscriptionsChangeListener =
            new SubscriptionManager.OnSubscriptionsChangedListener() {
                @Override
                public void onSubscriptionsChanged() {
                    if (mSubId != mPhone.getSubId()) {
                        log("onSubscriptionsChanged subId: " + mSubId + " to: "
                                + mPhone.getSubId());
                        mSubId = mPhone.getSubId();
                        updateDataEnabledAndNotify(REASON_USER_DATA_ENABLED);
                    }
                }
            };

    @Override
    public String toString() {
        return "[mInternalDataEnabled=" + mInternalDataEnabled
@@ -115,6 +133,9 @@ public class DataEnabledSettings {
    public DataEnabledSettings(Phone phone) {
        mPhone = phone;
        mResolver = mPhone.getContext().getContentResolver();
        SubscriptionManager subscriptionManager = (SubscriptionManager) mPhone.getContext()
                .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
        subscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
        updateDataEnabled();
    }