Merging from ub-launcher3-master @ build 6294827

 Bug:150504032
 Test: manual, presubmit on the source branch
 x20/teams/android-launcher/merge/ub-launcher3-master_rvc-dev_6294827.html

Change-Id: I74ae8bea8c64f116ca7663569cc0e9569f506ca5
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..e1e9534
--- /dev/null
+++ b/buglist.txt
@@ -0,0 +1,22 @@
+150522230
+150260456
+139137636
+150122946
+150260456
+151166786
+139828243
+150876921
+150644839
+146593239
+143361609
+151025334
+150864182
+151050221
+150680980
+138964382
+150788630
+146593239
+149792636
+147305863
+148867106
+139137636
diff --git a/buglist_unique.txt b/buglist_unique.txt
new file mode 100644
index 0000000..7caec98
--- /dev/null
+++ b/buglist_unique.txt
@@ -0,0 +1,19 @@
+138964382
+139137636
+139828243
+143361609
+146593239
+147305863
+148867106
+149792636
+150122946
+150260456
+150522230
+150644839
+150680980
+150788630
+150864182
+150876921
+151025334
+151050221
+151166786
diff --git a/buglist_with_title.txt b/buglist_with_title.txt
new file mode 100644
index 0000000..39a9bb4
--- /dev/null
+++ b/buglist_with_title.txt
@@ -0,0 +1,48 @@
+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 ----
+138964382  awickham  P2        ASSIGNED  Move all shared libs to a common location (plugin / iconloaderlib) ----
+139137636  vadimt    P2        ASSIGNED  Create memory tests for Launcher ----
+139828243  xuqiu     P2        ASSIGNED  [Overview Actions] Add Overview actions ----
+143361609  twickham  P2        ASSIGNED  Overview gesture in R ----
+146593239  awickham  P2        FIXED   Gesture navigation fail in Facebook messenger ----
+147305863  sfufa     P2        FIXED   DragNDrop userevent missing target hierarchy ----
+148867106  vadimt    P2        FIXED   [Flaky test] AddConfigWidgetTest.testConfigCancelled ----
+149792636  dupin     P2        ASSIGNED  [Android 11] Blur polish ----
+150122946  sfufa     P4        FIXED   Work toggle styling not correct ----
+150260456  peanutbutter  P1        FIXED   Add Fixed Rotation Transform to Home Settings ----
+150522230  hyunyoungs  P1        ASSIGNED  Pixel launcher keeps crashing ('java.lang.String android.content.ComponentName.getPackageName()) ----
+150644839  twickham  P3        FIXED   In landscape mode, long press on app shortcut UI issue observed. ----
+150680980  jonmiranda  P2        FIXED   Slide up to home screen animation is not smooth ----
+150788630  hyunyoungs  P1        ASSIGNED  Turn off FOLDER_NAME_SUGGEST flag on QQ builds earliest possible ----
+150864182  twickham  P4        FIXED   Crash when dumping while user is locked ----
+150876921  jonmiranda  P2        FIXED   Pages views seem to snap back to previous page ----
+151025334  hyunyoungs  P1        VERIFIED  DeviceConfig doesn't update immediately when Pheonotype pushes ----
+151050221  dupin     P1        FIXED   [NO LAST KMSG] [Short Uptime] [R]DUT will display the "Pixel is starting..." after rebooting and unlocking SIM pin code ----
+151166786  sunnygoyal  P2        FIXED   Swipe handler and activity interface mismatch ----
diff --git a/commitlist.txt b/commitlist.txt
new file mode 100644
index 0000000..e0df402
--- /dev/null
+++ b/commitlist.txt
@@ -0,0 +1,777 @@
+COMMAND>> git log f3779f129f7326cb7acb57bf6aabd68aca5b6218..3aaf3967348ff55d2b8ac6d50e59ea01d9362af9(B
+commit 3aaf3967348ff55d2b8ac6d50e59ea01d9362af9
+Author: Vinit Nayak <peanutbutter@google.com>
+Date:   Fri Mar 13 13:57:09 2020 -0700
+
+    Remove sensor manager from RecentsView
+    
+    This disables the rotation animation in
+    overview, but should hopefully fix tests.
+    
+    fixes: 150260456
+    Change-Id: I121cad155672c2e325cc0f83ce209be0d3806b1c
+
+commit 9caed38e34671e6b07b95bea1e971dee03b010ce
+Merge: 6d8203ef4 f546e0599
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Mar 13 16:41:17 2020 +0000
+
+    Merge "Null check every ComponentName call inside FolderNameProvider" into ub-launcher3-master
+
+commit f546e0599e8127068e7d75ff787483453c781275
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Thu Mar 12 12:53:43 2020 -0700
+
+    Null check every ComponentName call inside FolderNameProvider
+    
+    Bug: 150522230
+    Change-Id: I50007a3a781234797e16d830935a8b8585ac242b
+
+commit 6d8203ef4495f9550999f483f7c9822316b29971
+Merge: 3af717835 3388323bc
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Mar 13 03:00:46 2020 +0000
+
+    Merge "Disable OrientationListener if vertical landscape not supported" into ub-launcher3-master
+
+commit 3388323bc1b598dcee37d9522c14f968a1318f8e
+Author: Vinit Nayak <peanutbutter@google.com>
+Date:   Thu Mar 12 17:18:51 2020 -0700
+
+    Disable OrientationListener if vertical landscape not supported
+    
+    Even if multiple orientations are disabled but the flag
+    is on, we'll be listneing and setting different layouts.
+    Seeing in some tests that that callback was getting fired
+    for some reason.
+    
+    Fixes: 150260456
+    Change-Id: I0a1c9f06cc4830d3dc8410a777d595851f1c35eb
+
+commit 3af717835652536726e42d46d5875adf5ceb3cb7
+Author: thiruram <thiruram@google.com>
+Date:   Thu Mar 12 16:16:24 2020 -0700
+
+    Fixes missing smart folder logging bug. Uses ProtoLite.toString method to log LauncherEvents.
+    
+    Change-Id: I45dbf189e7bd47f8d4d7ba55180e59686bd6ecae
+
+commit b6bc08ad5751e360a0e0407f7fc5cd708b7a28be
+Merge: 6aa63d9f8 984c01cbc
+Author: Tony Wickham <twickham@google.com>
+Date:   Thu Mar 12 21:48:42 2020 +0000
+
+    Merge "Invert playNonAtomicComponent() as onlyPlayAtomicComponent()" into ub-launcher3-master
+
+commit 6aa63d9f8ec9a20c431da2f0cd05be610ed0d152
+Merge: 4e82f5bc3 f0d96f83f
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Thu Mar 12 21:01:30 2020 +0000
+
+    Merge "Fixing activity leak via accumulation of draw listeners" into ub-launcher3-master
+
+commit f0d96f83f72e81ffc0f14db60c50c022839bb6e7
+Author: vadimt <vadimt@google.com>
+Date:   Tue Mar 10 13:44:58 2020 -0700
+
+    Fixing activity leak via accumulation of draw listeners
+    
+    Bug: 139137636
+    Change-Id: I0a2f0849f886acaac31746ac7c9724c765692e88
+
+commit 4e82f5bc364f66d9a6ac72071db0d18e5a7fd956
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Thu Mar 12 12:29:33 2020 -0700
+
+    Fixing crash when swiping up using 3P Launcher
+    
+    Change-Id: Ia181edc1a00136374b3f0d848beccf0c9acd7b5c
+
+commit f85fcc792f74b3143670cef9e260ffb1b68a1f9f
+Merge: b9ec9319c f5a4deb12
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Mar 12 18:12:59 2020 +0000
+
+    Merge "Hide work apps when work profile is paused" into ub-launcher3-master
+
+commit f5a4deb120731f116aea6b2161560f4e81502260
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Wed Mar 4 16:24:06 2020 -0800
+
+    Hide work apps when work profile is paused
+    
+    - hide overlay icon in landscape mode
+    - don't show edu if user has already seen legacy work profile edu
+    - make sure personal tab is highlighted when work profile is reinstalled
+    - always go home after a work profile is added or removed
+    - add tests for work edu flow
+    
+    Bug: 150122946
+    Test: Manual
+    Change-Id: I8f80ac763acf03ca31a534464f4ddfd84528d329
+
+commit b9ec9319c5534cf6ebd8df2ee1144e1ebb477c33
+Author: Vinit Nayak <peanutbutter@google.com>
+Date:   Wed Mar 4 12:05:28 2020 -0800
+
+    Add fixed_rotation_transform to home settings
+    
+    This sets the feature flag on launcher side
+    and also updates the setting in Settings.Global
+    Launcher DOES NOT listen to the Settings.Global
+    change from adb anymore. This should take
+    preference over setting it from command line.
+    
+    Also fix a related swipe to home animation bug
+    that happened w/ merge conflict.
+    
+    Fixes: 150260456
+    Test: Set and unset, visually verified behavior.
+    Tested w/ autorotate on and off.
+    Checked Settings.Global value correctly updated
+    via "adb shell settings get global
+    fixed_rotation_transform"
+    TODO: Update tests to reflect this new
+    default-on fixed rotation behavior.
+    
+    Change-Id: Id95f006eb1e92a59e24b05567298fd21b1409b13
+
+commit 984c01cbcda8ab31c24c6a27118d9c1934c23795
+Author: Tony Wickham <twickham@google.com>
+Date:   Fri Mar 6 15:56:46 2020 -0800
+
+    Invert playNonAtomicComponent() as onlyPlayAtomicComponent()
+    
+    This avoids the double negative we use in a few places, so should be clearer.
+    Also added some comments to explain what the animComponents are used for.
+    
+    Change-Id: Ibd25bd12efce6553b377bbd9c0651e4f4ac3e498
+
+commit 31ff98e14491edda33a7ccd2be04795bdaad124c
+Merge: 4acdb3bcd 9e19866ed
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Mar 12 00:26:57 2020 +0000
+
+    Merge "Only allow horizontal spring if page will change." into ub-launcher3-master
+
+commit 4acdb3bcd7f69e0cd42b7fae16176cbe15b551aa
+Merge: 6a550f26a 003782f93
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Thu Mar 12 00:20:15 2020 +0000
+
+    Merge "Removing some properties out of AnimationBuilder" into ub-launcher3-master
+
+commit 6a550f26a79564575cee5dfe15338c64ffe00d2b
+Merge: 0abe81991 fa617d89c
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Thu Mar 12 00:15:44 2020 +0000
+
+    Merge "Using FallbackSwipeHandler in 2-button mode" into ub-launcher3-master
+
+commit 003782f93c8b5096ebf6e64fbfa7e3483c11d685
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Mar 6 14:52:17 2020 -0800
+
+    Removing some properties out of AnimationBuilder
+    
+    AnimationBuilder and PendingAnimation have similar logic. This will
+    allow to unify the two classes
+    
+    Change-Id: Id8c1d8a7020d132adbccdc6c80538ed6556cb75e
+
+commit 0abe81991398556485d6605dbeb57b64e2414f92
+Merge: 9c47ddd2a 21167f01d
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Wed Mar 11 23:27:05 2020 +0000
+
+    Merge "[Overview Actions] Hide other tasks for select mode UI." into ub-launcher3-master
+
+commit fa617d89cece2c08c03fa7506700bed93d060cf7
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Wed Mar 11 16:20:25 2020 -0700
+
+    Using FallbackSwipeHandler in 2-button mode
+    
+    Bug: 151166786
+    Change-Id: Ia86af76c1779bafa4690e733a7e6764973c8ae0d
+
+commit 21167f01d4877d5927e4cd473cf6fcf61acc54d8
+Author: Becky Qiu <xuqiu@google.com>
+Date:   Thu Mar 5 11:26:34 2020 -0800
+
+    [Overview Actions] Hide other tasks for select mode UI.
+    
+    Test:local
+    Bug:139828243
+    
+    Change-Id: Idc9c6a0e354b9df7f48f3ce93b560fdc4999fc3a
+
+commit 9e19866ed86de5237ea02810e28fb56f3ab80616
+Author: Jon Miranda <jonmiranda@google.com>
+Date:   Wed Mar 11 14:42:02 2020 -0700
+
+    Only allow horizontal spring if page will change.
+    
+    Bug: 150876921
+    Change-Id: I88db4c28ec3f8213c583e8a0dcd1cce2b1fee322
+
+commit 9c47ddd2a60aacd5663e040cf1f90d65896544a4
+Merge: 8780065fd ddb08885f
+Author: Tony Wickham <twickham@google.com>
+Date:   Wed Mar 11 21:10:04 2020 +0000
+
+    Merge "Try orienting popup the other way if offset pushes it out of bounds" into ub-launcher3-master
+
+commit 8780065fdbe9e0b012f110d523447bcf4022a191
+Merge: 25960bcd8 2768a2468
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Wed Mar 11 20:17:17 2020 +0000
+
+    [automerger skipped] Merge "[DO NOT MERGE] Adds fling gesture suppression to Launcher" into ub-launcher3-qt-qpr1-dev am: 631ed598ee -s ours am: 2768a24688 -s ours
+    
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I36a95c05e2cef2bb615c67c30697c8a1b07b4c6f
+
+commit 25960bcd88b97727c9892dfce0ad57761ef3a992
+Merge: 9c40c83d7 f3b22ffee
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Wed Mar 11 20:17:10 2020 +0000
+
+    [automerger skipped] [DO NOT MERGE] Adds fling gesture suppression to Launcher am: f3b22ffee6 -s ours
+    
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I38695bd05d74b8a526e61c2b55b2d2669e4e31a7
+
+commit 2768a24688171fddd0ed4e8fa720d308736c2ca8
+Merge: f3b22ffee 631ed598e
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Wed Mar 11 20:05:05 2020 +0000
+
+    [automerger skipped] Merge "[DO NOT MERGE] Adds fling gesture suppression to Launcher" into ub-launcher3-qt-qpr1-dev am: 631ed598ee -s ours
+    
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I6a1906e1e7e302ca6886f3ecdeac5d374476020e
+
+commit ddb08885f9d51db577aedc386cc3a90d054132b2
+Author: Tony Wickham <twickham@google.com>
+Date:   Tue Mar 10 18:25:31 2020 -0700
+
+    Try orienting popup the other way if offset pushes it out of bounds
+    
+    orientAboutObject() currently determines whether the popup should align
+    its left side with the icon or the right side. However, after
+    determining this, there is an offset to ensure the popup lines up with
+    the icon as expected, which might push it out of bounds. In that case,
+    we fallback to centering the popup. However, there might be plenty of
+    room on the other side, so we should just align the other direction
+    instead. Updated the logic to do that by first trying to align left
+    (in LTR) or right (in RTL), then trying again with the other alignment
+    if it doesn't fit after all x calculations are made.
+    
+    Bug: 150644839
+    Change-Id: I219dae331bf790e461d91394ffe025d40ec54c9b
+
+commit f3b22ffee691dca3e8a5cc3c0a1fb1d19ce8a5ad
+Author: Govinda Wasserman <gwasserman@google.com>
+Date:   Thu Mar 5 16:50:22 2020 -0500
+
+    [DO NOT MERGE] Adds fling gesture suppression to Launcher
+    
+    Test: Tested locally
+    BUG: 150688842
+    Change-Id: Ifa96bd01363de47cf1d8cdce34d81d525c8c2c04
+    (cherry picked from commit 9b90b1b0345ea57a6152919d318f4ce9cacd7556)
+
+commit 631ed598ee115bdfa1b3249a87c1f266eb93d57d
+Merge: 9a32222ce 9b90b1b03
+Author: Govinda Wasserman <gwasserman@google.com>
+Date:   Wed Mar 11 18:19:26 2020 +0000
+
+    Merge "[DO NOT MERGE] Adds fling gesture suppression to Launcher" into ub-launcher3-qt-qpr1-dev
+
+commit 9b90b1b0345ea57a6152919d318f4ce9cacd7556
+Author: Govinda Wasserman <gwasserman@google.com>
+Date:   Thu Mar 5 16:50:22 2020 -0500
+
+    [DO NOT MERGE] Adds fling gesture suppression to Launcher
+    
+    Test: Tested locally
+    BUG: 150688842
+    Change-Id: Ifa96bd01363de47cf1d8cdce34d81d525c8c2c04
+
+commit 9c40c83d70bbe4689e1bddc012aec6d7a04dc490
+Merge: b41aa64b8 86ace5452
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 20:55:30 2020 +0000
+
+    [automerger skipped] Merge "Dismisses system overlays for Home intent." into ub-launcher3-qt-future-dev am: 86ace54523 -s ours
+    
+    am skip reason: Change-Id Ib9c85de2f83f99d1ef53fb17fde5d0b3c514849a with SHA-1 65ced1b1d0 is in history
+    
+    Change-Id: I70904c253ac6ad36820069f64d9338ee067d159b
+
+commit b41aa64b8df2256f554c7ea4fa96c10464d1a7b6
+Merge: d7c844167 5e72945a8
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 20:55:18 2020 +0000
+
+    [automerger skipped] Merge "Import translations. DO NOT MERGE" into ub-launcher3-rvc-dev am: 5e72945a85 -s ours
+    
+    am skip reason: subject contains skip directive
+    
+    Change-Id: Ib8b27aa6ad4e4f0ed4bdebf3bb7b7cac654fad25
+
+commit d7c84416765d4883fa2d8bba595c058db042325f
+Merge: 0a9471546 3c1db273b
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Tue Mar 10 19:15:37 2020 +0000
+
+    Merge "DeviceFlag change is not detected when phenotype updates." into ub-launcher3-master
+
+commit 5e72945a852ba56976835874a7c012726d2e00d6
+Merge: a066cb443 a159b77ef
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Mar 10 17:45:51 2020 +0000
+
+    Merge "Import translations. DO NOT MERGE" into ub-launcher3-rvc-dev
+
+commit 86ace54523dc354fadd65987e5ace43f89586e34
+Merge: 44e729895 b3b8aefe5
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Mar 10 17:42:54 2020 +0000
+
+    Merge "Dismisses system overlays for Home intent." into ub-launcher3-qt-future-dev
+
+commit a159b77ef149652daf56e4f413fd4dbc264b032b
+Author: Bill Yi <byi@google.com>
+Date:   Tue Mar 10 09:56:26 2020 -0700
+
+    Import translations. DO NOT MERGE
+    
+    Auto-generated-cl: translation import
+    Change-Id: I4d6b82f9e793cf2649102e913c81c27f6ccc004a
+
+commit 0a947154691988747aae405018c8ddb36be27a05
+Merge: f2508e783 44e729895
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 16:21:57 2020 +0000
+
+    [automerger skipped] Merge "Import translations. DO NOT MERGE" into ub-launcher3-qt-future-dev am: 44e7298953 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I1b060550e9d0f839c96b1582712321ef530e353f
+
+commit 44e729895391cd49acc938004c6044fc652ea9db
+Merge: defd3c0e6 83730697f
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Mar 10 16:18:29 2020 +0000
+
+    Merge "Import translations. DO NOT MERGE" into ub-launcher3-qt-future-dev
+
+commit f2508e783f624f423bb892a0060d84cbfc36052f
+Merge: e635a2689 defd3c0e6
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 16:16:51 2020 +0000
+
+    [automerger skipped] Import translations. DO NOT MERGE am: 9a32222ce7 -s ours am: defd3c0e6f -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I5eb69f5179f420f1ab678a025ab7bf28f93f595a
+
+commit defd3c0e6fc964cbbb5801cf045bd6de9689a0c7
+Merge: 94c993a63 9a32222ce
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 16:04:16 2020 +0000
+
+    [automerger skipped] Import translations. DO NOT MERGE am: 9a32222ce7 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I4fe5c187cc89f91199f3265f43d323556a992841
+
+commit e635a2689d0b75065a7a8d5fae031382137303a6
+Merge: dbcc63ede a066cb443
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 16:04:12 2020 +0000
+
+    [automerger skipped] Import translations. DO NOT MERGE am: a066cb4430 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I2cd255fd2f265718df096d05f3c8a67c78662c58
+
+commit dbcc63edebe373d5f698e7d404eff83898a5b8b2
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Mar 6 15:35:55 2020 -0800
+
+    Removing some autoboxing during property animation
+    
+    Change-Id: Ibd6f20c565a4d66dc6d606b3f0bbc96fec66fe56
+
+commit add170098c5696948edbd7d7e3f220c801cfc9eb
+Merge: d01ee6d6a 4c9ee6354
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Mar 10 08:43:41 2020 +0000
+
+    Merge "Converting some anonymous classes to lambda calls" into ub-launcher3-master
+
+commit b3b8aefe5751bf55ef32f61148f2a9b6c811db9e
+Author: Andy Wickham <awickham@google.com>
+Date:   Tue Mar 10 01:36:02 2020 +0000
+
+    Dismisses system overlays for Home intent.
+    
+    Test: Used Facebook chatheads (not system bubble).
+    Before the change, Home gesture didn't work. After
+    the change, it does work :)
+    Bug: 146593239
+    
+    Merged-In: Ib9c85de2f83f99d1ef53fb17fde5d0b3c514849a
+    Change-Id: I19d91aaed19ccaec68478e364ce6b80049d49a98
+
+commit a066cb4430989496e80770bbac04c68b2d515f2b
+Author: Bill Yi <byi@google.com>
+Date:   Mon Mar 9 19:41:30 2020 -0700
+
+    Import translations. DO NOT MERGE
+    
+    Auto-generated-cl: translation import
+    Change-Id: I91780ce30d4eb9825d415e2825b9a94e2a4fade8
+
+commit 83730697f8416f8124bb0a6593aba5334f38546e
+Author: Bill Yi <byi@google.com>
+Date:   Mon Mar 9 19:37:07 2020 -0700
+
+    Import translations. DO NOT MERGE
+    
+    Auto-generated-cl: translation import
+    Change-Id: I833e37768c8b22a17cd5e36ac7b01ac024f3bbfc
+
+commit 9a32222ce76b37911e42fdfa500d3e47623d459d
+Author: Bill Yi <byi@google.com>
+Date:   Mon Mar 9 19:32:09 2020 -0700
+
+    Import translations. DO NOT MERGE
+    
+    Auto-generated-cl: translation import
+    Change-Id: I4cb33e7020ee7cb582982fecba72dfd7f2c70469
+
+commit d01ee6d6a84ca0fcc2dbc4757cdc90e36da02692
+Merge: 7dfe1360e 94c993a63
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Tue Mar 10 01:05:38 2020 +0000
+
+    [automerger skipped] Merge "[DO NOT MERGE] Fix some visual jumps when swiping home" into ub-launcher3-qt-future-dev am: 94c993a635 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I2b30725cd240cdc7ebfcb50eb2180aaf81ab4267
+
+commit 94c993a635f00796b00c45b47b29496fe891839c
+Merge: e1664fcf1 8caa78790
+Author: Jonathan Miranda <jonmiranda@google.com>
+Date:   Tue Mar 10 00:49:17 2020 +0000
+
+    Merge "[DO NOT MERGE] Fix some visual jumps when swiping home" into ub-launcher3-qt-future-dev
+
+commit 7dfe1360edbe9ea64c0b8c591ffc525ba9a5a581
+Merge: 590914cc5 79a352169
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Tue Mar 10 00:46:11 2020 +0000
+
+    Merge "Show drag handle indictor in 2 zone model" into ub-launcher3-master
+
+commit 79a352169f0197f5d0ea2be32cd8cf2f7dbef1ad
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Mar 9 16:31:21 2020 -0700
+
+    Show drag handle indictor in 2 zone model
+    
+    Note this is just the tiny arrow we show in accessibility mode, will
+    probably need to get some updated visual treatment going forward.
+    
+    Bug: 143361609
+    Change-Id: I65975727f101984429aadc35a650826e36d9c9aa
+
+commit 590914cc5ec219590f56cea52d975865187e7e0e
+Merge: e9801665a 65ced1b1d
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Mon Mar 9 22:00:20 2020 +0000
+
+    Merge "Dismisses system overlays for Home intent." into ub-launcher3-master
+
+commit e9801665ac81ac0d4059991377a3a782f92dfe66
+Merge: b365cc438 e1664fcf1
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Mon Mar 9 21:42:07 2020 +0000
+
+    [automerger skipped] [DO NOT MERGE] Initiailize APP_SEARCH_IMRPOVEMENT flag outside DEBUG builds. am: e1664fcf14 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I06a7e3ef6f5a0d6ed852b0b32238426ca3ba3809
+
+commit 3c1db273bec12d4bb0573e20bc0f6ecc5b7e18b7
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Sat Mar 7 23:52:17 2020 -0800
+
+    DeviceFlag change is not detected when phenotype updates.
+    
+    Bug: 151025334
+    Test: adb shell device_config put launcher FOLDER_NAME_SUGGEST false
+    
+    Change-Id: I5e478aebfea5847cf7cbe7c0cb6cb0c6f81481cb
+
+commit b365cc43878e0cb4e6d4b998c10cd590adc4cb8d
+Author: Tony Wickham <twickham@google.com>
+Date:   Mon Mar 9 13:20:04 2020 -0700
+
+    Fix crash when dumping before user unlocks
+    
+    Bug: 150864182
+    Bug: 151050221
+    Change-Id: I29ba2ef66b4359a47f866d02306498537c45236e
+
+commit e1664fcf1486d337ea998ded70d092590a0bfbd9
+Author: Alex Mang <alexmang@google.com>
+Date:   Mon Mar 9 12:57:11 2020 -0700
+
+    [DO NOT MERGE] Initiailize APP_SEARCH_IMRPOVEMENT flag outside DEBUG builds.
+    
+    This is addressing a bug where flags are only changed on debug build
+    devices or initially when changes. When nexuslauncher restarts the flag
+    is no longer retrieved.
+    
+    Change-Id: Ieb6f460a271c918ee4e493b34692244f39cb3740
+
+commit 8caa787906b49427afed77e7bd63b72d9bbbe8a7
+Author: Jon Miranda <jonmiranda@google.com>
+Date:   Mon Mar 9 12:50:38 2020 -0700
+
+    [DO NOT MERGE] 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.
+    
+    Partial backport of ag/Ie48f4b665a5bf3cbef76bdf7f043febe99fb84a0
+    
+    Bug: 150680980
+    Change-Id: Ida65097f0ef7d2e11d48b84ecdd353ef89078015
+
+commit bf48cd480cd131c370760117681917dedd784c51
+Author: Andy Wickham <awickham@google.com>
+Date:   Tue Mar 3 01:15:27 2020 +0000
+
+    Removes iconloaderlib from Launcher3.
+    
+    (It's now in frameworks/libs/systemui)
+    
+    Bug: 138964382
+    Test: builds
+    Change-Id: Ic60adfb2ebdcf1a72b440df26023b861fd6e62d5
+
+commit a9bcd82554534d55e38ca039eb52c1dfacbdb70a
+Merge: e6df7da2a cfaa4889e
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Mar 7 08:38:49 2020 +0000
+
+    Merge "Enabling springs for start dismiss animation" into ub-launcher3-master
+
+commit e6df7da2a252c5d57114346d6bf6d6883b4a9f9a
+Merge: df8232c22 16eca5500
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Mar 7 07:19:13 2020 +0000
+
+    Merge "Enabling event verification for Launcher3" into ub-launcher3-master
+
+commit cfaa4889e65190b40ea988dd03421a01c9e06abc
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Tue Feb 25 14:37:01 2020 -0800
+
+    Enabling springs for start dismiss animation
+    
+    > Adding flag support for PendingAnimation which can be used
+      to define custom behavior for various animations
+    > Using SpringAnimationBuild for spring animation instead of
+      SpringObjectanimator
+    
+    Change-Id: I41ca34b0574981bb3fc7894639a321c12e6feac1
+
+commit df8232c2242eeb2d8efc050a5e7afb88782ed9ca
+Merge: cfea0fb34 f538393e4
+Author: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
+Date:   Sat Mar 7 06:50:59 2020 +0000
+
+    [automerger skipped] [DO NOT MERGE] Turn off FOLDER_NAME_SUGGEST feature flag am: f538393e42 -s ours
+    am skip reason: subject contains skip directive
+    
+    Change-Id: I1bbffc4f9582d106ce28ac07e6c6719c9f8f063d
+
+commit f538393e42896e5488ca10fccc4cf9409d7295e2
+Author: Hyunyoung Song <hyunyoungs@google.com>
+Date:   Fri Mar 6 12:53:42 2020 -0800
+
+    [DO NOT MERGE] Turn off FOLDER_NAME_SUGGEST feature flag
+    Bug: 150788630
+    
+    Change-Id: I740d6b6f3ee1a33a95debfafa29b3caea24a03c3
+
+commit 65ced1b1d00bc6a6713b442162020df31d497f54
+Author: Andy Wickham <awickham@google.com>
+Date:   Sat Mar 7 02:14:19 2020 +0000
+
+    Dismisses system overlays for Home intent.
+    
+    Test: Used Facebook chatheads (not system bubble).
+    Before the change, Home gesture didn't work. After
+    the change, it does work :)
+    Fixes: 146593239
+    
+    Change-Id: Ib9c85de2f83f99d1ef53fb17fde5d0b3c514849a
+
+commit cfea0fb348910bb245a03df0e178f0be59905dc7
+Merge: 312340504 e7dd35ef0
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Sat Mar 7 00:20:56 2020 +0000
+
+    Merge "OverviewActions: Renaming overview_actions_container and setActionsView" into ub-launcher3-master
+
+commit 31234050473d511a61ce4dc257c15281c1c886b4
+Merge: f655f5cd1 27409e23d
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Mar 6 23:44:57 2020 +0000
+
+    Merge "Removing SecondaryDisplayLauncher library as it is directly included in Launcher" into ub-launcher3-master
+
+commit f655f5cd16a9579afc11088e5545148261225b9f
+Merge: a579ddc9c 8687bc213
+Author: Winson Chung <winsonc@google.com>
+Date:   Fri Mar 6 23:33:26 2020 +0000
+
+    Merge "Initial changes to support blur" into ub-launcher3-master
+
+commit 4c9ee63540dcd2c039831edb0816a56458e30f8f
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Fri Mar 6 15:16:22 2020 -0800
+
+    Converting some anonymous classes to lambda calls
+    
+    Change-Id: I386046a4a515d84801a8bbd11cfa090ba7adfd71
+
+commit 8687bc2131ce98ea0d058290dd21f03b5a429c82
+Author: Winson Chung <winsonc@google.com>
+Date:   Thu Feb 27 23:34:24 2020 -0800
+
+    Initial changes to support blur
+    
+    - Add a new controller to update the background blur on either the
+      launcher or app surfaces based on state or transition
+    
+    Bug: 149792636
+    
+    Change-Id: I6103cd3d53a00c8025558dd49bb73137e2980014
+
+commit a579ddc9c813f314ab3dfd4e80a9c0cf1c77ec61
+Author: Samuel Fufa <sfufa@google.com>
+Date:   Thu Feb 27 16:59:19 2020 -0800
+
+    Refactor logging to capture Target hierarchy
+    
+    Instead of creating a fixed number of targets, we now pass an ArrayList
+    of targets to. Any class implementing
+    LogContainerProviders#fillInLogContainerData can setup it's own target
+    and add it to the ArrayList, It can also pass the ArrayList to other
+    LogContainerProvider to capture full Target hierarchy.
+    
+    Bug: 147305863
+    Change-Id: I0063c692120fb9e1cff2d8902c5da972d0623418
+
+commit e7dd35ef0dd653764e57665756e33ce75446e520
+Author: Sreyas <sreyasr@google.com>
+Date:   Fri Mar 6 10:50:43 2020 -0800
+
+    OverviewActions: Renaming overview_actions_container and setActionsView
+    
+    Change-Id: Ie444101f246e0d00980b47ce39f6e74dade23f73
+
+commit 9099dfcfb75dff987c157a659de5883fe92b22c4
+Merge: e90adc47e 04b90c0fc
+Author: Vadim Tryshev <vadimt@google.com>
+Date:   Fri Mar 6 18:36:05 2020 +0000
+
+    Merge "Test tweaks for the memory activity recreation test" into ub-launcher3-master
+
+commit e90adc47ef114e129a14382f30d84910ef394348
+Author: Winson Chung <winsonc@google.com>
+Date:   Fri Mar 6 00:01:49 2020 -0800
+
+    Fallback to predefined orientation handler if recents view isn't available
+    
+    Change-Id: Iaed42fb9ef598d65e1cf2d166cc343f888352d47
+
+commit d9da5a45fd1653c14e6fd54b15708a696c43c037
+Merge: f67ab6c64 3abc8511a
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Mar 6 06:53:51 2020 +0000
+
+    Merge "Enabling widget config tests after fixing flakiness" into ub-launcher3-master
+
+commit 16eca5500dab2f253f52920edaed477f5e43f413
+Author: vadimt <vadimt@google.com>
+Date:   Thu Mar 5 19:02:18 2020 -0800
+
+    Enabling event verification for Launcher3
+    
+    Will help investigating otherwise mysterious failures.
+    
+    Change-Id: I805ed136baf6d86921fdb4782304fcdafbd3af5c
+
+commit f67ab6c64d0691f7ff1ede3942179172122dac1e
+Merge: 93648b0a5 bb2bf277c
+Author: TreeHugger Robot <treehugger-gerrit@google.com>
+Date:   Fri Mar 6 02:14:19 2020 +0000
+
+    Merge "Catching everything from dumpHprofData" into ub-launcher3-master
+
+commit bb2bf277c0b22ecb1dc64d9971978d3c958dda44
+Author: vadimt <vadimt@google.com>
+Date:   Thu Mar 5 17:22:18 2020 -0800
+
+    Catching everything from dumpHprofData
+    
+    Change-Id: I79ced1d4bb3e6ea43ce6fa5bd07fe22b577006f9
+
+commit 3abc8511a51afe983b481bdf6631535aa8b94f28
+Author: vadimt <vadimt@google.com>
+Date:   Thu Mar 5 14:01:23 2020 -0800
+
+    Enabling widget config tests after fixing flakiness
+    
+    Bug: 148867106
+    Change-Id: I8bbd9ef9b1ca574f79f3f76869051495b59734ce
+
+commit 27409e23d1ba7ca94031de8ff0603c53b86cfcdc
+Author: Sunny Goyal <sunnygoyal@google.com>
+Date:   Wed Feb 26 16:08:20 2020 -0800
+
+    Removing SecondaryDisplayLauncher library as it is directly included in Launcher
+    
+    Change-Id: I97a1fad07f2f6d34fc31c720fcc1e03d0f56477e
+
+commit 04b90c0fcb316c830f7dc66475ff85c6760402f5
+Author: vadimt <vadimt@google.com>
+Date:   Tue Oct 15 10:47:51 2019 -0700
+
+    Test tweaks for the memory activity recreation test
+    
+    Speeding up switching navigation mode by switching from latch
+    (which is not fired) to polling. I'll figure out later why the latch
+    doesn't work.
+    
+    Bug: 139137636
+    Change-Id: I28a9b2b9a3882919fd2a3280b9804afe1b44a46e
diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java b/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java
deleted file mode 100644
index 7b8070a..0000000
--- a/iconloaderlib/src/com/android/launcher3/icons/cache/IconCacheUpdateHandler.java
+++ /dev/null
@@ -1,317 +0,0 @@
-<<<<<<< HEAD   (cc6caf Merge "Let launcher to provide its own OverscrollPlugin" int)
-/*
- * Copyright (C) 2018 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.icons.cache;
-
-import android.content.ComponentName;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
-import android.os.SystemClock;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.ArrayMap;
-import android.util.Log;
-import android.util.SparseBooleanArray;
-
-import com.android.launcher3.icons.cache.BaseIconCache.IconDB;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.Stack;
-
-/**
- * Utility class to handle updating the Icon cache
- */
-public class IconCacheUpdateHandler {
-
-    private static final String TAG = "IconCacheUpdateHandler";
-
-    /**
-     * In this mode, all invalid icons are marked as to-be-deleted in {@link #mItemsToDelete}.
-     * This mode is used for the first run.
-     */
-    private static final boolean MODE_SET_INVALID_ITEMS = true;
-
-    /**
-     * In this mode, any valid icon is removed from {@link #mItemsToDelete}. This is used for all
-     * subsequent runs, which essentially acts as set-union of all valid items.
-     */
-    private static final boolean MODE_CLEAR_VALID_ITEMS = false;
-
-    private static final Object ICON_UPDATE_TOKEN = new Object();
-
-    private final HashMap<String, PackageInfo> mPkgInfoMap;
-    private final BaseIconCache mIconCache;
-
-    private final ArrayMap<UserHandle, Set<String>> mPackagesToIgnore = new ArrayMap<>();
-
-    private final SparseBooleanArray mItemsToDelete = new SparseBooleanArray();
-    private boolean mFilterMode = MODE_SET_INVALID_ITEMS;
-
-    IconCacheUpdateHandler(BaseIconCache cache) {
-        mIconCache = cache;
-
-        mPkgInfoMap = new HashMap<>();
-
-        // Remove all active icon update tasks.
-        mIconCache.mWorkerHandler.removeCallbacksAndMessages(ICON_UPDATE_TOKEN);
-
-        createPackageInfoMap();
-    }
-
-    /**
-     * Sets a package to ignore for processing
-     */
-    public void addPackagesToIgnore(UserHandle userHandle, String packageName) {
-        Set<String> packages = mPackagesToIgnore.get(userHandle);
-        if (packages == null) {
-            packages = new HashSet<>();
-            mPackagesToIgnore.put(userHandle, packages);
-        }
-        packages.add(packageName);
-    }
-
-    private void createPackageInfoMap() {
-        PackageManager pm = mIconCache.mPackageManager;
-        for (PackageInfo info :
-                pm.getInstalledPackages(PackageManager.MATCH_UNINSTALLED_PACKAGES)) {
-            mPkgInfoMap.put(info.packageName, info);
-        }
-    }
-
-    /**
-     * Updates the persistent DB, such that only entries corresponding to {@param apps} remain in
-     * the DB and are updated.
-     * @return The set of packages for which icons have updated.
-     */
-    public <T> void updateIcons(List<T> apps, CachingLogic<T> cachingLogic,
-            OnUpdateCallback onUpdateCallback) {
-        // Filter the list per user
-        HashMap<UserHandle, HashMap<ComponentName, T>> userComponentMap = new HashMap<>();
-        int count = apps.size();
-        for (int i = 0; i < count; i++) {
-            T app = apps.get(i);
-            UserHandle userHandle = cachingLogic.getUser(app);
-            HashMap<ComponentName, T> componentMap = userComponentMap.get(userHandle);
-            if (componentMap == null) {
-                componentMap = new HashMap<>();
-                userComponentMap.put(userHandle, componentMap);
-            }
-            componentMap.put(cachingLogic.getComponent(app), app);
-        }
-
-        for (Entry<UserHandle, HashMap<ComponentName, T>> entry : userComponentMap.entrySet()) {
-            updateIconsPerUser(entry.getKey(), entry.getValue(), cachingLogic, onUpdateCallback);
-        }
-
-        // From now on, clear every valid item from the global valid map.
-        mFilterMode = MODE_CLEAR_VALID_ITEMS;
-    }
-
-    /**
-     * Updates the persistent DB, such that only entries corresponding to {@param apps} remain in
-     * the DB and are updated.
-     * @return The set of packages for which icons have updated.
-     */
-    @SuppressWarnings("unchecked")
-    private <T> void updateIconsPerUser(UserHandle user, HashMap<ComponentName, T> componentMap,
-            CachingLogic<T> cachingLogic, OnUpdateCallback onUpdateCallback) {
-        Set<String> ignorePackages = mPackagesToIgnore.get(user);
-        if (ignorePackages == null) {
-            ignorePackages = Collections.emptySet();
-        }
-        long userSerial = mIconCache.getSerialNumberForUser(user);
-
-        Stack<T> appsToUpdate = new Stack<>();
-
-        try (Cursor c = mIconCache.mIconDb.query(
-                new String[]{IconDB.COLUMN_ROWID, IconDB.COLUMN_COMPONENT,
-                        IconDB.COLUMN_LAST_UPDATED, IconDB.COLUMN_VERSION,
-                        IconDB.COLUMN_SYSTEM_STATE},
-                IconDB.COLUMN_USER + " = ? ",
-                new String[]{Long.toString(userSerial)})) {
-
-            final int indexComponent = c.getColumnIndex(IconDB.COLUMN_COMPONENT);
-            final int indexLastUpdate = c.getColumnIndex(IconDB.COLUMN_LAST_UPDATED);
-            final int indexVersion = c.getColumnIndex(IconDB.COLUMN_VERSION);
-            final int rowIndex = c.getColumnIndex(IconDB.COLUMN_ROWID);
-            final int systemStateIndex = c.getColumnIndex(IconDB.COLUMN_SYSTEM_STATE);
-
-            while (c.moveToNext()) {
-                String cn = c.getString(indexComponent);
-                ComponentName component = ComponentName.unflattenFromString(cn);
-                PackageInfo info = mPkgInfoMap.get(component.getPackageName());
-
-                int rowId = c.getInt(rowIndex);
-                if (info == null) {
-                    if (!ignorePackages.contains(component.getPackageName())) {
-
-                        if (mFilterMode == MODE_SET_INVALID_ITEMS) {
-                            mIconCache.remove(component, user);
-                            mItemsToDelete.put(rowId, true);
-                        }
-                    }
-                    continue;
-                }
-                if ((info.applicationInfo.flags & ApplicationInfo.FLAG_IS_DATA_ONLY) != 0) {
-                    // Application is not present
-                    continue;
-                }
-
-                long updateTime = c.getLong(indexLastUpdate);
-                int version = c.getInt(indexVersion);
-                T app = componentMap.remove(component);
-                if (version == info.versionCode
-                        && updateTime == cachingLogic.getLastUpdatedTime(app, info)
-                        && TextUtils.equals(c.getString(systemStateIndex),
-                                mIconCache.getIconSystemState(info.packageName))) {
-
-                    if (mFilterMode == MODE_CLEAR_VALID_ITEMS) {
-                        mItemsToDelete.put(rowId, false);
-                    }
-                    continue;
-                }
-
-                if (app == null) {
-                    if (mFilterMode == MODE_SET_INVALID_ITEMS) {
-                        mIconCache.remove(component, user);
-                        mItemsToDelete.put(rowId, true);
-                    }
-                } else {
-                    appsToUpdate.add(app);
-                }
-            }
-        } catch (SQLiteException e) {
-            Log.d(TAG, "Error reading icon cache", e);
-            // Continue updating whatever we have read so far
-        }
-
-        // Insert remaining apps.
-        if (!componentMap.isEmpty() || !appsToUpdate.isEmpty()) {
-            Stack<T> appsToAdd = new Stack<>();
-            appsToAdd.addAll(componentMap.values());
-            new SerializedIconUpdateTask(userSerial, user, appsToAdd, appsToUpdate, cachingLogic,
-                    onUpdateCallback).scheduleNext();
-        }
-    }
-
-    /**
-     * Commits all updates as part of the update handler to disk. Not more calls should be made
-     * to this class after this.
-     */
-    public void finish() {
-        // Commit all deletes
-        int deleteCount = 0;
-        StringBuilder queryBuilder = new StringBuilder()
-                .append(IconDB.COLUMN_ROWID)
-                .append(" IN (");
-
-        int count = mItemsToDelete.size();
-        for (int i = 0;  i < count; i++) {
-            if (mItemsToDelete.valueAt(i)) {
-                if (deleteCount > 0) {
-                    queryBuilder.append(", ");
-                }
-                queryBuilder.append(mItemsToDelete.keyAt(i));
-                deleteCount++;
-            }
-        }
-        queryBuilder.append(')');
-
-        if (deleteCount > 0) {
-            mIconCache.mIconDb.delete(queryBuilder.toString(), null);
-        }
-    }
-
-    /**
-     * A runnable that updates invalid icons and adds missing icons in the DB for the provided
-     * LauncherActivityInfo list. Items are updated/added one at a time, so that the
-     * worker thread doesn't get blocked.
-     */
-    private class SerializedIconUpdateTask<T> implements Runnable {
-        private final long mUserSerial;
-        private final UserHandle mUserHandle;
-        private final Stack<T> mAppsToAdd;
-        private final Stack<T> mAppsToUpdate;
-        private final CachingLogic<T> mCachingLogic;
-        private final HashSet<String> mUpdatedPackages = new HashSet<>();
-        private final OnUpdateCallback mOnUpdateCallback;
-
-        SerializedIconUpdateTask(long userSerial, UserHandle userHandle,
-                Stack<T> appsToAdd, Stack<T> appsToUpdate, CachingLogic<T> cachingLogic,
-                OnUpdateCallback onUpdateCallback) {
-            mUserHandle = userHandle;
-            mUserSerial = userSerial;
-            mAppsToAdd = appsToAdd;
-            mAppsToUpdate = appsToUpdate;
-            mCachingLogic = cachingLogic;
-            mOnUpdateCallback = onUpdateCallback;
-        }
-
-        @Override
-        public void run() {
-            if (!mAppsToUpdate.isEmpty()) {
-                T app = mAppsToUpdate.pop();
-                String pkg = mCachingLogic.getComponent(app).getPackageName();
-                PackageInfo info = mPkgInfoMap.get(pkg);
-
-                mIconCache.addIconToDBAndMemCache(
-                        app, mCachingLogic, info, mUserSerial, true /*replace existing*/);
-                mUpdatedPackages.add(pkg);
-
-                if (mAppsToUpdate.isEmpty() && !mUpdatedPackages.isEmpty()) {
-                    // No more app to update. Notify callback.
-                    mOnUpdateCallback.onPackageIconsUpdated(mUpdatedPackages, mUserHandle);
-                }
-
-                // Let it run one more time.
-                scheduleNext();
-            } else if (!mAppsToAdd.isEmpty()) {
-                T app = mAppsToAdd.pop();
-                PackageInfo info = mPkgInfoMap.get(mCachingLogic.getComponent(app).getPackageName());
-                // We do not check the mPkgInfoMap when generating the mAppsToAdd. Although every
-                // app should have package info, this is not guaranteed by the api
-                if (info != null) {
-                    mIconCache.addIconToDBAndMemCache(app, mCachingLogic, info,
-                            mUserSerial, false /*replace existing*/);
-                }
-
-                if (!mAppsToAdd.isEmpty()) {
-                    scheduleNext();
-                }
-            }
-        }
-
-        public void scheduleNext() {
-            mIconCache.mWorkerHandler.postAtTime(this, ICON_UPDATE_TOKEN,
-                    SystemClock.uptimeMillis() + 1);
-        }
-    }
-
-    public interface OnUpdateCallback {
-
-        void onPackageIconsUpdated(HashSet<String> updatedPackages, UserHandle user);
-    }
-}
-=======
->>>>>>> CHANGE (805b52 Removes iconloaderlib from Launcher3.)
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 d894843..cac89e6 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
+}