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 @@
+[34mCOMMAND>> git log f3779f129f7326cb7acb57bf6aabd68aca5b6218..3aaf3967348ff55d2b8ac6d50e59ea01d9362af9(B[m
+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
+}