aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNauval Rizky <enuma.alrizky@gmail.com>2022-02-15 21:33:05 +0700
committernebrassy <nebras30@gmail.com>2022-06-12 16:31:01 +0200
commit4984c90e8f071fae23798ed15dcc9530030a14b0 (patch)
treee20742877c17e5fecfe67a18201ee4a9ccb9f7b4
parent4a83d6b3f8df900b7689b6a22683dfcdca72f2f4 (diff)
vayu: parts: Describe current Dirac state to the tile
Change-Id: I54bd8d747724dde99ef53583a9b4a67603f82246
-rw-r--r--parts/res/values/strings.xml3
-rw-r--r--parts/src/org/lineageos/settings/dirac/DiracTileService.java37
2 files changed, 23 insertions, 17 deletions
diff --git a/parts/res/values/strings.xml b/parts/res/values/strings.xml
index f3fcdd9..9929968 100644
--- a/parts/res/values/strings.xml
+++ b/parts/res/values/strings.xml
@@ -21,6 +21,9 @@
<string name="enabled">Enabled</string>
<string name="disabled">Disabled</string>
+ <string name="on">On</string>
+ <string name="off">Off</string>
+
<!-- Ambient Display -->
<string name="ambient_enable">Use Ambient Display</string>
diff --git a/parts/src/org/lineageos/settings/dirac/DiracTileService.java b/parts/src/org/lineageos/settings/dirac/DiracTileService.java
index bfaebb4..173d5f3 100644
--- a/parts/src/org/lineageos/settings/dirac/DiracTileService.java
+++ b/parts/src/org/lineageos/settings/dirac/DiracTileService.java
@@ -1,38 +1,41 @@
package org.lineageos.settings.dirac;
+import android.content.Context;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
+import org.lineageos.settings.R;
+
public class DiracTileService extends TileService {
private DiracUtils mDiracUtils;
+ private Context mContext;
@Override
public void onStartListening() {
- mDiracUtils = DiracUtils.getInstance(getApplicationContext());
-
- Tile tile = getQsTile();
- if (mDiracUtils.isDiracEnabled()) {
- tile.setState(Tile.STATE_ACTIVE);
- } else {
- tile.setState(Tile.STATE_INACTIVE);
- }
+ mContext = getApplicationContext();
+ mDiracUtils = DiracUtils.getInstance(mContext);
- tile.updateTile();
+ updateTileContent(mDiracUtils.isDiracEnabled());
super.onStartListening();
}
@Override
public void onClick() {
+ boolean isEnabled = mDiracUtils.isDiracEnabled();
+ mDiracUtils.setEnabled(!isEnabled);
+ updateTileContent(!isEnabled);
+ super.onClick();
+ }
+
+ private void updateTileContent(boolean isActive) {
Tile tile = getQsTile();
- if (mDiracUtils.isDiracEnabled()) {
- mDiracUtils.setEnabled(false);
- tile.setState(Tile.STATE_INACTIVE);
- } else {
- mDiracUtils.setEnabled(true);
- tile.setState(Tile.STATE_ACTIVE);
- }
+ String on = mContext.getResources().getString(R.string.on);
+ String off = mContext.getResources().getString(R.string.off);
+
+ tile.setState(isActive ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE);
+ tile.setContentDescription(isActive ? on : off);
+ tile.setSubtitle(isActive ? on : off);
tile.updateTile();
- super.onClick();
}
}