Commit Graph

554 Commits

Author SHA1 Message Date
Jason Monk
51c444be14 QS Customize panel cleanup
- Use better service management to ensure onTileAdded and onTileRemoved
   are sent.
 - Fix not always registered as tunable bug.

Bug: 26423350
Change-Id: I56156de8e0edf903509dac594b471700068ebe3e
2016-01-06 16:32:29 -05:00
Jason Monk
5a34cb8a73 Merge "More QS Tile modes in the API" 2016-01-06 14:18:57 +00:00
Julia Reynolds
617215874d DND visual interruptions: prevent screen on.
Bug: 25423508
Change-Id: Ie935a2051e1ae774fbeaf624f3599b2b1bb8666d
2016-01-05 12:49:09 -05:00
Jason Monk
fe8f6826ce More QS Tile modes in the API
Allow tiles to request when they are bound instead of doing it
automatically for them when in the listening state.  Only one
of these modes is allowed for a given tile, meaning it can either
push updates when it thinks they matter, or it can be told when
to update.

Change-Id: I165b39dddb836df90d253aeb5ebea48e62ea0dae
2016-01-05 11:08:05 -05:00
Chris Wren
29b7dd8d69 Merge "implement assistant service connection" 2016-01-04 21:07:24 +00:00
Jason Monk
d5a204f16e Better service management for QS 3rd party tiles
Better wrapper around the service that will handle rebinding
when it dies, binding when it becomes available, and forwarding
along all messages to the service once it binds.

Also better handling of too many services at a time.  Will only
ever bind to at most 3 tiles and will manage which ones are most
important to show based on pending clicks, last update, etc.

Change-Id: I5f4da0bc751f7eb25baa32e5c0bb9f1bc418f5bb
2016-01-04 14:46:11 -05:00
Chris Wren
51017d0e23 implement assistant service connection
Added a guest-mode to ManagedServices.
Like system services, the lifecycle of a guest is not managed.
Unlike system services, guests are not considered privledged.

The Assistant gets all the usual listener events.
Implemented adjustImportance.
Future work: enqueued, clicked, visibility, removed, annotations

Bug: 22455414
Change-Id: Ic41c0bf625b5e98cb577b49098bba23a539bb507
2016-01-04 11:22:37 -05:00
Ruben Brunk
55bed95778 Merge "Add a framework service tracking VR mode state." 2015-12-18 19:50:24 +00:00
Jason Monk
161ccb5dfe Small fixes in TileService
Change-Id: I4d10c43d8e40697d144802067fcd4f95d866e4e0
2015-12-17 21:46:58 +00:00
Ruben Brunk
dd18a0b695 Add a framework service tracking VR mode state.
- Implement a "VR mode" that may be enabled by a focused Activity.
- Add a system service that tracks the current VR mode state and notifies
  other core framework services of mode changes.
- Extend NotificationListenerService to allow the bind/unbind lifecycle
  of specified listeners to be triggered by system events.

Bug: 22855417
Bug: 25479708

Change-Id: I1ac8692bbb5521bb6c7cfb9d2b56b98b720f8568
2015-12-17 10:09:17 -08:00
Julia Reynolds
7eba593b8d Aidl it all!
Change-Id: Ic12e2305a947749a714102a8133321ae07599950
2015-12-16 10:16:23 -05:00
Andreas Gampe
1ed71f3722 Frameworks/base: Fix Notification code
Avoid a NullPointerException in NotificationListenerService when
a corrupt notification is found.

Fix not using the return of trim() in NotificationManagerService.

Bug: 19797138
Change-Id: I84dc15eba7b4052a774eb69d36591d100105f169
2015-12-11 15:49:07 -08:00
Julia Reynolds
41c264bae1 Merge "Add importance to notification guts." 2015-12-11 21:41:32 +00:00
Chris Wren
bdf3376616 use importance instead of score
Change-Id: Id3b0a074671943b4fcabb63fe990cbfd1e46bdfd
2015-12-11 16:09:18 -05:00
Julia Reynolds
ead00aac15 Add importance to notification guts.
Note: the guts are still trucated to the height of the notification.
The slider initially shows the importance of the individual notification,
but changing the slider changes the importance for the whole group
of notifications.

Bug: 22451710

Change-Id: Id6de3aaace2bdb88a8cc5db517002dc7f0e349ae
2015-12-11 14:57:47 -05:00
Julia Reynolds
5d25ee7a00 Topics can now have an Importance.
Bug: 22451710
Change-Id: I627121da6c4b85492715a8e8a099656dca52b734
2015-12-04 15:20:34 -05:00
Chris Wren
cf7021e827 Merge "Notification Assistant API" 2015-12-03 19:23:33 +00:00
Chris Wren
9fa689f8b6 Notification Assistant API
This API allows a single assistant on the device to help the
user manage their notification stream by taking actions on
individual notifications:

  - modifying their priority up or down when they are posted
  - possibly changing if and how the notification interrupts the user
  - adding annotations under notifications

Bug: 22455414
Change-Id: Idf47972bb71c83f1dc1c9ec68a6fa92ac4fc522f
2015-12-03 13:45:10 -05:00
Jason Monk
8f7f3184d5 Allow QS tiles to open dialogs
Add a TYPE_QS_DIALOG window type, that is in the same layer as
apps and dialogs and such.  It is guarded by having a token
that is granted by SysUI after a click has occured.  If the
app shows a dialog before listening finishes (QS closes) then
the token will stay granted until the tile is removed by the
user, otherwise the token will be removed immediately to avoid
later dialogs.

Also fix a couple tiny TileService issues:
 - Stop/Start listening reversed
 - Fix javadoc referencing wrong action

Change-Id: Iedcdd5fd9a2af2b33eb7f6f17bb0e6c997879876
2015-12-03 09:22:15 -05:00
Neil Fuller
568f4de11a Merge "Fix @code escapes" 2015-12-03 09:44:01 +00:00
Julia Reynolds
c8e54e8d5e Cleanup zen rule instances.
1. When a user revokes zen access
2. When a user clears data

Bug: 25472361
Change-Id: Ia439a7c2bd6dc07a60a374caf4157508131e3578
2015-12-02 15:24:21 -05:00
Neil Fuller
71fbb81b14 Fix @code escapes
The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
2015-12-02 14:24:11 +00:00
Jason Monk
bbadff8603 Add Quick Settings API
It is a little bit limited right now, but it contains
the lifecycle of a tile getting added/removed, and
listening/not listening and clicks.

SysUI side will need some cleanup later on.

Change-Id: I4db803c8a271f8bf44f2ef710517969a84a95cf0
2015-11-19 14:57:11 -05:00
Dianne Hackborn
32bb7bc314 Merge "Fix issue #25673462: Shamu update from MMB29J -> 29K does not complete" 2015-11-18 19:07:43 +00:00
Dianne Hackborn
c83189b5d6 Fix issue #25673462: Shamu update from MMB29J -> 29K does not complete
The direct path to the package manager returns null on failure, oops!

Change-Id: Id33ea299b605a59b0703dab200bafb754dd66e78
2015-11-17 18:17:57 -08:00
Julia Reynolds
f612869ae1 Allow DND mode to suppress visual interruptions.
Bug: 25423508
Change-Id: Idd8242e4bc00a749dbe0b5503c458375fc017072
2015-11-17 21:10:36 +00:00
Jorim Jaggi
253a20fad8 Fix black holes and flickering in docked resizing
When we start a resize with the docked stack divider,
set the surface background to be full-screen, and use
the traditional surface clipping/positioning in window
manager to adjust the size. This ensures that we don't
have any black holes because of asynchronicity (except
at the very beginning, but this can be worked around
later), and the position of the right/bottom activity
is always in sync with the position of the divider.

Also fix a bug in NonClientDecorView where the first
request to draw was dropped (because the thread hasn't
started up yet), and the main thread was waiting for it
indefinitily.

Bug: 24507122
Change-Id: I623bd48d5be64fac2fba45241b84f265944d200d
2015-11-06 16:17:14 +01:00
Julia Reynolds
43f1befac2 Delete unused code.
Change-Id: I49660236b4d40010885b2ee3f8d03b5b258a035e
2015-11-04 08:42:13 -05:00
Julia Reynolds
c279b996f1 Use preexisting DND access setting for condition providers.
So that apps that are already whitelisted don't have to be whitelisted
again if they add a CP.

Bug: 22977552
Change-Id: I4042d531178ab63d5d1e5b963fc081e3ed523835
2015-10-30 11:55:20 -04:00
Julia Reynolds
d9228f1135 Stop populating RemoteViews in Notifications.
Builder now stores its parameters directly in the
Notification object itself, reducing the amount of copying
needed to construct the final Notification as well as
converging the two data structures. All Builder data is now
captured in Notification, so it is easy to reconstruct
a Builder for any Notification object.

This obviates all stripping/unstripping operations because
all Notification objects start life "stripped" of their
RemoteViews, which must be constructed explicitly by clients
(presumably listeners wishing to show the notification to
the user in its conventional form).

Note: While contentView, bigContentView, and
headsUpContentView are being @Deprecated in this CL,
specifying custom RemoteViews is definitely still supported!
You just have to use Builder methods to do so.

Bug: 20153922
Change-Id: I81f8ffed0eb76084b2f2b25b97e325858f0a1d05
2015-10-27 10:19:34 -04:00
Julia Reynolds
c72c931eb8 resolved conflicts for 429e7dcd to master
Change-Id: Id0aca75915a054253d032d333defba1a38b80abe
2015-10-16 16:25:40 -04:00
Julia Reynolds
8e2d2bbeec Add 'until next alarm' option to QS zen panel.
Unlike the implementation in LMR1, this is a countdown condition
(a countdown until the time of what was the next alarm when the
rule was created). The rule will not change if alarms change.
Also, alarms up to 7 days in the future will be considered.

Bug: 21648799
Change-Id: Id7fa9dbdbad1539e4da19b1d0e0c4395bb13e6cb
(cherry picked from commit 0842fe87b2)
2015-10-15 17:02:00 -04:00
Julia Reynolds
0842fe87b2 Add 'until next alarm' option to QS zen panel.
Unlike the implementation in LMR1, this is a countdown condition
(a countdown until the time of what was the next alarm when the
rule was created). The rule will not change if alarms change.
Also, alarms up to 7 days in the future will be considered.

Bug: 21648799
Change-Id: Id7fa9dbdbad1539e4da19b1d0e0c4395bb13e6cb
2015-10-14 13:12:52 -04:00
Julia Reynolds
4fe98d6d4c Remove rename automatic zen rule.
Use zen rule id as key when finding matching rule to update.

Bug: 22977552
Change-Id: I7beeb5688aabe409a9a72aaa3aa27932d590c489
2015-10-07 20:10:58 -04:00
Julia Reynolds
56106ff337 Add id and creation date to Zen rules.
Bug: 22977552
Change-Id: Ic79714ebbcc895e55ee87ccfc0e03b1735255ef3
2015-10-05 20:32:29 -04:00
Julia Reynolds
a47a27ffd9 Third party DND provider APIs.
Bug: 22977552
Change-Id: I8c1bac317e9aa5d9565afe3f0c4e2be8fc34e6a9
2015-09-30 13:39:12 -04:00
Julia Reynolds
b0a773f6b3 Allow third party condition providers.
Bug: 22977552
Change-Id: I3d8689f52daa9376496e14997a6dd7862fb3ade6
2015-08-25 15:01:22 -04:00
Xiaohui Chen
ddbe4ca1ca Clean up USER_OWNER in notifications
Bug: 19913735
Change-Id: Ib6c2ed11eee6adf062a6dff00c99e62945153f9e
2015-08-19 14:09:21 -07:00
Daniel Sandler
bbe1682b16 Merge changes from topic 'fix-media-notifications' into mnc-dev
* changes:
  Fully support Icons in Notification actions.
  Fix media notification action icons.
2015-07-30 02:57:06 +00:00
Dan Sandler
68079d54f3 Fix media notification action icons.
In addition to cleaning up some bare references to the icon
slot, we now apply updates to notification RemoteViews in
the context of the supplying app's package. This ensures we
can find the drawables inside any Icon objects that were
constructed without a proper package name, such as is the
case with Actions (because the builder and constructor are
Context-free and so don't know the package name).

This CL also makes clear what was previously only implied:
Non-resource action icons are not actually supported yet
since they can't be pushed to TextView compound drawables
using today's RemoteViews APIs. That will require an API
change.

Bug: 22600607
Change-Id: Ie6b88aed36e4db05be35f843ea3bc1898d4a5c96
2015-07-29 13:50:32 -04:00
Dianne Hackborn
57dd737443 Work on issue #21516866: Implement voice interaction in ResolverActivity
The main change here is to not allow the dialog to go in to its "focus
on the last app the user selected" when running in voice interaction mode,
instead just always giving a simple list.

This also fixes some problems with cleaning up active commands when
an activity finishes and not forcing the current session to go away
when the screen is turned off.

Also added some debug help, having activity print the state of the
voice interactor.

Change-Id: Ifebee9c74d78398a730a280bb4970f47789dadf5
2015-07-28 12:52:11 -07:00
Jorim Jaggi
20df623459 Merge "Add callback to voice interaction session for lockscreen shown" into mnc-dev 2015-07-21 22:46:30 +00:00
Jorim Jaggi
19695d9711 Add callback to voice interaction session for lockscreen shown
Bug: 22402726
Change-Id: Iaf83e2f2b0389d74b6ecf480aa91a34443803f7b
2015-07-21 12:35:16 -07:00
Dianne Hackborn
1b4447f728 Fix issue #22564918: Request is inactive
Add Request.isActive() API.  Also improve documentation to tell
people what things cause it to become inactive.  And fix a race
where we were modifying the active list from outside the main
thread without locking it.

Change-Id: I9248e014126cb121612edbe595108ace753456e2
2015-07-20 14:49:58 -07:00
Dianne Hackborn
78ead58df0 Merge "Fix issue #22531747: Assist info should declare if user has disabled..." into mnc-dev 2015-07-20 19:50:50 +00:00
Dianne Hackborn
17f693520d Fix issue #22531747: Assist info should declare if user has disabled...
...context and/or screenshot

Added new API to find out what contextual data has been globally disabled.

Also updated various documentation to make it clear what kind of contextual
data you will get (and when it will be null).

Also added a new Activity.showAssist() API because...  well, I was already
in there, it was easy to do, it is safe, and maybe people will build cool
things with it.

Change-Id: Ia553d6bcdd098dc0fce4b9237fbfaca9652fc74b
2015-07-20 12:49:10 -07:00
Adam Powell
666d82a6d5 Update ChooserTarget constructor to take ComponentName, Bundle
Simplify ChooserTarget handling by requiring a target component and an
extras bundle instead of a full PendingIntent/IntentSender. This
simplifies the handling of URI grants from sending apps.

Prune ChooserTargets that point at ComponentNames that don't share a
package with the original matching Activity target or that aren't
exported so that we don't show the user something they can't launch.

Bug 22516282

Change-Id: I3439c0910b4fa4f95c7a881b529942c96ffc953e
2015-07-16 16:29:59 -07:00
Dianne Hackborn
f6586cbde7 Merge "Implement issue #22403908: Enable assistant to refuse context sharing" into mnc-dev 2015-07-15 23:31:25 +00:00
Dianne Hackborn
1de1186d28 Implement issue #22403908: Enable assistant to refuse context sharing
New APIs allow the voice interaction service to set/retrieve a filter
for which of the show flags are allowed.

Change-Id: I588cbe55afee0548ad3afa22d3a7d3bc43cb54a6
2015-07-15 14:20:51 -07:00
Dianne Hackborn
d0a159025a Fix issue #22124996: VI: Command Request not Active
This stupid thing wasn't even completely implemented
in HandlerCaller!  D'oh!

Change-Id: I0dac42c208fa0f08a6e20a6cb17b072f51efcaa7
2015-07-15 11:18:09 -07:00