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

Commit d1df482e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "SystemUI: Fix data tile doesn't change with default data card issue"

parents fa9bddda a3abfa9a
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -80,18 +80,13 @@ public class DataTile extends QSTile<QSTile.BooleanState> {
                Settings.Global.AIRPLANE_MODE_ON, 0) != 0 || !hasIccCard()) {
            return;
        }
        int phoneCount = mTelephonyManager.getPhoneCount();
        for (int i = 0; i < phoneCount; i++) {
            Settings.Global.putInt(mContext.getContentResolver(),
                    Settings.Global.MOBILE_DATA + i, (enabled) ? 1 : 0);
            long[] subId = SubscriptionManager.getSubId(i);
            mTelephonyManager.setDataEnabledUsingSubId(subId[0], enabled);
        }
        mTelephonyManager.setDataEnabledUsingSubId(
                SubscriptionManager.getDefaultDataSubId(), enabled);
    }

    @Override
    protected void handleUpdateState(BooleanState state, Object arg) {
        final boolean dataOn = mTelephonyManager.getDataEnabled()
        final boolean dataOn = isDefaultDataEnabled()
                && !isAirplaneModeOn() && hasIccCard();
        state.value = dataOn;
        state.visible = true;
@@ -107,6 +102,11 @@ public class DataTile extends QSTile<QSTile.BooleanState> {
        }
    }

    private boolean isDefaultDataEnabled() {
        return Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.MOBILE_DATA + SubscriptionManager.getDefaultDataPhoneId(), 0) != 0;
    }

    public void setListening(boolean listening) {
        if (mListening == listening) return;
        mListening = listening;
@@ -130,9 +130,18 @@ public class DataTile extends QSTile<QSTile.BooleanState> {
        }

        public void startObserving() {
            int phoneCount = mTelephonyManager.getPhoneCount();
            for (int i = 0; i < phoneCount; i++) {
                mContext.getContentResolver().registerContentObserver(
                        Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + i),
                        false, this);
            }
            if (mTelephonyManager.isMultiSimEnabled()) {
                mContext.getContentResolver().registerContentObserver(
                    Settings.Global.getUriFor(Settings.Global.MOBILE_DATA),
                        Settings.Global.getUriFor(
                        Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION),
                        false, this);
            }
            mContext.getContentResolver().registerContentObserver(
                    Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON),
                    false, this);
+12 −6
Original line number Diff line number Diff line
@@ -84,9 +84,7 @@ public class DdsTile extends QSTile<QSTile.State> {
                    SubscriptionManager.getDefaultDataSubId());
        }

        ConnectivityManager cm =
                (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm != null && cm.getMobileDataEnabled() && !isAirplaneModeOn()) {
        if (isDefaultDataEnabled() && !isAirplaneModeOn()) {
            if (DEBUG) Log.d(TAG, "mobile data is on.");
            switch(dataPhoneId) {
                case PhoneConstants.SUB1:
@@ -122,6 +120,11 @@ public class DdsTile extends QSTile<QSTile.State> {
        }
    }

    private boolean isDefaultDataEnabled() {
        return Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.MOBILE_DATA + SubscriptionManager.getDefaultDataPhoneId(), 0) != 0;
    }

    public void setListening(boolean listening) {
        if (mListening == listening) return;
        mListening = listening;
@@ -160,9 +163,12 @@ public class DdsTile extends QSTile<QSTile.State> {
        }

        public void startObserving() {
            int phoneCount = TelephonyManager.getDefault().getPhoneCount();
            for (int i = 0; i < phoneCount; i++) {
                mContext.getContentResolver().registerContentObserver(
                    Settings.Global.getUriFor(Settings.Global.MOBILE_DATA),
                        Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + i),
                        false, this);
            }
            mContext.getContentResolver().registerContentObserver(
                    Settings.Global.getUriFor(
                    Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION),