diff options
author | Jon Miranda <jonmiranda@google.com> | 2016-10-05 14:08:11 -0700 |
---|---|---|
committer | Jon Miranda <jonmiranda@google.com> | 2016-10-05 15:22:23 -0700 |
commit | f3e35d93318190f995e6a0fc9d0441ac844b67e4 (patch) | |
tree | a55eaf19ba1cebd1a28623538f898929ab1554f0 /src/com/android/launcher3/OverviewButtonClickListener.java | |
parent | cc3f3349f46c4cfddbd1b7748b2f1414f31a0a7f (diff) | |
download | android_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.java | 51 |
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 |