Fixing AllApps pressed state (issue 10845969)
-> Adding haptic feedback to overview mode buttons (issue 10917359)
Change-Id: Iaf7ac31521ae08f4223aa0d0ffc2f6511b85567f
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5047e9e..62e05e8 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -281,6 +281,8 @@
private static HashMap<Long, FolderInfo> sFolders = new HashMap<Long, FolderInfo>();
+ private View.OnTouchListener mHapticFeedbackTouchListener;
+
// Related to the auto-advancing of widgets
private final int ADVANCE_MSG = 1;
private final int mAdvanceInterval = 20000;
@@ -1148,24 +1150,32 @@
}
mOverviewPanel = findViewById(R.id.overview_panel);
- findViewById(R.id.widget_button).setOnClickListener(new OnClickListener() {
+ View widgetButton = findViewById(R.id.widget_button);
+ widgetButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
showAllApps(true, AppsCustomizePagedView.ContentType.Widgets);
}
});
- findViewById(R.id.wallpaper_button).setOnClickListener(new OnClickListener() {
+ widgetButton.setOnTouchListener(getHapticFeedbackTouchListener());
+
+ View wallpaperButton = findViewById(R.id.wallpaper_button);
+ wallpaperButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startWallpaper();
}
});
- findViewById(R.id.settings_button).setOnClickListener(new OnClickListener() {
+ wallpaperButton.setOnTouchListener(getHapticFeedbackTouchListener());
+
+ View settingsButton = findViewById(R.id.settings_button);
+ settingsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startSettings();
}
});
+ settingsButton.setOnTouchListener(getHapticFeedbackTouchListener());
mOverviewPanel.setAlpha(0f);
// Setup the workspace
@@ -2274,6 +2284,26 @@
v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
}
+ public void performHapticFeedbackOnTouchDown(View v) {
+ // Provide the same haptic feedback that the system offers for virtual keys.
+ v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+ }
+
+ public View.OnTouchListener getHapticFeedbackTouchListener() {
+ if (mHapticFeedbackTouchListener == null) {
+ mHapticFeedbackTouchListener = new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
+ v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+ }
+ return false;
+ }
+ };
+ }
+ return mHapticFeedbackTouchListener;
+ }
+
public void onClickAppMarketButton(View v) {
if (!DISABLE_MARKET_BUTTON) {
if (mAppMarketIntent != null) {