diff options
| -rw-r--r-- | packages/SystemUI/res/values/strings.xml | 2 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java | 18 |
2 files changed, 17 insertions, 3 deletions
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 8bfd943dcedc..51b669c211ce 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -497,6 +497,8 @@ <string name="accessibility_quick_settings_less_time">Less time.</string> <!-- Content description of the flashlight tile in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_quick_settings_flashlight_off">Flashlight off.</string> + <!-- Content description of the flashlight tile in quick settings when unavailable (not shown on the screen). [CHAR LIMIT=NONE] --> + <string name="accessibility_quick_settings_flashlight_unavailable">Flashlight unavailable.</string> <!-- Content description of the flashlight tile in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_quick_settings_flashlight_on">Flashlight on.</string> <!-- Announcement made when the flashlight state changes to off (not shown on the screen). [CHAR LIMIT=NONE] --> diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java index c10843a30547..e4e379058399 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java @@ -17,9 +17,11 @@ package com.android.systemui.qs.tiles; import android.app.ActivityManager; - import android.content.Intent; +import android.graphics.drawable.Drawable; import android.provider.MediaStore; +import android.text.SpannableStringBuilder; +import android.text.style.ForegroundColorSpan; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.systemui.R; @@ -79,9 +81,19 @@ public class FlashlightTile extends QSTile<QSTile.BooleanState> implements @Override protected void handleUpdateState(BooleanState state, Object arg) { - // TODO: Flashlight available handling... -// state.visible = mFlashlightController.isAvailable(); state.label = mHost.getContext().getString(R.string.quick_settings_flashlight_label); + if (!mFlashlightController.isAvailable()) { + Drawable icon = mHost.getContext().getDrawable(R.drawable.ic_signal_flashlight_disable); + final int disabledColor = mHost.getContext().getColor(R.color.qs_tile_tint_unavailable); + icon.setTint(disabledColor); + state.icon = new DrawableIcon(icon); + state.label = new SpannableStringBuilder().append(state.label, + new ForegroundColorSpan(disabledColor), + SpannableStringBuilder.SPAN_INCLUSIVE_INCLUSIVE); + state.contentDescription = mContext.getString( + R.string.accessibility_quick_settings_flashlight_unavailable); + return; + } if (arg instanceof Boolean) { boolean value = (Boolean) arg; if (value == state.value) { |