229 Commits

Author SHA1 Message Date
Selim Cinek
afae4e715f Making the media carousel dismissable
The carousel can now be dismissed when swiping on the last card
Dismissing the carousel will make all active players inactive
and resumable.

Bug: 159159195
Test: add media notifications, swipe them away!
Change-Id: Ia42886fa2b50ac0b06824480cf615237d663367f
2020-06-19 18:15:03 -07:00
Selim Cinek
2a1cab1192 Changed the landscape experience of quick settings
When introducing Media into quick settings, the landscape
experience never really worked well. The music player
would be cut off on the bottom and users could never
reach their playback controls.
Instead of the vertical layout, we're now rendering
quick settings side by side with the player.

Using some densities, this could still be too large,
so we're also introducing a scrollview for the
expanded quick settings.
This also makes sure all the paddings and spacings
are up to spec.

This also fixes behavior where a user could still collapse
the panel while the user switcher was showing.

Bug: 154332040
Test: atest SystemUITests
Change-Id: I3b8babc2cc6a91e19824b67f043aa5044dc370b9
2020-06-12 16:26:53 -07:00
Fabian Kozynski
36ddca1cf3 Remove QS details prototype code
Also remove some other leftover prototype code

Test: manual
Fixes: 156645457
Change-Id: I21f442b2501f00c78c51826a805e7be91a214c7d
2020-05-14 15:57:40 -04:00
Dave Mankoff
50883d72aa Prevent double animation of lockicon when waking.
If the phone went from pulsing -> awake, it could cause the lock icon
to briefly disappear then reappear. Specifically, this caused it to
appear to animate twice.

This all resulted from the internals of the Doze system briefly being
told that it was neither dozing nor pusling, meaning that it thought
it should hide the lock icon. The rest of the system then caught up,
and it shows the lock icon again, animating it into place.

Fixes: 155411884
Test: manual
Change-Id: I79e1bbde2c5cb5fe588a29111294fab68c546c7c
Merged-In: I79e1bbde2c5cb5fe588a29111294fab68c546c7c
2020-05-04 13:51:48 -04:00
Fabian Kozynski
2ff6df973b Add new QS Ui EVents
This CL adds events for:
* QS interactions
* StatusBarState changes
* User Switcher interaction
* DND panel interaction

The new QS events that refer to particular tiles attach the following:
* spec (if framework tile) or package (if CustomTile)
* instanceId associated with the QSTile object on creation

Test: atest SystemUITests (including new tests)
Test: manual using statsd_testdrive
Fixes: 147508235
Change-Id: I43d8fe1fdb2aec1f16032da61a599ebc29809afc
2020-04-30 12:52:20 -04:00
Julia Reynolds
138111fca3 Show snoozed conversations in conversation header
- And allow them to be unsnoozed with a tap.
- Also use the conversation's shortcut icon and name if available.
- And ignore the setting to turn off the strips since it now requires
explicit user action to make the strip visible

Note 1: unsnoozing a notification causes it to make sound again - we
probably want to change that for manually unsnoozed things
Note 2: the entries in the header don't yet persist across a reboot

Test: atest, manual
Bug: 149486431
Change-Id: Id661c25a49bc982e39deab977eb912f51eaf6757
2020-02-28 02:48:07 +00:00
Fabian Kozynski
1e88cfefac Merge "Add QSLogs using new loggers" 2020-02-12 15:10:27 +00:00
Dave Mankoff
9d81f0ab04 Merge "Unregister prox sensor when QS or Bouncer are expanded." 2020-02-12 01:36:37 +00:00
Dave Mankoff
1b2144d69d Unregister prox sensor when QS or Bouncer are expanded.
The FalsingManager doesn't need the prox sensor when its not being
used.

Bug: 149307116
Test: atest SystemUITests
Change-Id: Ib68c0a269c9f94b1a1bb0ba137a2bb5fde340bba
2020-02-11 14:49:18 -05:00
Fabian Kozynski
ca30f57095 Add QSLogs using new loggers
Test: manual using DumpController
Test: atest

Change-Id: Id665ff047d60ddfa5f8f2fe907b7e20f84bd0013
2020-02-11 10:31:52 -05:00
yingleiw
5e0f9f4b02 Revert "Partially revert "modify quick settings to adopt the accessibility state api""
This reverts commit 7a64815b741af8b26c9db7ae92e3841e026ee44c.

And added the info.setText() part in onInitializeAccessibilityNodeInfo()
in QSTileBaseView.java so that related tests are not broken.

Test: tested with quicksettings and
android.platform.test.scenario.sysui.quicksettings.ToggleWifiOn#testToggle (pass)
and android.platform.test.scenario.sysui.statusbar.NotificationIconOverflow#testNotificationOverFlow
(fails without and with my cl).

Change-Id: I611177fcbd32d35532cfcafbb2b7a73961d1ddc2
2020-02-10 09:57:50 -08:00
Fabian Kozynski
e87ef4d98d Remove prototype for color QS tiles.
This removes the prototype added in ag/9363655

Test: build
Test: toggle settings and observe
Change-Id: I48785ea90b039793591d048fcbd330ab1caf6cd7
2020-02-04 10:44:41 -05:00
Zhen Zhang
42faa9914c Merge "Partially revert "modify quick settings to adopt the accessibility state api"" 2020-01-30 21:40:13 +00:00
yingleiw
7a64815b74 Partially revert "modify quick settings to adopt the accessibility state api"
This reverts commit 4a72a74b2a824c85d60571421f4c90e0e94cae75 except for
the api part.

Fix: b/148501707

Test: not needed
Change-Id: I3cf75589ca0abd2aa58a4291a0261b5ce42d066a
2020-01-30 21:38:38 +00:00
Matt Pietal
f07bac46ee Remove all control experiments
And plugins, and flags, and any associated code

Bug: 148207527
Test: atest SystemUiTests
Change-Id: Id1b800d6ec96b5297e6ed4792ca003d45b61e53e
2020-01-30 08:49:20 -05:00
yingleiw
4a72a74b2a modify quick settings to adopt the accessibility state api
Seperated out the state part from contentDescription. Also changed the
tile on/off states from mocking switch to unavailable/on/off state
description based on State.state. During testing, I removed event
merging (including source node merging) for state and content change
events. Use event text for state description changed part will be in a
seperate CL.

Test: tested on the quick settings tiles for focusing and state change
evnets. With the event merging removed, the state change is announced
when the focus keeps on the tile. Before my change, content change is
not announced when the focus keeps on the tile due to source node change
in event merging.

Fix: 148473520

Change-Id: I5b6aee6f0982cf4e0a3962fbe15239314f3a2de4
2020-01-28 13:31:13 -08:00
Julia Reynolds
12ba4cf7a8 Add conversation-centric inline controls
Round one - needs polish, and actions may be added or removed
in the future, and demote isn't working yet.

Bug: 137397357
Test: atest
Change-Id: Ia52598bec58fc54b8bde29168cd419a24d1e4dab
2020-01-15 10:20:29 -05:00
Dave Mankoff
9febfeb097 Disable falsing when resting on a Dock.
Fix typo: Classifer -> Classifier.

Use Executor instead of Handler in falsing related code.

Show a dump of BrightLingFalsing related information.

Bug: 139785197
Test: atest SystemUITests && manual.
Change-Id: I3be68cb9f27ccfb5a686947cc85aae74f21f099c
2020-01-03 15:21:04 -05:00
Heemin Seog
e9f4e96c0a Move dozing related methods out of ShadeController
isDozing is already provided by StatusBarStateController.
wakeUpIfDozing doesn't need to be in ShadeController and can stay in
StatusBar for now (potentially move into a dozing related controller in
the future?)

Bug: 144702768
Test: manual, atest SystemUITests
Change-Id: I8f7d6a452388308de5fdd1adfbcd200fd3076a2f
2019-12-09 12:32:28 -08:00
Andy Wickham
202970155d Adds NavigationEdgeBackPlugin to iterate on different Back implementations.
NavigationBarEdgePanel now implements the new plugin. As part of that,
some of the UI-specific logic from EdgeBackGestureHandler has been
moved to NavigationBarEdgePanel (e.g. Dark region detector and logic
around the arrow position).

Test: Built and manually tested existing back behavior.
Fixes: 143907351
Change-Id: I0e01581d6b69e6a8a03a4338be83ed5ff8b2da65
2019-11-15 13:19:15 -08:00
Beverly
8cf4996fdf Set a good example - don't export ExamplePlugin
Plugins should never be exported because this would allow other
packages installed on the device to attempt to launch it via
Context#startService which can crash SystemUI.

By default, if a service has an intent-filter, exported is set to true.
Therefore, we must explicitly set exported=false.

Test: n/a
Bug: 142012333
Change-Id: Iaf4191ee3006cc07eb0309f068854c103683e99d
2019-10-30 20:39:16 +00:00
Steve Elliott
bfc57f36d8 Finer-grain control of people sorting via plugin
This change allows for NotificationPersonExtractorPlugin implementors
to mark notifications as "people" (to be sorted into the People
bucket) separately from extracting data from them for PeopleHub.

Test: manual
Change-Id: Ieb8a9aeea06bbfe70976ebf46274567347e695d7
2019-10-24 15:35:32 -04:00
Steve Elliott
984cfec745 Plugin interface for PeopleHub
This allows for plugins to add additional "people notification"
detection logic, useful for prototyping against apps which do
not post MessagingStyle notifications.

Test: manual
Change-Id: I8b7b824beed50dfb86689f41ff151b3014737ffb
2019-10-23 11:23:59 -04:00
Jorim Jaggi
956ca413e3 Window Manager Flag Migration (4/n)
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.

Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
            InsetsPolicyTest WindowStateTests CommandQueueTest
            RegisterStatusBarResultTest InsetsFlagsTest
            LightBarControllerTest
Test: build on specific target
Change-Id: Ie35f4b4468bce7ef8c76f091e306610c069fba85
2019-10-19 16:59:06 +08:00
Ioannis Ilkos
5a5678d244 Merge "Revert "Window Manager Flag Migration (4/n)"" 2019-10-17 09:49:58 +00:00
Ioannis Ilkos
8cca14103c Revert "Window Manager Flag Migration (4/n)"
This reverts commit cb1b848084be47118342c4893ede2298067c3d0f.

Reason for revert: Droidcop-triggered revert due to b/142849532

Change-Id: If81eba4e979e21202e78839bb1afbc66691098d2
2019-10-17 09:38:00 +00:00
TreeHugger Robot
0be9fec5c1 Merge "Window Manager Flag Migration (4/n)" 2019-10-17 05:46:19 +00:00
Jorim Jaggi
cb1b848084 Window Manager Flag Migration (4/n)
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.

Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
            InsetsPolicyTest WindowStateTests CommandQueueTest
            RegisterStatusBarResultTest InsetsFlagsTest
            LightBarControllerTest
Change-Id: I1dcaff47ae57ccee91146fdc042cde5e26fc0b3f
2019-10-17 01:41:34 +08:00
TreeHugger Robot
f3c1c427b2 Merge "Home Controls: Add a new Controls tile for prototyping" 2019-10-16 16:53:46 +00:00
Matt Pietal
b6da00e69a Home Controls: Add a new Controls tile for prototyping
Must edit the QS area to add the new Controls tile and have set:

adb shell settings put system qs_controls_tile_enabled 1

Test: visual
Change-Id: I7359d394d6d0a5eb408de7049bf0b3051c83e361
2019-10-16 11:18:49 -04:00
Fabian Kozynski
05843f07cc Add support for BooleanState in CustomTile
Added API for a TileService to declare that they are a boolean tile. In
that case, the tiles behave like frameworks tiles when using TB.

Test: atest CustomTileTest
Test: manual, added to DevelopmentTiles and observe behavior
Test: manual, Grayscale behavior doesn't change
Bug: 138579147
Change-Id: I2f2dae90a49897015138ab9615a4a556da623358
2019-09-23 20:34:15 +00:00
Dave Mankoff
63a1282b03 Make DozeSensors, DozeTriggers use ProximitySensor
This CL takes the features used in DozeSensors and applies
them to the publicly available util.sensors.ProximitySensor class.

It introduces a RateLimiter class for temprorarily suspending the
ProximitySensor as requested.

It introduces a ProximityCheck class for a quick, one time test
of the proximity sensor.

There is some reshuffling of Sensor related code to its own package
as well.

Bug: 141122220
Test: atest SystemUITests
Change-Id: If126be9a56c6966c1678ee70fa6f4623e51361a7
2019-09-18 11:25:43 -04:00
Matt Pietal
b3e8cbd2a6 QS - Prototype visual affordance for detail panels
Builds on ag/9335278 to show "..." below tiles that support direct to
detail view on touch.

Test: manual
Change-Id: I1c192656505bac228a3935f0aa498c37a468d973
2019-09-12 12:09:31 -04:00
Fabian Kozynski
67ffcf8936 Add colors to tiles
Protoype for modifying color of tiles. Provides 2 modes:
qs_color_enabled: allows changing background of tiles
qs_color_icon: allows changing color of icon (only use with
qs_color_enabled)

Enable using:
adb shell settings put system <name> <value>
where name is one of (qs_color_enabled|qs_color_icon) and value is (0|1)

With qs_color_enabled, color of individual tiles can be changed using
adb shell settings put system qs_color_enabled/<spec> <color>
where spec is as defined in QSFactoryImpl and color is one of
(red|green|blue|yellow|accent).

Test: manual

Change-Id: I66096cfa5cb8570074b1547ca3e41bd0888973fa
2019-09-10 15:45:42 -04:00
Fabian Kozynski
3bf518dd98 Adding a Plugin to attach things under QQS
This plugin responds to expansion and changes in theme, ui, etc.

Test: manual

Change-Id: I5d866a4fff491aa6273edfb765e538864b270534
2019-09-05 12:26:13 -04:00
Matt Pietal
50c8b50b37 Controls: Add a temporary space for home controls integration
This space will only be visible by setting a flag to enable split
status-bar functionality:

adb shell device_config put systemui qs_split_enabled true

To populate the view, you will also need to build and install an
experimental plugin from google3, coming shortly.

Test: manual
Change-Id: Iccf712a0355ebf8d9c6da2dac63874820270d405
2019-08-21 13:40:12 -04:00
Jeongik Cha
eb50963ac5 Merge "Add platform_apis in Android.bp" am: cebe8f985f am: 869f3888bd
am: 820f1feefa

Change-Id: If1d59e4bf335f1179bebf83f03644e735415a130
2019-07-25 02:12:54 -07:00
Jeongik Cha
820f1feefa Merge "Add platform_apis in Android.bp" am: cebe8f985f
am: 869f3888bd

Change-Id: Ia8b15bc76441e5240bc90429b56cfdf1591a93f5
2019-07-25 02:03:22 -07:00
Jeongik Cha
869f3888bd Merge "Add platform_apis in Android.bp"
am: cebe8f985f

Change-Id: Ia9f556a6066985a4c210192b196f54c5c35d6cd6
2019-07-25 01:53:31 -07:00
Dave Mankoff
73d48ab970 Add cleanup method to FalsingManager to prevent memory leaks.
When the FalsingManager gets reloaded (due to plugins) it can
leak its listeners and callbacks. This change fixes that.

This is a CP of http://ag/8668802.

Bug: 136351609
Test: manual
Change-Id: I7ea8384678b60e78ed384e19bbd7932722fe2b9c
Merged-In: I2b52d018d478dbcad4ecb7d8a5b361638d5c5877
2019-07-22 10:50:22 -04:00
Dave Mankoff
4c5a13ebd9 Add cleanup method to FalsingManager to prevent memory leaks.
When the FalsingManager gets reloaded (due to plugins) it can
leak its listeners and callbacks. This change fixes that.

Bug: 136351609
Test: manual
Change-Id: I2b52d018d478dbcad4ecb7d8a5b361638d5c5877
Merged-In: I2b52d018d478dbcad4ecb7d8a5b361638d5c5877
2019-07-16 20:01:29 +00:00
Jeongik Cha
a1bf8a9b75 Add platform_apis in Android.bp
platform_apis must be true when sdk_version is empty.
So add platform_apis into file that is not included it.

Bug: 132780927
Test: m
Change-Id: Ie7badd61248bbabaf51ef8fb30bdd832af88da15
2019-07-11 15:40:04 +09:00
Selim Cinek
2cfa02421b Merge changes I5694a38e,I488f90aa,Ie9644dc8,I8d5b5b53,Ib8a0fa19 into qt-r1-dev
* changes:
  Continued the bypass experience
  Changing the lockscreen layout for the bypass
  Enabling auth to succeed whenever the bouncer is showing
  Enabled dragging down from the lock screen when bypassing
  Made sure huns can show on the lock screen even when awake
2019-06-20 02:04:12 +00:00
Selim Cinek
b0fada6ca0 Changing the lockscreen layout for the bypass
The notifications are now on the top and the user
can drag down to the full shade from there directly.
The quick settings header also comes down while
expanding from the pulse.

Bug: 130327302
Change-Id: I488f90aacd5912eda6f9423dc76862f06230d793
2019-06-19 16:13:53 -07:00
Beverly
f2d9819b19 Add skip gesture status type
Test: manual
Bug: 134143348
Change-Id: I538142e367489cd32cc788426e1fc881f0006e79
2019-06-14 15:57:16 -04:00
TreeHugger Robot
1f55123ee7 Merge "Make DozeParams available to Plugins" into qt-r1-dev 2019-06-08 01:14:30 +00:00
Beverly
1488f69eb0 Make DozeParams available to Plugins
Test: manual
Bug: 134519217
Change-Id: I4a2b0827b861ef922fab85e0e6a6dde2313ba78f
2019-06-07 18:52:27 +00:00
Beverly
e14f08e9f5 Add callbacks to StatusBarStateController
So plugins can receive this information without an IPC call

Test: manual
Bug: 133783909
Change-Id: I716ed6af78ab5a80a36fb680bc5d42758766523d
2019-06-07 17:36:00 +00:00
Dave Mankoff
468d4f6f79 Add support for FalsingPlugin to supply a replacement FalsingManager.
Bug: 130256776
Test: Manual
Change-Id: Icdf150e6e23d216f04a9243fe57919aa622706d5
2019-05-10 12:14:27 -04:00
TreeHugger Robot
7db0bf1a50 Merge "Remove plugin logical from NavigationBarView (1/2)" into qt-dev 2019-05-10 02:08:40 +00:00