SystemUI: Vibrate on QS tile click
Change-Id: I9419b50be423e0e9a823a0d73eb431b85e4693a0
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
index 1ca2a96..4862287 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
@@ -38,6 +38,8 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+import android.os.Vibrator;
+import android.os.VibrationEffect;
import android.text.format.DateUtils;
import android.util.ArraySet;
import android.util.Log;
@@ -124,6 +126,11 @@
private boolean mShowingDetail;
private int mIsFullQs;
+ private final boolean mHasVibrator;
+ private final Vibrator mVibrator;
+ private static final VibrationEffect QS_TILE_TOUCH_HAPTIC =
+ VibrationEffect.get(VibrationEffect.EFFECT_TICK);
+
private final LifecycleRegistry mLifecycle = new LifecycleRegistry(this);
/**
@@ -204,6 +211,9 @@
resetStates();
mUiHandler.post(() -> mLifecycle.setCurrentState(CREATED));
+
+ mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ mHasVibrator = mVibrator != null && mVibrator.hasVibrator();
}
protected final void resetStates() {
@@ -295,6 +305,7 @@
}
public void click(@Nullable View view) {
+ if (mHasVibrator) mVibrator.vibrate(QS_TILE_TOUCH_HAPTIC);
mMetricsLogger.write(populate(new LogMaker(ACTION_QS_CLICK).setType(TYPE_ACTION)
.addTaggedData(FIELD_STATUS_BAR_STATE,
mStatusBarStateController.getState())));