Commit Graph

9618 Commits

Author SHA1 Message Date
Hyunyoung Song a85f3c2f2d Disable FOLDER_NAME_SUGGEST flag
Bug: 147913781

Change-Id: I12ec71e1fef735f41bb67b155df40335f88d95c9
2020-01-22 09:26:29 -08:00
Hyunyoung Song dc2c128b20 Merge "Updating feature flags subclassing" into ub-launcher3-master 2020-01-22 07:16:54 +00:00
TreeHugger Robot 8c786b2e5c Merge "Adds Launcher flag to enable Universal Smartspace." into ub-launcher3-master 2020-01-22 01:53:36 +00:00
Sunny Goyal 94fa76fbeb Updating feature flags subclassing
> Preventing debug flags to get change listener on release device

Bug: 147913781
Change-Id: I2bd0456918c5d3224c714b153c4565b1ef41d7c0
2020-01-21 14:22:58 -08:00
TreeHugger Robot 745aff4294 Merge "Fix regression where ShortcutRequest returns no results" into ub-launcher3-master 2020-01-18 00:46:44 +00:00
Tony Wickham d11fa28df9 Fix regression where ShortcutRequest returns no results
There was a subtle bug introduced by ag/9898176 where we now accept
String... shortcutIds. There are a couple calls that don't pass any
id's, which means the shortcut query is doomed to return an empty list.
Instead, we should pass null to match all shortcuts for that package.

Bug: 147831521
Change-Id: I928b6ed23b7e0ad01d95749cabf88ada053bcdd3
2020-01-17 16:14:13 -08:00
Andy Wickham ff13792b83 Adds Launcher flag to enable Universal Smartspace.
Test: Used the flag
Bug: 141701658
Change-Id: Id06016e313b05ae70b693c39e2e1cde2576cfbb1
2020-01-17 23:03:03 +00:00
Winson Chung 442d5e5bcd Merge "Move remote animation definition runner to wrapped class" into ub-launcher3-master 2020-01-17 22:59:20 +00:00
TreeHugger Robot 9311785daf Merge "Better diags and a small correction for scrolling in AllApps" into ub-launcher3-master 2020-01-17 21:48:52 +00:00
Winson Chung 24ab40cebe Move remote animation definition runner to wrapped class
- Add call to unregister for remote animations from the system
  when the launcher activity is destroyed to prevent a lingering
  reference from the system to the old activity. But separately,
  to not have to wait for the system to GC before clearing the
  binder ref, we also wrap all runner implementations so that
  they can be cleaned up after a GC in our process only.

Bug: 139137636

Change-Id: Ib6276cac80b446440ec101fe00eae6ca41fdf32c
2020-01-17 21:34:54 +00:00
vadimt 299aaf3a8a TAPL: performing event verification for all gestures
+ missed comments from earlier CLs

Change-Id: Iec84de66a3ff9c2aa59a11566560fa6f169190d0
2020-01-17 12:25:40 -08:00
TreeHugger Robot bb150db0cd Merge "Removing flake when 2 long-press events happened on single long press" into ub-launcher3-master 2020-01-17 17:48:06 +00:00
vadimt 2ea348ff87 Removing flake when 2 long-press events happened on single long press
There is some unknown to me logic in Launcher that sometimes duplicates
the long-press event . This causes flakes whenTAPL expects one long
press, but the actual sequence is 2 events.

That duplication logic seems to be related to race conditions is is hard
to repro. For now, just removing long-press verification. I'll start
with more deterministic events.

Bug: 147806932
Change-Id: I03841131bf8cae88011824f660f2c7b1906592f4
2020-01-16 17:10:55 -08:00
Pinyao Ting ad5f24072c hook database restore with restore session
1. Create feature flag for new backup & restore flow.
2. For each restore session (install reason is restore),
   if its creation time is newer than the one we have in
   SharedPreference, we update the entry and restores
   favorite table from backup.
3. The restore operation is debounced so that when
   multiple restore session is created within a small
   amount of time, only the last invocation will get
   executed.

Bug: 141472083
Change-Id: I7b5b63ec28741ba2b02ccfd13f591c961362ba36
Test:
1. apply on master, build & flash on physical device.
2. factory reset the device.
3. go through SuW, perform restore, exit without
   adding work profile.
4. settings -> account -> add work profile account.
5. finish work profile setup, verify work profiles
   is restored as well.
2020-01-16 16:01:54 -08:00
Pinyao Ting ba9c557108 Initial support for restore workspace from last stable db entry.
(see go/play-launcher-plan-launcher-implementation)

1. When Launcher launches for the first time, creates a backup
   of the workspace before sanitizing db entries.
2. Creates a new path in LauncherProvider that triggers workspace
   restore using last stable db entry of the same grid size.
3. When restore from backup created this way, the table will be
   sanitized afterward.

Test:
1. apply on master, build & refresh on physical device
2. factory reset, go through SuW and perform restore
3. exit SuW without signing into Work Profile
4. run following commands in console
adb root
adb remount
adb pull
/data/data/com.google.android.apps.nexuslauncher/databases/launcher.db
sqlite3 ./launcher.db
.tables
SELECT * FROM favorites_bakup;

Bug: 141472083
Change-Id: I8032866a97eb333946d4f62352595d180364126b
2020-01-16 12:23:45 -08:00
Pinyao Ting 71e53bba16 Fix the issue malformed SQL statement was provided during db
sanitization.

Bug: 147114476
Change-Id: I34459267cfacb168ec520856e90e5da0b83728f0
Test:
1. follow the verification step in ag/9891836
2. add the following line in Launcher#onResume
LauncherSettings.Settings.call(getContentResolver(),
        LauncherSettings.Settings.METHOD_RESTORE_BACKUP_TABLE);
3. build & flash on the device
4. verify sanitizeDb success without error message
2020-01-16 10:02:23 -08:00
Vadim Tryshev f7b2d40347 Merge "TAPL: Verifying some interactions with system" into ub-launcher3-master 2020-01-15 22:32:13 +00:00
TreeHugger Robot 2abd13a80b Merge "Fix BaseSwipeDetector#setState() called inside another setState()" into ub-launcher3-master 2020-01-15 22:03:01 +00:00
vadimt 252d012ed0 TAPL: Verifying some interactions with system
Investigation of TAPL failures, especially flakes is complex, partially
because it’s hard to tell whether it’s Launcher who is wrong or the
system.

We need to introduce a framework that looks at Launcher interaction with
the system and reports when interactions deviate from the expected
course, and who made the first wrong step.

This is first, proof-of-concept CL.

It analyzes long-press events. We had multiple cases when long-presses
didn’t happen or happened unexpectedly.

Launcher registers the events, TAPL retrieves and compares against the
sequence of expected regular expressions. This diagnostic is used when
something fails and at the end of public methods.

Change-Id: I07aa3a027267c03422c99c73ccd8808445c55fe8
2020-01-15 13:31:18 -08:00
vadimt 9675452c2f Better diags and a small correction for scrolling in AllApps
Change-Id: I48dbba26139f42350831fb707bea847b7c76129f
2020-01-14 19:39:35 -08:00
TreeHugger Robot e16a2ba379 Merge "Add null check before updating NotificationItemView" into ub-launcher3-master 2020-01-15 02:44:08 +00:00
Hyunyoung Song 54d1f88ae6 Show suggestion when user taps on folder's edit text
Also, enabled preloading of the folder name db
Bug: 147523650
Bug: 147359653

Change-Id: Ia77e12d2b2bc428263c2b2821a96894a6004d82e
2020-01-11 23:39:02 -08:00
Sunny Goyal a7a5bf3101 Adding support for multiple Model clients
Bug: 137568159
Change-Id: Ia4db800b19cc80c695fcb9ea28e07709dfd08c6a
2020-01-10 12:23:27 -08:00
Tony Wickham 3f330429a3 Fix BaseSwipeDetector#setState() called inside another setState()
Clients of BaseSwipeDetector are required to call finishedScrolling(),
which calls setState(IDLE). An obvious place to call this is in
onDragEnd(), which itself is called from a setState(SETTLING). If the
client does this, then the SETTLING state actually clobbers the IDLE
state, leading to undefined behavior. The reason we don't see this in
practice is because we usually call finishedScrolling() after an
animation from onDragEnd() instead of calling it immediately.

To fix this, we add a simple queue such that any calls to setState()
while one is in progress have to wait and are executed in turn. This
ensures we get all the proper state callbacks and end in the correct
one.

Also fix an incorrect call in AbstractStateChangeTouchController which
was masked by this bug. We were calling setState(IDLE) in onDragStart(),
which only worked because the original setState(DRAGGING) incorrectly
clobbered this. Now we only setState(IDLE) (via finishedScrolling())
when we fully clear the state, i.e. when the interaction is finished.

Test: added testInterleavedSetState

Bug: 141939911
Change-Id: Iae630ee7101921b57a85d40646468cf19f59b674
2020-01-09 15:39:38 -08:00
Hyunyoung Song ced004fb71 Merge "Change the load logic of FolderNameProvider Work profile apps are suggested as "Work" folder name" into ub-launcher3-master 2020-01-09 17:38:37 +00:00
Hyunyoung Song 97253ec3ab Change the load logic of FolderNameProvider
Work profile apps are suggested as "Work" folder name

Bug: 147359653
Bug: 147359733

Change-Id: Idb2438de9c71c85cfeca6a6b0e116174ea2f3b62
2020-01-08 23:31:58 -08:00
TreeHugger Robot d068f1cf66 Merge "integration test for open settings menu from workspace." into ub-launcher3-master 2020-01-09 04:17:03 +00:00
Pinyao Ting 654adf657e integration test for open settings menu from workspace.
compare pid of launcher process after test execution to verify launcher isn't crashed when running in oop test.

Bug: 147235759
Change-Id: Id13c47f5c4e388cc8e95b19d099e94a2e540bf3f
Test: fun flake locally
2020-01-08 17:01:39 -08:00
Tracy Zhou 4d7b244f3f Render user's actual workspace in ThemePicker preview (Part 2)
With this change, we can also render folders in preview. It's built on top of part 1.

Test: Go to grid options, choose a different grid option, and see user's workspace rendered in the preview
Bug: 144052839
Change-Id: Iaf6d8af6b909ece4147ea250d95dec3d2c0019d3
2020-01-08 15:42:58 -08:00
TreeHugger Robot 290f2cb028 Merge "Fixes duplicate "TAP" launcher event when new smart folder is created by drag and drop event." into ub-launcher3-master 2020-01-08 23:14:53 +00:00
Jonathan Miranda 1b4ed6dd9b Merge "Enable working springs. Move unstable springs to a seperate feature flag." into ub-launcher3-master 2020-01-08 21:17:49 +00:00
Thiru Ramasamy 652385d2ea Fixes duplicate "TAP" launcher event when new smart folder is created by drag and drop event.
Bug:147305113

Change-Id: I5d26df6a594b1d222e0db2e40c039c6661146d3a
2020-01-08 20:10:38 +00:00
TreeHugger Robot 2e0b8e39c7 Merge "Revert "include integration test for open settings menu from workspace"" into ub-launcher3-master 2020-01-08 18:46:01 +00:00
Jonathan Miranda 2684dc5d78 Merge "Add LogConfig.DoodleLogging so doodle logs can be enabled via adb." into ub-launcher3-master 2020-01-08 16:36:00 +00:00
Pinyao Ting cd1cc0efc1 Revert "include integration test for open settings menu from workspace"
This reverts commit e94baee999.

Reason for revert: Test failing

Change-Id: Icb5d27488618a9b70b83d7ab582082c396578700
2020-01-08 01:15:29 +00:00
Samuel Fufa aed008de90 Hybrid hotseat user edu
Starts by showing a notification, which will open a dialog
with options for users to keep their hotseat layout or fully
migrate to hybrid hotseat

Bug:142753423
Test:Manual
Change-Id: I178de612837ec8551f6776fa7c6fb6111bc7431d
2020-01-07 12:02:26 -08:00
Jon Miranda d1589d47d7 Add LogConfig.DoodleLogging so doodle logs can be enabled via adb.
To use: adb shell setprop log.tag.DoodleLogging VERBOSE

Bug: 143720134
Change-Id: I61742564c9451ba084e192f823dbf5264702b3a2
2020-01-07 11:45:18 -08:00
Jon Miranda 40f0eb2188 Enable working springs. Move unstable springs to a seperate feature flag.
Bug: 147302669
Change-Id: I7a1b9b0e68cc68ad943b5af2b8cf7f80b5680eaa
2020-01-07 11:25:22 -08:00
Samuel Fufa f43a5d32bf Merge "Add dismiss option for hotseat items" into ub-launcher3-master 2020-01-07 18:22:11 +00:00
TreeHugger Robot 1db3be37e4 Merge "Removing tracing for a fixed flake" into ub-launcher3-master 2020-01-07 17:11:59 +00:00
TreeHugger Robot 2f4eff3fd6 Merge "Keep folder notification dot on rotation" into ub-launcher3-master 2020-01-07 17:11:56 +00:00
vadimt 675c877765 Removing tracing for a fixed flake
Presumably, the flake was fixed when I added waiting for model load
before the test body starts.

Bug: 138729456
Change-Id: Ie921ebd40e42a7d73884c19949ca5f0129afc96e
2020-01-06 18:35:37 -08:00
Tony Wickham a538d2b97a Keep folder notification dot on rotation
FolderIcon#mDotInfo is stored per instance, but not kept up to date
when re-binding on rotation.

Bug: 144369875
Change-Id: Ia429e4b4039eb02fb4587f54e33a0717408e4ac2
2020-01-06 18:08:05 -08:00
Samuel Fufa a18eb686d0 Add dismiss option for hotseat items
Bug: 145556909
Test:Manual
Change-Id: Ia40d22226b5cf9482f19f82ef08e399d294be6da
2020-01-06 16:40:24 -08:00
TreeHugger Robot 2f3d0566c9 Merge "log number of items deleted even when no item was deleted at all" into ub-launcher3-master 2020-01-07 00:01:32 +00:00
TreeHugger Robot 108cc51e03 Merge "include integration test for open settings menu from workspace" into ub-launcher3-master 2020-01-06 23:22:45 +00:00
Pinyao Ting fb9b779e9d log number of items deleted even when no item was deleted at all
Bug: 137678815
Change-Id: I1cf23921f863a17433ba803158e489b54c1aa35d
2020-01-06 14:10:35 -08:00
Sunny Goyal 0fd48b51ba Merge "Updating Robolectric tests" into ub-launcher3-master 2020-01-06 20:12:16 +00:00
Pinyao Ting 3c79804f28 include error log to determine root cause of sql statement failure when
restoring work profile

Bug: 147114476
Change-Id: I25e57413faa569a30e27a0cde1fc47233ff8b603
2020-01-06 11:21:41 -08:00
Sunny Goyal 9ae9b60043 Updating Robolectric tests
> Adding multi-thread support
> Simulating actual loader loading flow
> Moving some android tests to robolectic

Change-Id: Ie17a448f20e8a4b1f18ecc33d22054bbf9e18729
2020-01-06 11:05:42 -08:00