diff options
| author | Nauval Rizky <enuma.alrizky@gmail.com> | 2022-02-15 21:33:05 +0700 |
|---|---|---|
| committer | nebrassy <nebras30@gmail.com> | 2022-06-12 16:31:01 +0200 |
| commit | 4984c90e8f071fae23798ed15dcc9530030a14b0 (patch) | |
| tree | e20742877c17e5fecfe67a18201ee4a9ccb9f7b4 | |
| parent | 4a83d6b3f8df900b7689b6a22683dfcdca72f2f4 (diff) | |
vayu: parts: Describe current Dirac state to the tile
Change-Id: I54bd8d747724dde99ef53583a9b4a67603f82246
| -rw-r--r-- | parts/res/values/strings.xml | 3 | ||||
| -rw-r--r-- | parts/src/org/lineageos/settings/dirac/DiracTileService.java | 37 |
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(); } } |
