Commit Graph

136 Commits

Author SHA1 Message Date
Sunny Goyal
9e84e0c1c1 Removing SWIPE_HOME flag and using sysUI mode instead
Bug: 129873705
Change-Id: Ieaa7d7928427daed98538c616bdf58b28d295829
2019-04-03 17:02:36 -07:00
Sunny Goyal
5743f8635b Making navigation mode listener a singleton so that the change is dispatched
everywhere synchronously.

Change-Id: Iee8c5957d78dfad3fb03e814de0367adcaa0c98b
2019-03-29 09:36:45 -07:00
Tony
e4c2e2b86c Add QuickSwitchTouchController on home
- Added QuickSwitchState, which we animate to when swiping right
  on the nav bar from NORMAL state
- Task launches when the state transition to QuickSwitchState ends

Bug: 126596417
Change-Id: Id66650401d817703fc6d044fb26a25cccbc07e11
2019-03-28 15:09:25 -05:00
Tony
e06fef45a4 Move some classes to packages
Added states/ and touchcontrollers/ packages

Change-Id: I8d59c47770c24c9edd1b7ce879e6a80ca8b88c71
2019-03-27 19:45:04 -05:00
Tony
1787ee9596 Peek overview on motion pause, then animate fully on touch up
Add AnimationComponents.ATOMIC_OVERVIEW_PEEK_COMPONENT, and rename
previous ATOMIC_COMPONENT to ATOMIC_OVERVIEW_SCALE_COMPONENT.

When SWIPE_HOME is enabled:
- Overview lives to the left of Workspace, which is encoded in
  LauncherState.NORMAL.getOverviewScaleAndTranslation().
- Create atomic animation based on ATOMIC_OVERVIEW_PEEK_COMPONENT
  and OVERVIEW_PEEK state when swiping and holding from home screen.

Bug: 111926330
Change-Id: Iab6dbef7238dae15b3036d4b2a026b781eee6b4b
2019-03-27 19:45:04 -05:00
Tony
bc23440d73 Add translationX to overview state
States return ScaleAndTranslation instead of float[].

Also separate overview translate interpolator from overview scale interpolator.

Change-Id: I5e65dde3f436055ff5e7f5736f1a4b712377b9cb
2019-03-27 14:36:48 -05:00
Sunny Goyal
3f271d4b7f Deleting Quickscrub related logic
Bug: 124255113
Change-Id: Ic5f2338f1e3ae0a0cfb08f822dee0e01ae54a7b0
2019-02-14 11:40:03 -08:00
Sunny Goyal
8c48d8bea6 Changing min sdk to 25
Change-Id: I0d28069967854357ca755bf25dec19d4979bdecf
2019-01-29 11:29:52 -08:00
Sunny Goyal
eae0514f1a Moving Plugin and feature flags UI to androidX
> Combining both preference into a single screen
> Adding plugin preference screen so quickstep build

Change-Id: I3d2ff3ebdac3c774659e79ecb81be6f75f765eb0
2018-10-25 13:07:42 -07:00
Tony Wickham
5c5c118c48 Add AllAppsRow plugin interface
Bug: 115877296
Change-Id: I750941f220d08ca9ee14067253253f6d81417101
2018-10-16 17:22:09 -07:00
Tony Wickham
76cce29d66 Add plugin support
- Add libs/plugin_core.jar
- Include plugin_core in Launcher3 build (it is already present other
  builds as part of the updated shared lib)
- Add PluginEnablerImpl that uses SharedPrefs to enable/disable plugin
  components
- Add src_plugins, where plugin interfaces will live. It has a build
  rule to create a jar that plugin projects will depend on.
- Copy PluginPreferencesFragment from sysui but using our implementation
  for PluginEnabler

Bug: 115877296
Change-Id: I3db54677eaceb10f92018c0f9d18920ad9ffac39
2018-10-10 14:02:56 -07:00
Hyunyoung Song
48cb7bc7a4 Move IconNormalizer/ShadowGenerator/LauncherIcons to icons package
Bug: 115891474

Sending out the package name changing CL first before I make
LauncherIconsHandler and tests around it.

Change-Id: Ic10479a06333e1435b392a7072cd08782e710cbd
2018-09-26 11:57:37 -07:00
Sunny Goyal
cf300fc980 Creating a separate state for launcehr as background app
This makes is simpler to control the swipe to overview UI, and ties the
transition with the state machine

Bug: 113287120
Bug: 79755195
Bug: 112203163
Change-Id: I3041dbb659b46ccea6284855addc91e370815be6
2018-09-05 17:32:50 -07:00
Sunny Goyal
d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Winson Chung
7debc53f93 Skip logic to find the dominant color when loading recent task icons
- Also move some allocations in ColorExtractor into thread locals to reduce
  allocations

Bug: 78777731
Change-Id: I8819106d476a9af02e864135a2f44b55fe9219cd
2018-08-14 10:30:33 -07:00
Android Build Merger (Role)
498a9bd559 [automerger] Defer starting the high-res thumbnail loader until quick step/scrub am: 8eb49e079e
Change-Id: I3b69862c42175d7680fd6a4878247c3cf7c0081f
2018-07-18 22:06:04 +00:00
Winson Chung
8eb49e079e Defer starting the high-res thumbnail loader until quick step/scrub
- When hitting the home button, we may be loading high-res thumbnails
  unnecessarily since the high-res loader is already enabled when
  Launcher is started.

Bug: 111515602
Bug: 111156069

Change-Id: I367993b4ddf653b816355df005c745caed5e794a
2018-07-18 15:05:54 -07:00
Sunny Goyal
7f920b8d5e Cleaning up build rules to simplify customizing derivative projects
> Using {packageName} instead of hardcoding com.android.launcher3 in AndroidManifest.xml
  for strings which are dependent on packageName
> Adding proguard rule to prevent obfuscating any overridable class
> Making it easier to extend SettingsActivity by overriding the fragment class

Change-Id: I5668c3f33b4cf20ad01d7f54b3d79cc0d268d391
2018-07-02 11:16:04 -07:00
Sunny Goyal
4dcda06542 Fixing launcher going to a different state when dragging an icon from different activity
Bug: 80191074
Change-Id: I45ea646dc2bd21627e8b724dac9c9fc23c18797d
2018-05-25 11:56:53 -07:00
Vadim Tryshev
1b0c5032d1 Fixing keyboard navigation when Overview list is empty
Bug: 80155387
Change-Id: Ife86fe4b718ef01291a04b21020155110d75fa7b
Testing: Manual
2018-05-24 13:06:18 -07:00
Matthew Ng
8b92fe336b Fade back button in and out tied with the overview/shelf (2/3)
Back button changes opacity when moving the shelf during swipe up
between home screen and overview. The alpha changes depending on the
progress of the swipe up animation. When going from app to home and vice
versa, the fade animation does not tie with the swipe up progress. The
fade animation also masks the back button drawable when ime visibility
changes.

Change-Id: I51e42930640ba711e81880b385bb722d7ee8ad33
Fixes: 74581837
Fixes: 76900236
Test: swipe up from home screen to overview
2018-05-18 00:48:51 +00:00
Tony Wickham
b2ddf10041 Update interpolators and durations for state animations
When we enter overview (overview appears, workspace disappears):
- Workspace scales down from 1f to .8f with OvershootInterpolator(1.2f) at 200 ms
- Workspace fades from 1f to 0 with OvershootInterpolator(1.2f) at 200 ms
- Overview scales down from 1.33f to 1f with OvershootInterpolator(1.2f) at 200 ms
- Overview fades from 0 to 1f with OvershootInterpolator(1.2f) at 200 ms

When we exit overview (overview disappears, workspace appears):
- Workspace scales up from .92f to .1f with DecelerateInterpolator() at 200 ms
- Workspace fades from 0 to 1f with AccelerateInterpolator() at 200 ms
- Overview scales up from 1f to 1.1f with AccelerateInterpolator() at 180ms
- Overview fades from 1f to 0 with DecelerateInterpolator(1.7f) at 200 ms

Parallax while the finger moves: Workspace translates half the distance as the shelf

Bug: 79776746
Change-Id: I319d982cf202bcd6dbbcd68ffc5c0c7853629c7e
2018-05-16 15:59:31 -07:00
Sunny Goyal
de75321542 Fixing wrong accessibility focus when opening a floating view
> Using common logic for announcing a floating view for widgets and folders

Bug: 79091095
Bug: 79748886
Change-Id: Ibb3fe48e68e724f50d69f51a03d3b35ad0baf625
2018-05-16 13:11:00 -07:00
Sunny Goyal
55eb556a4b Dumping the excoded view hierarchy instead of the default activity dump
> Encoded hierarchy is smaller is size and has a lot more information about the views

Bug: 79861035
Change-Id: I84316b1b0031282b0579f3aaac22d8d8f00d8bcb
2018-05-16 10:55:21 -07:00
Tony Wickham
6becf7c07d Add atomic recents animation while swiping up
State handlers can now specify atomic and non-atomic components of
their animations to states, which can be specified when creating a
new animation. There is now one atomic animation, when going from
NORMAL to OVERVIEW (and in reverse):
- RecentsViewStateController's animation (scale/alpha) is all atomic
- WorkspaceStateTransitionAnimation has atomic and non-atomic:
  - Hotseat and workspace alpha is atomic, as is workspace scale
  - Everything else (scrim, translation, qsb and drag handle alpha) is
    non-atomic
- All apps progress is non-atomic

Also simplified dragging through overview; no longer pulls against you,
so we use an OvershootInterpolator when flinging instead of our custom
interpolator for the spring effect.

Bug: 76449024
Bug: 78089840
Change-Id: Iafac84d0c2b99ee9cf9dd5b30e2218286713b449
2018-05-09 12:33:46 -07:00
android-build-team Robot
639b07178f Merge "Using surface rotation instead of insets to determine seascape configuration" into ub-launcher3-edmonton 2018-05-09 16:00:43 +00:00
Sunny Goyal
927447e71d Chaniging all-apps scrim
> Converting the scrim to View, to better avoid overdraw
> Overview and Spring loaded state have different scrim alpha
> When going from overview to all-apps, there is a color scrim drawn over the overview panel.
  The slef color is merged with this color to prevent overdraw, and the remaining screen is drawn
  with a cut-out round rect path

Bug: 79111591
Change-Id: I26801fde13dd6adb4b06110bbe8087e35cc31847
2018-05-08 08:29:43 -07:00
Sunny Goyal
59d086c3ce Using surface rotation instead of insets to determine seascape configuration
Insets may not correctly indicate seascape configuration in multi-window or
when the presence of device-cutouts

Bug: 79376298
Change-Id: I8268efca0001fe527a0ffefe48cc71e774fad01c
2018-05-07 17:32:46 -07:00
Sunny Goyal
18c699fbc5 Using the system color extraction logic instead of inbuild logic
> Moving the inbuild color extraction logic to the aosp flavor

Bug: 79111591
Change-Id: I766b0397da7224b424cd5f309cedf635d60a5e0f
2018-05-04 10:16:39 -07:00
Tony Wickham
4c7507571c Merge "Only detect swipe directions that lead to new states" into ub-launcher3-edmonton 2018-05-03 21:38:04 +00:00
Tony Wickham
52240a3aa0 Only detect swipe directions that lead to new states
This cleans up the code and ensures that the current state animation
is always initialized when we get drag events.

Also log when we pass through states.

Bug: 78017680
Change-Id: I54ab42923ed539940ea708973ad65f5793669c11
2018-05-03 14:04:25 -07:00
android-build-team Robot
9b83fe225d Merge "Quickstep onboarding backward compatibility for devices release with Android N & O." into ub-launcher3-edmonton 2018-05-02 20:51:37 +00:00
Tracy Zhou
8b23c6f60b Quickstep onboarding backward compatibility for devices release with Android N & O.
Quickstep introduces swipe up gesture to open Overview and removes the
Recents button. We still want to show shelf bounce animation for Android
N & O users with Recents button because Overview is updated and swiping
up from there takes users to All Apps.

Test: manual test
Change-Id: I917c91564c47c78d2dc3883b8a7bf7824b5f5bc8
Fixes: 78647939
2018-05-02 13:41:28 -07:00
Sunny Goyal
36d090df67 Adding a round rect background for the self in Overview
Bug: 78771910
Change-Id: I71460a284ed185e82d66fe65104402fb99d6b312
2018-04-30 15:37:39 -07:00
Tracy Zhou
e5575f9fff Implement all apps discovery bounce.
Mock: https://docs.google.com/presentation/d/1TCp1mREgsFAWq4hCnUaSRCpaqvDbzCVkN1mJuRMylIg/edit#slide=id.g36a3e190fb_0_6

Demo video: go/shelf_bounce_animation

Fixes: 70180942
Test: manual test
Change-Id: I6ecceb63612dd63cea62f2e6cb19d7522f3d76e0
2018-04-23 10:26:40 -07:00
Tony Wickham
a006830f0a Listen for cases where touch controllers change, and update them
Otherwise we'd be stuck using the old touch controllers until DragLayer
is setup again (e.g. launcher is killed).

Bug: 77921826
Change-Id: I8aac6fc453839902cb2d99279a6bd1549ee17d79
2018-04-11 17:25:40 -07:00
Tony Wickham
6270a0ea18 When dragging past first or last state, don't reinit target
Example bug:
1. Swipe up to overview and let go
2. Swipe all the way to the top of the screen, past where all apps stops
3. Swipe down

Before this change, you get reset in NORMAL state instead of OVERVIEW.

By ensuring that getTargetState() checks the drag direction before
returning a new state, we guarantee we only re-init in the case that the
state is actually changing. Otherwise it's possible to change the state
to one that is impossible, such as NORMAL when swiping up from ALL APPS.

Change-Id: I19913dded9c94228d06289780b6400e99403f378
2018-04-06 14:32:18 -07:00
Tony Wickham
274b9529ff Support swiping between states
- Swiping down on hotseat from overview goes to workspace
- Can swipe up through overview to get to all apps

Bug: 76449024
Change-Id: I7f76d92da976e268cc2a97e55746cca4603e6620
2018-04-03 11:18:18 -07:00
Tracy Zhou
b1a7f2829e Merge "Move default pip position to right above the shelf (Pt. Launcher)" into ub-launcher3-master 2018-03-28 21:54:57 +00:00
Tracy Zhou
a706f00d78 Move default pip position to right above the shelf (Pt. Launcher)
SysUI change: ag/3721784, ag/3793664

- Track LauncherState and launcher activity state through callbacks.
- Devise logic to send shelf visibility and height signal to SysUI based
on LauncherState and Launcher activity state.

Bug: 73961893
Test:
- By default, pip shows up right above the shelf.
- Transitioning to all apps moves the pip down as the shelf becomes
invisible.
- Going to any specific app moves pip down. Hitting home moves pip
right above the shelf again.
- Dismissing IME should push PIP down but above the shelf on home
screen, bottom if not.

Change-Id: I1ab6ceb8007a5a7b5d932a456efa0a07f586ea4c
2018-03-28 14:40:49 -07:00
Sunny Goyal
81b4c7bb3c Adding a custom view for DragHandle
> Separating page indicator and drag handle
> Page indicator always draws irrespactive of oriantation
> Drag handle is responsible for accessibility interactions
> Adding assissibility actions for DragHandle

Bug: 72500733
Change-Id: I9030337456964af1bdf77f1c01956452321f9229
2018-03-26 15:52:03 -07:00
Tony Wickham
7c3dd1f14e Add drag indicator to hotseat
Change-Id: Iad5b08ad290f07c6cdd3c9091e160b5af859859e
2018-03-23 17:34:04 -07:00
Sunny Goyal
da3cc7a939 Fixing drag and drop states
> Not sending acceptDrop if we are not dragging
> Removing workspace scrim in all-apps

Bug: 74775232
Change-Id: I5b5354ec249d684ffccd4aacd3c47377cc0eb661
2018-03-22 12:50:12 -07:00
TreeHugger Robot
fa03e181cf Merge "Support multiple Views of extra hotseat content" into ub-launcher3-master 2018-03-22 02:52:42 +00:00
Sunny Goyal
7a80b59e97 Swipe interaction changes on home screen
> Increasing the distance to travel for the first swipe
> Adding support for custom interpolators when building an animation
> When quickly swiping twice from home, finished the first animation

Change-Id: Ibc3c8667e9b927376fd99f08f0ca027f2398914b
2018-03-21 17:55:35 -07:00
Tony Wickham
a97f0f20cd Support multiple Views of extra hotseat content
Also adjust workspace page indicator:
- Center vertically
- Rounded corners

Change-Id: I96c2f3da3522d70726f544126b516c33c8fb7bc8
2018-03-21 15:53:11 -07:00
Tony Wickham
bd6f05e0b6 Separate some elements to set visibility separately
Added entries for:
- All apps header extra content
- Hotseat extra content

Change-Id: I47c4ccfe3b54fd47cbbee88698ed045611e3e92d
2018-03-21 12:15:48 -07:00
Sunny Goyal
7185dd63eb Changing the overviewState to show appsearch and floating header
Change-Id: I2cfd61cfc9978e4c8e4520f0f7217e49e7344c79
2018-03-19 20:02:34 -07:00
Sunny Goyal
0b0847b272 Fixing taskMenu and taskView clicks in fallback activity
> Extracting common methods from Launcher & DragLauncher to base classes
> Remoting some dependencies on Launcher and using the base class instead

Change-Id: I121cacf8a14190b4703cda60bdeb4f79eee69ded
2018-03-15 17:29:43 -07:00
Sunny Goyal
7c7be8c20a Simplifying options popup and overview handling
> Removing support for page drag-n-drop from pagedView
> Removing Overview UI from Launcher3 without quickstep and using options popup instead
> Removing touch handlers from CellLayouts and showing options popup based on workspace long press
> Excluding touch outside inset when showing the popup

Bug: 74136505
Change-Id: I34c2a7ff58452db26f5d1a85d554be40fc75f2b8
2018-03-13 12:57:32 -07:00