diff --git a/Android.bp b/Android.bp
index e132854..4265a44 100644
--- a/Android.bp
+++ b/Android.bp
@@ -19,6 +19,7 @@
         "androidx.test.runner",
         "androidx.test.rules",
         "androidx.test.uiautomator_uiautomator",
+        "androidx.preference_preference",
         "SystemUISharedLib",
     ],
     srcs: [
diff --git a/CleanSpec.mk b/CleanSpec.mk
index f7bda94..489abd1 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -52,6 +52,7 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/Launcher2.apk)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Launcher2_intermediates)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/Launcher2.apk)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/Launcher3QuickStep)
 
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/product/priv-app/Launcher3)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/product/priv-app/Launcher3Go)
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/buglist.txt b/buglist.txt
new file mode 100644
index 0000000..382ccfd
--- /dev/null
+++ b/buglist.txt
@@ -0,0 +1,38 @@
+160759508
+144170434
+144170434
+161801331
+162564471
+160361464
+161901771
+160568387
+162623012
+162012217
+160718310
+160361464
+160718310
+162012217
+160748731
+154951045
+162861289
+149934536
+149934536
+144170434
+144170434
+162454040
+161273376
+149934536
+149934536
+158701272
+162871508
+149934536
+161939759
+154964045
+161536946
+149934536
+161685099
+162812884
+162480567
+162480567
+149934536
+149934536
diff --git a/buglist_unique.txt b/buglist_unique.txt
new file mode 100644
index 0000000..d33f4f1
--- /dev/null
+++ b/buglist_unique.txt
@@ -0,0 +1,24 @@
+144170434
+149934536
+154951045
+154964045
+158701272
+160361464
+160568387
+160718310
+160748731
+160759508
+161273376
+161536946
+161685099
+161801331
+161901771
+161939759
+162012217
+162454040
+162480567
+162564471
+162623012
+162812884
+162861289
+162871508
diff --git a/buglist_with_title.txt b/buglist_with_title.txt
new file mode 100644
index 0000000..aa8b413
--- /dev/null
+++ b/buglist_with_title.txt
@@ -0,0 +1,24 @@
+144170434  twickham  P1        FIXED   Improve Overview ->  Home transition ----
+149934536  twickham  P2        FIXED   Update gesture nav pullback logic ----
+154951045  peanutbutter  P1        FIXED   Odd animation occuring at times when swiping to home ----
+154964045  awickham  P2        FIXED   "Clear all" text is not in the middle of app's window vertically ----
+158701272  twickham  P4        FIXED   Discontinuities when long-swiping to home ----
+160361464  tracyzhou  P2        FIXED   Place launcher above the target app in live tile mode ----
+160568387  twickham  P2        FIXED   Can't get to app switcher by swiping up (motion pause not detected) ----
+160718310  xuqiu     P1        FIXED   With "Select" overview action selected, App icon is missing in other overview apps after orientation change ----
+160748731  sunnygoyal  P2        ASSIGNED  Unify prediction model with Launcher model ----
+160759508  twickham  P2        FIXED   Swipe up cannot back to home screen in overview. ----
+161273376  xuqiu     P2        FIXED   [Overview Actions] Add logging and helpful messages ----
+161536946  twickham  P2        FIXED   Haptics don't indicate snap-to in overview,  ----
+161685099  winsonc   P2        FIXED   Screen still stay at the quick settings/notification when I swipe up with 3 finger to check the all apps. ----
+161801331  hyunyoungs  P2        FIXED   Change AllAppsSearch plugin to support only data fetch ----
+161901771  xuqiu     P1        FIXED   Overlapping layer of highlights with app layout getting darker when keep rotating the device from "Feedback" viewpoint in split screen ----
+161939759  sunnygoyal  P2        FIXED   RD1A: Going to overview in landscape mode clips the screen content ----
+162012217  perumaal  P2        ASSIGNED  Leaked Activity Caused by Gleams ----
+162454040  bookatz   P2        ASSIGNED  Create multiuser test that checks that opening an app works properly ----
+162480567  sfufa     P4        FIXED   Enable Item Decorations for search items ----
+162564471  tracyzhou  P2        FIXED   [Live tile] Handle tapping overview actions in live tile mode ----
+162623012  zakcohen  P1        ASSIGNED  Enable chips flag ----
+162812884  winsonc   P2        ASSIGNED  [R]The color have not changed in some page after turning on the dark theme. ----
+162861289  hyunyoungs  P2        FIXED   Add FocusIndicator support to DEVICE_SEARCH feature in S ----
+162871508  sfufa     P2        ASSIGNED  Introduce support for Hero app section ----
diff --git a/commitlist.txt b/commitlist.txt
new file mode 100644
index 0000000..e8eb105
--- /dev/null
+++ b/commitlist.txt
@@ -0,0 +1,1133 @@
+[34mCOMMAND>> git log 23bb2d1a4d632c46ed42b22808c052b19365fcb4..532b962a034762b231c0fbb95e145459897e45d5(B[m
+commit 532b962a034762b231c0fbb95e145459897e45d5
+Merge: 87be28a67 107fe60f6
+Author: Tony Wickham <twickham@google.com>
+Date:   Sat Aug 15 00:20:36 2020 +0000
+
+    resolve merge conflicts of 107fe60f6ef5b3336ece35122650d9ccc1c69913 to ub-launcher3-master
+    
+    Change-Id: I9a1c52e66edd627fd54cc3cb423fa28a6175f8ac
+
+commit 87be28a67b12c5b12a89155c794c0ddd438e8750
+Merge: 4fedc4e58 d844fe758
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Aug 14 23:47:44 2020 +0000
+
+    Merge "Remove ENABLE_OVERVIEW_ACTIONS flag, defaulting to true" into ub-launcher3-master
+
+commit 4fedc4e583fd5b6edcd4ea9b66d4c32991f04867
+Merge: 4fb5f74bb 6c1a88f17
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Aug 14 23:00:09 2020 +0000
+
+    [automerger skipped] Merge "Track OverviewToHomeAnim with StateManager" into ub-launcher3-rvc-qpr-dev am: 6c1a88f172 -s ours
+    
+    am skip reason: Change-Id I5348565b9e705d8ffba39818dde9efe82b16bb7a with SHA-1 4fb5f74bb4 is in history
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12352271
+    
+    Change-Id: I2a164ac97082a33bd8e859d6fb3f40d338996304
+
+commit d844fe758c880447bff8708646ecfcd92e98ba06
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Aug 13 19:33:26 2020 -0700
+
+    Remove ENABLE_OVERVIEW_ACTIONS flag, defaulting to true
+    
+    We no longer support the "peeking" model where the shelf would
+    peek on motion pause from an app and overview would peek on motion
+    pause from home. Thus, removed/inlined the following:
+    - FlingAndHoldTouchController (merged into its sole subclass
+      NoButtonNavbarToOverviewTouchController)
+    - ShelfPeekAnim
+    - OverviewPeekState
+    
+    Change-Id: I066a3ad2636fde4786089c922b896bf1e03361fd
+
+commit 107fe60f6ef5b3336ece35122650d9ccc1c69913
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Aug 12 12:30:00 2020 -0700
+
+    Ensure we clearState() when going to Overview from home
+    
+    We need to do this before potentially starting another
+    interaction during the animation, or we could end up in
+    an inconsistent state.
+    
+    Fixes: 160759508
+    Change-Id: Ia28dceddcc258679fc0b968f5a83fae5ef3f5acb
+
+commit 6c1a88f1720a102d8a3ef94073754b7cd163d6a8
+Merge: 20983ae1f 9dfcc316c
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Aug 14 22:45:17 2020 +0000
+
+    Merge "Track OverviewToHomeAnim with StateManager" into ub-launcher3-rvc-qpr-dev
+
+commit 9dfcc316c1519978e49462707ba36156d7abb2e5
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 18:33:01 2020 -0700
+
+    Track OverviewToHomeAnim with StateManager
+    
+    This way we mark the the current state as NORMAL at the start of
+    the animation, and cancel it as part of other state transitions.
+    This allows us to interact with launcher (e.g. to go to all apps
+    or pull down the notification shade) during the animation.
+    
+    Also use OverviewToHomeAnim from RecentsView#startHome() to
+    ensure the animation is consistent, e.g. doesn't fade out
+    RecentsView, scrolls to page 1, etc.
+    
+    Bug: 144170434
+    Change-Id: I5348565b9e705d8ffba39818dde9efe82b16bb7a
+    Merged-In: I5348565b9e705d8ffba39818dde9efe82b16bb7a
+
+commit 4fb5f74bb4884794a1a5f08f62092f7f63c2d05b
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 18:33:01 2020 -0700
+
+    Track OverviewToHomeAnim with StateManager
+    
+    This way we mark the the current state as NORMAL at the start of
+    the animation, and cancel it as part of other state transitions.
+    This allows us to interact with launcher (e.g. to go to all apps
+    or pull down the notification shade) during the animation.
+    
+    Also use OverviewToHomeAnim from RecentsView#startHome() to
+    ensure the animation is consistent, e.g. doesn't fade out
+    RecentsView, scrolls to page 1, etc.
+    
+    Bug: 144170434
+    Change-Id: I5348565b9e705d8ffba39818dde9efe82b16bb7a
+
+commit 1ae2937f7527517eafcf79071b4547800c1daad4
+Merge: 5fb83a47f 8cac927bd
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Aug 14 19:34:50 2020 +0000
+
+    Merge "Hookup existing AllAppsSearchPlugin interface to SearchBarController Bug: 161801331" into ub-launcher3-master
+
+commit 5fb83a47f292df4be2f55380caac65e36048052d
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Mon Aug 10 10:50:36 2020 -0700
+
+    Removing icon recents version
+    
+    Change-Id: Ibdc88715e38590cedf8a7b5174061bb2c6ef9533
+
+commit 8cac927bdb1054de643db86c918bb825f0860177
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Aug 14 00:11:36 2020 -0700
+
+    Hookup existing AllAppsSearchPlugin interface to SearchBarController
+    Bug: 161801331
+    
+    Change-Id: Ied575f78ad2139c6818ae5a13467b7399b9ab17a
+
+commit 8ad575e1e65c8a73b37abcd89062c22a27f0ad37
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Sat Aug 1 16:08:48 2020 -0700
+
+    Handle overview actions in Live Tile mode
+    
+    - Switch to screenshot and finish recents animation when an overview action is selected
+    
+    Fixes: 162564471
+    Test: Manual
+    Change-Id: I3db20619435d079bb39ce4cb37b46ea775416336
+
+commit 9a472fbd7dba66d756631ec98430b1da0fb9f00e
+Merge: a9f955173 81c0cac45
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Thu Aug 13 21:29:28 2020 +0000
+
+    Merge "[Live Tile] Place the target app back above Launcher when swipe up end target is home" into ub-launcher3-master
+
+commit a9f955173239fb734da22bd56cd0c2178a72213d
+Merge: 895ece297 a310e9c03
+Author: Andy Wickham <awickham@google.com>
+Date:   Thu Aug 13 19:22:12 2020 +0000
+
+    Merge "Refactors LauncherPreviewRenderer to better support subclassing." into ub-launcher3-master
+
+commit 895ece297d748291fcd7b3b429511729e64a1bb2
+Merge: ba9415162 20983ae1f
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 18:57:49 2020 +0000
+
+    Merge "[Overview Actions] Reset the modal task view when rotate from select mode." into ub-launcher3-rvc-qpr-dev am: 20983ae1f8
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12366024
+    
+    Change-Id: I3fec240a659c5a1c80bf4f78aca1af6ace270e27
+
+commit 20983ae1f8a5896f15cbee61397c554990e6bf58
+Merge: 2ddbe127f ba6fec3ea
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 18:42:46 2020 +0000
+
+    Merge "[Overview Actions] Reset the modal task view when rotate from select mode." into ub-launcher3-rvc-qpr-dev
+
+commit ba9415162cf2b3c0f46d4c252e50bafcd853616a
+Merge: 58a1689ce 59d04e6ea
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 18:17:41 2020 +0000
+
+    Merge "Use system VelocityTracker instead of forking least squares algorithm" into ub-launcher3-master
+
+commit 58a1689cef9f638467cb4dc9835bb6a92d704ce3
+Merge: 9529b95e0 2ddbe127f
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 18:05:50 2020 +0000
+
+    Merge "Overview Actions - enable proactive actions flag." into ub-launcher3-rvc-qpr-dev am: 2ddbe127fb
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12286410
+    
+    Change-Id: I54898c6a1a47d271c8d18c17d24a5acb6e67fd1e
+
+commit 81c0cac4574915a6bf77955bbb74ecc1cde79c6f
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Thu Aug 13 11:01:15 2020 -0700
+
+    [Live Tile] Place the target app back above Launcher when swipe up end target is home
+    
+    Test: manual
+    Bug: 160361464
+    Change-Id: Ic2b332774fe3f25f36f0bfd2b5e6cf66fb1d09dd
+
+commit 2ddbe127fb69bd860fc4176893015b63474c6609
+Merge: f35053ad5 1e414d500
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 17:50:30 2020 +0000
+
+    Merge "Overview Actions - enable proactive actions flag." into ub-launcher3-rvc-qpr-dev
+
+commit 59d04e6ea69dc0c81fceab601194d8c0a6238fa0
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Aug 12 18:05:42 2020 -0700
+
+    Use system VelocityTracker instead of forking least squares algorithm
+    
+    Change-Id: I8e03cdd0942b9037054cd1955bdb6809c89f3ea2
+
+commit a310e9c035c87c4fc5b3d23bbcc70f11ffc48561
+Author: Andy Wickham <awickham@google.com>
+Date:   Mon Aug 10 17:04:40 2020 -0700
+
+    Refactors LauncherPreviewRenderer to better support subclassing.
+    
+    Basically this removes the inner class MainThreadRenderer, which
+    was only created and used for its populate() method in the parent's
+    getRenderedView() method. All methods and members of that subclass
+    are merged into the parent LauncherPreviewRenderer class, and
+    getRenderedView() simply inlines the previous populate() code.
+    
+    Other smaller changes:
+     - Extracted out shouldShowQsb() and shouldShowRealLauncherPreview()
+     - Disables search view and its children to prevent interaction
+    
+    Change-Id: I7d0cce73efbe022c16661a0ad66eefe5cb285641
+
+commit 9529b95e06a6ab91650f373d5a335b6bc090ce77
+Merge: 72385839e f35053ad5
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 02:25:50 2020 +0000
+
+    Merge "Store mHistoricTimes as longs intead of floats" into ub-launcher3-rvc-qpr-dev am: f35053ad58
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12365858
+    
+    Change-Id: I3c21d9d47a525e9c975c6acf38c99a2f1668359c
+
+commit f35053ad588974b4daf37fa19866e416b880360d
+Merge: 30fe240f9 a14567096
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 02:10:20 2020 +0000
+
+    Merge "Store mHistoricTimes as longs intead of floats" into ub-launcher3-rvc-qpr-dev
+
+commit 72385839ed9038607e186c198ce31a54c52778a4
+Merge: 635c08095 30fe240f9
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 01:01:07 2020 +0000
+
+    Merge "TaskOverlayFactory - remove static factory." into ub-launcher3-rvc-qpr-dev am: 30fe240f99
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12353636
+    
+    Change-Id: Ic165b6184f4f36b5956493d3880a9d93ad27a0d6
+
+commit 30fe240f99f38dfb81a6075b8ab2b0ed436afb75
+Merge: cbe1fc063 cf8275438
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 13 00:47:34 2020 +0000
+
+    Merge "TaskOverlayFactory - remove static factory." into ub-launcher3-rvc-qpr-dev
+
+commit ba6fec3eaeb2087428c8e33826429d72ad0290cf
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Wed Aug 12 17:17:00 2020 -0700
+
+    [Overview Actions] Reset the modal task view when rotate from select mode.
+    
+    Test: local
+    Bug: 161901771
+    Change-Id: I103e59ad68874db7fcb39556764d315983ac047c
+
+commit 635c08095a9057cce7e25952c0f5d5b12a7903d7
+Merge: 93caa9310 cbe1fc063
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Thu Aug 13 00:12:20 2020 +0000
+
+    Merge "Overscroll plugin - give the plugin its own factory." into ub-launcher3-rvc-qpr-dev am: cbe1fc063d
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12353635
+    
+    Change-Id: Ia471594443d1b744c5c34f0c9c45e7191bbf7938
+
+commit a14567096922f23d6e03c84fc930e3451e7471c2
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Aug 12 16:48:33 2020 -0700
+
+    Store mHistoricTimes as longs intead of floats
+    
+    The loss of precision was causing us to miscalculate the age of
+    events, and thus not detecting any pause due to denominator = 0.
+    
+    Test: have a device that hasn't been rebooted for a certain
+    amount of time such that SystemClock#uptimeMillis can't be
+    accurately converted to a float, then try to swipe up and hold
+    
+    Fixes: 160568387
+    Change-Id: Idef112187f34a18feea7e6a0b77258626f9d0ed4
+
+commit cbe1fc063d924b2c68a2de8929687baab06439df
+Merge: 9367f9834 fac874152
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Wed Aug 12 23:58:38 2020 +0000
+
+    Merge "Overscroll plugin - give the plugin its own factory." into ub-launcher3-rvc-qpr-dev
+
+commit 93caa93102df1b84e8b8d66fe7ca63e8950e4a6f
+Merge: 74f218530 9367f9834
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Wed Aug 12 23:43:10 2020 +0000
+
+    [automerger skipped] [Overview Actions] Set launcher state to Overview when rotate in recents. am: 9367f98348 -s ours
+    
+    am skip reason: Change-Id I73f498151d7cc6a9db9d352549124c9d550ae6f2 with SHA-1 cb956ff4f5 is in history
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12354807
+    
+    Change-Id: I02f43e3ee9a7f0f1730b673be220055d72a07d81
+
+commit 74f218530e069c11b36cf4a2cfcc1b76726aea6b
+Merge: cb956ff4f fd58da6a7
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Aug 12 23:36:27 2020 +0000
+
+    Merge "Wrapping display properties in a wrapper class" into ub-launcher3-master
+
+commit 1e414d500591e88c027bfead4c0e456444dc5407
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Fri Jul 31 15:54:36 2020 -0700
+
+    Overview Actions - enable proactive actions flag.
+    
+    Bug: 162623012
+    Test: local
+    Change-Id: I343ae83601ebdab4dacc9f4611b069f87b5542eb
+
+commit cf82754384a26d2038ba1f13c0ecea57c0d3116d
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Tue Aug 11 16:17:41 2020 -0700
+
+    TaskOverlayFactory - remove static factory.
+    
+    Make the overlay factory a member of the recents view.
+    Before the factory was static. The factory has references to activity
+    objects so was causing leaks.
+    
+    Bug: 162012217
+    Tested: local, factory still works
+    Change-Id: I2283134f3008b630ba2056f07e65ac042957cdbd
+
+commit fd58da6a75b55eb2ef40dd53fc6135636812ac6a
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Aug 11 12:06:49 2020 -0700
+
+    Wrapping display properties in a wrapper class
+    
+    This would allow us to support gestures on multiple-displays
+    
+    Change-Id: I8f426bbdf04520f4189cadce2bde6aab4933c8d9
+
+commit cb956ff4f5adf0c4abb586940d9e89582a70bfd3
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Mon Aug 10 12:44:48 2020 -0700
+
+    [Overview Actions] Set launcher state to Overview when rotate in recents.
+    
+    Test: local
+    Bug: 160718310
+    
+    Change-Id: I73f498151d7cc6a9db9d352549124c9d550ae6f2
+
+commit 73f0c3698fe74bb051e0e65a523a2f750b1ba40d
+Merge: 53116c6cc d6c3315a6
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Wed Aug 12 16:53:23 2020 +0000
+
+    Merge "Only draw app below launcher for TaskViewSimulator at swipe up or in Overview" into ub-launcher3-master
+
+commit d6c3315a67980c90712103135bae302b86ee080e
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Tue Aug 11 22:46:22 2020 -0700
+
+    Only draw app below launcher for TaskViewSimulator at swipe up or in Overview
+    
+    Bug: 160361464
+    Test: Manual
+    Change-Id: Ic4d912f1656d87f445a8016640c0eb166cace0d5
+
+commit 9367f98348f9db5b5b6840b8003dd62c037d8be8
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Mon Aug 10 12:44:48 2020 -0700
+
+    [Overview Actions] Set launcher state to Overview when rotate in recents.
+    
+    Test: local
+    Bug: 160718310
+    
+    Change-Id: I73f498151d7cc6a9db9d352549124c9d550ae6f2
+    Merged-In: I73f498151d7cc6a9db9d352549124c9d550ae6f2
+
+commit fac87415221447f8f47ef4a88d187b7e175a6296
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Mon Aug 10 15:51:45 2020 -0700
+
+    Overscroll plugin - give the plugin its own factory.
+    
+    Separate out the overscroll plugin from the task overlay.
+    These two classes aren't really related.
+    
+    Bug: 162012217
+    Tested: checked plugin still works
+    Change-Id: Id89eff1ad2ae9766efaaecd8cfc66d6521b9ca8c
+
+commit 53116c6cc84236ac49064efa9988f92b5b558599
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Aug 7 16:32:18 2020 -0700
+
+     Simplifying InstallShortcutReceiver
+    
+    > Removing support for legacy shortcuts (with embedded icon)
+    > Unifying pattern for storing the data in prefs
+    
+    Change-Id: Ife250807c7ce5337969d25444ee23c751bc2a487
+
+commit b313f71615c64c8022f587ef3c4ebd34bfdc6171
+Merge: 762d06136 2104d72b2
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Aug 11 21:44:37 2020 +0000
+
+    Merge "LauncherInstrumentation enables even when non-system user" into ub-launcher3-master
+
+commit 762d06136cc7c91afe8cdfdac5426b58c174edd8
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Wed Jul 29 15:03:46 2020 -0700
+
+    Caching last predictions and loading it with model
+    
+    Adding support for persisting itemInfos on disk. This uses
+    a separate xml file. Unlike prefs, it does not keep the items
+    in memory and is just a wraper over reading/writing a file.
+    
+    Bug: 160748731
+    Change-Id: Iaccab9928ab8f30127fb3c2d630ca8ca83f0bd05
+
+commit d62e797d1834306ec394ebf64f4c84939f033d97
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Aug 11 12:10:36 2020 -0700
+
+    Disabling debug log as the associated bug is closed
+    
+    Bug: 154951045
+    Change-Id: I2e503c6d2f0a9f694ee1f88167924114fe495c2f
+
+commit 1bdb8f0efc73419b114074375126883162f4c838
+Merge: 3003e57d1 66aead7d2
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Aug 11 18:57:13 2020 +0000
+
+    Merge "Removing some obsolete methods and wrapper" into ub-launcher3-master
+
+commit 3003e57d1714ba7016c89e520f11aebe83b71b7d
+Merge: fe9b7e37a 5dd045bec
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Tue Aug 11 17:56:59 2020 +0000
+
+    Merge "Handle IME selection focus for ENABLE_DEVICE_SEARCH" into ub-launcher3-master
+
+commit 5dd045bec67ca12a3de4b4adc88a92a0166c0f50
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Tue Aug 4 22:22:49 2020 -0700
+
+    Handle IME selection focus for ENABLE_DEVICE_SEARCH
+    
+    Bug: 162861289
+    Change-Id: I15e4eae09be2aa9f89a5157fd74c95e91e64bc53
+
+commit fe9b7e37a801135f959e03ecf26ee454a24d6f8e
+Merge: b810c10bb e14b55c2a
+Author: Tony Wickham <twickham@google.com>
+Date:   Tue Aug 11 00:37:05 2020 +0000
+
+    [automerger skipped] Merge "Don't reapply window transform if we are already running a window anim" into ub-launcher3-rvc-qpr-dev am: e14b55c2a9 -s ours
+    
+    am skip reason: Change-Id I3fa7f0b2581ca83923a42f37f52850b02c22e995 with SHA-1 c830bef923 is in history
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12346435
+    
+    Change-Id: I35f6f3572754e49626c7a09b832aecf114413bd7
+
+commit e14b55c2a94a255750bca8b2fa4e068fcbeba0cc
+Merge: b460ff1ef 06513f11c
+Author: Tony Wickham <twickham@google.com>
+Date:   Tue Aug 11 00:19:28 2020 +0000
+
+    Merge "Don't reapply window transform if we are already running a window anim" into ub-launcher3-rvc-qpr-dev
+
+commit b810c10bb90a2bae5adf02b7050dcb595f383707
+Merge: 9fc65cb0b b55f7591e
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 23:55:24 2020 +0000
+
+    Merge "Ensure that the task is always clipped to match the tile aspect ratio" into ub-launcher3-master
+
+commit 9fc65cb0b79e6d87098aa72aeaadb425619dd656
+Merge: c830bef92 b460ff1ef
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 23:02:20 2020 +0000
+
+    Merge "Fix TaskViewTouchController success progress to match haptic" into ub-launcher3-rvc-qpr-dev am: b460ff1ef1
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12321076
+    
+    Change-Id: Ic4317b94cca7d760d23da0c1c115d422236586e7
+
+commit b460ff1ef1f7fac734f1d0411fd7284e6c1eea7b
+Merge: 03a4a0cd5 b8b3e957a
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 22:46:03 2020 +0000
+
+    Merge "Fix TaskViewTouchController success progress to match haptic" into ub-launcher3-rvc-qpr-dev
+
+commit b55f7591ed2fee28e1c2a4059d19d2f069185cf5
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Mon Aug 10 15:08:36 2020 -0700
+
+    Ensure that the task is always clipped to match the tile aspect ratio
+    
+    Instead of trying to estimate the insets, we clip the task such it is
+    restricted within the task insets when possible.
+    
+    Change-Id: If160115fda07dfd2e01e96d41e4b5dc43a77ac94
+
+commit 06513f11c2304a371a7c79cec371562d65393322
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 15:06:02 2020 -0700
+
+    Don't reapply window transform if we are already running a window anim
+    
+    Bug: 149934536
+    Change-Id: I3fa7f0b2581ca83923a42f37f52850b02c22e995
+    Merged-In: I3fa7f0b2581ca83923a42f37f52850b02c22e995
+
+commit c830bef923200e97ad8d0ef9bf37d0c121d7e56d
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 15:06:02 2020 -0700
+
+    Don't reapply window transform if we are already running a window anim
+    
+    Bug: 149934536
+    Change-Id: I3fa7f0b2581ca83923a42f37f52850b02c22e995
+
+commit cf5aea05b3888ea0adc8a53fad62987405206eeb
+Merge: 2fe0d5f71 03a4a0cd5
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 21:29:00 2020 +0000
+
+    Update overview from home transitions am: 03a4a0cd53
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12184426
+    
+    Change-Id: Iac33ad0742264a97e754a1cc4336ed3ab727944a
+
+commit 2fe0d5f71ded4537c42d07df1464a71daf27e047
+Merge: a2c6c9737 90751820d
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 21:08:54 2020 +0000
+
+    Merge "Add back code missing from upstream merge" into ub-launcher3-master
+
+commit 03a4a0cd530c6d13f01882e81568ab1544030c12
+Author: Tony Wickham <twickham@google.com>
+Date:   Fri Jul 17 13:06:57 2020 -0700
+
+    Update overview from home transitions
+    
+    For both NoButtonNavbarToOverviewTouchController and
+    NavBarToHomeTouchController:
+    - Have consistent resistance applied such that RecentsView scales
+      down and translates up slightly (but not as much as from an app)
+    - Have consistent animation to home if you fling to that state
+      rather than stay in overview. This is handled by a new class,
+      OverviewToHomeAnim, which consolidates logic from NBTHTC and
+      overrides some interpolators such that RecentsView doesn't fade
+      out or translate downwards during the animation (it just slides
+      off the screen while the home animation plays).
+    
+    Also make overview actions not clickable when alpha == 0, so that
+    you can tap the hotseat/qsb during the transition from home to
+    overview.
+    
+    Bug: 144170434
+    Change-Id: Ic291f285ff2f63c477633c48d4fadb23cf70c28a
+
+commit 90751820d9ef8f09ece7aba656dfe881e3b149dd
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 13:11:43 2020 -0700
+
+    Add back code missing from upstream merge
+    
+    Change-Id: I7c2f08ed1b9c7462feabe1ad793af4ddc55aff1b
+
+commit a2c6c973749e1a67bcdbb33cb316c0ba467e3c6d
+Merge: c0ed292cc e6f9e0eb7
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 20:01:06 2020 +0000
+
+    Merge "Revert "Update overview from home transitions"" into ub-launcher3-master
+
+commit e6f9e0eb7ea49b0f2feae80d7a2d57fe9db5e38e
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 19:13:17 2020 +0000
+
+    Revert "Update overview from home transitions"
+    
+    This reverts commit f3bc79718201cf17479a46e9860ea518a900d68f.
+    
+    Reason for revert: updating upstream, need to wait to cherry-pick until that's approved
+    
+    Change-Id: I702286dba66fb4582ab682a5b0b8cd80ccebf346
+
+commit c0ed292ccbaa5b94bd3e54a85f5d7e9c1b2a1229
+Merge: cb4c4dea9 999e08f6f
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Aug 10 16:32:08 2020 +0000
+
+    Merge "Add swipe up resistance to quick switch from home" into ub-launcher3-rvc-qpr-dev am: 999e08f6ff
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12174364
+    
+    Change-Id: I6ce2dbb31ec8ed0d340165b2fc9a9f0532081d3e
+
+commit cb4c4dea95157c8bce1561bec6cd38daa57cec9e
+Merge: e54db4fbd 6bd1882ea
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 16:31:55 2020 +0000
+
+    Merge "[Overview Actions] Add a logging event for tapping images in select mode." into ub-launcher3-rvc-qpr-dev am: 6bd1882eae
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12336644
+    
+    Change-Id: I2dba3dda4d6ef8a8857e18708a96ebab9da30f20
+
+commit e54db4fbd4a293ecbe0c959aaae356472f9e8db6
+Merge: d72857950 2ace6a25d
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 16:31:44 2020 +0000
+
+    Merge "Fixing cutouts insets not clipped properly during swipeup for rotated activities" into ub-launcher3-rvc-qpr-dev am: 2ace6a25d2
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12327967
+    
+    Change-Id: I6e3f28e464a8ca63840a53f1b35c86cf377c4ad4
+
+commit d72857950461c1b82ce80f85bf359c050c0f0b0c
+Merge: f3bc79718 1a965c190
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 10 16:28:35 2020 +0000
+
+    Merge "resolve merge conflicts of 3a22956f0a6214285500ac040b4ae565d882cc47 to ub-launcher3-master" into ub-launcher3-master
+
+commit f3bc79718201cf17479a46e9860ea518a900d68f
+Author: Tony Wickham <twickham@google.com>
+Date:   Fri Jul 17 13:06:57 2020 -0700
+
+    Update overview from home transitions
+    
+    For both NoButtonNavbarToOverviewTouchController and
+    NavBarToHomeTouchController:
+    - Have consistent resistance applied such that RecentsView scales
+      down and translates up slightly (but not as much as from an app)
+    - Have consistent animation to home if you fling to that state
+      rather than stay in overview. This is handled by a new class,
+      OverviewToHomeAnim, which consolidates logic from NBTHTC and
+      overrides some interpolators such that RecentsView doesn't fade
+      out or translate downwards during the animation (it just slides
+      off the screen while the home animation plays).
+    
+    Also make overview actions not clickable when alpha == 0, so that
+    you can tap the hotseat/qsb during the transition from home to
+    overview.
+    
+    Bug: 144170434
+    Change-Id: Ic291f285ff2f63c477633c48d4fadb23cf70c28a
+
+commit 1a965c190d07140690602761c497495ad1875d03
+Merge: 70a556da1 3a22956f0
+Author: Tony Wickham <twickham@google.com>
+Date:   Sat Aug 8 19:12:11 2020 +0000
+
+    resolve merge conflicts of 3a22956f0a6214285500ac040b4ae565d882cc47 to ub-launcher3-master
+    
+    Change-Id: I2bb370e63d7206d52acb912d5b55a0f0c5f59c3d
+
+commit 999e08f6ffdcf2aa4eb3697cfd2c6c1488a72710
+Merge: 6bd1882ea d6a1063f2
+Author: Tony Wickham <twickham@google.com>
+Date:   Sat Aug 8 02:18:46 2020 +0000
+
+    Merge "Add swipe up resistance to quick switch from home" into ub-launcher3-rvc-qpr-dev
+
+commit 6bd1882eaec5c0571b78e47b58c524f1fcaae207
+Merge: 2ace6a25d 14e03d1c4
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Aug 8 00:53:33 2020 +0000
+
+    Merge "[Overview Actions] Add a logging event for tapping images in select mode." into ub-launcher3-rvc-qpr-dev
+
+commit 2ace6a25d2835eb6bfd7082456dda1a07e419930
+Merge: 3a22956f0 d00340f7a
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Aug 8 00:00:28 2020 +0000
+
+    Merge "Fixing cutouts insets not clipped properly during swipeup for rotated activities" into ub-launcher3-rvc-qpr-dev
+
+commit 66aead7d2cf426f64d06b573470d0658c858b1b3
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Aug 7 16:56:50 2020 -0700
+
+    Removing some obsolete methods and wrapper
+    
+    Change-Id: I9d3c8d851ad596ba0d5165ab3c0f6661575166fc
+
+commit 3a22956f0a6214285500ac040b4ae565d882cc47
+Merge: ce8b2b518 3af714f05
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Aug 7 23:44:37 2020 +0000
+
+    Merge "Remove overscroll on running task when it's not attached to RecentsView" into ub-launcher3-rvc-qpr-dev
+
+commit 2104d72b281ef4ee9f15aef333bd65a03f8f7eb4
+Author: Adam Bookatz <bookatz@google.com>
+Date:   Wed Jul 29 15:46:16 2020 -0700
+
+    LauncherInstrumentation enables even when non-system user
+    
+    Attempting to run a tapl test while the device is in a secondary user
+    currently fails because the test app doesn't get enabled for
+    this secondary user. We fix that (at least one issue with it) in this cl.
+    
+    Test: make PlatformScenarioTests; adb root && adb install -r -g ${ANDROID_PRODUCT_OUT}/testcases/PlatformScenarioTests/$(get_build_var TARGET_ARCH)/PlatformScenarioTests.apk
+    adb shell am instrument -w -r -e class android.platform.test.scenario.chrome.OpenApp android.platform.test.scenario/androidx.test.runner.AndroidJUnitRunner
+    (Do this while the current user is SYSTEM as well as Guest)
+    
+    Bug: 162454040
+    Change-Id: If6d8e545b41eb20e3fed2935c39069ce97d8b6cd
+
+commit 14e03d1c4d6c68e84f3f4d9867e0757562a78e4a
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Fri Aug 7 15:06:38 2020 -0700
+
+    [Overview Actions] Add a logging event for tapping images in select mode.
+    
+    Event IDs were generated by command line on my workstation by uieventscli.
+    Manually added to StatsLogManager.
+    
+    Test: local
+    Bug: 161273376
+    Change-Id: Iee36c450ddb207f87653a8da2355c720369caa34
+
+commit 70a556da1d02fa32218d8dfcd4f4105f090997d9
+Merge: 87805cd94 ce8b2b518
+Author: Tony Wickham <twickham@google.com>
+Date:   Fri Aug 7 20:22:52 2020 +0000
+
+    Add translation component to swipe up resistance am: ce8b2b5180
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12174363
+    
+    Change-Id: I18d7be49bb3bfc9f846c14a9138b5daf381e1d56
+
+commit d6a1063f258452b5f34dcad22dc416cc03c16dd4
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Jul 6 17:26:39 2020 -0700
+
+    Add swipe up resistance to quick switch from home
+    
+    Bug: 149934536
+    Change-Id: I1b355a16d972f94d541231449ef323a41861a3e6
+
+commit ce8b2b51800e42fc61c14f516ec563c3561b7adb
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Jul 1 17:25:28 2020 -0700
+
+    Add translation component to swipe up resistance
+    
+    Now recents view follows your finger all the way to the top of the
+    screen. Specifically, your finger tracks the bottom of the window
+    until resistance starts (when RecentsView is at 75% scale), then
+    we add translation to compensate for the slower rate of scaling
+    down, such that your finger slips to the top of the window by the
+    time it reaches the top of the screen.
+    
+    Also reset this translation back to 0 in the state handlers.
+    
+    Bug: 149934536
+    Fixes: 158701272
+    Change-Id: Iaee58da758d422f0173c29d002f5c451ce0c1809
+
+commit 87805cd9415b7cfb968c1785bbd9845aa4b9db9e
+Merge: 4ade3fd56 4a53c70c5
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Fri Aug 7 18:11:59 2020 +0000
+
+    Merge "Introduce support for Hero app Section" into ub-launcher3-master
+
+commit 4a53c70c5734f65d210c1b425549224acbe7c642
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Tue Aug 4 14:06:55 2020 -0700
+
+    Introduce support for Hero app Section
+    
+    [Video attached to bug report]
+    
+    Bug: 162871508
+    Test: Manual
+    Change-Id: Ia6f5621d6220f55e6fd5e56530853c267838442c
+
+commit 4ade3fd561e357744c41da715d4dfda65f2fee9e
+Merge: 8ccd877f4 3f20e33af
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Aug 7 00:10:05 2020 +0000
+
+    Merge "Fix adjacent page offset in landscape orientation" into ub-launcher3-rvc-qpr-dev am: 3f20e33af6
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12327711
+    
+    Change-Id: I8f2da96439372a9f6671469c3c41e4c0a43a4067
+
+commit 3f20e33af652f8ecdd729d3f861bf6d95e3f1fa0
+Merge: 3f8d86811 3b9d5843c
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Aug 6 23:52:04 2020 +0000
+
+    Merge "Fix adjacent page offset in landscape orientation" into ub-launcher3-rvc-qpr-dev
+
+commit 3b9d5843c94d042655d5d43a673cf2738f69c5f9
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Aug 6 15:04:51 2020 -0700
+
+    Fix adjacent page offset in landscape orientation
+    
+    Before, the adjacent tasks were coming in from the top and bottom
+    of the screen rather than the sides.
+    
+    Bug: 149934536
+    Change-Id: Id6e57dcbc1967d70869df06068d25717de116934
+
+commit d00340f7a24d11db58954298eb979e6c8ac0438f
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Thu Aug 6 14:28:13 2020 -0700
+
+    Fixing cutouts insets not clipped properly during swipeup
+    for rotated activities
+    
+    Bug: 161939759
+    Change-Id: Ia55f938fdc51e2813c205d7d13d5f1bf852c9bb2
+
+commit 8ccd877f424070dbf5bec170722d46cea40bf827
+Merge: 7f28b8814 17d0080cc
+Author: Andy Wickham <awickham@google.com>
+Date:   Thu Aug 6 19:37:35 2020 +0000
+
+    Merge "Adjusts Clear all to be vertically centered with the tasks." into ub-launcher3-master
+
+commit 17d0080cc32ed36df154f52f6cf2b5082e7e3c31
+Author: Andy Wickham <awickham@google.com>
+Date:   Tue Aug 4 19:51:26 2020 -0700
+
+    Adjusts Clear all to be vertically centered with the tasks.
+    
+    I made a sample task where the content of the app was
+    centered, and I added lines to demonstrate the center
+    while in Overview. As you can see, the center of the
+    app content is slightly different from the TaskView
+    in Recents - it seems part of the bottom of the app
+    gets removed when transitioning to Recents (for the
+    rounded corner radius or nav bar?). On Pixel 4, I
+    had to add 46dp of padding to the bottom line for it
+    to appear at the bottom of the screenshot in Recents.
+    
+    Screenshot: https://drive.google.com/file/d/1xzQNXWb0T0UGDhDS9Ov-AduM3nd-pfg8/view?usp=sharing
+    Before: https://drive.google.com/file/d/1ghN9VWP44XjcZkdmI106dy4_jB4Vs4J3/view?usp=sharing
+    
+    Rotating between landscape and portrait:
+    https://drive.google.com/file/d/1OD5aKT9LCE5w950-6AaHfWXU4sLyW3Qe/view?usp=sharing
+    
+    Fixes: 154964045
+    Change-Id: I594057e3b5df58c5a907b6ca14daa700d5011b7b
+
+commit b8b3e957a6049ba0cd3ed48623a1666bae80b25e
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Aug 5 18:43:53 2020 -0700
+
+    Fix TaskViewTouchController success progress to match haptic
+    
+    We use the interpolated progress of the animation contoller target
+    to determine success, but only the child animation had the
+    interpolator set. Updating the parent to use the same interpolator
+    ensures getInterpolatedProgress() returns the same one used to
+    play the haptic.
+    
+    Fixes: 161536946
+    Change-Id: Ibc2aef67f53efa01f2b185cf03140bad4bb5c421
+
+commit 3af714f052d183aa31f22eee3afeecb94ec552db
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Aug 5 13:32:37 2020 -0700
+
+    Remove overscroll on running task when it's not attached to RecentsView
+    
+    This allows the running task to follow the finger freely until motion
+    pause is detected (or when trying to quick switch in a direciton that
+    has no tasks, as RecentsView is still attached until you swipe up).
+    
+    Bug: 149934536
+    Change-Id: If68166e962af9f28c56017838f720e15ddb96560
+
+commit 7f28b8814bbd8c5b09068eeba44026ff3da10551
+Merge: e7c1769e3 77ca1e4c4
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Aug 5 19:44:57 2020 +0000
+
+    Merge "Moving data sanitization to the end, as it need not block the loading" into ub-launcher3-master
+
+commit e7c1769e30bfed7caa33816a5cd9d61447d75745
+Merge: c226adb38 f8e9b467a
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Wed Aug 5 17:42:43 2020 +0000
+
+    Merge "Revert "Finish recents animation when launching another task in Overview"" into ub-launcher3-master
+
+commit c226adb384d11bf88cf60efdd54d324bd4d1f762
+Merge: b3d7ecc15 3f8d86811
+Author: Winson Chung <winsonc@google.com>
+Date:   Wed Aug 5 06:02:28 2020 +0000
+
+    Defer recreation until resumed am: 3f8d868110
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12309024
+    
+    Change-Id: I814a6cab9046b82d66426fbe19636087cfd3e2b6
+
+commit b3d7ecc15b3be086b67d2e0b1a8360ab2d2ab74b
+Merge: 8aaafc918 dd15acea8
+Author: Winson Chung <winsonc@google.com>
+Date:   Wed Aug 5 05:49:31 2020 +0000
+
+    Merge "Close system dialogs when opening all apps from system action" into ub-launcher3-master
+
+commit dd15acea87875d6d7a0d388e7ddfb283c8fd2a71
+Author: Winson Chung <winsonc@google.com>
+Date:   Tue Aug 4 15:52:01 2020 -0700
+
+    Close system dialogs when opening all apps from system action
+    
+    Bug: 161685099
+    Change-Id: I67313340102816828a95e8f9e7d8fa19b4ca3c55
+
+commit 8aaafc9186039181ad753020e8c668e7457ce453
+Merge: 60096e990 f66f2f66c
+Author: Jason Chang <jasonsfchang@google.com>
+Date:   Wed Aug 5 04:28:29 2020 +0000
+
+    Merge "Refactoring One-Handed feature flag and others" into ub-launcher3-master
+
+commit 77ca1e4c40a98b048905e021d94eab154a637455
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Aug 4 17:28:46 2020 -0700
+
+    Moving data sanitization to the end, as it need not block
+    the loading
+    
+    Change-Id: If1a966e546127efafd0afd7e3ca771f63a1fa544
+
+commit f8e9b467ae11de1d307f5d77c36ff8002e66255d
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Tue Aug 4 21:57:14 2020 +0000
+
+    Revert "Finish recents animation when launching another task in Overview"
+    
+    This reverts commit e62eaa16b360433e35b4e4655e16c312a7bfd110.
+    
+    Reason for revert: No longer necessary
+    
+    Change-Id: I9ed533147ac5546b7da6c9e3a51f5a7e6c8ef8e6
+
+commit 3f8d868110b426e40e09ece8b305fd84c1dde60c
+Author: Winson Chung <winsonc@google.com>
+Date:   Tue Aug 4 14:01:27 2020 -0700
+
+    Defer recreation until resumed
+    
+    - Temporarily work around issue with activity recreation while started
+      but not resumed by deferring recreating the activity on theme
+      change until after launcher has resumed.
+    
+    Bug: 162812884
+    Test: Switch dark mode via QuickSettings, Settings
+    Test: Change system theme
+    Change-Id: Ifbc0d538907a30d6b23176cd67353a81b6f8c617
+
+commit 60096e990aba5dd2daf88a31a78c185df19fe111
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Tue Aug 4 11:19:21 2020 -0700
+
+    Remove mFilteredApps
+    
+    Currently, we are maintaining a list of appInfos to report the number of Accessibility recycler-view items. This could be done by maintaining an int.
+    
+    Bug: 162480567
+    Test: Manual
+    Change-Id: I9de8e1d4ac6e1a674d1e19b591dedad0dd4cc536
+
+commit e8bea3ea7a7a2370f1effc75a674e7510264b999
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Thu Jul 30 02:12:10 2020 -0700
+
+    Allow search results decoration [part 2/3]
+    
+    [Video attached to bug report]
+    
+    Bug: 162480567
+    Test: Manual
+    Change-Id: Iff285abde5b2a3f3f3a63e7318020cfe7572af49
+
+commit f66f2f66cf130d48a0c8897628655fd2310a1358
+Author: Jason Chang <jasonsfchang@google.com>
+Date:   Tue Aug 4 19:56:39 2020 +0800
+
+    Refactoring One-Handed feature flag and others
+    
+    Purify some conditions for reducing redundancy codes.
+    
+    Test: manual
+    Change-Id: I2f39207424f9db3fb6b12bc08bee525f3dfab0aa
+
+commit ab98166c36f2955359ccdf31defe0678f66bdd99
+Author: Raman Tenneti <rtenneti@google.com>
+Date:   Mon Aug 3 12:54:21 2020 -0700
+
+    AOSP/Launcher3 - Update language to comply with Android's inclusive language guidance.
+    
+    See https://source.android.com/setup/contribute/respectful-code for reference
+    
+    BUG=161896447
+    
+    Test: make and Presubmit verify.
+    
+    Change-Id: I44e903046dd4cd9c7c07872fc56a8d552eb09522
+
+commit 12e59e9a66882d67687739cfd5be81e9beae790e
+Merge: cb89edcbc ffc06198f
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 3 23:04:08 2020 +0000
+
+    [automerger skipped] Merge "Rewrite long swipe resistance ("pullback") logic" into ub-launcher3-rvc-qpr-dev am: ffc06198ff -s ours
+    
+    am skip reason: Change-Id Ib0f9da18e10cc9ddf1a2f82ed767f237c89d3a41 with SHA-1 03c38c5c66 is in history
+    
+    Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12174362
+    
+    Change-Id: Ie0fc8684a14ce7ea9730e7160551adbc2bc4b97c
+
+commit cb89edcbcc8fbbee1ddd074500fe26db01b06789
+Merge: 03c38c5c6 eaf7a9554
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 3 22:24:14 2020 +0000
+
+    Merge "Changing minimum supported Launcher version to 26" into ub-launcher3-master
+
+commit ffc06198ff041bd1496ba59b1a5c12922d630fc1
+Merge: bf8472585 354a436f4
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Aug 3 22:11:30 2020 +0000
+
+    Merge "Rewrite long swipe resistance ("pullback") logic" into ub-launcher3-rvc-qpr-dev
+
+commit 354a436f4e96d2ae12740cb1af16b97c37166321
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Jun 25 15:51:33 2020 -0700
+
+    Rewrite long swipe resistance ("pullback") logic
+    
+    - Rename "pullback" to "resistance" to reduce confusion.
+    - Remove mDragLengthFactorStartPullback & mDragLengthFactorMaxPullback
+    - Add AnimatorControllerWithResistance, which has 2 controllers, one
+      for the normal shift to overview, then one to apply the resistance
+      when swiping beyond that.
+    - Don't hack animator interpolators/progress; insteaad, allow progress
+      to go > 1 (which will run the separate resistance animator).
+    - Don't start launcher controller separately from window controller;
+      instead, both are controlled by mCurrentShift in updateFinalShift().
+    - The resistance animation logic is shared by both the active window
+      and launcher (RecentsView).
+    
+    Bug: 149934536
+    Change-Id: Ib0f9da18e10cc9ddf1a2f82ed767f237c89d3a41
+    Merged-In: Ib0f9da18e10cc9ddf1a2f82ed767f237c89d3a41
+
+commit 03c38c5c665b08acb8d817bedc3ff78120f879da
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Jun 25 15:51:33 2020 -0700
+
+    Rewrite long swipe resistance ("pullback") logic
+    
+    - Rename "pullback" to "resistance" to reduce confusion.
+    - Remove mDragLengthFactorStartPullback & mDragLengthFactorMaxPullback
+    - Add AnimatorControllerWithResistance, which has 2 controllers, one
+      for the normal shift to overview, then one to apply the resistance
+      when swiping beyond that.
+    - Don't hack animator interpolators/progress; insteaad, allow progress
+      to go > 1 (which will run the separate resistance animator).
+    - Don't start launcher controller separately from window controller;
+      instead, both are controlled by mCurrentShift in updateFinalShift().
+    - The resistance animation logic is shared by both the active window
+      and launcher (RecentsView).
+    
+    Bug: 149934536
+    Change-Id: Ib0f9da18e10cc9ddf1a2f82ed767f237c89d3a41
+
+commit eaf7a955467a5d189b982ee436a8eefaa30e3006
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Wed Jul 29 16:54:20 2020 -0700
+
+    Changing minimum supported Launcher version to 26
+    
+    Change-Id: I49fcf874430ac53c3246371e179fbd828e14e4da
diff --git a/go/res/values-v26/bools.xml b/go/res/values-v26/bools.xml
new file mode 100644
index 0000000..1584734
--- /dev/null
+++ b/go/res/values-v26/bools.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* Copyright 2017, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <bool name="notification_dots_enabled">false</bool>
+</resources>
+
diff --git a/quickstep/res/values/strings.xml b/quickstep/res/values/strings.xml
index 769d298..86120e3 100644
--- a/quickstep/res/values/strings.xml
+++ b/quickstep/res/values/strings.xml
@@ -163,4 +163,4 @@
     <string name="action_screenshot">Screenshot</string>
     <!-- Message shown when an action is blocked by a policy enforced by the app or the organization managing the device. [CHAR_LIMIT=NONE] -->
     <string name="blocked_by_policy">This action isn\'t allowed by the app or your organization</string>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
index 199cf63..b35b33c 100644
--- a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
+++ b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
@@ -158,4 +158,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java
index dddcc86..b53e834 100644
--- a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java
+++ b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java
@@ -607,8 +607,10 @@
                         }
 
                         matrix.setTranslate(tmpPos.x, tmpPos.y);
+                        final Rect crop = new Rect(target.screenSpaceBounds);
+                        crop.offsetTo(0, 0);
                         builder.withMatrix(matrix)
-                                .withWindowCrop(target.screenSpaceBounds)
+                                .withWindowCrop(crop)
                                 .withAlpha(1f);
                     }
                     params[i] = builder.build();
@@ -775,8 +777,10 @@
                         builder.withMatrix(matrix)
                                 .withAlpha(1f);
                     }
+                    final Rect crop = new Rect(target.screenSpaceBounds);
+                    crop.offsetTo(0, 0);
                     params[i] = builder
-                            .withWindowCrop(target.screenSpaceBounds)
+                            .withWindowCrop(crop)
                             .build();
                 }
                 surfaceApplier.scheduleApply(params);
diff --git a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
index 39bf008..c3677ea 100644
--- a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
+++ b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduDialog.java
@@ -53,7 +53,6 @@
     private static final int DEFAULT_CLOSE_DURATION = 200;
     protected static final int FINAL_SCRIM_BG_COLOR = 0x88000000;
 
-
     // we use this value to keep track of migration logs as we experiment with different migrations
     private static final int MIGRATION_EXPERIMENT_IDENTIFIER = 1;
 
diff --git a/quickstep/src/com/android/launcher3/uioverrides/DejankBinderTracker.java b/quickstep/src/com/android/launcher3/uioverrides/DejankBinderTracker.java
new file mode 100644
index 0000000..d8aa235
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/uioverrides/DejankBinderTracker.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.uioverrides;
+
+import static android.os.IBinder.FLAG_ONEWAY;
+
+import android.os.Binder;
+import android.os.Build;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.annotation.MainThread;
+
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.function.BiConsumer;
+import java.util.function.Supplier;
+
+/**
+ * A binder proxy transaction listener for tracking non-whitelisted binder calls.
+ */
+public class DejankBinderTracker implements Binder.ProxyTransactListener {
+    private static final String TAG = "DejankBinderTracker";
+
+    private static final Object sLock = new Object();
+    private static final HashSet<String> sWhitelistedFrameworkClasses = new HashSet<>();
+    static {
+        // Common IPCs that are ok to block the main thread.
+        sWhitelistedFrameworkClasses.add("android.view.IWindowSession");
+        sWhitelistedFrameworkClasses.add("android.os.IPowerManager");
+    }
+    private static boolean sTemporarilyIgnoreTracking = false;
+
+    // Used by the client to limit binder tracking to specific regions
+    private static boolean sTrackingAllowed = false;
+
+    private BiConsumer<String, Integer> mUnexpectedTransactionCallback;
+    private boolean mIsTracking = false;
+
+    /**
+     * Temporarily ignore blocking binder calls for the duration of this {@link Runnable}.
+     */
+    @MainThread
+    public static void whitelistIpcs(Runnable runnable) {
+        sTemporarilyIgnoreTracking = true;
+        runnable.run();
+        sTemporarilyIgnoreTracking = false;
+    }
+
+    /**
+     * Temporarily ignore blocking binder calls for the duration of this {@link Supplier}.
+     */
+    @MainThread
+    public static <T> T whitelistIpcs(Supplier<T> supplier) {
+        sTemporarilyIgnoreTracking = true;
+        T value = supplier.get();
+        sTemporarilyIgnoreTracking = false;
+        return value;
+    }
+
+    /**
+     * Enables binder tracking during a test.
+     */
+    @MainThread
+    public static void allowBinderTrackingInTests() {
+        sTrackingAllowed = true;
+    }
+
+    /**
+     * Disables binder tracking during a test.
+     */
+    @MainThread
+    public static void disallowBinderTrackingInTests() {
+        sTrackingAllowed = false;
+    }
+
+    public DejankBinderTracker(BiConsumer<String, Integer> unexpectedTransactionCallback) {
+        mUnexpectedTransactionCallback = unexpectedTransactionCallback;
+    }
+
+    @MainThread
+    public void startTracking() {
+        if (!Build.TYPE.toLowerCase(Locale.ROOT).contains("debug")
+                && !Build.TYPE.toLowerCase(Locale.ROOT).equals("eng")) {
+            Log.wtf(TAG, "Unexpected use of binder tracker in non-debug build", new Exception());
+            return;
+        }
+        if (mIsTracking) {
+            return;
+        }
+        mIsTracking = true;
+        Binder.setProxyTransactListener(this);
+    }
+
+    @MainThread
+    public void stopTracking() {
+        if (!mIsTracking) {
+            return;
+        }
+        mIsTracking = false;
+        Binder.setProxyTransactListener(null);
+    }
+
+    // Override the hidden Binder#onTransactStarted method
+    public synchronized Object onTransactStarted(IBinder binder, int transactionCode, int flags) {
+        if (!mIsTracking
+                || !sTrackingAllowed
+                || sTemporarilyIgnoreTracking
+                || (flags & FLAG_ONEWAY) == FLAG_ONEWAY
+                || !isMainThread()) {
+            return null;
+        }
+
+        String descriptor;
+        try {
+            descriptor = binder.getInterfaceDescriptor();
+            if (sWhitelistedFrameworkClasses.contains(descriptor)) {
+                return null;
+            }
+        } catch (RemoteException e) {
+            e.printStackTrace();
+            descriptor = binder.getClass().getSimpleName();
+        }
+
+        mUnexpectedTransactionCallback.accept(descriptor, transactionCode);
+        return null;
+    }
+
+    @Override
+    public Object onTransactStarted(IBinder binder, int transactionCode) {
+        // Do nothing
+        return null;
+    }
+
+    @Override
+    public void onTransactEnded(Object session) {
+        // Do nothing
+    }
+
+    public static boolean isMainThread() {
+        return Thread.currentThread() == Looper.getMainLooper().getThread();
+    }
+}
diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
index e808f8c..a284f5d 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
@@ -199,7 +199,8 @@
         boolean willUserBeActive = (getActivityFlags() & ACTIVITY_STATE_USER_WILL_BE_ACTIVE) != 0;
         boolean visible = (state == NORMAL || state == OVERVIEW)
                 && (willUserBeActive || isUserActive())
-                && !profile.isVerticalBarLayout();
+                && !profile.isVerticalBarLayout()
+                && profile.isPhone && !profile.isLandscape;
         UiThreadHelper.runAsyncCommand(this, SET_SHELF_HEIGHT, visible ? 1 : 0,
                 profile.hotseatBarSizePx);
         if (state == NORMAL && !inTransition) {
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index ebdc867..df93e0b 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -472,6 +472,11 @@
                 } else {
                     mUncheckedConsumer = InputConsumer.NO_OP;
                 }
+            } else if (mDeviceState.canTriggerOneHandedAction(event)
+                    && !mDeviceState.isOneHandedModeActive()) {
+                // Consume gesture event for triggering one handed feature.
+                mUncheckedConsumer = new OneHandedModeInputConsumer(this, mDeviceState,
+                        InputConsumer.NO_OP, mInputMonitorCompat);
             } else {
                 mUncheckedConsumer = InputConsumer.NO_OP;
             }
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
index 32b1c58..9bfe84f 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
@@ -108,4 +108,5 @@
             mActivity.dispatchKeyEvent(ev);
         }
     }
-}
\ No newline at end of file
+}
+
diff --git a/quickstep/src/com/android/quickstep/util/SurfaceTransactionApplier.java b/quickstep/src/com/android/quickstep/util/SurfaceTransactionApplier.java
index 0a3e3ec..0436a1c 100644
--- a/quickstep/src/com/android/quickstep/util/SurfaceTransactionApplier.java
+++ b/quickstep/src/com/android/quickstep/util/SurfaceTransactionApplier.java
@@ -16,7 +16,6 @@
 package com.android.quickstep.util;
 
 import static com.android.systemui.shared.system.TransactionCompat.deferTransactionUntil;
-import static com.android.systemui.shared.system.TransactionCompat.setEarlyWakeup;
 
 import android.annotation.TargetApi;
 import android.os.Build;
@@ -95,7 +94,6 @@
                     surfaceParams.applyTo(t);
                 }
             }
-            setEarlyWakeup(t);
             t.apply();
             Message.obtain(mApplyHandler, MSG_UPDATE_SEQUENCE_NUMBER, toApplySeqNo, 0)
                     .sendToTarget();
diff --git a/quickstep/src/com/android/quickstep/util/TransformParams.java b/quickstep/src/com/android/quickstep/util/TransformParams.java
index 45f49bb..756331d 100644
--- a/quickstep/src/com/android/quickstep/util/TransformParams.java
+++ b/quickstep/src/com/android/quickstep/util/TransformParams.java
@@ -213,7 +213,6 @@
             for (SurfaceParams param : params) {
                 SyncRtSurfaceTransactionApplierCompat.applyParams(t, param);
             }
-            t.setEarlyWakeup();
             t.apply();
         }
     }
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index 6a2ab5a..321821b 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -315,9 +315,6 @@
      * @param modalness [0, 1] 0 being in context with other tasks, 1 being shown on its own.
      */
     public void setModalness(float modalness) {
-        if (mModalness == modalness) {
-            return;
-        }
         mModalness = modalness;
         mIconView.setAlpha(comp(modalness));
         if (mContextualChip != null) {
@@ -327,6 +324,7 @@
         if (mContextualChipWrapper != null) {
             mContextualChipWrapper.setAlpha(comp(modalness));
         }
+
         updateFooterVerticalOffset(mFooterVerticalOffset);
     }
 
@@ -565,11 +563,7 @@
                 .getInterpolation(progress);
         mIconView.setScaleX(scale);
         mIconView.setScaleY(scale);
-        if (mContextualChip != null && mContextualChipWrapper != null) {
-            mContextualChipWrapper.setAlpha(scale);
-            mContextualChip.setScaleX(scale);
-            mContextualChip.setScaleY(scale);
-        }
+
         updateFooterVerticalOffset(1.0f - scale);
     }
 
diff --git a/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java b/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
index 0c5b9ad..9732cdc 100644
--- a/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
+++ b/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
@@ -102,4 +102,4 @@
         }
         mLauncher.pressHome();
     }
-}
\ No newline at end of file
+}
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
deleted file mode 100644
index 0758148..0000000
--- a/res/values-rm/strings.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-/*
-* Copyright (C) 2008 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*      http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for application_name (5181331383435256801) -->
-    <skip />
-    <!-- no translation found for home (7658288663002113681) -->
-    <skip />
-    <!-- no translation found for uid_name (7820867637514617527) -->
-    <skip />
-    <string name="folder_name" msgid="7371454440695724752"></string>
-    <!-- no translation found for activity_not_found (8071924732094499514) -->
-    <skip />
-    <!-- no translation found for widgets_tab_label (2921133187116603919) -->
-    <skip />
-    <!-- no translation found for widget_adder (3201040140710381657) -->
-    <skip />
-    <!-- no translation found for toggle_weight_watcher (5645299835184636119) -->
-    <skip />
-    <!-- no translation found for long_press_widget_to_add (7699152356777458215) -->
-    <skip />
-    <!-- no translation found for market (2619650989819296998) -->
-    <skip />
-    <!-- no translation found for widget_dims_format (2370757736025621599) -->
-    <skip />
-    <!-- no translation found for external_drop_widget_error (3165821058322217155) -->
-    <skip />
-    <!-- no translation found for external_drop_widget_pick_title (3486317258037690630) -->
-    <skip />
-    <!-- no translation found for rename_folder_label (3727762225964550653) -->
-    <skip />
-    <!-- no translation found for rename_folder_title (3771389277707820891) -->
-    <skip />
-    <!-- no translation found for rename_action (5559600076028658757) -->
-    <skip />
-    <!-- no translation found for cancel_action (7009134900002915310) -->
-    <skip />
-    <!-- no translation found for menu_item_add_item (1264911265836810421) -->
-    <skip />
-    <!-- no translation found for group_applications (3797214114206693605) -->
-    <skip />
-    <!-- no translation found for group_shortcuts (6012256992764410535) -->
-    <skip />
-    <!-- no translation found for group_widgets (1569030723286851002) -->
-    <skip />
-    <!-- no translation found for completely_out_of_space (6106288382070760318) -->
-    <skip />
-    <!-- no translation found for out_of_space (4691004494942118364) -->
-    <skip />
-    <!-- no translation found for hotseat_out_of_space (7448809638125333693) -->
-    <skip />
-    <!-- no translation found for invalid_hotseat_item (5779907847267573691) -->
-    <skip />
-    <!-- no translation found for shortcut_installed (1701742129426969556) -->
-    <skip />
-    <!-- no translation found for shortcut_uninstalled (8176767991305701821) -->
-    <skip />
-    <!-- no translation found for shortcut_duplicate (9167217446062498127) -->
-    <skip />
-    <!-- no translation found for title_select_shortcut (6680642571148153868) -->
-    <skip />
-    <!-- no translation found for title_select_application (3280812711670683644) -->
-    <skip />
-    <!-- no translation found for all_apps_button_label (9110807029020582876) -->
-    <skip />
-    <!-- no translation found for all_apps_home_button_label (252062713717058851) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_workspace (4009607676751398685) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps (8083826390278958980) -->
-    <skip />
-    <!-- no translation found for delete_target_label (1822697352535677073) -->
-    <skip />
-    <!-- no translation found for delete_target_uninstall_label (5100785476250872595) -->
-    <skip />
-    <!-- no translation found for info_target_label (8053346143994679532) -->
-    <skip />
-    <!-- no translation found for accessibility_search_button (1628520399424565142) -->
-    <skip />
-    <!-- no translation found for accessibility_voice_search_button (4637324840434406584) -->
-    <skip />
-    <!-- no translation found for accessibility_all_apps_button (2603132375383800483) -->
-    <skip />
-    <!-- no translation found for accessibility_delete_button (6466114477993744621) -->
-    <skip />
-    <!-- no translation found for delete_zone_label_all_apps_system_app (449755632749610895) -->
-    <skip />
-    <!-- no translation found for cab_menu_delete_app (7435191475867183689) -->
-    <skip />
-    <!-- no translation found for cab_menu_app_info (8593722221450362342) -->
-    <skip />
-    <!-- no translation found for cab_app_selection_text (374688303047985416) -->
-    <skip />
-    <!-- no translation found for cab_widget_selection_text (1833458597831541241) -->
-    <skip />
-    <!-- no translation found for cab_folder_selection_text (7999992513806132118) -->
-    <skip />
-    <!-- no translation found for cab_shortcut_selection_text (2103811025667946450) -->
-    <skip />
-    <!-- no translation found for permlab_install_shortcut (5632423390354674437) -->
-    <skip />
-    <!-- no translation found for permdesc_install_shortcut (923466509822011139) -->
-    <skip />
-    <!-- no translation found for permlab_uninstall_shortcut (864595034498083837) -->
-    <skip />
-    <!-- no translation found for permdesc_uninstall_shortcut (5134129545001836849) -->
-    <skip />
-    <!-- no translation found for permlab_read_settings (1941457408239617576) -->
-    <skip />
-    <!-- no translation found for permdesc_read_settings (5833423719057558387) -->
-    <skip />
-    <!-- no translation found for permlab_write_settings (3574213698004620587) -->
-    <skip />
-    <!-- no translation found for permdesc_write_settings (5440712911516509985) -->
-    <skip />
-    <!-- no translation found for gadget_error_text (6081085226050792095) -->
-    <skip />
-    <!-- no translation found for uninstall_system_app_text (4172046090762920660) -->
-    <skip />
-    <!-- no translation found for dream_name (1530253749244328964) -->
-    <skip />
-    <!-- no translation found for folder_hint_text (6617836969016293992) -->
-    <skip />
-    <!-- no translation found for workspace_description_format (2950174241104043327) -->
-    <skip />
-    <!-- no translation found for default_scroll_format (7475544710230993317) -->
-    <skip />
-    <!-- no translation found for workspace_scroll_format (8458889198184077399) -->
-    <skip />
-    <!-- no translation found for apps_customize_apps_scroll_format (370005296147130238) -->
-    <skip />
-    <!-- no translation found for apps_customize_widgets_scroll_format (3106209519974971521) -->
-    <skip />
-    <!-- no translation found for first_run_cling_title (2459738000155917941) -->
-    <skip />
-    <!-- no translation found for first_run_cling_description (6447072552696253358) -->
-    <skip />
-    <!-- no translation found for first_run_cling_create_screens_hint (6950729526680114157) -->
-    <skip />
-    <!-- no translation found for migration_cling_title (9181776667882933767) -->
-    <skip />
-    <!-- no translation found for migration_cling_description (2752413805582227644) -->
-    <skip />
-    <!-- no translation found for migration_cling_copy_apps (946331230090919440) -->
-    <skip />
-    <!-- no translation found for migration_cling_use_default (2626475813981258626) -->
-    <skip />
-    <!-- no translation found for workspace_cling_title (5626202359865825661) -->
-    <skip />
-    <!-- no translation found for workspace_cling_move_item (528201129978005352) -->
-    <skip />
-    <!-- no translation found for folder_cling_title (3894908818693254164) -->
-    <skip />
-    <!-- no translation found for folder_cling_create_folder (6158215559475836131) -->
-    <skip />
-    <!-- no translation found for cling_dismiss (8962359497601507581) -->
-    <skip />
-    <!-- no translation found for folder_opened (94695026776264709) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_close (1884479294466410023) -->
-    <skip />
-    <!-- no translation found for folder_tap_to_rename (9191075570492871147) -->
-    <skip />
-    <!-- no translation found for folder_closed (4100806530910930934) -->
-    <skip />
-    <!-- no translation found for folder_renamed (1794088362165669656) -->
-    <skip />
-    <!-- no translation found for folder_name_format (6629239338071103179) -->
-    <skip />
-    <!-- no translation found for widget_button_text (2880537293434387943) -->
-    <skip />
-    <!-- no translation found for wallpaper_button_text (8404103075899945851) -->
-    <skip />
-    <!-- no translation found for settings_button_text (8119458837558863227) -->
-    <skip />
-    <!-- no translation found for package_state_enqueued (6227252464303085641) -->
-    <skip />
-    <!-- no translation found for package_state_downloading (4088770468458724721) -->
-    <skip />
-    <!-- no translation found for package_state_installing (7588193972189849870) -->
-    <skip />
-    <!-- no translation found for package_state_unknown (7592128424511031410) -->
-    <skip />
-    <!-- no translation found for package_state_error (7672093962724223588) -->
-    <skip />
-</resources>
diff --git a/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java b/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java
index 5ed7de5..a83755e 100644
--- a/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java
+++ b/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java
@@ -60,6 +60,10 @@
             return false;
         }
 
+        if (requestSimpleFuzzySearch(query)) {
+            return title.toLowerCase().contains(query);
+        }
+
         int lastType;
         int thisType = Character.UNASSIGNED;
         int nextType = Character.getType(title.codePointAt(0));
@@ -160,4 +164,17 @@
             return new StringMatcher();
         }
     }
+
+    private static boolean requestSimpleFuzzySearch(String s) {
+        for (int i = 0; i < s.length(); ) {
+            int codepoint = s.codePointAt(i);
+            i += Character.charCount(codepoint);
+            switch (Character.UnicodeScript.of(codepoint)) {
+                case HAN:
+                    //Character.UnicodeScript.HAN: use String.contains to match
+                    return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/tests/Android.mk b/tests/Android.mk
index 4d1bfa6..3d9077d 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -23,6 +23,7 @@
 	androidx.annotation_annotation \
 	androidx.test.runner \
 	androidx.test.rules \
+	androidx.preference_preference \
 	androidx.test.uiautomator_uiautomator
 
 ifneq (,$(wildcard frameworks/base))
diff --git a/tests/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithmTest.java b/tests/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithmTest.java
index bdf01f3..39709a9 100644
--- a/tests/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithmTest.java
+++ b/tests/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithmTest.java
@@ -68,8 +68,8 @@
 
         assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电", MATCHER));
         assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电子", MATCHER));
-        assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "子", MATCHER));
-        assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "邮件", MATCHER));
+        assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "子", MATCHER));
+        assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "邮件", MATCHER));
 
         assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("Bot"), "ba", MATCHER));
         assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("bot"), "ba", MATCHER));
diff --git a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
index 34e425d..a39f215 100644
--- a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
+++ b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java
@@ -41,6 +41,7 @@
 import com.android.launcher3.widget.WidgetsRecyclerView;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -101,7 +102,7 @@
         mLauncher.pressHome();
     }
 
-    @Test
+    @Ignore
     public void testOpenHomeSettingsFromWorkspace() {
         mDevice.pressMenu();
         mDevice.waitForIdle();
