diff options
author | Tony Wickham <twickham@google.com> | 2019-04-25 14:22:54 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2019-04-25 14:22:54 -0700 |
commit | 03f27013bfcd30f697220b8e6315e76688dc0d3c (patch) | |
tree | 5447b7dc1424574387ffe98e0b7266b8689cd28f /src/com | |
parent | 1e4a43ac6730d6efb86d7a6c23eacc558371cadc (diff) | |
download | android_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.java | 9 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 9 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 8 |
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); |