summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2019-04-25 14:22:54 -0700
committerTony Wickham <twickham@google.com>2019-04-25 14:22:54 -0700
commit03f27013bfcd30f697220b8e6315e76688dc0d3c (patch)
tree5447b7dc1424574387ffe98e0b7266b8689cd28f /src/com
parent1e4a43ac6730d6efb86d7a6c23eacc558371cadc (diff)
downloadandroid_packages_apps_Trebuchet-03f27013bfcd30f697220b8e6315e76688dc0d3c.tar.gz
android_packages_apps_Trebuchet-03f27013bfcd30f697220b8e6315e76688dc0d3c.tar.bz2
android_packages_apps_Trebuchet-03f27013bfcd30f697220b8e6315e76688dc0d3c.zip
Log undo button click
Also fix a bug where we logged workspace swipe upon clicking undo, since rebinding the pages causes us to reset mCurrentPage = 0 followed by setCurrentPage(pageBoundFirst). Since the page isn't actually visibly changing, we shouldn't log in that case. Bug: 118758133 Change-Id: Ie87164a8c7c278680f67dee75657210bd33408a4
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/DeleteDropTarget.java9
-rw-r--r--src/com/android/launcher3/Launcher.java9
-rw-r--r--src/com/android/launcher3/PagedView.java8
3 files changed, 19 insertions, 7 deletions
diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java
index 8cbad20b5..3347b2aef 100644
--- a/src/com/android/launcher3/DeleteDropTarget.java
+++ b/src/com/android/launcher3/DeleteDropTarget.java
@@ -16,6 +16,9 @@
package com.android.launcher3;
+import static com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch.TAP;
+import static com.android.launcher3.userevent.nano.LauncherLogProto.ControlType.UNDO;
+
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -121,8 +124,12 @@ public class DeleteDropTarget extends ButtonDropTarget {
int itemPage = mLauncher.getWorkspace().getCurrentPage();
onAccessibilityDrop(null, item);
ModelWriter modelWriter = mLauncher.getModelWriter();
+ Runnable onUndoClicked = () -> {
+ modelWriter.abortDelete(itemPage);
+ mLauncher.getUserEventDispatcher().logActionOnControl(TAP, UNDO);
+ };
Snackbar.show(mLauncher, R.string.item_removed, R.string.undo,
- modelWriter::commitDelete, () -> modelWriter.abortDelete(itemPage));
+ modelWriter::commitDelete, onUndoClicked);
}
}
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index d790c047c..1223787bd 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -75,6 +75,8 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.animation.OvershootInterpolator;
import android.widget.Toast;
+import androidx.annotation.Nullable;
+
import com.android.launcher3.DropTarget.DragObject;
import com.android.launcher3.accessibility.LauncherAccessibilityDelegate;
import com.android.launcher3.allapps.AllAppsContainerView;
@@ -150,9 +152,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.function.Predicate;
-import androidx.annotation.IdRes;
-import androidx.annotation.Nullable;
-
/**
* Default launcher application.
*/
@@ -2198,7 +2197,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
InstallShortcutReceiver.FLAG_LOADER_RUNNING, this);
// When undoing the removal of the last item on a page, return to that page.
- mWorkspace.setCurrentPage(pageBoundFirst);
+ // Since we are just resetting the current page without user interaction,
+ // override the previous page so we don't log the page switch.
+ mWorkspace.setCurrentPage(pageBoundFirst, pageBoundFirst /* overridePrevPage */);
TraceHelper.endSection("finishBindingItems");
}
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index abb45e51d..3a02b073e 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -300,10 +300,14 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
return page;
}
+ public void setCurrentPage(int currentPage) {
+ setCurrentPage(currentPage, INVALID_PAGE);
+ }
+
/**
* Sets the current page.
*/
- public void setCurrentPage(int currentPage) {
+ public void setCurrentPage(int currentPage, int overridePrevPage) {
if (!mScroller.isFinished()) {
abortScrollerAnimation(true);
}
@@ -312,7 +316,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
if (getChildCount() == 0) {
return;
}
- int prevPage = mCurrentPage;
+ int prevPage = overridePrevPage != INVALID_PAGE ? overridePrevPage : mCurrentPage;
mCurrentPage = validateNewPage(currentPage);
updateCurrentPageScroll();
notifyPageSwitchListener(prevPage);