feat: Support invert tile color (#167)

This commit is contained in:
deltazefiro
2024-08-19 12:13:45 +01:00
parent 323c5dfa84
commit 57d8ea0175
6 changed files with 39 additions and 2 deletions
@@ -67,6 +67,7 @@ public final class PrefMgr {
public static final String BLOCK_SCREENSHOTS = "blockScreenshots";
public static final String ENABLE_X_HIDE = "enableXHide";
public static final String DISABLE_TOASTS = "disableToasts";
public static final String INVERT_TILE_COLOR = "invertTileColor";
public static Set<String> getHideFilePath() {
return mPrefs.getStringSet(HIDE_FILE_PATH, new HashSet<>());
@@ -308,4 +309,13 @@ public final class PrefMgr {
mPrefEditor.putBoolean(DISABLE_TOASTS, disableToasts);
mPrefEditor.apply();
}
public static boolean getInvertTileColor() {
return mPrefs.getBoolean(INVERT_TILE_COLOR, false);
}
public static void setInvertTileColor(boolean invertTileColor) {
mPrefEditor.putBoolean(INVERT_TILE_COLOR, invertTileColor);
mPrefEditor.apply();
}
}
@@ -30,13 +30,13 @@ public class QSTileService extends TileService {
}
case VISIBLE -> {
tile.setLabel(getString(R.string.app_name));
tile.setState(Tile.STATE_ACTIVE);
tile.setState(determineTileState(false));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
tile.setStateDescription(getString(R.string.visible_status));
}
case HIDDEN -> {
tile.setLabel(getString(R.string.app_name));
tile.setState(Tile.STATE_INACTIVE);
tile.setState(determineTileState(true));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
tile.setStateDescription(getString(R.string.hidden_status));
}
@@ -89,4 +89,10 @@ public class QSTileService extends TileService {
startActivityAndCollapse(intent);
}
}
private int determineTileState(boolean isHidden) {
if (PrefMgr.getInvertTileColor())
return isHidden ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
return isHidden ? Tile.STATE_INACTIVE : Tile.STATE_ACTIVE;
}
}
@@ -48,5 +48,17 @@ public class AppearanceCategory extends BaseCategory {
participateTranslationPref.setIntent(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://hosted.weblate.org/engage/amarok-hider/")));
addPreference(participateTranslationPref);
var invertTileColorPref = new MaterialSwitchPreference(activity);
invertTileColorPref.setKey(PrefMgr.INVERT_TILE_COLOR);
invertTileColorPref.setIcon(R.drawable.invert_colors_24dp_5f6368_fill0_wght400_grad0_opsz24);
invertTileColorPref.setTitle(R.string.invert_tile_color);
invertTileColorPref.setSummary(R.string.invert_tile_color_description);
invertTileColorPref.setChecked(PrefMgr.getInvertTileColor());
invertTileColorPref.setOnPreferenceClickListener(preference -> {
Toast.makeText(activity, R.string.apply_on_restart, Toast.LENGTH_SHORT).show();
return true;
});
addPreference(invertTileColorPref);
}
}
@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:alpha="0.9" android:height="24dp" android:viewportHeight="960" android:viewportWidth="960" android:width="24dp">
<path android:fillColor="#5f6368" android:pathData="M480,840q-133,0 -226.5,-92.5T160,524q0,-66 25,-122t69,-100l226,-222 226,222q44,44 69,100t25,122q0,131 -93.5,223.5T480,840ZM480,760v-568L310,360q-35,33 -52.5,74.5T240,524q0,97 70,166.5T480,760Z"/>
</vector>
@@ -177,4 +177,6 @@
<string name="disable_toasts_description">禁用隐藏或解除隐藏时的提示(Toast)。</string>
<string name="apphider_not_activated_title">应用隐藏未激活</string>
<string name="apphider_not_activated_msg">请选择一个应用隐藏模式以启用此功能。</string>
<string name="invert_tile_color">翻转磁贴颜色</string>
<string name="invert_tile_color_description">默认隐藏时控制中心开关为激活状态。启用开关以反转此行为。</string>
</resources>
+2
View File
@@ -183,4 +183,6 @@
<string name="disable_toasts_description">Do not show toast notifications during hide or unhide actions.</string>
<string name="apphider_not_activated_title">App hiding inactive</string>
<string name="apphider_not_activated_msg">Activate an app hiding mode to enable this feature.</string>
<string name="invert_tile_color">Invert tile color</string>
<string name="invert_tile_color_description">By default, the quick settings tile appears activated when your privacy is visible. Toggle this option to reverse the behavior.</string>
</resources>