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/buglist.txt b/buglist.txt
new file mode 100644
index 0000000..9e3e977
--- /dev/null
+++ b/buglist.txt
@@ -0,0 +1,37 @@
+148867106
+139828243
+133381284
+145297320
+149969889
+label,
+144052839
+148099851
+148099851
+139750033
+148896221
+149993849
+149935239
+149967272
+148900990
+142753423
+149870691
+149870691
+149870691
+149422395
+145253300
+149927292
+144854916
+139828243
+149867607
+144052839
+148542211
+149200572
+149197172
+149199058
+149215103
+149198955
+145595763
+149481723
+139750033
+148542211
+145647019
diff --git a/buglist_unique.txt b/buglist_unique.txt
new file mode 100644
index 0000000..4e7b1be
--- /dev/null
+++ b/buglist_unique.txt
@@ -0,0 +1,30 @@
+133381284
+139750033
+139828243
+142753423
+144052839
+144854916
+145253300
+145297320
+145595763
+145647019
+148099851
+148542211
+148867106
+148896221
+148900990
+149197172
+149198955
+149199058
+149200572
+149215103
+149422395
+149481723
+149867607
+149870691
+149927292
+149935239
+149967272
+149969889
+149993849
+label,
diff --git a/buglist_with_title.txt b/buglist_with_title.txt
new file mode 100644
index 0000000..31e57e2
--- /dev/null
+++ b/buglist_with_title.txt
@@ -0,0 +1,29 @@
+133381284  erosky    P1        ASSIGNED  [R] Move split-screen presentation/layout to system-ui. ----
+139750033  sunnygoyal  P2        ASSIGNED  Overview misfired ----
+139828243  xuqiu     P2        ASSIGNED  [Overview Actions] Add Overview actions ----
+142753423  sfufa     P3        ACCEPTED  Prototype predictive hotseat ----
+144052839  tracyzhou  P2        ACCEPTED  Improving Launcher preview in ThemePicker ----
+144854916  winsonc   P2        ASSIGNED  Add winscope logging for systemui/launcher ----
+145253300  awickham  P1        FIXED   [a11y]Talkback doesn't focus on pop up window when long press Smart space. ----
+145297320  zakcohen  P2        FIXED   Overview layout with anchor chips ----
+145595763  sfufa     P4        FIXED   Wrong Tab is highlighted after creating Work profile ----
+145647019  twickham  P1        FIXED   [a11y] Use Talkback page navigation to switch apps in Overview, Talkback couldn't move focus across apps one by one. ----
+148099851  peskal    P1        FIXED   Make reduced scale snapshots toggle on/off base on config_reducedTaskSnapshotScale=0 ----
+148542211  awickham  P2        ASSIGNED  Sandbox for gesture nav tutorial ----
+148867106  vadimt    P2        ASSIGNED  [Flaky test] AddConfigWidgetTest.testConfigCancelled ----
+148896221  hyunyoungs  P3        ASSIGNED  Migrate to soong ----
+148900990  hyunyoungs  P2        FIXED   Hard to know if there's a text field for naming folders without a cursor ----
+149197172  sfufa     P1        FIXED   [Regression] New work profile OOBE doesn't adopt theme color ----
+149198955  sfufa     P2        FIXED   Work tab flash seems superfluous with new OOBE ----
+149199058  sfufa     P1        FIXED   Work profile OOBE not dismissed after locking/unlocking screen ----
+149200572  sfufa     P1        FIXED   [Regression] Work profile toggle is obscured by system navigation bar ----
+149215103  sfufa     P1        FIXED   OOBE still displayed after removing work profile ----
+149422395  vadimt    P2        ASSIGNED  Test should fail with a clear diags if it can't install a required package ----
+149481723  sfufa     P2        FIXED   Launcher OOBE for work profile and COPE devices improvements ----
+149867607  sfufa     P0        FIXED   [Failing test] WorkTabTest.workTabExists ----
+149870691  twickham  P2        ASSIGNED  Cleanup AppWindowAnimationHelper and TransformParams ----
+149927292  sfufa     P0        FIXED   [Flaky test] Apps view did not bind WorkTabTest.toggleWorks ----
+149935239  hyunyoungs  P1        FIXED   Update the suggestFolderName when items are added and deleted from folders ----
+149967272  hyunyoungs  P1        FIXED   Tap on Edit Name interaction drops the first recommendation ----
+149969889  sfufa     P2        FIXED   [Crash] java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ComponentName ----
+149993849  thiruram  P1        FIXED   Pixel launcher crashes when tapping on empty shortcut folder name ----
diff --git a/commitlist.txt b/commitlist.txt
new file mode 100644
index 0000000..778b5a1
--- /dev/null
+++ b/commitlist.txt
@@ -0,0 +1,965 @@
+[34mCOMMAND>> git log 6a8d59d9649cde5626f57935dfeba27cb866583f..d8995a6fdaf363c5cbef2c7209b4b199c7e083af(B[m
+commit d8995a6fdaf363c5cbef2c7209b4b199c7e083af
+Merge: 3be0443d3 3dd64ca3a
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 22:29:47 2020 +0000
+
+    Merge "Revert "TAPL: Verifying activity start/stop events"" into ub-launcher3-master
+
+commit 3dd64ca3a8a43c4b0fcb28a761d9379c0de0e1de
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 22:28:16 2020 +0000
+
+    Revert "TAPL: Verifying activity start/stop events"
+    
+    This reverts commit 1186700c9a9d282824bad4b9cc566974c287a49d.
+    
+    Reason for revert: Fails in the lab
+    
+    Change-Id: I6715a058c76d96752b904331968b46a07ce93f85
+
+commit 3be0443d377ee78af88bbe5d9551cfeefd280e06
+Merge: 23ceafe3d f450b2500
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 21:34:25 2020 +0000
+
+    Merge "Revert "Enabling flaky tests per our new flaky test policy"" into ub-launcher3-master
+
+commit f450b2500c6854f59ad9b8ccc373199c631e681b
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 21:33:16 2020 +0000
+
+    Revert "Enabling flaky tests per our new flaky test policy"
+    
+    This reverts commit 983145c5944ae8c44166a1bccce94f077e3e9106.
+    
+    Reason for revert: Too flaky
+    
+    Change-Id: Ifabb638d6ce0a539518bc0b6b667a9783b6ca29d
+
+commit 23ceafe3d5d1766f458c5cfe3234e92ea35db85a
+Merge: 64a932ed2 dc24231e4
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Fri Feb 28 21:21:36 2020 +0000
+
+    Merge "TAPL tests - make all apps in overview checks less fragile." into ub-launcher3-master
+
+commit dc24231e4faff53750a06e64a16d596add296dbe
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Fri Feb 28 11:59:33 2020 -0800
+
+    TAPL tests - make all apps in overview checks less fragile.
+    
+    Tests that check for all apps in overview mode were only checking for
+    actions being enabled. This isn't sufficient logic, two button mode also
+    uses all apps.
+    
+    Centralize the check for all apps.
+    
+    Test: local tapl tests
+    Change-Id: If1bf98019e6f1aea8f7967883aba6780743e9d6b
+
+commit 64a932ed2a7e166257c107676f35eb2e3c3c4c7c
+Merge: 1fabbf5a2 1186700c9
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 19:22:32 2020 +0000
+
+    Merge "TAPL: Verifying activity start/stop events" into ub-launcher3-master
+
+commit 1fabbf5a23f2bb0aa83a2b9ceb7b255274e9ff03
+Merge: 7ff297a81 983145c59
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 28 18:29:23 2020 +0000
+
+    Merge "Enabling flaky tests per our new flaky test policy" into ub-launcher3-master
+
+commit 983145c5944ae8c44166a1bccce94f077e3e9106
+Author: vadimt <vadimt@google.com>
+Date:   Thu Feb 27 17:58:59 2020 -0800
+
+    Enabling flaky tests per our new flaky test policy
+    
+    I'll check whether the tests are still flaky and assign to the test
+    owner if they are.
+    
+    Bug: 148867106
+    Change-Id: Ic850abc862b0f266b100aa6bfff4e89b3802e50d
+
+commit 7ff297a81faee4815a1feba6d64e6dd464bb7f0d
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Fri Feb 28 01:38:44 2020 +0000
+
+    Revert "[Overview Actions] Disable swiping for TaskView if it's in select mode."
+    
+    This reverts commit 0499fb2060af0b7d065d77b22c81f4f77ee24eed.
+    
+    Reason for revert: This might break the post submit test. See b/150401176
+    
+    Change-Id: Iafc420fff72de8e83ce5e325fc1e5b1a1efe7350
+
+commit 2fe6fb967163e4c91f90a1680b2004ec45e0730e
+Merge: eecb258cc 3d64ffd4a
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Thu Feb 27 22:28:59 2020 +0000
+
+    Merge "Fixing activity leak via alarm in SecondaryDropTarget" into ub-launcher3-master
+
+commit 3d64ffd4a53e73c6fb4c04d6f144878ce4710d65
+Author: vadimt <vadimt@google.com>
+Date:   Thu Feb 27 11:28:47 2020 -0800
+
+    Fixing activity leak via alarm in SecondaryDropTarget
+    
+    Change-Id: I12c099ee1bb55d9db81e14d27d2eb09fbbc83e0f
+
+commit eecb258cc7c81ce04feb903b15267257d480c8bc
+Merge: 0e0b17636 9a4df4dba
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Thu Feb 27 19:48:51 2020 +0000
+
+    Merge changes from topic "enable" into ub-launcher3-master
+    
+    * changes:
+      Overview Actions - Enable by default.
+      TAPL test update - don't run all apps in overview tests with actions.
+
+commit 0e0b1763612778dc94d3c29e4d32018c854dbcc7
+Merge: 3ba680055 da12b805c
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Thu Feb 27 19:45:39 2020 +0000
+
+    Merge "Not showing "mismatched events" and other diags after Launcher crashes" into ub-launcher3-master
+
+commit 3ba6800552f699f6937e7ff6d24ff66c20d6c2cc
+Merge: 9f62bc10a 1779a3829
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Feb 27 19:19:14 2020 +0000
+
+    Merge "Using StrictMode to detect activity leaks" into ub-launcher3-master
+
+commit 1186700c9a9d282824bad4b9cc566974c287a49d
+Author: vadimt <vadimt@google.com>
+Date:   Fri Feb 14 14:42:35 2020 -0800
+
+    TAPL: Verifying activity start/stop events
+    
+    It also turned out that Pilfer event seems to come in a
+    non-deterministic order relative to the events from the Main and TIS
+    sequences. So I moved it to its own sequence.
+    
+    Change-Id: I5851aafb6d04398c5727712eaf8561916a30c4c5
+
+commit 9f62bc10afe375032453d5361707acd6c9df439b
+Merge: b5565fb62 dbc758305
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Thu Feb 27 19:08:29 2020 +0000
+
+    Merge "Remove unnecessary PilferPointer events and enable testPressHomeOnAllAppsContextMenu" into ub-launcher3-master
+
+commit b5565fb62fb0256395c4a2fd9abf07c83451f26b
+Merge: 39c610192 0499fb206
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Thu Feb 27 18:48:09 2020 +0000
+
+    Merge "[Overview Actions] Disable swiping for TaskView if it's in select mode." into ub-launcher3-master
+
+commit 39c610192a8350adba64fdf6869f9b560163cb80
+Merge: de9823243 6f9637662
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Feb 27 01:14:52 2020 +0000
+
+    Merge "Catching OOM exceptions in auto-investigator" into ub-launcher3-master
+
+commit de9823243a73662c211a5d405511d6bcf4f1f0a6
+Merge: 833cd4320 f2a15f1be
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Wed Feb 26 21:25:36 2020 +0000
+
+    Merge "Make RectFSpringAnim resilient to negative height starting rect." into ub-launcher3-master
+
+commit da12b805cc1c02b03048430840d4772399bcb733
+Author: vadimt <vadimt@google.com>
+Date:   Wed Feb 26 12:17:47 2020 -0800
+
+    Not showing "mismatched events" and other diags after Launcher crashes
+    
+    Change-Id: Iee5f8813c3610314d486589bc361466a05da0ecb
+
+commit f2a15f1be54735ef41fe3a1dfea7f196a2e93b04
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Wed Feb 26 10:53:53 2020 -0800
+
+    Make RectFSpringAnim resilient to negative height starting rect.
+    
+    Test: ran tapl tests, failed before, passed after
+    Change-Id: I10b82dd348b5c12550e60b145c76dad542aa56e8
+
+commit 833cd43206cefdc2d653d2ab42cb5b6c9317b278
+Merge: 5991eb833 65ed9c3d9
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 26 17:47:59 2020 +0000
+
+    Merge "Adding a failure investigator" into ub-launcher3-master
+
+commit 5991eb83377e84011d90cc40eb3ebe7617292a49
+Merge: b066af18a 5bb63c916
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 26 17:42:40 2020 +0000
+
+    Merge changes from topic "new-task-snapshots-ub-launcher3-master" into ub-launcher3-master
+    
+    * changes:
+      Toggle loading state based on config_lowResTaskSnapshotScale
+      Add config to enable snapshot preloading
+
+commit b066af18a51a7ab6ac167c3b9c5532c6aed1f294
+Merge: 0c5f58afb e6981a606
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 26 07:59:20 2020 +0000
+
+    Merge "Update mEndRect when closing ArrowPopup" into ub-launcher3-master
+
+commit dbc7583054405ab0f87a9394c56ecbf4241d8159
+Author: vadimt <vadimt@google.com>
+Date:   Wed Feb 19 19:17:28 2020 -0800
+
+    Remove unnecessary PilferPointer events and enable testPressHomeOnAllAppsContextMenu
+    
+    Change-Id: I04199f46024b05f05d04ba2be7a797842bb48527
+
+commit 0499fb2060af0b7d065d77b22c81f4f77ee24eed
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Tue Feb 25 15:12:55 2020 -0800
+
+    [Overview Actions] Disable swiping for TaskView if it's in select mode.
+    
+    This including swiping up to dismiss, down to launch app, left and right to switch apps.
+    
+    Test: local
+    Bug: 139828243
+    Change-Id: Ib588c8725fb765097d03a5def719abdffd603708
+
+commit 0c5f58afb716d22fa3adb3a1962483f4430ae63c
+Merge: f17241918 e7e91fd60
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Wed Feb 26 01:01:24 2020 +0000
+
+    Merge "Connect split-screen things to systemui divider" into ub-launcher3-master
+
+commit f1724191896786e5e957489b34ef5692d43aed46
+Merge: 37f435d62 bb18f4c9c
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 26 00:50:47 2020 +0000
+
+    Merge "Fixing log message" into ub-launcher3-master
+
+commit 37f435d62462c31c99c32d9222f539b104338a06
+Merge: 43a161579 20cc7a3b5
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 26 00:35:40 2020 +0000
+
+    Merge "Update proguard flags." into ub-launcher3-master
+
+commit e7e91fd60e5f78e63dd1b92fe21cb38a9f0cc494
+Author: Evan Rosky <erosky@google.com>
+Date:   Wed Nov 20 17:00:06 2019 -0800
+
+    Connect split-screen things to systemui divider
+    
+    Since divider stuff lives in sysui instead of framework
+    
+    Bug: 133381284
+    Test: Manual, open 2 apps in split and drag-up to show
+          recents.
+    Change-Id: If6740b7ee4829bf4cac6e829e81943f16a41f977
+    (cherry picked from commit 3ef159becdbda1041781920eb816d041bd88da44)
+
+commit bb18f4c9c6acfeef5666493ae904020b55414fd9
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Feb 25 15:27:06 2020 -0800
+
+    Fixing log message
+    
+    Change-Id: I0668ea273a54ea741b1b871a50a8738c0ec4788b
+
+commit 9a4df4dba1512f4aa67da5c7f9d69a1ad22f3805
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Wed Feb 19 14:52:10 2020 -0800
+
+    Overview Actions - Enable by default.
+    
+    Enable the Overview Actions feature flag by default.
+    
+    Test: local
+    Bug: 145297320
+    Change-Id: I6f4a2b6e90704b78d1ff1f77bbfea2d8789169ff
+
+commit 43a161579600c2f7cbce8d96e2474f97983f7d15
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Tue Feb 25 14:29:37 2020 -0800
+
+    Hide apps view in transitions if none of its parts are visible.
+    
+    Check where the all apps view has any pieces visible, if not hide it.
+    
+    Test: local
+    Change-Id: I1d9b957b6c10dfbe4beaa56c4fee920844699a6c
+
+commit fe935dfbc198192780f9c3bdd94fdfb1b849d33b
+Author: Zak Cohen <zakcohen@google.com>
+Date:   Thu Feb 20 15:08:10 2020 -0800
+
+    TAPL test update - don't run all apps in overview tests with actions.
+    
+    Overview actions removes the all apps from overview. Don't run the tests
+    that depend on these.
+    Ultimately need to add more tests for the actions.
+    
+    Test: tapl local
+    Change-Id: I2471d10af7bc03a40a94f99aa16354b85bdb3ad7
+
+commit 1779a38290933a2b72df87795b5c8f1758da2ece
+Author: vadimt <vadimt@google.com>
+Date:   Tue Feb 25 14:41:01 2020 -0800
+
+    Using StrictMode to detect activity leaks
+    
+    Change-Id: I615f641897d57be0cd31be944796c6931ef9ab00
+
+commit 6f96376620b34b68c5896d25a315fc0f8b72ac80
+Author: vadimt <vadimt@google.com>
+Date:   Tue Feb 25 11:05:39 2020 -0800
+
+    Catching OOM exceptions in auto-investigator
+    
+    In the development environment, the device may stay for long time
+    without reboot, and the logcat size may turn to be long enough to
+    overflow the memory.
+    
+    Suppressing OOM exceptions.
+    
+    Change-Id: I562e2c03312e88f669d9cb660af6e8849dc0c8ef
+
+commit d71c3b185de62a50b730bbf389d48ead9ccc6315
+Merge: 86430dd2d 93c4de741
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Feb 25 18:23:19 2020 +0000
+
+    Merge "Setting interpolator beforehand, instead of overriding it after the pending animaiton is created" into ub-launcher3-master
+
+commit 86430dd2d25ba69220f20e5cc2f5379cadcef27c
+Merge: 6382b39ff b79614cc9
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Feb 25 18:20:39 2020 +0000
+
+    Merge "Performing a check for a crashed Launcher process for each UI test" into ub-launcher3-master
+
+commit 65ed9c3d9bb6c0086613b3e6512bdb0a1f673936
+Author: vadimt <vadimt@google.com>
+Date:   Mon Feb 24 19:10:50 2020 -0800
+
+    Adding a failure investigator
+    
+    Change-Id: Ie1c9820ecb7373a1f4428a24867c51332a84e65c
+
+commit b79614cc93f7a54dead7c19e6e225cc4a832ba53
+Author: vadimt <vadimt@google.com>
+Date:   Mon Feb 24 18:24:05 2020 -0800
+
+    Performing a check for a crashed Launcher process for each UI test
+
+commit 6382b39ff4605fbe30d8edf9ba25d32a7c04d7e5
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Feb 24 17:06:17 2020 -0800
+
+    Add null check to sendCustomAccessibilityEvent()
+    
+    ag/10273975 caused a regression where launcher crashes if RecentsView is
+    empty.
+    
+    Change-Id: I1607627be0a9748fd552adc757296d7b6bbfd1e2
+
+commit e6981a606abac6fe70cbb9fdefd16a25fb2f2f58
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Feb 24 17:33:20 2020 -0800
+
+    Update mEndRect when closing ArrowPopup
+    
+    Generally mEndRect is still correct from when we set it in
+    animateOpen(), but there are cases where it is no longer valid and
+    should be recomputed in animateClose(). For example, if you dismiss
+    notifications, the height of the popup changes between opening and
+    closing it.
+    
+    Test: Long press an icon with a notification dot, dismiss all
+    notifications from the popup and then close the popup. The shadow
+    follows the outline of the popup, instead of extending well below it.
+    
+    Change-Id: Ic5d6ad2807ea1ec8aff5e3d6ce8abaa11ce5d33c
+
+commit 93c4de7413f40a3660fdecb3a19fe5271e93d360
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Mon Feb 24 16:39:36 2020 -0800
+
+    Setting interpolator beforehand, instead of overriding it after the pending
+    animaiton is created
+    
+    Change-Id: I7caec2eeb86084591fa627518d064b7ebb895d65
+
+commit 20cc7a3b5b2ef2e49b85d2cd51320c4c0183e244
+Author: Amos Bianchi <amosbianchi@google.com>
+Date:   Mon Feb 24 15:35:49 2020 -0800
+
+    Update proguard flags.
+    
+    Fully R8 optimized variants may crash with:
+    java.lang.AbstractMethodError exception.
+    
+    Test: build, manual test on device.
+    Change-Id: I18a7b011ddd3536e3d33b991954a52e5fc5c7d56
+
+commit 436573401765cdc97d8cf672ace3ccbea16badeb
+Merge: 6b7fbd22d be13d109b
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Mon Feb 24 20:01:58 2020 +0000
+
+    Merge "Render user's actual workspace in ThemePicker preview (Part 3)" into ub-launcher3-master
+
+commit 6b7fbd22dda79a31e75da18da4b0bf05cd25a85a
+Merge: d2c56525b 27d3c595c
+Author: Andy Wickham <awickham@google.com>
+Date:   Mon Feb 24 18:49:12 2020 +0000
+
+    Merge "Makes all ArrowPopups AccessibilityTargets." into ub-launcher3-master
+
+commit d2c56525bb18c5e971aced5f60857c2f70d502d6
+Merge: 7fa947cb3 a173193af
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Mon Feb 24 18:30:13 2020 +0000
+
+    Merge "Using LeastSquaresVelocityTrackerStrategy for calculating velocity when detecting motion pause events. This is the same logic used by the platform implementation VelocityTracker" into ub-launcher3-master
+
+commit 7fa947cb316945f40cab5cf7b5ed20e8b82dc219
+Merge: bc5056391 5a93eb3ba
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Feb 24 18:24:22 2020 +0000
+
+    Merge "Fix NPE on app launch log" into ub-launcher3-master
+
+commit 5a93eb3bafbe38bccd34c59c4843c318135f7975
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Fri Feb 21 18:51:36 2020 -0800
+
+    Fix NPE on app launch log
+    
+    Bug: 149969889
+    Change-Id: I60fd283ac082fab1ebf6ea90568e054525c414cc
+
+commit bc50563915e92d3eec594c45af365f327d277996
+Merge: 218f5276a a241df66d
+Author: Sreyas Rangaraju <sreyasr@google.com>
+Date:   Sat Feb 22 01:11:47 2020 +0000
+
+    Merge "OverviewActions: Creating parent view to house RecentsView and Overview Actions." into ub-launcher3-master
+
+commit 218f5276a3b8e7ac3a5d3dc95c30087149e52e5b
+Merge: 3310b76a2 15d79a9b8
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Feb 22 00:55:55 2020 +0000
+
+    Merge "Fixes incorrect FromFolderLabelState in clearcut log when updating folder label." into ub-launcher3-master
+
+commit 3310b76a27ef0f7bdb332e82faea498e868c5f9a
+Merge: 6b029c30b a754374c3
+Author: Tony Wickham <twickham@google.com>
+Date:   Sat Feb 22 00:34:09 2020 +0000
+
+    Merge "Remove mSourceWindowClipInsetsForLiveTile" into ub-launcher3-master
+
+commit 15d79a9b85cb58319e51ffa364ab38e804da307f
+Author: thiruram <thiruram@google.com>
+Date:   Fri Feb 21 14:31:02 2020 -0800
+
+    Fixes incorrect FromFolderLabelState in clearcut log when updating folder label.
+    
+    Bug description: When folder label is updated from a suggested label to a custom label,
+    EditFolderLabelEvent log expected to have FromFolderLabelState = FROM_SUGGESTED.
+    Currently FromFolderLabelState is logged as FROM_CUSTOM in such scenarios.
+    
+    Root cause: Folder label state is decided based on whether IME has entered into compose mode while editing.
+    This works fine for initial folder creation and also updated to non-empty label(to both custom or suggested).
+    But when folder is edited from suggested to empty label, its internal state changes from SUGGESTED to CUSTOM as expected.
+    Later when empty label is updated to suggested again, its internal state remains custom forever.
+    
+    Fix: Instead of setting folder's internal state based on IME's compose mode, comparing actual folder label with suggestions
+    and set it to SUGGESTED if any suggestion matches else CUSTOM.
+    
+    Change-Id: Ieea572ee93fd5567e3128c9bbcea3b670f0f01d9
+
+commit a241df66df203e1fcb5133cb93f0968591003b25
+Author: Sreyas <sreyasr@google.com>
+Date:   Wed Feb 5 16:58:34 2020 -0800
+
+    OverviewActions: Creating parent view to house RecentsView and Overview Actions.
+    
+    Creating RecentsViewHolder to be contain LauncherRecentsView in OverviewPanel so Overview Actions View can be created only once.
+    
+    Change-Id: I111f88903d2ff80275cc2e07b761577260073c17
+
+commit be13d109b7d422e89a994554d2c4be30a86338b2
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Sun Jan 12 01:07:59 2020 -0800
+
+    Render user's actual workspace in ThemePicker preview (Part 3)
+    
+    go/grid-migration-preview
+    
+    With this change, we can see actual grid migration in wallpaper preview.
+    
+    The approach here: we use a tmp table (favorites_preview) here specifically for this preview (to write off the migration results), and load from this tmp table workspace items if migration is necessary and successful. Otherwise, we load from the current workspace.
+    
+    UPDATED: this change should be completely compatible with the new multi-db grid migration algorithm. Here is why
+    1. In LauncherPreviewRender#renderScreenShot, I added a check to decide which grid migration preview method we should call. Once v2 preview method is implemented, it should be integrated with other parts of this change perfectly (the reason will be mentioned below).
+    2. While we have multiple DBs, mOpenHelper in LauncherProvider always points to the current db we are using. Queries using CONTENT_URI is routed to whatever DB mOpenHelper points to, so it works perfectly to directly operate on CONTENT_URI even when we use multi-db underneath the hood.
+    3. With 1 and 2 mentioned, I believe in order for this preview change to support multi-db, we only need to implement the V2 grid migration algorithm. Because most of what we are doing in this change is wrapped in GridSizeMigrationTask, it's perfectly safeguarded.
+    
+    Bug: 144052839
+    Change-Id: Ie6d6048d77326f96546c8a180a7cd8f15b47e4c4
+
+commit 5bb63c916e757ca90a3ad56ccb6a8e340bb4fcab
+Author: Peter Kalauskas <peskal@google.com>
+Date:   Fri Jan 24 18:51:13 2020 -0800
+
+    Toggle loading state based on config_lowResTaskSnapshotScale
+    
+    Change high res loading state implementation to toggle on/off based on
+    config_lowResTaskSnapshotScale!=0 instead of ro.config.low_ram=true
+    
+    Test: TaskSnapshotCacheTest
+    Test: TaskSnapshotControllerTest
+    Test: TaskSnapshotPersisterLoaderTest
+    Test: TaskSnapshotSurfaceTest
+    Bug: 148099851
+    Change-Id: I316e553a8a13fe38f1224c38f7aa717a0f628f57
+
+commit 6b029c30b1e36435f4fd6c65bbe6d9f6f6b4d0c0
+Merge: 977940502 8605be316
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Feb 21 23:36:29 2020 +0000
+
+    Merge "Convert LauncherPluginLib to soong" into ub-launcher3-master
+
+commit 03c8f296cd9ed6a95c4de07213c0ba0fda277023
+Author: Peter Kalauskas <peskal@google.com>
+Date:   Tue Feb 18 16:20:27 2020 -0800
+
+    Add config to enable snapshot preloading
+    
+    Enable preloading if config_enableTaskSnapshotPreloading instead of
+    assuming it should be off for all low ram devices. This allows it to be
+    configured via an overlay.
+    
+    Test: TaskSnapshotCacheTest
+    Test: TaskSnapshotControllerTest
+    Test: TaskSnapshotPersisterLoaderTest
+    Test: TaskSnapshotSurfaceTest
+    Bug: 148099851
+    Change-Id: I9e3320dcff5b710e110cc7199c41c5a004991592
+
+commit a173193afa082647db3cd44ce34403773aacad6a
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Thu Feb 20 12:03:39 2020 -0800
+
+    Using LeastSquaresVelocityTrackerStrategy for calculating velocity
+    when detecting motion pause events. This is the same logic used by
+    the platform implementation VelocityTracker
+    
+    Bug: 139750033
+    Change-Id: I87aabd46e58a5caa1395be3a63fd38d0ee75e355
+
+commit 8605be3162fab552a0b950a2c4016986abe62148
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Feb 21 14:52:25 2020 -0800
+
+    Convert LauncherPluginLib to soong
+    
+    Bug: 148896221
+    Change-Id: I0c09ba2994cf2a8e230aebc51eb52a8acadf8686
+
+commit 9779405023996bbe6bc2f9a050d66f4dbd9d5385
+Merge: 621c1a8be 4e3eaa5a7
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Feb 21 20:36:35 2020 +0000
+
+    Merge "[Overview Actions] Add ControlType for overview action buttons." into ub-launcher3-master
+
+commit 621c1a8be7a0ee1ffff4af7a3f1e8c0e5a3c10ee
+Merge: b47a08ad1 6d3e5465e
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Feb 21 20:08:20 2020 +0000
+
+    Merge "Update the suggestFolderName when items are added and deleted from folders" into ub-launcher3-master
+
+commit b47a08ad1eb7ce8b7b6ef7eb00b02f45ba6f88d6
+Merge: fb5d542f5 888b516a2
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Feb 21 20:05:38 2020 +0000
+
+    Merge "Fixes NPE when creating folder with null suggestedFolderNames." into ub-launcher3-master
+
+commit 888b516a22ebb0a33be0656ede18606c037e9db3
+Author: thiruram <thiruram@google.com>
+Date:   Fri Feb 21 10:42:23 2020 -0800
+
+    Fixes NPE when creating folder with null suggestedFolderNames.
+    
+    Bug: 149993849
+    
+    Change-Id: Ia2758b76aef1812dab225c8a95e7141fcdeefab4
+
+commit 6d3e5465e23ef48bdd7a572c985ada779cbb9f42
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Wed Feb 19 23:32:04 2020 -0800
+
+    Update the suggestFolderName when items are added and deleted from folders
+    
+    Bug: 149935239
+    Bug: 149967272
+    Bug: 148900990
+    
+    Change-Id: I0ed27236ad22579a1f3dcfd35a32252c5b1f6691
+
+commit fb5d542f51cb2a4532bb006bd36cf5f71a9e68f3
+Merge: 1562d104b 46b4f5816
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Feb 21 17:33:27 2020 +0000
+
+    Merge "Increase FileLog days" into ub-launcher3-master
+
+commit 46b4f581610d322287473e8070a10f649c6985d6
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Wed Feb 19 15:56:12 2020 -0800
+
+    Increase FileLog days
+    
+    Bug: 142753423
+    Change-Id: I43ccfe540cb0899a4a4ab6722b6670e830457f60
+
+commit 1562d104b86fa4f231dbe823d96c61d27fb65057
+Merge: f1030cf56 2f41808e9
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Feb 21 00:27:46 2020 +0000
+
+    Merge "Updating logcat reading logic" into ub-launcher3-master
+
+commit f1030cf5642d8d21b1d1c47d3b3518fa7a388b64
+Merge: aeaad97eb d1d342b1c
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Feb 20 22:53:10 2020 +0000
+
+    Merge changes Ie48f4b66,Ia48f4453 into ub-launcher3-master
+    
+    * changes:
+      Always update clip rect before applying surface params
+      Clean up AppWindowAnimationHelper and TransformParams
+
+commit a754374c30195ecac5f54b3243f5a23e8dfaa8d2
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Feb 19 13:30:34 2020 -0800
+
+    Remove mSourceWindowClipInsetsForLiveTile
+    
+    It seems that the only time it is used, it is the same as
+    mSourceWindowClipInsets anyway.
+    
+    Bug: 149870691
+    Change-Id: I3b1a5a47a0d49cdd6eb8a3271ca24da6c17109cb
+
+commit d1d342b1c72c1dd500208098d82be18f4b23cf62
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Feb 19 16:04:25 2020 -0800
+
+    Always update clip rect before applying surface params
+    
+    Previously, we were only updating the clip rect when params.currentRect
+    == null, meaning the clip would be stale once the caller started
+    providing its own rect (e.g. when swiping to home).
+    
+    Also fix some visual jumps when swiping home, all caused by running the
+    transform progress from 0 to 1 instead of starting at whatever the
+    progress was before ending the gesture, e.g.:
+    - When swiping to home without animating into an icon, the corner radius
+      was set back to the window corner radius.
+    - Before this change, the clip didn't update throughout the animation,
+      making the window slightly bigger than the floating icon view; after
+      this change, the clip jumped to show the insets again before clipping
+      back down during the home animation.
+    
+    Bug: 149870691
+    Change-Id: Ie48f4b665a5bf3cbef76bdf7f043febe99fb84a0
+
+commit badab61ace41602c78dd59732a1b954c7c0cf4aa
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Feb 19 12:59:37 2020 -0800
+
+    Clean up AppWindowAnimationHelper and TransformParams
+    
+    AppWindowAnimationHelper and TransformParams were being very tightly
+    intertwined, to the point that you really had to understand subtle
+    nuances of both in order to get a desired behavior. This makes making
+    changes really difficult, because there are lots of "traps" to know
+    about and navigate. To help alleviate this burden, cleaned up some of
+    these traps and give AWAH and TP distinct roles:
+    - A caller who needs to animate an app window needs both AWAH and TP.
+      TP defines specific parameters of how the app window should be
+      controlled, and AWAH simply reads from TP in order to provide the
+      desired behavior.
+    - Only the caller should write to TP; AWAH should no longer change
+      anything in a TP that is passed to it. For instance, instead of
+      repurposing TP.currentRect, AWAH now has its own mCurrentRect to
+      update based on passed parameters.
+    - TP is a very basic class that just holds various values that callers
+      can set one at a time. The order should not matter (setting one value
+      will never set another one), and defaults make sense.
+    - Commented the setter methods in TP so developers shouldn't have to
+      follow the code to see how they are used.
+    
+    Bug: 149870691
+    Change-Id: Ia48f4453c29549271a3fc6538128a1a77439e015
+
+commit 2f41808e9b7e361341c70c6978301f90bbacfc03
+Author: vadimt <vadimt@google.com>
+Date:   Wed Feb 19 14:19:17 2020 -0800
+
+    Updating logcat reading logic
+    
+    Start a thread to read logcat synchronusly instead
+    of back-tracking at the end of the test
+    
+    Also:
+    * Reusing the same logcat process for all checks. This eliminates
+    reading the log from its start for every gesture. We don’t kill that
+    process at the end, and don’t stop the thread. I’ve verified that
+    “am instrument” doesn’t hang, and the logcat process gets automatically
+    killed after the test process exits.
+    * Not using mStarted latch, as there is no need to wait until the reader
+    reaches the start mark.
+    
+    Bug: 149422395
+    Change-Id: Ide4ed19ad8d099c41918f38c2b073b8b2e143b69
+
+commit 27d3c595cfd3c462b93364c357253c2f4b686f37
+Author: Andy Wickham <awickham@google.com>
+Date:   Thu Feb 20 20:32:07 2020 +0000
+
+    Makes all ArrowPopups AccessibilityTargets.
+    
+    This currently includes the menu that pops up when
+    long pressing an app icon in Launcher or Search, or
+    long pressing Smartspace. Previously, only the menu
+    for Launcher apps grabbed accessibility focus after
+    the open animation completed, and now all three do.
+    
+    Fixes: 145253300
+    Change-Id: I147b45d38a04ab9a55eee9b5bd5551b4c7185fcf
+
+commit aeaad97eb7ac5610491c35d2bc7bd15758d22966
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Thu Feb 20 11:21:26 2020 -0800
+
+    Increase timeout for WorkTabTest.toggleWorks test
+    
+    Bug: 149927292
+    Change-Id: I6dcd0bfa2fe584be9e46f653992f9c748e795614
+
+commit d446f984576fa7fbd5ed0555bdcb6a42440f12a4
+Merge: 7be160170 f3b7246bf
+Author: Winson Chung <winsonc@google.com>
+Date:   Thu Feb 20 06:37:46 2020 +0000
+
+    Merge "Adding new tracing call from SysUI" into ub-launcher3-master
+
+commit 7be160170d1f1e81f0eea4305a8d01031a8633be
+Merge: 91f97cb2d 10a285dc2
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Thu Feb 20 05:53:45 2020 +0000
+
+    Merge "Render user's actual workspace in ThemePicker preview (Part 5)" into ub-launcher3-master
+
+commit f3b7246bf273b69a1a7390b4fbb7794ed57168ee
+Author: Winson Chung <winsonc@google.com>
+Date:   Wed Nov 20 12:27:06 2019 -0800
+
+    Adding new tracing call from SysUI
+    
+    Bug: 144854916
+    Test: This change is only to ensure the changes build
+    Change-Id: I62b247b45454861328b6062ed571c854a374aa34
+
+commit 91f97cb2d1e5be3a17b040e34732b10df14c975f
+Merge: 6e82910a4 d1c077972
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Feb 20 01:49:30 2020 +0000
+
+    Merge "Increase timeout for flaky work test" into ub-launcher3-master
+
+commit 4e3eaa5a71d127f30927e07cc42ddfa7afcb4887
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Wed Feb 19 17:37:22 2020 -0800
+
+    [Overview Actions] Add ControlType for overview action buttons.
+    
+    Design: go/logging_for_overview_actions
+    
+    Test:local, logging result: https://paste.googleplex.com/6489148393259008
+    
+    Bug:139828243
+    
+    Change-Id: I61fa66f8ec6edae43f6242599f8d4ea8e28d735d
+
+commit 6e82910a45539afab26f60d60261c1b56c3885d7
+Merge: 9fb7d28b6 619daaf82
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Feb 20 01:16:42 2020 +0000
+
+    Merge "Give current TaskView accessibility focus" into ub-launcher3-master
+
+commit d1c07797269afc77608809b72088f89fad71acf9
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Wed Feb 19 17:07:00 2020 -0800
+
+    Increase timeout for flaky work test
+    
+    Bug:149867607
+    Change-Id: Ic746a4857a47fc29372d19419ddfa6eaebd06f87
+
+commit 10a285dc24b75cb7469f284c945ea348ea305139
+Author: Tracy Zhou <tracyzhou@google.com>
+Date:   Tue Feb 18 11:52:53 2020 -0800
+
+    Render user's actual workspace in ThemePicker preview (Part 5)
+    
+    This change takes care of rendering widgets using widget provider's layout info.
+    
+    Test: manual
+    Bug: 144052839
+    
+    Change-Id: I7002d8bf653513cdd317736d550a47f61f0ee474
+
+commit 9fb7d28b638d70be07337ce2c73038bdcfaf8b5d
+Author: Andy Wickham <awickham@google.com>
+Date:   Thu Feb 20 00:07:06 2020 +0000
+
+    Removes exported="true" for RecentsActivity.
+    
+    Change-Id: Iea9ad04886c3221cefa709c14b6501b2af83af06
+
+commit 2eac20e3789bbd3d47d07a291d85fec9a7c53772
+Merge: b3c991f7d 63b7f3633
+Author: Andy Wickham <awickham@google.com>
+Date:   Wed Feb 19 23:51:20 2020 +0000
+
+    Merge "Renames BackGestureTutorialActivity to GestureSandboxActivity." into ub-launcher3-master
+
+commit b3c991f7d344966a1892efd1a4077ad9b6d91161
+Merge: 1e33123a0 9ac4b580a
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 19 21:45:38 2020 +0000
+
+    Merge "null check in showLableSuggestion()." into ub-launcher3-master
+
+commit 63b7f36338c5ccce05b97d8fa16e740142360d4a
+Author: Andy Wickham <awickham@google.com>
+Date:   Tue Feb 18 23:19:42 2020 +0000
+
+    Renames BackGestureTutorialActivity to GestureSandboxActivity.
+    
+    Bug: 148542211
+    Change-Id: Iaac537380b02f1c52f967748c30fe49ac36bb91e
+
+commit 1e33123a0ba651ccd9f020d333e6787948344bd5
+Merge: 6eebaab5d 3b0c1f3ac
+Author: Andy Wickham <awickham@google.com>
+Date:   Wed Feb 19 21:11:20 2020 +0000
+
+    Merge "Allows multiple gesture blocking activities to be specified." into ub-launcher3-master
+
+commit 9ac4b580a1a5caabab15cb5b1eafa584da5f9504
+Author: jayaprakashs <jayaprakashs@google.com>
+Date:   Wed Feb 19 12:38:05 2020 -0800
+
+    null check in showLableSuggestion().
+    
+    It throws NPE when the data is missing for all the packages and all the suggestions are null.
+    
+    Change-Id: I4aa36969e1aee00bcfc577a839d6da01d4e67a75
+
+commit 6eebaab5d6ba9094715652f4b1107e43e5cb6035
+Merge: aeb185e74 c3bd4d0e7
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Feb 19 20:10:59 2020 +0000
+
+    Merge "Updating Pause detection to use motion events directly" into ub-launcher3-master
+
+commit aeb185e744f8d1edac11dad6bd254bd0b741d9fb
+Merge: b8d1e3526 ccebfbe27
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Wed Feb 19 19:53:38 2020 +0000
+
+    Merge "Clean up work profile" into ub-launcher3-master
+
+commit ccebfbe2733e6570d3af0622262a1eb2e5633478
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Mon Feb 10 09:26:20 2020 -0800
+
+    Clean up work profile
+    
+    This includes
+    - Dismiss work edu on launcher state change
+    - Remove work tab flash on first setup
+    - Make edu bottom sheet adopt theme color
+    - Fix Work toggle bottom inset
+    
+    
+    Bug: 149200572
+    Bug: 149197172
+    Bug: 149199058
+    Bug: 149215103
+    Bug: 149198955
+    Bug: 145595763
+    Bug:149481723
+    
+    Test: Manual
+    Change-Id: I39a30782b80fd3a66bede55754fa30a940d2caee
+
+commit c3bd4d0e75e150a44169551eba27db48bc66a462
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Feb 18 17:32:57 2020 -0800
+
+    Updating Pause detection to use motion events directly
+    
+    Bug: 139750033
+    Change-Id: Ib261b203fec941f3c5303eafc1d435efdf3dbcaf
+
+commit 3b0c1f3acaea80c332da2b49b35a58f1d5a1f53c
+Author: Andy Wickham <awickham@google.com>
+Date:   Fri Feb 14 00:31:54 2020 +0000
+
+    Allows multiple gesture blocking activities to be specified.
+    
+    Bug: 148542211
+    Change-Id: Ie299359eb2df60f5f08d156dc6882fa133fab27c
+
+commit 619daaf82a65cbd1190a676b8582f1a7eb1cb774
+Author: Tony Wickham <twickham@google.com>
+Date:   Fri Feb 7 12:29:06 2020 -0800
+
+    Give current TaskView accessibility focus
+    
+    Send TYPE_VIEW_FOCUSED in the following places:
+    - When page transition ends on a task
+    - When finishing state transition to overview
+    - When un-hiding the current running task view
+    
+    Bug: 145647019
+    Change-Id: I7bb357ea60e1dea79daf2ad50efa51071e064da8
diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java b/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java
index aec1cdd..9e1ad7b 100644
--- a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java
+++ b/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java
@@ -180,8 +180,7 @@
                 long updateTime = c.getLong(indexLastUpdate);
                 int version = c.getInt(indexVersion);
                 T app = componentMap.remove(component);
-                if (version == info.versionCode
-                        && updateTime == cachingLogic.getLastUpdatedTime(app, info)
+                if (version == info.versionCode && updateTime == info.lastUpdateTime
                         && TextUtils.equals(c.getString(systemStateIndex),
                                 mIconCache.getIconSystemState(info.packageName))) {
 
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
index d1a487a..30a4e50 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
@@ -55,6 +55,7 @@
 import com.android.launcher3.util.TouchController;
 import com.android.launcher3.util.UiThreadHelper;
 import com.android.launcher3.util.UiThreadHelper.AsyncCommand;
+import com.android.quickstep.RecentsModel;
 import com.android.quickstep.SysUINavigationMode;
 import com.android.quickstep.SysUINavigationMode.Mode;
 import com.android.quickstep.SystemUiProxy;
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
index f161cc0..f8abba5 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewInputConsumer.java
@@ -120,4 +120,5 @@
             mActivity.dispatchKeyEvent(ev);
         }
     }
-}
\ No newline at end of file
+}
+
diff --git a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
index 31c1acf..874adb2 100644
--- a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
+++ b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java
@@ -150,4 +150,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
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/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java b/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
index 3d048a6..731a220 100644
--- a/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
+++ b/quickstep/tests/src/com/android/quickstep/StartLauncherViaGestureTests.java
@@ -100,4 +100,4 @@
             mLauncher.getBackground().switchToOverview();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
index 9b12a62..d77d392 100644
--- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
+++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
@@ -1307,4 +1307,4 @@
     void expectEvent(String sequence, Pattern expected) {
         if (sCheckingEvents) sEventChecker.expectPattern(sequence, expected);
     }
-}
\ No newline at end of file
+}
