diff options
3 files changed, 16 insertions, 7 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java index 61f7fe8dc019..bc9f52c2f88b 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java @@ -116,6 +116,7 @@ public interface QSTile { public boolean isTransient = false; public String expandedAccessibilityClassName; public SlashState slash; + public boolean handlesLongClick = true; public boolean copyTo(State other) { if (other == null) throw new IllegalArgumentException(); @@ -133,7 +134,8 @@ public interface QSTile { || !Objects.equals(other.state, state) || !Objects.equals(other.isTransient, isTransient) || !Objects.equals(other.dualTarget, dualTarget) - || !Objects.equals(other.slash, slash); + || !Objects.equals(other.slash, slash) + || !Objects.equals(other.handlesLongClick, handlesLongClick); other.icon = icon; other.iconSupplier = iconSupplier; other.label = label; @@ -146,6 +148,7 @@ public interface QSTile { other.dualTarget = dualTarget; other.isTransient = isTransient; other.slash = slash != null ? slash.copy() : null; + other.handlesLongClick = handlesLongClick; return changed; } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java index 42e5adced68d..ac111ee65277 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java @@ -193,6 +193,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setClickable(state.state != Tile.STATE_UNAVAILABLE); mIcon.setIcon(state); + setLongClickable(state.handlesLongClick); setContentDescription(state.contentDescription); mAccessibilityClass = state.expandedAccessibilityClassName; @@ -276,10 +277,14 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { info.setText(label); info.setChecked(b); info.setCheckable(true); - info.addAction( - new AccessibilityNodeInfo.AccessibilityAction( - AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK.getId(), - getResources().getString(R.string.accessibility_long_click_tile))); + if (isLongClickable()) { + info.addAction( + new AccessibilityNodeInfo.AccessibilityAction( + AccessibilityNodeInfo.AccessibilityAction + .ACTION_LONG_CLICK.getId(), + getResources().getString( + R.string.accessibility_long_click_tile))); + } } } } 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 f2ead1cbca94..d7ac2532982d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java @@ -18,7 +18,6 @@ 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.service.quicksettings.Tile; import android.widget.Switch; @@ -50,7 +49,9 @@ public class FlashlightTile extends QSTileImpl<BooleanState> implements @Override public BooleanState newTileState() { - return new BooleanState(); + BooleanState state = new BooleanState(); + state.handlesLongClick = false; + return state; } @Override |