Commit Graph

206 Commits

Author SHA1 Message Date
Adrian Roos
b803ad3c2c Hide TrustAgentService in lmp-preview - DO NOT MERGE
Bug: 15287044
Change-Id: Iba0d53b87bcb4bddccec89cf943ed65491aa9d76
2014-06-04 15:04:19 +00:00
Adrian Roos
1e9021aef8 Merge "Ensure trust agents are only provided by platform packages" into lmp-preview-dev 2014-06-04 13:18:40 +00:00
John Spurlock
856edebad7 Zen: Stateful condition panel.
When DND is on, expanded panel shows the current time
condition, or time remaining.  The last time bucket
selected is remembered as the default option for the
next time.

Move the server-side countdown helper into a proper
condition provider, but register it in-process as a
system provider.

Move common countdown condition parsing into ZenModeConfig
to reuse from system components.

Keep the manual exit condition around in zen mode config
and add plumbing for getting / listening to the
controller.

Keep the last QS detail panel around instead of
recreating it every time.

Fix the time condition's plus and minus button
enabling logic, and enhance the click handler to
deal properly with the next or previous bucket.

Bug:15344758
Change-Id: Ie7018a1c20e20f6d7e5f9e7874188374e6f8e2ab
2014-06-03 19:05:55 -04:00
Adrian Roos
18ea893a23 Ensure trust agents are only provided by platform packages
Prevents the TrustManagerService from binding to any non-platform
trust agents and updates the SampleTrustAgent to use the new
permission.

Bug: 15287044
Change-Id: I38c3deebd5ad359075e68f52d19417bab5ab43db
2014-06-03 15:49:19 +02:00
Dianne Hackborn
725010a83f Merge "Clean up voice API." into lmp-preview-dev 2014-05-30 23:54:11 +00:00
Dianne Hackborn
a2c076d540 Clean up voice API.
Add various java docs.

Switch to CharSequence where appropriate.

Add new request for canceling voice interaction.

Also update test app to follow API changes and be more better.

Change-Id: If27eeba53cf6444660adb7d37ea2ce0557c6c91f
2014-05-30 16:42:57 -07:00
Chris Wren
99f963ea04 Add people signals to Zen mode.
Depends-On: I51fcf689ddbee7715e3387b865f18a715887c943
Change-Id: I7c91dec1afeb54505426c4da59ec4d072a60c240
2014-05-30 16:16:23 -04:00
Dianne Hackborn
20d9474904 More work on voice interaction visuals.
There is now a special theme for voice interaction activities
to use, so they can be a panel that is better intergrated with
the rest of the voice interaction experience.  This is still
not completely working, I have some hacks in the demo app to
get it right; I'll fix that in a future change.

Also improve VoiceInteractor to be retained across activity
instances, for things like rotation.

And bump up the number of concurrent broadcasts that are allowed
on non-svelte devices, since they can handle more and this makes
the boot experience better when dispatching BOOT_COMPLETED.

Change-Id: Ie86b5fd09b928da20d645ec2200577dee3e6889d
2014-05-30 10:06:16 -07:00
Dianne Hackborn
e30e02f5d9 Add system layer for voice interaction services.
New window layer that voice interaction service windows
go in to.  Includes a new voice-specific content rectangle
that voice activities are placed in to.

Add specific animations for this layer, sliding down from
the top (though this can be customized by the voice interaction
service).

Also add the concept of activities running for voice interaction
services for purposes of adjusting the animation used for them,
again sliding from the top, but not (yet?) customizable by the
voice interaction service.

Change-Id: Ic9e0e8c843c2e2972d6abb4087dce0019326155d
2014-05-28 17:16:51 -07:00
Dianne Hackborn
fb052926b8 Revert "Hide voice interaction APIs."
This reverts commit a677a9b9367bcf8c81c36dc59b53554cb347b438.
2014-05-21 14:16:46 -07:00
Christoph Studer
cee44ba418 Simplify NotificationListenerService API
Use ParceledListSlice to send the list of active notifications
from NoMan to NotificationListeners.

This allows us to simplify the API to what it was before
introducing the "String[] key" workaround for dealing with large
numbers of StatusBarNotifications.

While we're at it, rename Ranking.getIndexOfKey to something that
makes more sense.

Bug: 15126927
Change-Id: I02c2087978c6c4ec1198be496c6250a66143ecb3
2014-05-21 22:03:45 +02:00
Jim Miller
430259a1d8 Merge "Update FingerprintManager API after discussions." 2014-05-20 23:18:48 +00:00
Christoph Studer
05ad48206a Add ZEN and speedbump to NotificationListenerService
Change-Id: I39fae5d77863e0d10cf236a096cc589167d146d3
2014-05-20 17:03:22 +02:00
Jim Miller
d08c2aceb2 Update FingerprintManager API after discussions.
Change-Id: I4d0b5ffc4d572f50961354ac37844c3cca7e5217
2014-05-19 19:18:50 +00:00
Adrian Roos
7643422fb6 Merge "Enforce that trust agents declare the BIND_TRUST_AGENT permission" 2014-05-17 01:31:34 +00:00
Adrian Roos
cb9fbc3a30 Enforce that trust agents declare the BIND_TRUST_AGENT permission
Change-Id: Iba10b6fb140362c368fb12b7d3c6be550897de40
2014-05-17 03:19:56 +02:00
Dianne Hackborn
dcff99598f Hide voice interaction APIs.
Change-Id: I961b6399a6edca239caaba9bbd1dd5e03bc612bd
2014-05-16 14:32:35 -07:00
Chris Wren
1941fc7186 Extend NotificationListenerService to support system use cases.
Bug: 14846846
Change-Id: Ic308b2f78c86393304d446c57fd677294e01717c
2014-05-16 11:23:50 -04:00
Adrian Roos
7e03dfcb79 Apply revised TrustAgent API
Bug: 14997466
Change-Id: I81042e058a20f28603a11471882f3dcfc4f8b13c
2014-05-16 16:06:28 +02:00
Chris Wren
f953664dc1 notification ranking infrastructure
Added an ordered list of notifications (n.b. a complete ordering).
Added a mechanism for ranking to be updated asynchronously
Added onNotificationRankingUpdate to NotificationListeners
Added an opaque order update object and a convenience comparator that
  uses it to sort notifications for listeners

Repurpose scorers to be ranking preprocessors.  The preprocessors will
perform heavy-weight validation of the notification object and memoize
the results to improve efficiency of the ranking comparator.

Current internal comparator implements status quo ordering, except
that notes with a valid contact sort to the top of their priority
bucket.

Change-Id: I7244c65944a9657df41fb313b3cb5a52e149709d
2014-05-09 15:48:53 -04:00
Jim Miller
08fa40c5cb First pass at adding FingerprintManagerService
This adds a new service for monitoring and enrolling fingerprints
to the platform.

Fixed documentation links.

Change-Id: I66013be5e09be9c5f9746c46aacf32d3e26c3b73
2014-05-07 02:27:21 +00:00
Adam Powell
5f97930fc5 am c41fa708: am a0516e7a: Merge "onWindowDismissed API cleanup" into klp-modular-dev
* commit 'c41fa708271e204a7983aba291389ea1554227b2':
  onWindowDismissed API cleanup
2014-05-06 20:24:23 +00:00
Adam Powell
117b695222 onWindowDismissed API cleanup
Move the window swipe to dismiss plumbing off of Window.Callback into
its own internal interface implemented by Activity and Dialog. Make it
internal API instead of public. Apps should control this via the
window feature setting.

Change-Id: I64cd237fa7eab08719b2c34e31dac7d34f02563a
2014-05-05 18:20:47 -07:00
Christoph Studer
983ce97a5d Merge changes Iffd15e95,Id2db95ec
* changes:
  Log notification clicks
  Add userId to StatusBarNotification key
2014-05-05 19:04:57 +00:00
Dianne Hackborn
c03c9167c2 Further work on voice interaction services.
This makes VoiceInteractionSession a more first-class
concept.  Now the flow is that a VoiceInteractionService
calls startSession() when it wants to begin a session.
This will result in a new VoiceInteractionSession via the
VoiceInteractionSessionService containing it, and the
session at that point an decide what to do.  It can now
show UI, and it is what has access to the startVoiceActivity
API.

Change-Id: Ie2b85b3020ef1206d3f44b335b128d064e8f9935
2014-05-05 11:18:08 -07:00
John Spurlock
ef5693bb73 Add additional display information to conditions.
Change-Id: Ic9a7cb29b573af84185371099e7ae220906cc89c
2014-05-02 00:07:35 -04:00
John Spurlock
3b98b3f1f8 Implement long-term condition subscriptions.
Bind long-term conditions (like "in a meeting") to enter/exit
zen mode automatically.

Persist automatic condition subscriptions to maintain them across
reboots.

Normalize condition state binding: true => enter zen, false => exit.

Change-Id: Icba2b8b25c0a352ae8215f4c0a324e4f966c0165
2014-05-01 15:03:17 -04:00
Christoph Studer
ff8dbe52eb Add userId to StatusBarNotification key
Change-Id: Id2db95ec128b364c8a7df1272b2ee3144e3da3de
2014-04-30 17:59:00 +02:00
John Spurlock
e86de4c067 Zen mode tweaks.
- Fix regression with alarms.
 - Run all condition provider callbacks on the main thread.
 - Exit zen mode if the current condition is disabled / uninstalled.

Bug:14402762
Change-Id: I0746670c1910047a9dc9b7e29aa1a6c3899fd9fe
2014-04-29 21:48:26 -04:00
Dianne Hackborn
18f0d357f9 Rework some of the voice interaction APIs.
On the app side, requests are now composed by subclassing
from various types of Request objects.

On the service side, starting a voice interaction session
involves starting another service that will then manage the
session.  This leads the service design much more to what
we want, where the long-running main service is very tiny
and all the heavy-weight transient session work is elsewhere
in another process.

Change-Id: I46c074c6fe27b6c1cf2583c6d216aed1de2f1143
2014-04-28 10:54:15 -07:00
Chris Wren
01c70711d5 Merge "Remove opPkg from the notification key." 2014-04-28 15:03:17 +00:00
Chris Wren
e6345b5194 Remove opPkg from the notification key.
Change-Id: Iadff2dbeb3c9ec69837d3b6e763f24d687ee368b
2014-04-28 10:53:05 -04:00
John Spurlock
1c923a386e Force condition provider unsubscribe when exiting zen mode.
Bug:13743109
Change-Id: I3c205067498a86e2862a0c545bc38e41682693d5
2014-04-27 17:41:51 -04:00
John Spurlock
e77bb36d48 Wire up condition providers to zen mode exit triggers.
Bug:13743109
Change-Id: I4e45d7050d1f9aaa379f46379a3203e61e216a3d
2014-04-27 11:36:32 -04:00
John Spurlock
b22aabbbd2 Merge "Introduce condition provider services." 2014-04-25 18:19:06 +00:00
John Spurlock
7340fc8665 Introduce condition provider services.
Add the condition provider interface, base class, and associated
system metadata.

Pull out common service management code into a reusable helper,
used by notification listeners and condition providers. The
helper, ManagedServices, is now completely self-contained - it
has no dependencies on NoMan or NoMan abstractions.

Bug:13743109
Change-Id: I6856d40f0a2ead78ac9b5707568559a57e7eb009
2014-04-25 12:35:31 -04:00
Dianne Hackborn
91097de49b Initial implementation of new voice interaction API.
This gives a basic working implementation of a persist
running service that can start a voice interaction when
it wants, with the target activity(s) able to go through
the protocol to interact with it.  It may even work when
the screen is off by putting the activity manager in the
correct state to act like the screen is on.

Includes a sample app that is a voice interation service
and also has an activity it can launch.

Now that I have this initial implementation, I think I
want to rework some aspects of the API.

Change-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9
2014-04-24 17:48:58 -07:00
John Spurlock
056c519df1 Do not disturb: persist user config.
Load and store user configuration for do not disturb.  Separate
out service-related aspects into new helper.  Make config availble
over NoMan for settings.

Implement phone + message based filtering (package whitelist for now).

Implement automatic enter/exit zen mode overnight scheduler.

Bug:14211946
Change-Id: Ib28aab0e4c5c9a5fd0b950b2884b1ab618fdfeca
2014-04-22 11:01:24 -04:00
Christoph Studer
8fd7f1ed7c Rename basePkg to opPkg
...and actually populate the field correctly.

Change-Id: I3ce52efedb919d6af75dc9c3532e47764c467cac
2014-04-16 18:51:25 +02:00
Jeff Brown
4e5c089ef3 resolved conflicts for merge of 337e764d to master
Change-Id: I8168dbf42b68c2f7b5ccb300e0080dddc627af26
2014-04-11 01:33:20 -07:00
Jeff Brown
037c33eae7 Plumb display power state through display manager.
Declare a new method, Display.getState() to retrieve the actual
power state of a display.

Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.

Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.

Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.

Eliminated the bright here and woke here policy flags since they
were unused.  Simplified the input dispatch policy somewhat.

Ensure that screen wake locks are respected up until the point
when dozing really begins.

Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.

Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
2014-04-10 20:46:14 -07:00
Kenny Guy
a263e4e438 Pipe notifications from related users to listeners.
For Listeners built against L or greater
Send notifications from related users to listeners.
Return notifications from related users getAllActiveNotifications
Cancel notifications from related users in cancelAllNotifications
Deprecate StatusBarNotification.getUserId() and expose getUser()
as APIs should use UserHandles.
Deprecate cancelNotification that takes package, id and tag
in favour of one that takes key.

Fix bug that notifications from related users didn't
trigger sounds.

Change-Id: I1b1c20c9f305b8f3c4047bc5720d8e99cdedfe70
2014-04-08 18:38:38 +01:00
Jeff Brown
10a5ec230f am c2cebee6: am 8db6d9af: Merge "Clean up certain state transitions in DreamService." into klp-modular-dev
* commit 'c2cebee67a2dafe850e39b2ae3bc8b2f44426901':
  Clean up certain state transitions in DreamService.
2014-04-03 08:31:33 +00:00
Jeff Brown
344812d2f3 Clean up certain state transitions in DreamService.
Instead of posting onDreamingStarted() to a handler from attach(), do
the work immediately.  This ensures that the dream is actually in the
expected state when the callback runs.  Previously it was possible
for the callback to run after detach() occurred which could cause
exceptions and unexpected behavior.  As it happens, there's no need
to post this callback since attach() already runs on the UI thread.

Handle certain races involving the window token lifecycle a little
better.  When the dream manager shuts down a dream, it removes the
window token.  This can happen before the dream completes its attach()
phase in which case a BadTokenException is thrown.  We now handle this
exception and abort the dream in anticipation of receiving a request
to finish it immediately.

Add a safeguard to getDozeHardware() to handle the case where it
might inadvertently be called at the wrong point in the lifecycle.

Bug: 13475612
Bug: 13760290
Change-Id: I9bc9c154370d08d7727b568d398c460a38592099
2014-04-02 20:17:32 -07:00
Adrian Roos
ff2144ccb4 Define initial trust agent API
Adds the minimal API needed to define a useful trust agent.

Bug: 13723878
Change-Id: Ib24440bab7b16d0b656bde8b059e7d42cab2c7dc
2014-03-31 20:40:49 +02:00
John Spurlock
5579ec33eb DO NOT MERGE Enhance the NotificationListenerService api.
Add to NotificationListenerService:
 - getActiveNotificationKeys() : String[]
 - getActiveNotifications(String[] keys) : StatusBarNotification[]
 - cancelNotifications(String[] keys) : void
 - onListenerConnected(String[] keys) : void

Add to StatusBarNotification:
 - getKey() : String

Bug:13562828
Change-Id: I9da222cb4af22864bc0ecdecc3f121bced0723d6
2014-03-28 10:19:00 -04:00
John Spurlock
a4294297d4 Enhance the NotificationListenerService api.
Add to NotificationListenerService:
 - getActiveNotificationKeys() : String[]
 - getActiveNotifications(String[] keys) : StatusBarNotification[]
 - cancelNotifications(String[] keys) : void
 - onListenerConnected(String[] keys) : void

Add to StatusBarNotification:
 - getKey() : String

Bug:13562828
Change-Id: Idd9605dad8f942d68b4b32ab9625faf6c8642db9
2014-03-28 08:47:01 -04:00
Will Haldean Brown
568628dc2c Manually merge commit '2faf28cf' into master
Original commit message:

  Add swipe-to-dismiss support to PhoneWindow.

  This adds a new window feature -- FEATURE_SWIPE_TO_DISMISS -- and a
  theme attribute to activate that feature. When the feature is
  activated, a SwipeDismissLayout is inflated as the DecorView layout.
  SwipeDismissLayout intercepts touch events and steals ones that are
  large swipes to the right if its children don't. PhoneWindow
  registers handlers that listen for these swipe events, translate the
  window when necessary, and finish the activity at the end of the
  gesture.

Conflicts:
	core/java/android/view/Window.java
	core/res/res/values/attrs.xml

Change-Id: I943290b436864ca4a1bd401b88d696e08c921cdd
2014-03-04 15:25:43 -08:00
Will Haldean Brown
ca6234e084 Add swipe-to-dismiss support to PhoneWindow.
This adds a new window feature -- FEATURE_SWIPE_TO_DISMISS -- and a
theme attribute to activate that feature. When the feature is
activated, a SwipeDismissLayout is inflated as the DecorView layout.
SwipeDismissLayout intercepts touch events and steals ones that are
large swipes to the right if its children don't. PhoneWindow registers
handlers that listen for these swipe events, translate the window when
necessary, and finish the activity at the end of the gesture.

Change-Id: I512e758f3c3ffd3b353dba3b911c0e80a88d6f5f
2014-03-04 09:26:15 -08:00
Jeff Brown
10102e4c0e resolved conflicts for merge of baaa080b to master
Change-Id: I3ee12321e298f7a2ea577a99f30c49f3bb497fae
2014-02-20 18:05:03 -08:00