summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@google.com>2011-03-01 17:49:18 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-01 17:49:18 -0800
commitd7ba12135bf3e1985961a75648f80bb9eb121e1e (patch)
tree3ef3c27622917649401f76989f9e67fefccb27e4 /packages
parente0edf4c1a230a82cee47f2b30e2ee2f749f2dd56 (diff)
parentaa051d66afa791872bfe362a94765dece07cd4c5 (diff)
downloadframeworks_base-d7ba12135bf3e1985961a75648f80bb9eb121e1e.zip
frameworks_base-d7ba12135bf3e1985961a75648f80bb9eb121e1e.tar.gz
frameworks_base-d7ba12135bf3e1985961a75648f80bb9eb121e1e.tar.bz2
Merge "Make with the clicky. (Status bar buttons now play FX.)"
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java32
2 files changed, 41 insertions, 14 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
index 8ab231b..e81cec2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
@@ -25,12 +25,14 @@ import android.os.SystemClock;
import android.os.ServiceManager;
import android.util.AttributeSet;
import android.util.Slog;
+import android.view.accessibility.AccessibilityEvent;
import android.view.HapticFeedbackConstants;
import android.view.IWindowManager;
import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.MotionEvent;
+import android.view.SoundEffectConstants;
import android.view.ViewConfiguration;
import android.widget.ImageView;
import android.widget.RemoteViews.RemoteView;
@@ -45,6 +47,8 @@ public class KeyButtonView extends ImageView {
boolean mSending;
int mCode;
int mRepeat;
+ int mTouchSlop;
+
Runnable mCheckLongPress = new Runnable() {
public void run() {
if (isPressed()) {
@@ -53,6 +57,9 @@ public class KeyButtonView extends ImageView {
KeyEvent.FLAG_FROM_SYSTEM
| KeyEvent.FLAG_VIRTUAL_HARD_KEY
| KeyEvent.FLAG_LONG_PRESS);
+
+ sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
+ //playSoundEffect(SoundEffectConstants.CLICK);
}
}
};
@@ -78,6 +85,7 @@ public class KeyButtonView extends ImageView {
ServiceManager.getService(Context.WINDOW_SERVICE));
setClickable(true);
+ mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
}
public boolean onTouchEvent(MotionEvent ev) {
@@ -100,7 +108,10 @@ public class KeyButtonView extends ImageView {
if (mSending) {
x = (int)ev.getX();
y = (int)ev.getY();
- setPressed(x >= 0 && x < getWidth() && y >= 0 && y < getHeight());
+ setPressed(x >= -mTouchSlop
+ && x < getWidth() + mTouchSlop
+ && y >= -mTouchSlop
+ && y < getHeight() + mTouchSlop);
}
break;
case MotionEvent.ACTION_CANCEL:
@@ -114,12 +125,18 @@ public class KeyButtonView extends ImageView {
}
break;
case MotionEvent.ACTION_UP:
+ final boolean doIt = isPressed();
setPressed(false);
if (mSending) {
mSending = false;
- sendEvent(KeyEvent.ACTION_UP,
- KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY);
removeCallbacks(mCheckLongPress);
+ if (doIt) {
+ sendEvent(KeyEvent.ACTION_UP,
+ KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY);
+
+ sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
+ playSoundEffect(SoundEffectConstants.CLICK);
+ }
}
break;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index c123cea..5ab808c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -42,11 +42,13 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.text.TextUtils;
import android.util.Slog;
+import android.view.accessibility.AccessibilityEvent;
import android.view.Gravity;
import android.view.IWindowManager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
+import android.view.SoundEffectConstants;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
@@ -1181,6 +1183,8 @@ public class TabletStatusBar extends StatusBar implements
// dragging off the bottom doesn't count
&& (int)event.getY() < v.getBottom()) {
animateExpand();
+ v.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
+ v.playSoundEffect(SoundEffectConstants.CLICK);
}
mVT.recycle();
@@ -1264,17 +1268,23 @@ public class TabletStatusBar extends StatusBar implements
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
mHandler.removeMessages(MSG_OPEN_NOTIFICATION_PEEK);
- if (action == MotionEvent.ACTION_UP
- // was this a sloppy tap?
- && Math.abs(event.getX() - mInitialTouchX) < mTouchSlop
- && Math.abs(event.getY() - mInitialTouchY) < (mTouchSlop / 3)
- // dragging off the bottom doesn't count
- && (int)event.getY() < v.getBottom()) {
- Message peekMsg = mHandler.obtainMessage(MSG_OPEN_NOTIFICATION_PEEK);
- peekMsg.arg1 = mPeekIndex;
- mHandler.removeMessages(MSG_OPEN_NOTIFICATION_PEEK);
- mHandler.sendMessage(peekMsg);
- peeking = true; // not technically true yet, but the next line will run
+ if (!peeking) {
+ if (action == MotionEvent.ACTION_UP
+ // was this a sloppy tap?
+ && Math.abs(event.getX() - mInitialTouchX) < mTouchSlop
+ && Math.abs(event.getY() - mInitialTouchY) < (mTouchSlop / 3)
+ // dragging off the bottom doesn't count
+ && (int)event.getY() < v.getBottom()) {
+ Message peekMsg = mHandler.obtainMessage(MSG_OPEN_NOTIFICATION_PEEK);
+ peekMsg.arg1 = mPeekIndex;
+ mHandler.removeMessages(MSG_OPEN_NOTIFICATION_PEEK);
+ mHandler.sendMessage(peekMsg);
+
+ v.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
+ v.playSoundEffect(SoundEffectConstants.CLICK);
+
+ peeking = true; // not technically true yet, but the next line will run
+ }
}
if (peeking) {