Play sound on ACTION_DOWN for navigation keys

Change-Id: I83a39aa9ba2519952cb723d72c66203881c9b3b5
Fixes: 30837708
This commit is contained in:
Jorim Jaggi
2016-08-25 18:14:14 -07:00
parent 73f511e471
commit 05bce15da9

View File

@@ -59,6 +59,7 @@ public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonI
private AudioManager mAudioManager;
private boolean mGestureAborted;
private boolean mLongClicked;
private OnClickListener mOnClickListener;
private final Runnable mCheckLongPress = new Runnable() {
public void run() {
@@ -109,6 +110,12 @@ public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonI
mCode = code;
}
@Override
public void setOnClickListener(OnClickListener onClickListener) {
super.setOnClickListener(onClickListener);
mOnClickListener = onClickListener;
}
public void loadAsync(String uri) {
new AsyncTask<String, Void, Drawable>() {
@Override
@@ -190,6 +197,7 @@ public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonI
// Provide the same haptic feedback that the system offers for virtual keys.
performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
}
playSoundEffect(SoundEffectConstants.CLICK);
removeCallbacks(mCheckLongPress);
postDelayed(mCheckLongPress, ViewConfiguration.getLongPressTimeout());
break;
@@ -215,14 +223,14 @@ public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonI
if (doIt) {
sendEvent(KeyEvent.ACTION_UP, 0);
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
playSoundEffect(SoundEffectConstants.CLICK);
} else {
sendEvent(KeyEvent.ACTION_UP, KeyEvent.FLAG_CANCELED);
}
} else {
// no key code, just a regular ImageView
if (doIt) {
performClick();
if (doIt && mOnClickListener != null) {
mOnClickListener.onClick(this);
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
}
}
removeCallbacks(mCheckLongPress);