Commit Graph

21507 Commits

Author SHA1 Message Date
vadimt cffe99f0bb Automatically diagnosing known flakes
It often takes a long time to fix a flake; meanwhile it takes a lot of
time for sheriffs to identify whether to register a new flake for a
failure.

This CL adds automatic identifies identification of one know flake type.
Once identified, it rewrites the error so that:
1. Flakes clustering tool that has only rudimentary clustering, places
all flakes of this kind in the same cluster (not multiple ones like
now). This is a step towards using clustering tool for monitoring
flakes;
2. Sheriff immediately sees that the issue is known.

Change-Id: I86a0762665cb21434289e1be00b60bd76fec4142
2020-01-21 13:29:37 -08:00
TreeHugger Robot 163d4d0184 Merge "TAPL: performing event verification for all gestures" into ub-launcher3-master 2020-01-17 21:16:24 +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
Amos Bianchi dda7490c34 Fix gradle build of Launcher3
Test: build, run

Change-Id: I121fe3174bdb2292ae8f08ab610da2bac01251b3
2020-01-17 11:24:43 -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
TreeHugger Robot b616ee02f5 Merge "Verifying that Launcher didn't crash in TaplTestsQuickstep" into ub-launcher3-master 2020-01-17 16:27:25 +00:00
TreeHugger Robot f3b71bb230 Merge "hook database restore with restore session" into ub-launcher3-master 2020-01-17 01:37:07 +00:00
vadimt d8827bad12 Verifying that Launcher didn't crash in TaplTestsQuickstep
TaplTestsLauncher3 already do this

Change-Id: I17fe638b81cbef4cf5230a6bd49b165e4f9e7855
2020-01-16 17:28:43 -08: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
Sunny Goyal c0e9df6dd6 Removing some unnecessary LauncherProvider overrides
Change-Id: Ia07919309bd4fe942af152881642fe24de9b00ee
2020-01-16 14:57:39 -08:00
Pinyao Ting 9be1cfde79 include roboelectric test to verify db backup is created when
initializing the db for the very first time.

Bug: 141472083
Change-Id: I84d3487bb296bf445323906e8a2d3734b1aa8594
2020-01-16 12:30:48 -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
Tony Wickham 0e4cc09738 Merge "If RecentsView is empty when starting quickswitch, listen for tasks to load" into ub-launcher3-master 2020-01-16 00:18:19 +00:00
TreeHugger Robot a97958a22a Merge "Swipe up from nav bar in fallback recents to go home" into ub-launcher3-master 2020-01-15 22:56:41 +00: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
TreeHugger Robot e16a2ba379 Merge "Add null check before updating NotificationItemView" into ub-launcher3-master 2020-01-15 02:44:08 +00:00
TreeHugger Robot 14bd192275 Merge "Track bottom of the app window when ENABLE_OVERVIEW_ACTIONS is true" into ub-launcher3-master 2020-01-14 23:33:02 +00:00
Tony Wickham 011439e353 If RecentsView is empty when starting quickswitch, listen for tasks to load
When first doing quick switch, RecentsView might be empty but tasks subsequently
load. In that case, we can update our animators to have the correct scale etc.

Test: From home, toggle dark theme or RTL from quick setting tiles,
then quick switch; ensure RecentsView comes in scaled up.

Bug: 126596417
Change-Id: I28d79455431b1da634372d6f31182406aa24cd06
2020-01-14 21:27:59 +00:00
TreeHugger Robot 8b0e50fecf Merge "Tracing launcher package name" into ub-launcher3-master 2020-01-14 18:41:53 +00:00
vadimt cef8008bfa Tracing launcher package name
I suspect that when the test starts, launcher package may be
com.google.android.setupwizard

Bug: 145935261
Change-Id: Ibf5e9785cd73762cbf2cdc8569482d77db782897
2020-01-13 17:10:12 -08:00
TreeHugger Robot 3d76dadcd6 Merge "Recognizing running "prebuilt" launcher and manually built platform" into ub-launcher3-master 2020-01-14 00:45:46 +00:00
Hyunyoung Song bab1101b87 Merge "Show suggestion when user taps on folder's edit text" into ub-launcher3-master 2020-01-13 23:18:21 +00:00
TreeHugger Robot d4ec31a51a Merge "TAPL: Tracing only changed part of the context for diags" into ub-launcher3-master 2020-01-13 22:39:20 +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
Tony Wickham 107dd8dd66 Track bottom of the app window when ENABLE_OVERVIEW_ACTIONS is true
- Fix the shelf tracking distance since there's no shelf.
- Pullback against a swipe up from an app later

Bug: 143361609
Change-Id: I296fb9bcb20d7d45931006f20512f0dc4a54212b
2020-01-10 14:44:29 -08:00
Sunny Goyal 2000228dc0 Merge "Adding support for multiple Model clients" into ub-launcher3-master 2020-01-10 22:21:20 +00:00
Sunny Goyal a7a5bf3101 Adding support for multiple Model clients
Bug: 137568159
Change-Id: Ia4db800b19cc80c695fcb9ea28e07709dfd08c6a
2020-01-10 12:23:27 -08:00
TreeHugger Robot 0e7a81ea0a Merge "Change hotseat edu strings" into ub-launcher3-master 2020-01-10 17:29:39 +00:00
TreeHugger Robot c85ab32e88 Merge "Use same content description for Recent apps" into ub-launcher3-master 2020-01-10 17:08:54 +00:00
Samuel Fufa 3db240a134 Change hotseat edu strings
Bug: 142753423
Change-Id: I0de86073b75eb1866d827d9e3fc35236accc67a0
2020-01-10 08:34:49 -08:00
Sunny Goyal 4823b0c99b Merge "Disabling some repo checks for rebolectric files" into ub-launcher3-master 2020-01-09 23:57:31 +00: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
Sunny Goyal cf7a48b1de Disabling some repo checks for rebolectric files
Change-Id: I025db602f14f7696e7f3165357afbec0cfa8e713
2020-01-09 09:18:41 -08: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
vadimt 1eb46b85ec Recognizing running "prebuilt" launcher and manually built platform
In scenarios like: atest NexusLauncherOutOfProcTests against the
platform built from command line, and Launcher from the platform, we are
not failing now, and @Stability treats it as a PLATFORM_POSTSUBMIT run.

Change-Id: Ia504216d238e58b2786f3749b737dfb95a2ede96
2020-01-08 17:32:15 -08: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
Vadim Tryshev 466bf5538d Merge "Using grantRuntimePermission()" into ub-launcher3-master 2020-01-08 22:27:30 +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
vadimt aad54ab686 Using grantRuntimePermission()
"pm grant" is considered obsolete

Bug: 145686584
Change-Id: Ieeec76b2fdb666f89957a0a3039956bd69e9f315
2020-01-08 12:01:34 -08:00
TreeHugger Robot 3748443bfc Merge "Delete code that became dead after moving tests to robolectric" into ub-launcher3-master 2020-01-08 19:27:53 +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