Commit Graph

121 Commits

Author SHA1 Message Date
Hyunyoung Song 8e5464b544 Remove flicker when multiple apps are added/removed/updated on widget tray
Bug: 36718342

1.The flicker was also happening partially because notifyWidgetProviderChanged
callback also made the entire widget list to update in addition to
packageManager update.

2. Now that adapter calls notifyItemInserted, Removed, the recycler
view uses it's internal animation to elegantly move items or insert
them. (added benefit!)

3. Added tests for WidgetsListAdapterTest

$ adb shell am instrument -w -e class com.android.launcher3.widget.WidgetsListAdapterTest com.google.android.apps.nexuslauncher.tests/android.support.test.runner.AndroidJUnitRunner

com.android.launcher3.widget.WidgetsListAdapterTest:.

Time: 0.337

OK (6 test)

Change-Id: I0818d546532631bf889fae560118decff64ec5a4
Signed-off-by: Hyunyoung Song <hyunyoungs@google.com>
2017-08-23 18:04:37 -07:00
TreeHugger Robot b55b6264ae Merge "Remove LAUNCHER3_ALL_APPS_PULL_UP Bug: 63712253 Verified: all apps transition fully functional Verified: NO_ALL_APPS_ICON = false case also works." into ub-launcher3-dorval-polish2 2017-08-21 19:22:56 +00:00
Hyunyoung Song d725f644b7 Remove LAUNCHER3_ALL_APPS_PULL_UP
Bug: 63712253
Verified: all apps transition fully functional
Verified: NO_ALL_APPS_ICON = false case also works.

Change-Id: I779fb7bd4927c5923da3f85590d912dbbbcdef4d
2017-08-21 11:59:14 -07:00
Sunny Goyal b23980cc0e Fixing duplicate/inconsistent definitions for model and callbacks
> 2 implementations for filtering workspace items
> 2 implementations for binding widgets
> duplicate logic for add and update appInfo

Change-Id: Id68a49926af398478deca8ac85ab1f22341a9449
2017-08-17 11:05:56 -07:00
Sunny Goyal 1d7f45d8f8 Fixing various tests
> Migrating UI tests to AndroidJUnit4 for better support
> Removing obsolete RotationPreference test
> Fixing broken FileLogTest and AndroidJUnit4
> Removing InvariantDeviceProfileTest as it does not work well with
  resource overlays

Change-Id: I0abb1df6765d76d86c1c6c84e8ac35eb9a6bcdaa
2017-07-31 11:03:54 -07:00
TreeHugger Robot b57fdd8c1f Merge "Adding A feature flag to disable widgets and a corresponding build target Launcher3Go without widgets support" into ub-launcher3-dorval-polish2 2017-07-24 03:11:18 +00:00
Sunny Goyal 64a75aa305 Adding A feature flag to disable widgets and a corresponding build
target Launcher3Go without widgets support

Bug: 62353159
Change-Id: Ia03d2235a9bcf75f9ef191924f81630e63a2c684
2017-07-21 14:10:13 -07:00
Sunny Goyal b72d8b2c8b Using common fling detection logic for notification and all-apps
> Refactoring SwipeDetector to both allow vertical and horizontal swipes
> Using SwipeDetector and common overscroll effect for notification swipes
  instead of a separate logic

Change-Id: Ib706ee179811ade59ddb68184e1c202365d147c4
2017-07-20 01:33:10 -07:00
Sunny Goyal eb297820a2 Using collator for string matching am: 05d2df1678
Change-Id: I0e25b3d84cac2d09491aa87c7dafb2c24e12d556
2017-07-18 18:23:35 +00:00
Sunny Goyal 05d2df1678 Using collator for string matching
This provides a better matching for non-latin characters on N and above

Bug: 63763127
Change-Id: I220487d242ff547311ddd13e7af380a7e47eec0e
2017-07-18 11:23:23 -07:00
yingrenw d791f3a4fa Launcher3: Can't search out local app by Chinese
Description:
Chinese content type is Character.OTHER_LETTER.
When key matches,it check the content type. And
if type is Character.OTHER_LETTER, it doesn't
support search and break.

When the content type is Character.OTHER_LETTER,
make it work normally.

Bug: 63534074
Change-Id: I3713f24c9206fe16a8da2a23e6c90d68079dd533
(cherry picked from commit a9f4bffbfc)
2017-07-18 08:28:11 +00:00
yingrenw a9f4bffbfc Launcher3: Can't search out local app by Chinese
Description:
Chinese content type is Character.OTHER_LETTER.
When key matches,it check the content type. And
if type is Character.OTHER_LETTER, it doesn't
support search and break.

When the content type is Character.OTHER_LETTER,
make it work normally.

Bug: 63534074
Change-Id: I3713f24c9206fe16a8da2a23e6c90d68079dd533
2017-07-12 10:44:20 -07:00
Hyunyoung Song f40e94955c Add tests to SwipeDetector (formerly VerticalPullDetector).
Change-Id: I09ab4f22d7204ad806825ab0d6374c2b9616bf39
2017-07-06 14:32:35 -07:00
Rajeev Kumar 692aeec287 Close cursor after use in RestoreDbTaskTest.
Change-Id: I799fe29ecd602141cac61314c087e3154e12b102
2017-06-27 17:05:19 -07:00
Sunny Goyal 01088543c9 Fixing GridMigrationTask tests
Bug: 62907570
Change-Id: Id165e70930025ccf13a1a105acbdc0fb59ee7e32
2017-06-22 15:26:05 -07:00
Tony 887bd1fe1a Show more shortcuts when last notification is dimissed
We currently only show 2 shortcuts when notifications are
present, but support up to 4 otherwise. With this change,
the hidden shortcuts are added back after dismissing the
notifications, instead of only after closing and reopening
the container.

To ensure the transition is as elegant as possible, we also
separated the shortcuts header from the rest of the shortcuts.
That way we can reveal the new shortcuts without removing the
header (the shortcuts come out from behind the header).

Bug: 38036250
Change-Id: Ie9ab35f9be57cec1d5345e9e70e84e09ea52c9fc
2017-06-15 16:21:34 -07:00
Sunny Goyal e86f11fa38 Adding support for loading workspace in the absence of Launcher.
> LoadWorkspace can be called with a LoaderResult which does not bind anything.
> Synchronous bind does not look for a valid page id, and will fallback to the
  current pageId similar to full load flow

Bug: 37616877
Change-Id: If14491dc79c5b85ae1019cc93e4e08759df3387d
2017-06-08 09:39:34 -07:00
Sunny Goyal a474a9bcf5 Simplifying logic for managed for icon addition
> Checking for duplicate icons before adding new icons

For O and above, icon addition is controlled using
SessionCommitReceiver.
As long as the Launcher is the default app, it will keep adding
icons on the homescreen. Apps installed while launcher was
not the default homescreen, no icons will be added.

For below O, icons are added based on package event. As long as
the Launcher process is running, it will keep adding icons on the
homescreen. Apps installed while the launcher app was dead, no
icons will be added.

Bug: 37528649
Bug: 37082950
Bug: 34112546
Change-Id: Ic99501fa476c00474a479f2a36c24614bfa3f4bf
2017-05-22 13:31:04 -07:00
Sunny Goyal 05f30889d6 Adding support for DB downgrade
Adding a schema file for handling DB downgrade. This schema file is part of
the backup/restore set, and hence is available on a device with lower app version.

Bug: 37257575
Change-Id: I69c8ef5f28d5209be6e6679412c7459d4eeda5d0
2017-05-09 12:59:04 -07:00
Sunny Goyal 161f96bc77 Moving apps search related logic into a custom layout file
This will allow derivative projects to easily change the search behavior
by simply overriding the xml file

Bug: 37616877
Change-Id: Ib8d6a2dab06819a52611e9a3d97c70c5a49bbf97
2017-05-08 14:43:32 -07:00
Tony ca4e6b4b59 resolve merge conflicts of 26b174659 to ub-launcher3-master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ifb24f291b096b979044e5c87ec58c24e9c479728
2017-03-30 18:10:05 -07:00
Tony Wickham 26b1746593 Add support for system shortcuts in popup container
- Currently the system shortcuts are just widgets and app info
- As shortcuts, they live in ShortcutsItemView
- They are populated either as icons only (if there are deep
  shortcuts) or as icons + text
- Widgets are disabled until binding them is complete (we request for
  them to be bound on long-press now). We should revisit this.

Bug: 34940468
Change-Id: Ia51d002c3b3ede87658bdab57abfc3eeca1ed242
2017-03-30 16:35:56 -07:00
Tony Wickham c455293fa3 Merge "De-dupe shortcuts with the same id as the main notification." into ub-launcher3-dorval
am: c3dfed43eb

Change-Id: I60bbede53d61f117596e90eb3363a4cb5eac7245
2017-03-27 17:56:55 +00:00
Tony Wickham 2f5bb16915 De-dupe shortcuts with the same id as the main notification.
- Pass NotificationKeyData, which includes the shortcut id, instead of
  just the notification key from NotificationListener
- Remove the shortcut with the same shortcut id as the first
  notification, if it has one, in PopupPopulator#sortAndFilterShorcuts()
- Add some unit tests

Bug: 36571718
Change-Id: I308941b34c525b34686583476e3f82ccb8b7e2d8
2017-03-24 14:18:53 -07:00
Sunny Goyal afc3f09240 Adding support for showing the widget preview based on the provided RemoteViews
am: c65a0085d7

Change-Id: Iabea96bb74294e2775a08427c17e154020d9bc40
2017-03-17 18:41:31 +00:00
Sunny Goyal c65a0085d7 Adding support for showing the widget preview based on the provided RemoteViews
Bug: 35811129
Change-Id: I336e48cd00cfec2e617ac73bd8a81419b0944aa7
2017-03-17 11:25:29 -07:00
Mario Bertschler 817afa3447 Show promise app icon in All Apps while installation process.
This CL only modifies the model and is behind a feature flag
which per default is set to false.
The app icon will appear as a promise icon, it reacts on icon
or label changes and the icon will be remove on finishing the
installation process. With this CL the progress of the installation
process is not visible.

Bug: 23952570

Change-Id: I510825d0b0b1b01eb14f7e50f0a2358b0d8b99b5
2017-03-17 09:21:35 -07:00
Sunny Goyal 88c07e5b81 Updating test as per API changes
Change-Id: I746bf48254ebfcad18426d47c61a54f8a11f5cf8
2017-03-07 23:36:06 +00:00
Sunny Goyal f410ca77c7 Updating test as per API changes
Change-Id: I746bf48254ebfcad18426d47c61a54f8a11f5cf8
2017-03-07 15:27:13 -08:00
TreeHugger Robot 93ce56fdb2 Merge "Separating the config and flags in different directories so that it is easier to override one or the other" into ub-launcher3-master 2017-03-07 22:42:14 +00:00
Sunny Goyal b265ba7449 Removing DeferredHandler and using a simple Handler to post callbacks
DeferredHandler was added when we were posting each icon separately,
to prevent starvation. But since then we have moved to binding batct
items during bind.

Also fixing waitForIdle not waiting the second time. waitForIdle was
using a global variable to maintain state, and was not waiting properly
when its called the second time before binding deep shortcuts

Original Change-Id: I9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d

Change-Id: I9e6b3ae65fbd3aec3a46092efc5249c4525efedf
2017-03-07 13:44:52 -08:00
Sunny Goyal 3d706ad703 Separating the config and flags in different directories so that
it is easier to override one or the other

Bug: 36001650
Change-Id: I713f4f5dbcf902614ce9f6c7a73bdace7bdf1ea0
2017-03-07 09:30:51 -08:00
TreeHugger Robot f55ad3d411 Merge "Adding some tests for request pin shortcut/widget flow" into ub-launcher3-dorval 2017-02-22 23:53:26 +00:00
Sunny Goyal d9843357d0 Adding some tests for request pin shortcut/widget flow
Bug: 33584624
Change-Id: I49df36f60d2ae071b9d2c77c9c3300e010cd3bb9
2017-02-22 15:46:40 -08:00
Sunny Goyal dd96a5e4fd Simplifying Model data load state management
Instead of maintaining 3 different states, each tied to a subset of data,
maintaing a single state that represents all the data. Individual subset
data is invalidated in rare cases and these invalidates are tightly tied
to the UI. This also allows us to add new data to the model, without worring
about classifying the data into a subset.

Bug: 34112546
Change-Id: Id9cb273de35b79e84a2ef8d6556fcf1e72fb4b75
2017-02-22 15:45:14 -08:00
TreeHugger Robot 93bc3c1e41 Merge "Separating methods for updating the model to a sepatate class." into ub-launcher3-master 2017-02-16 21:56:39 +00:00
Sunny Goyal 43bf11d9c9 Separating methods for updating the model to a sepatate class.
Removing static access to model update methods, to allow for better
access control and testing

Change-Id: I9afe004dbf1b2fe50df422fd28bceea9230a4704
2017-02-16 13:50:14 -08:00
Sunny Goyal c9a489c75c Adding minSDK for test targets
Bug: 35079440
Change-Id: Ie27eebe7afaed6a80efc43cb41f651e8acabc835
2017-02-15 10:39:35 -08:00
Tony Wickham f3d02e4716 Merge "Refactor DeepShortcutsContainer to PopupContainerWithArrow" into ub-launcher3-master 2017-01-25 22:23:53 +00:00
Tony Wickham 540913eadf Refactor DeepShortcutsContainer to PopupContainerWithArrow
- Also added PopupItemView, which takes animation logic from
  DeepShortcutView, and which DeepShortcutView now extends.
- Renamed ShortcutFilter to PopupPopulator, which has support
  for new item types (not yet used). Also moved populating
  logic (e.g. UpdateShortcutChild Runnable) to PopupPopulator.

Bug: 32410600
Change-Id: Ib6e444ac7ca99c80ba438801c26e62d9542e0ad9
2017-01-25 11:21:47 -08:00
Sunny Goyal 81e4491450 Fixing loadWorkspace
> Adding checks on legacy shortcuts
> Checking restore status based on package and not componentName

Bug: 34123342
Change-Id: I442699e4ebb34ae66aa25c512bfcdc1b4fd5ae2a
2017-01-24 22:55:36 -08:00
Sunny Goyal 658058b960 Adding some widget addition flow tests
> Added two dummy widget providers: with config and without config
> Added tests for verify widget config flow

Change-Id: I4577f085abe8f8b82047b644c71cc9065358153a
2017-01-23 15:28:25 -08:00
Sunny Goyal c1ad0ce8ae Only marking items not already restored as restore
> Moving the restore property to LoaderCursor

Bug: 34123089
Change-Id: I1f992ef086d65e0b3cf18d3b2cf37a4f254c97d2
2017-01-13 10:38:41 -08:00
Sunny Goyal 3e9be43b6e No more LauncherActivityInfoCompat
Bug: 32745285
Change-Id: I00f13794d5dc0a2b1fe03ec74de36018f22eb386
2017-01-11 13:06:50 -08:00
Sunny Goyal 87f784c285 Removing static Context access using LauncherAppState
> This ensures that LauncherAppState is only accessed in the presence of
a valid context

Bug: 33032833
Change-Id: I955e5cb022f8bd6374681ae6c0720a2666d5b750
2017-01-11 12:52:03 -08:00
Sunny Goyal 1cc1c9ad83 Enforcing background thread when accessing iconCacheDb.
> Moving any icon cache access to background thread
> Updating Apps list to avoid loading icons for ignored apps

Bug: 21325319
Change-Id: Id72755100f1176ccfcc99249c5e02873cc249a13
2017-01-10 23:42:49 -08:00
Sunny Goyal aaf86fe9a0 Refactoring some loadWorkspace logic in a separate class
Bug: 34112546
Change-Id: I8a43ed1646056aa1957ac3d6ea82018691df6386
2017-01-10 13:53:50 -08:00
Hyunyoung Song b0d77fe35f Revert "Build empty test apk until junit dependency issue is sorted out."
This reverts commit 4c82c33a64.

Change-Id: I39c142e2b0e882245a6928264465578e4ddc12c9
2017-01-05 10:55:42 -08:00
Sunny Goyal a52ecb0390 Removing all compatibility code below Lollipop
Bug: 32745285
Change-Id: I62971908e3e4402941fab627bbdfd47be64473a3
2016-12-16 15:05:09 -08:00
Sunny Goyal 7c74e4ae64 No more UserHandleCompat
Bug: 32745285
Change-Id: I762fb4e268c1afe48a1860ab12a4ccb3f626aa95
2016-12-15 22:06:10 -08:00