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

Commit bc04f5e2 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 dds tile doesn't work issue"

parents 9dd17852 7f14b24d
Loading
Loading
Loading
Loading
+7 −38
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ package com.android.systemui.qs.tiles;
import android.content.Context;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.os.AsyncTask;
import android.os.Handler;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
@@ -52,7 +51,6 @@ public class DdsTile extends QSTile<QSTile.State> {
    private boolean mListening;

    private QSTileView mQSTileView = null;
    private AsyncTask switchDdsAsyncTask = null;
    private final DdsObserver mDdsObserver;

    public DdsTile(Host host) {
@@ -141,42 +139,13 @@ public class DdsTile extends QSTile<QSTile.State> {
            return;
        }

        if (switchDdsAsyncTask != null &&
                switchDdsAsyncTask.getStatus() != AsyncTask.Status.FINISHED) {
            if (DEBUG) Log.d(TAG, "Dds switch in progress!");
            return;
        }

        switchDdsAsyncTask = new AsyncTask<Void, Void, Void>() {
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                // Make DDS switch grayed out and while changing subscription
                if (mQSTileView != null) {
                    mQSTileView.setAlpha(0.5f);
                    mQSTileView.setEnabled(false);
                }
            }

            @Override
            protected Void doInBackground(Void... params) {
        TelephonyManager tm = (TelephonyManager)
                mContext.getSystemService(Context.TELEPHONY_SERVICE);
                int dataPhoneId = (int) SubscriptionManager.getDefaultDataSubId();
        int dataPhoneId = SubscriptionManager.getPhoneId(
                SubscriptionManager.getDefaultDataSubId());
        int phoneCount = tm.getPhoneCount();
                SubscriptionManager.setDefaultDataSubId((dataPhoneId + 1) % phoneCount);
                return null;
            }

            @Override
            protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                if (mQSTileView != null) {
                    mQSTileView.setAlpha(1f);
                    mQSTileView.setEnabled(true);
                }
            }
        }.execute();
        long[] subIds = SubscriptionManager.getSubId((dataPhoneId + 1) % phoneCount);
        SubscriptionManager.setDefaultDataSubId(subIds[0]);
    }

    private class DdsObserver extends ContentObserver {