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

Commit 58c7d620 authored by Bruno Martins's avatar Bruno Martins
Browse files

TunerServiceImpl: Add support for Lineage global settings

Change-Id: I7f3a2e024286f2d7c49e173a7a0bb9a2f486c5d9
parent 15917849
Loading
Loading
Loading
Loading
+31 −10
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings.Secure;
@@ -126,6 +127,10 @@ public class TunerServiceImpl extends TunerService {
        setValue(TUNER_VERSION, newVersion);
    }

    private boolean isLineageGlobal(String key) {
        return key.startsWith("lineageglobal:");
    }

    private boolean isLineageSystem(String key) {
        return key.startsWith("lineagesystem:");
    }
@@ -139,12 +144,14 @@ public class TunerServiceImpl extends TunerService {
    }

    private String chomp(String key) {
        return key.replaceFirst("^(lineagesecure|lineagesystem|system):", "");
        return key.replaceFirst("^(lineageglobal|lineagesecure|lineagesystem|system):", "");
    }

    @Override
    public String getValue(String setting) {
        if (isLineageSecure(setting)) {
        if (isLineageGlobal(setting)) {
            return LineageSettings.Global.getString(mContentResolver, chomp(setting));
        } else if (isLineageSecure(setting)) {
            return LineageSettings.Secure.getStringForUser(
                    mContentResolver, chomp(setting), mCurrentUser);
        } else if (isLineageSystem(setting)) {
@@ -160,7 +167,9 @@ public class TunerServiceImpl extends TunerService {

    @Override
    public void setValue(String setting, String value) {
        if (isLineageSecure(setting)) {
        if (isLineageGlobal(setting)) {
            LineageSettings.Global.putString(mContentResolver, chomp(setting), value);
        } else if (isLineageSecure(setting)) {
            LineageSettings.Secure.putStringForUser(
                    mContentResolver, chomp(setting), value, mCurrentUser);
        } else if (isLineageSystem(setting)) {
@@ -176,7 +185,9 @@ public class TunerServiceImpl extends TunerService {

    @Override
    public int getValue(String setting, int def) {
        if (isLineageSecure(setting)) {
        if (isLineageGlobal(setting)) {
            return LineageSettings.Global.getInt(mContentResolver, chomp(setting), def);
        } else if (isLineageSecure(setting)) {
            return LineageSettings.Secure.getIntForUser(
                    mContentResolver, chomp(setting), def, mCurrentUser);
        } else if (isLineageSystem(setting)) {
@@ -193,7 +204,9 @@ public class TunerServiceImpl extends TunerService {
    @Override
    public String getValue(String setting, String def) {
        String ret;
        if (isLineageSecure(setting)) {
        if (isLineageGlobal(setting)) {
            ret = LineageSettings.Global.getString(mContentResolver, chomp(setting));
        } else if (isLineageSecure(setting)) {
            ret = LineageSettings.Secure.getStringForUser(
                    mContentResolver, chomp(setting), mCurrentUser);
        } else if (isLineageSystem(setting)) {
@@ -211,7 +224,9 @@ public class TunerServiceImpl extends TunerService {

    @Override
    public void setValue(String setting, int value) {
        if (isLineageSecure(setting)) {
        if (isLineageGlobal(setting)) {
            LineageSettings.Global.putInt(mContentResolver, chomp(setting), value);
        } else if (isLineageSecure(setting)) {
            LineageSettings.Secure.putIntForUser(
                    mContentResolver, chomp(setting), value, mCurrentUser);
        } else if (isLineageSystem(setting)) {
@@ -241,7 +256,9 @@ public class TunerServiceImpl extends TunerService {
            Dependency.get(LeakDetector.class).trackCollection(mTunables, "TunerService.mTunables");
        }
        final Uri uri;
        if (isLineageSecure(key)) {
        if (isLineageGlobal(key)) {
            uri = LineageSettings.Global.getUriFor(chomp(key));
        } else if (isLineageSecure(key)) {
            uri = LineageSettings.Secure.getUriFor(chomp(key));
        } else if (isLineageSystem(key)) {
            uri = LineageSettings.System.getUriFor(chomp(key));
@@ -252,7 +269,8 @@ public class TunerServiceImpl extends TunerService {
        }
        if (!mListeningUris.containsKey(uri)) {
            mListeningUris.put(uri, key);
            mContentResolver.registerContentObserver(uri, false, mObserver, mCurrentUser);
            mContentResolver.registerContentObserver(uri, false, mObserver,
                    isLineageGlobal(key) ? UserHandle.USER_ALL : mCurrentUser);
        }
        // Send the first state.
        String value = getValue(key);
@@ -275,7 +293,9 @@ public class TunerServiceImpl extends TunerService {
        }
        mContentResolver.unregisterContentObserver(mObserver);
        for (Uri uri : mListeningUris.keySet()) {
            mContentResolver.registerContentObserver(uri, false, mObserver, mCurrentUser);
            String key = mListeningUris.get(uri);
            mContentResolver.registerContentObserver(uri, false, mObserver,
                    isLineageGlobal(key) ? UserHandle.USER_ALL : mCurrentUser);
        }
    }

@@ -323,7 +343,8 @@ public class TunerServiceImpl extends TunerService {

        @Override
        public void onChange(boolean selfChange, Uri uri, int userId) {
            if (userId == ActivityManager.getCurrentUser()) {
            String key = mListeningUris.get(uri);
            if (userId == ActivityManager.getCurrentUser() || isLineageGlobal(key)) {
                reloadSetting(uri);
            }
        }