Commit Graph

148 Commits

Author SHA1 Message Date
Sunny Goyal 8b37c57804 Fixing widget sheet not scrolled using external mouse
> Fixing crash when some properties are not initialized if draw is not called
> Adding robolectic support for UI testing
> Adding robo tests to verify workspace, all-apps, widgets and folder scrolling

Bug: 147312357
Change-Id: Id7756e07f06396359e441cdff2e4f992bdcb97bb
2020-03-31 12:17:09 -07:00
Tracy Zhou f601872a0a The new grid migration algorithm
go/grid-migration-v2

When changing grid from option 1 to option 2, we calculate the diff and add the icons that are in option 1 but not option 2, to option 2's workspace, according to the reading order.

Test: manual and unit tests
Fixes: 144052802

Change-Id: Id01f69e90ce656a9b7c9051fed499807ee9ac0f7
2020-03-13 14:56:38 -07:00
Tracy Zhou be13d109b7 Render user's actual workspace in ThemePicker preview (Part 3)
go/grid-migration-preview

With this change, we can see actual grid migration in wallpaper preview.

The approach here: we use a tmp table (favorites_preview) here specifically for this preview (to write off the migration results), and load from this tmp table workspace items if migration is necessary and successful. Otherwise, we load from the current workspace.

UPDATED: this change should be completely compatible with the new multi-db grid migration algorithm. Here is why
1. In LauncherPreviewRender#renderScreenShot, I added a check to decide which grid migration preview method we should call. Once v2 preview method is implemented, it should be integrated with other parts of this change perfectly (the reason will be mentioned below).
2. While we have multiple DBs, mOpenHelper in LauncherProvider always points to the current db we are using. Queries using CONTENT_URI is routed to whatever DB mOpenHelper points to, so it works perfectly to directly operate on CONTENT_URI even when we use multi-db underneath the hood.
3. With 1 and 2 mentioned, I believe in order for this preview change to support multi-db, we only need to implement the V2 grid migration algorithm. Because most of what we are doing in this change is wrapped in GridSizeMigrationTask, it's perfectly safeguarded.

Bug: 144052839
Change-Id: Ie6d6048d77326f96546c8a180a7cd8f15b47e4c4
2020-02-21 15:49:00 -08:00
Tracy Zhou c7f39fc66d Merge "Follow up change to GridBackupTable per V2 backup / restore (multi-db)" into ub-launcher3-master 2020-02-13 21:18:04 +00:00
Tracy Zhou 02cb060775 Follow up change to GridBackupTable per V2 backup / restore (multi-db)
Removed the code to handle table copying across dbs. We don't really need this since per ag/10298497, we can just copy db files directly.

Bug: 149236106
Test: N/A
Change-Id: I90bd7b6779fcaa841c71f5d0f27ec91907f926fc
2020-02-12 18:08:06 -08:00
TreeHugger Robot 6929b9a197 Merge "Log Hotseat onboarding user actions" into ub-launcher3-master 2020-02-12 18:36:04 +00:00
Samuel Fufa b641ac2a62 Log Hotseat onboarding user actions
+ Resolve notifiaciton dot scale issue

Bug: 147336566
Bug: 148232056
Change-Id: I0120dc183a876fda38f4682425697378c7be20f3
2020-02-12 10:02:53 -08:00
jayaprakashs e534d3b5f9 Introduce FolderNameInfo class.
* Introduce FolderNameInfo class for passing down the folder name
suggestions from FolderNameProvider.
* Use FolderNameInfo for storing the serialized suggested names for
Folders. It is parsed and used in FolderEdit.

Bug: 148417030
Bug: 148916551
Bug: 148432151

Change-Id: Idaa81e203cc42889be15d0845230b4508521041c
2020-02-11 11:36:28 -08:00
Chihhang Chuang a16ce7ea6a Fix build break from generating robo test code coverage
Use absolute path for LOCAL_INSTRUMENT_SOURCE_DIRS, because Jacoco fail
to get the source code path to parse the code coverage.

Test step:
1. tapas RunLauncherRoboTests
2. make -j30 dist (Make sure RunLauncherRoboTests does not break)
3. make -j30 RunLauncherRoboTests-jacoco dist
4. See the coverage report

Bug: 149001617
Change-Id: If82a839ae52c20c7eb269090976de05fa5d462c4
2020-02-07 10:16:45 +00:00
Tracy Zhou 7df93d28d4 Setup infrastructure (multi-db support) for the new grid migration algorithm
We'll have a db for each grid option and a db for back up / restore.

TODO(pinyaoting): support back up / restore using the new infrastructure, particularly calls to GridBackupTable should use different DBs when the feature flag (NEW_GRID_MIGRATION_ALGORITHM) is on.

Bug: 144052802
Test: N/A

Change-Id: I644a3e70148bd78204a747a337446a3c038f616f
2020-02-05 19:55:05 -08:00
Pinyao Ting 5f8a1ab718 include reboelctric test for restore
Bug: 141472083
Change-Id: Ibee123b01c74316d493d3aa229acf4a4f815f60b
2020-01-28 15:02:39 -08: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
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
Sunny Goyal a7a5bf3101 Adding support for multiple Model clients
Bug: 137568159
Change-Id: Ia4db800b19cc80c695fcb9ea28e07709dfd08c6a
2020-01-10 12:23:27 -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
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
Sunny Goyal 73b5a27b14 Updating some non-final static objects
Updating various static objects to use a standard pattern so that
it is easier to track and cleanup those objects

Bug: 141376165
Change-Id: Ia539cbfa338d544dddad771c5027b6748762768b
2019-12-11 13:22:58 -08:00
Sunny Goyal 4b5b0eb60d Moving some tests to robolectric
> Adding support for simulating model load

Bug: 130562632
Change-Id: I1de8c0abe2e74d4e7e47e18914316c339920609a
2019-12-09 11:17:12 -08:00
Sunny Goyal 3808a69a6c Storing BitmapInfo instead of icon and color directly in itemInfo
This will allow subclassing BitmapInfo to support custom icon/dynamic
icons which can be loaded on the background thread instead of going
through IconFactory which runs on UiThread

Change-Id: Ieced6e91330bdff1b505826d097a8df711dfe967
2019-10-28 11:12:47 -07:00
Sunny Goyal 01615a69d2 Removing host deletion on startup and corresponding callbacks
> Launcher deletes the phantom widget ids in loader

Bug:141376165
Change-Id: Icf0542535f194f9abc67e7190f34cb60f69e9f66
2019-10-02 12:08:26 -07:00
Sunny Goyal 045b4fab76 Removing static listeners from PackageInstallerCompat
Bug: 141376165
Change-Id: I2b49d53a05a04c622ed5a7b723109a6cc230d230
2019-09-30 23:17:15 -07:00
Sunny Goyal cf845f0dbf Fixing some robolectric tests
Bug: 131115553
Bug: 141576665
Bug: 141577881
Change-Id: Idb7e9346f57fea1d0231391477fdd11ad6b96a5c
2019-09-26 18:06:28 +00:00
Hyunyoung Song b1ee7d241e Fix FlagOverrideSampleTest
Bug: 141576561

Change-Id: Id6f14dc71fec651ff35ec859598b761c8502514f
2019-09-24 17:10:34 -07:00
Sunny Goyal 3e3d759db2 Removing flag overrides. All flags should be defined as togglable flags instead.
Change-Id: Ia7b9ff84413096cd5b0c4a9a81a232019f2522d2
2019-09-12 10:17:14 -07:00
Sunny Goyal b1d7de25f8 Adding support for overlay and corresponding plugin to Launcher
Updating various task callbacks to handle overlays

Change-Id: I80077508ad35c31269c873f51f0105302a9e6a5d
2019-09-10 08:08:28 -07:00
Jon Miranda c84168df80 Add support for adding promise icons for new install sessions by user.
- Added flag PROMISE_APPS_NEW_INSTALLS
- Promise icons only added if flag (above) is on, as well as the setting
  for "Add icon to Home screen"
- Maintains a list of session ids of promise icons that have been added to the
  home screen, so that if the user manually removes the icon, we do not add
  it back to the home screen when the install is completed.
- Queues all applications as promise icons, and replaces with actual
  app info when its being added to the workspace.

Bug: 135633159
Change-Id: I411db59f9bd1b346d98b9bb73f5376a5983b8de5
2019-08-22 10:28:14 -07:00
Hyunyoung Song 27df700f05 Merge "Make TogglableFlag backed by DeviceConfig for e2e testing" into ub-launcher3-qt-qpr1-dev
am: 96eba3aea6

Change-Id: I738256f1623119a61197c03008e098b066161542
2019-08-15 16:03:32 -07:00
Hyunyoung Song d4204437de Make TogglableFlag backed by DeviceConfig for e2e testing
Bug: 138964490

TL;DR;; need this to be part of QQ1 or QD1 to verify if DeviceConfig
can be supported for launcher toggleableFlags.

Not handled in this CL:
- When flag is locally modified, that will override the flag value
How that scenario is handled should be discussed separately and is not
within scope of this CL.

Change-Id: I2e6694a40bee9202ed0b0d559e3b5607634071bf
2019-08-15 14:02:28 -07:00
Sunny Goyal 87dcde6d6c Separating apps list callback from model callback and simplifying various events
Bug: 137568159
Change-Id: I4d8bb5c01cabe642731ebd3f57fe15bdc5a569b7
2019-07-25 11:29:16 -07:00
Sunny Goyal 9dbb27c09c Moving some utilities methods to separate class
Change-Id: I5094b22ddc77c45590cea1a5f5dead0dc7580abf
2019-07-17 15:15:07 -07:00
Amin Shaikh fd329d19f9 Add overlayable test resource for launcher3
Test: make RunLauncherRoboTests
Change-Id: I36b4869d44e8896ef59dce6c554ef94a1fe4d9ec
2019-05-06 09:34:38 -04:00
vadimt 677abe2117 Annotating ignored tests with requests to enable them
Bug: 117106893
Change-Id: Ib8e578913ceebee44a507b5e333e7da07c6120d0
2019-04-22 17:34:29 -07:00
Sunny Goyal 6bbf6004f8 Removing ShortcutInfoCompat and directly using ShortcutInfo
Change-Id: I2842689e192a206c0d31558c8126eae1c7904598
2019-04-22 15:39:40 -07:00
Sunny Goyal 9589916418 ShortcutInfo renamed to WorkspaceItemInfo
Will get rid of ShortcutInfoCompat in a follow up cl

Change-Id: I7d7d9c938635f59b216290ba28bea9d0e0721a7d
2019-04-16 00:08:24 -07:00
Hyunyoung Song deb7cd54e7 Remove FeatureFlags.STYLE_WALLPAPERS
Bug: 129874298
Change-Id: I2785f1e49a4ff60143cc763c3dac0c1bb33b41c8
2019-04-09 17:22:30 +00:00
Tony 60ac5d2b34 Only stabilize tasks during quick switch session
- A stabilization session starts when going to a new task via a quick switch
- A stabilization session ends after 5 seconds on the same task or when completing
  a gesture to go to home or overview
- We track the system task order and copy it for the duration of the stabilization session
- After the session ends, we switch back to the system task order
- Remove ENABLE_TASK_STABILIZATION flag (and also QUICK_SWITCH)

Bug: 111926330
Change-Id: I2c18dff2d20ad02b73a4935ac534e9fc9f5f49c0
2019-02-19 14:54:23 -08:00
Hyunyoung Song 29e5d44a63 Add a flag to turn on theme picker in wallpaper picker
Bug: 122524192
Change-Id: I79bd8bde359a56185c1dd0c10964695263d0f6d5
2019-02-07 14:16:32 -08:00
Sunny Goyal b7096ecda6 Fixing Robolectic tests
Bug: 123652178
Change-Id: Ie8b0a23fb8bd0d46ac59c26d75c81a68e6152beb
2019-01-30 15:47:03 -08:00
Sunny Goyal 161a214ede Adding support for backing up favorites table
Favorites table is copied as a separate table name during the first grid migration.
On subsequent migrations this backup table is used if it exists, otherwise new
backup is created. The backup table is also removed if there is any insert or
delete operation on the db (outside of the migration operation itself).

Bug: 111850268
Bug: 121048571
Change-Id: I6f02f4a355c369ee99d89430971be258f7516f6e
2019-01-03 10:25:44 -08:00
Sunny Goyal c5939393a9 Bye bye workspace screens table
Removing a separate table for workspace screens. List of screens are
automatically parsed using the items in the favorites DB. Order of the
screen based on the screen id and rearranging screens is no longer
supported. In case the screens need to be rearranged, all the items
in the favorites db will need to be updated with new screen ids.

This makes backing up the DB (in the same database) easier as only
one table needs to be duplicates.

Change-Id: I8ba947a898f637d780e2f49925e78604263126e8
2018-12-10 11:43:35 -08:00
Ryan Lothian d813e79ecc Get Robolectric tests passing
+ Default SDK 28 -> 26, as >26 isn't available for
  unbundled make builds.

+ @Ignore 3 test methods that currently fail with
  resource-related errors.

Test: RunLauncherRoboTests succeeds locally
Bug: 119567714
Change-Id: Id6ea42cef050119d892b5af2b1ba1afc4c4f0b28
2018-11-15 20:17:33 +00:00
Sunny Goyal 06a07e9748 Moving come tests to Roboelectric
> Fixing resource loading in robo tests

Change-Id: Id5b8a0e4916a2a200da7a41b03f19846834beb1f
2018-11-12 10:49:59 -08:00
Ryan Lothian af0c0e8b0d Allow overriding flags in Robolectric tests
Bug: 117235618
Change-Id: Ibc01a4fe1de6a38d9fc620e4601fdb2282bf03e1
2018-11-08 17:25:23 -05:00
TreeHugger Robot a47ab8b425 Merge "Make FileLogTest use robolectric" into ub-launcher3-master 2018-11-05 16:59:09 +00:00
Ryan Lothian 499a0c932e Make FileLogTest use robolectric
This allows it to run fast locally on the JVM without an
emulator or physical device.

Change-Id: Idb9c94e6f3fce94a86978ea0709eadd72280432c
2018-11-05 11:44:33 -05:00
Ryan Lothian f4c42bc79a Migrate GridOccupancyTest to Robolectric
This allows it to run fast locally on the JVM without an
emulator or physical device.

Change-Id: I416877d7c335a7b9c8dc7a216ecfeb1013f66891
2018-11-05 10:52:40 -05:00
Ryan Lothian 6699eaf74d Add robolectric tests for launcher
Bug: 117235618
Change-Id: Ia0441133a77069493b0a29a7a2d513a818dc7fe2
2018-10-31 19:32:10 -04:00