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

Commit 8d62b60d authored by Roman Birg's avatar Roman Birg
Browse files

allow overlaying default quick settings tiles



Change-Id: Ia92e562318c05a127ddccc99dc7461feaa7ed9cb
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 7d64aeed
Loading
Loading
Loading
Loading
+57 −39
Original line number Diff line number Diff line
@@ -26,12 +26,15 @@ import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.net.ConnectivityManager;
import android.nfc.NfcAdapter;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.android.internal.telephony.PhoneConstants;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;

public class QSUtils {
    private static boolean sAvailableTilesFiltered;
@@ -44,8 +47,20 @@ public class QSUtils {
    }

    public static List<String> getDefaultTiles(Context context) {
        filterTiles(context);
        return QSConstants.TILES_DEFAULT;
        final List<String> tiles = new ArrayList<>();
        final String defaults = context.getString(
                com.android.internal.R.string.config_defaultQuickSettingsTiles);
        if (!TextUtils.isEmpty(defaults)) {
            final String[] array = TextUtils.split(defaults, Pattern.quote(","));
            for (String item : array) {
                if (TextUtils.isEmpty(item)) {
                    continue;
                }
                tiles.add(item);
            }
            filterTiles(context, tiles);
        }
        return tiles;
    }

    public static String getDefaultTilesAsString(Context context) {
@@ -53,12 +68,11 @@ public class QSUtils {
        return TextUtils.join(",", list);
    }

    private static void filterTiles(Context context) {
        if (!sAvailableTilesFiltered) {
    private static void filterTiles(Context context, List<String> tiles) {
        boolean deviceSupportsMobile = deviceSupportsMobileData(context);

        // Tiles that need conditional filtering
            Iterator<String> iterator = QSConstants.TILES_AVAILABLE.iterator();
        Iterator<String> iterator = tiles.iterator();
        while (iterator.hasNext()) {
            String tileKey = iterator.next();
            boolean removeTile = false;
@@ -88,10 +102,14 @@ public class QSUtils {
            }
            if (removeTile) {
                iterator.remove();
                    QSConstants.TILES_DEFAULT.remove(tileKey);
                tiles.remove(tileKey);
            }
        }
    }

    private static void filterTiles(Context context) {
        if (!sAvailableTilesFiltered) {
            filterTiles(context, QSConstants.TILES_DEFAULT);
            sAvailableTilesFiltered = true;
        }
    }
+3 −0
Original line number Diff line number Diff line
@@ -340,4 +340,7 @@
    <java-symbol type="array" name="config_packagesAllowedAccessToKillSwitch" />
    <java-symbol type="string" name="config_killSwitchLib" />
    <java-symbol type="string" name="config_killSwitchClass" />

    <!-- Quick Settings tile defaults -->
    <java-symbol type="string" name="config_defaultQuickSettingsTiles" />
</resources>
+3 −0
Original line number Diff line number Diff line
@@ -2156,4 +2156,7 @@

    <!-- Boolean to enable the advanced settings switch -->
    <bool name="config_advancedSettingsMode">true</bool>

    <!-- Default, comma-delimited, quick settings tiles. See QSConstants.java for a list of all available tiles -->
    <string name="config_defaultQuickSettingsTiles">wifi,bt,cell,airplane,rotation,flashlight,location,cast</string>
</resources>
+3 −0
Original line number Diff line number Diff line
@@ -2672,6 +2672,9 @@ public class DatabaseHelper extends SQLiteOpenHelper {

            loadDefaultThemeSettings(stmt);
            loadProtectedSmsSetting(stmt);

            loadStringSetting(stmt, Settings.Secure.QS_TILES,
                    com.android.internal.R.string.config_defaultQuickSettingsTiles);
        } finally {
            if (stmt != null) stmt.close();
        }