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

Commit c49807ae authored by Adnan Begovic's avatar Adnan Begovic
Browse files

SystemUi: Have qs tiles impl point at CMSettingsProvider.

Change-Id: I2302fae146be0e3c760ed92641e3a9154a2b340f
parent 8b59e888
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import com.android.systemui.settings.ToggleSlider;
import com.android.systemui.statusbar.phone.QSTileHost;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.tuner.QsTuner;
import cyanogenmod.providers.CMSettings;

import java.util.ArrayList;
import java.util.Arrays;
@@ -1417,8 +1418,8 @@ public class QSDragPanel extends QSPanel implements View.OnDragListener, View.On
    }

    public void reset() {
        Settings.Secure.putStringForUser(getContext().getContentResolver(),
                QSTileHost.TILES_SETTING, "default", ActivityManager.getCurrentUser());
        CMSettings.Secure.putStringForUser(getContext().getContentResolver(),
                CMSettings.Secure.QS_TILES, "default", ActivityManager.getCurrentUser());
        setEditing(false);
        setTiles(mHost.getTiles());
        requestLayout();
+5 −5
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
import cyanogenmod.providers.CMSettings;

import java.util.ArrayList;
import java.util.Arrays;
@@ -69,8 +70,6 @@ public class QSTileHost implements QSTile.Host, Tunable {
    private static final String TAG = "QSTileHost";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    public static final String TILES_SETTING = "sysui_qs_tiles";

    private final Context mContext;
    private final PhoneStatusBar mStatusBar;
    private final LinkedHashMap<String, QSTile<?>> mTiles = new LinkedHashMap<>();
@@ -116,7 +115,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
        ht.start();
        mLooper = ht.getLooper();

        TunerService.get(mContext).addTunable(this, TILES_SETTING);
        TunerService.get(mContext).addTunableByProvider(this, CMSettings.Secure.QS_TILES, true);
    }

    public void destroy() {
@@ -234,7 +233,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
    
    @Override
    public void onTuningChanged(String key, String newValue) {
        if (!TILES_SETTING.equals(key)) {
        if (!CMSettings.Secure.QS_TILES.equals(key)) {
            return;
        }
        if (DEBUG) Log.d(TAG, "Recreating tiles");
@@ -319,7 +318,8 @@ public class QSTileHost implements QSTile.Host, Tunable {
    }

    public void setTiles(List<String> tiles) {
        Settings.Secure.putStringForUser(getContext().getContentResolver(), TILES_SETTING,
        CMSettings.Secure.putStringForUser(getContext().getContentResolver(),
                CMSettings.Secure.QS_TILES,
                TextUtils.join(",", tiles), ActivityManager.getCurrentUser());
    }

+38 −6
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.ArrayMap;

import com.android.systemui.BatteryMeterView;
@@ -40,6 +41,7 @@ import com.android.systemui.SystemUI;
import com.android.systemui.SystemUIApplication;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import cyanogenmod.providers.CMSettings;

import java.util.ArrayList;
import java.util.HashMap;
@@ -84,17 +86,31 @@ public class TunerService extends SystemUI {
    }

    private void addTunable(Tunable tunable, String key) {
        addTunableByProvider(tunable, key, false);
    }

    public void addTunableByProvider(Tunable tunable, String key, boolean cm) {
        if (!mTunableLookup.containsKey(key)) {
            mTunableLookup.put(key, new ArrayList<Tunable>());
        }
        mTunableLookup.get(key).add(tunable);
        Uri uri = Settings.Secure.getUriFor(key);
        Uri uri;
        if (!cm) {
            uri = Settings.Secure.getUriFor(key);
        } else {
            uri = CMSettings.Secure.getUriFor(key);
        }
        if (!mListeningUris.containsKey(uri)) {
            mListeningUris.put(uri, key);
            mContentResolver.registerContentObserver(uri, false, mObserver, mCurrentUser);
        }
        // Send the first state.
        String value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        String value;
        if (cm) {
            value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        } else {
            value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        }
        tunable.onTuningChanged(key, value);
    }

@@ -116,7 +132,12 @@ public class TunerService extends SystemUI {

    public void reloadSetting(Uri uri) {
        String key = mListeningUris.get(uri);
        String value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        String value;
        if (uri.getAuthority().equals(CMSettings.AUTHORITY)) {
            value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        } else {
            value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
        }
        for (Tunable tunable : mTunableLookup.get(key)) {
            tunable.onTuningChanged(key, value);
        }
@@ -124,8 +145,14 @@ public class TunerService extends SystemUI {

    private void reloadAll() {
        for (String key : mTunableLookup.keySet()) {
            String value = Settings.Secure.getStringForUser(mContentResolver, key,
            String value;
            Uri uri = CMSettings.Secure.getUriFor(key);
            if (uri.getAuthority() != null && uri.getAuthority().equals(CMSettings.AUTHORITY)) {
                value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser);
            } else {
                value = Settings.Secure.getStringForUser(mContentResolver, key,
                        mCurrentUser);
            }
            for (Tunable tunable : mTunableLookup.get(key)) {
                tunable.onTuningChanged(key, value);
            }
@@ -140,9 +167,14 @@ public class TunerService extends SystemUI {
        mContext.sendBroadcast(intent);

        for (String key : mTunableLookup.keySet()) {
            Uri uri = CMSettings.Secure.getUriFor(key);
            if (uri.getAuthority() != null && uri.getAuthority().equals(CMSettings.AUTHORITY)) {
                CMSettings.Secure.putString(mContentResolver, key, null);
            } else {
                Settings.Secure.putString(mContentResolver, key, null);
            }
        }
    }

    // Only used in other processes, such as the tuner.
    private static TunerService sInstance;