summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/OverviewButtonClickListener.java
diff options
context:
space:
mode:
authorJon Miranda <jonmiranda@google.com>2016-10-05 14:08:11 -0700
committerJon Miranda <jonmiranda@google.com>2016-10-05 15:22:23 -0700
commitf3e35d93318190f995e6a0fc9d0441ac844b67e4 (patch)
treea55eaf19ba1cebd1a28623538f898929ab1554f0 /src/com/android/launcher3/OverviewButtonClickListener.java
parentcc3f3349f46c4cfddbd1b7748b2f1414f31a0a7f (diff)
downloadandroid_packages_apps_Trebuchet-f3e35d93318190f995e6a0fc9d0441ac844b67e4.tar.gz
android_packages_apps_Trebuchet-f3e35d93318190f995e6a0fc9d0441ac844b67e4.tar.bz2
android_packages_apps_Trebuchet-f3e35d93318190f995e6a0fc9d0441ac844b67e4.zip
Add logging for long presses. Reset elapsed timer when changing containers.
This is the first CL in a series of logging-related CLs. Upcoming CLs will include using Commands (HOME_INTENT, BACK) and "tapping outside" of a container logic. Change-Id: I62f0a08c7a9d9fce0baa5c12c67e21f63ab16a7c
Diffstat (limited to 'src/com/android/launcher3/OverviewButtonClickListener.java')
-rw-r--r--src/com/android/launcher3/OverviewButtonClickListener.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/com/android/launcher3/OverviewButtonClickListener.java b/src/com/android/launcher3/OverviewButtonClickListener.java
new file mode 100644
index 000000000..c98f1d7bc
--- /dev/null
+++ b/src/com/android/launcher3/OverviewButtonClickListener.java
@@ -0,0 +1,51 @@
+package com.android.launcher3;
+
+import android.view.View;
+
+import com.android.launcher3.userevent.nano.LauncherLogProto;
+
+/**
+ * A specialized listener for Overview buttons where both clicks and long clicks are logged
+ * handled the same via {@link #handleViewClick(View)}.
+ */
+public abstract class OverviewButtonClickListener implements View.OnClickListener,
+ View.OnLongClickListener {
+
+ private int mControlType; /** ControlType enum as defined in {@link LauncherLogProto} */
+
+ public OverviewButtonClickListener(int controlType) {
+ mControlType = controlType;
+ }
+
+ public void attachTo(View v) {
+ v.setOnClickListener(this);
+ v.setOnLongClickListener(this);
+ }
+
+ @Override
+ public void onClick(View view) {
+ if (shouldPerformClick(view)) {
+ handleViewClick(view, LauncherLogProto.Action.TAP);
+ }
+ }
+
+ @Override
+ public boolean onLongClick(View view) {
+ if (shouldPerformClick(view)) {
+ handleViewClick(view, LauncherLogProto.Action.LONGPRESS);
+ }
+ return true;
+ }
+
+ private boolean shouldPerformClick(View view) {
+ return !Launcher.getLauncher(view.getContext()).getWorkspace().isSwitchingState();
+ }
+
+ private void handleViewClick(View view, int action) {
+ handleViewClick(view);
+ Launcher.getLauncher(view.getContext()).getUserEventDispatcher()
+ .logActionOnControl(action, mControlType);
+ }
+
+ public abstract void handleViewClick(View view);
+} \ No newline at end of file