Commit Graph

229 Commits

Author SHA1 Message Date
Barnaby James
d3fdb8bed8 Add VoiceInteraction request type for successful actions.
Add CompleteVoiceRequest to VoiceInteractor to allow apps to indicate when a voice interaction was successfully completed.

Change-Id: I1481cfe96e9e2495d88a7a4fb62263bdd1e03c54
2014-07-11 10:34:50 -07:00
Sandeep
d701820031 Always on hotword changes
Add model management API skeleton to VoiceInteractionManagerService
Add an "interactor" for all always-on APIs

- The VoiceInteractionService will get an interactor for the given
  keyphrase and locale.
- It can then check the availability and call methods to start and
  stop recognition on this interactor.

- Add a common class to deal with SoundTrigger APIs

- Cleanup the keyphrase representation:
  We now have separate representations for the keyphrase metadata and
  a keyphrase being used for recognition.
  This'll also help us to handle custom keyphrases in the
  future easily.
  This also ensures that for use within the framework,
  we rely on the ID of the KeyphraseInfo rather than comparing the
  text everytime.

Add a callback for the AlwaysOnHotwordDetector

This callback should be passed in by the VoiceInteractionService and is used to notify it
of recognition events.

Change-Id: I26252298773024f53a10cdd2af4404a4e6d74aae
2014-07-10 18:32:37 -07:00
Christoph Studer
1d599da842 NotificationListenerService API: Avoid unnecessary allocations
Instead of producing Ranking objects, RankingMap just populates
them now, allowing developers to re-use objects and avoid
unnecessary allocations.

Also rename isInterceptedByDnd() to meetsInterruptionFilter(),
since DND is not a concept anymore.

Bug: 15415840
Bug: 16099064
Change-Id: If9861cbdf14593e641a4d4ffd1b967647eb8e2b8
2014-07-10 21:37:56 +00:00
Yohei Yukawa
fccd37fb7e Spans should be preserved in TextInfo whenever possible
This is a follow up CL for Ib58ece68dee4c6187d469049fca8c3.

Now SpellCheckerService is expected to store span information
in TextInfo whenever possible so that spell checker service
can use it later.

BUG: 15869548
Change-Id: I481a2efe359de6162ebe095f60506aba3db3d762
2014-07-10 03:07:01 +00:00
Andres Morales
68d4acd205 Service for reading and writing blocks to PST partition
Permits apps with permission
android.permission.ACCESS_PERSISTENT_PARTITION to obtain
a read and write data blocks to the PST partition.

Only one block ever exists at one time in PST. When
a client writes another block, the previous one is
overwritten.

This permits storing a block of data that will live
across factory resets.

Change-Id: I8f23df3531f3c0512118eb4b7530eff8a8e81c83
2014-07-09 16:27:17 -07:00
John Spurlock
ae641c9ccd Implement new volume UI design.
- Add segmented zen-mode picker to the rocker UI.
- Add a new "no interruptions" value to the zen setting.
- Implement expandable condition subpanel on the rocker UI.
- Remove the old circle&slash icons.
- Suppress alarm sounds if in "no interruptions" mode.
- Add warning re: alarms to the condition UI.
- Allow rocker UI to display over the keyguard.
- Remove Notifications QS tile.
- Realign volume rocker to the top of the screen.
- Add support for new "days" sleepMode.
- New icon policy rules for "volume" slot.
- New important icon (star).

Associated Settings change:
  I6ed56791784968adfbd684f490dbbebed285a2dd

Bug:15831713
Change-Id: I35afe38646f04d2ba0dbac11c2c6356120a33694
2014-07-07 18:48:25 -04:00
Adrian Roos
fa10423fa0 Add stable insets for stable system windows
Adds a new kind of inset that only accounts for stable system
windows like the system or navigation bar.

Bug: 15457292
Change-Id: I681b711f6f40a94c25b7acd3a44eb3539486afab
2014-07-02 12:34:05 +00:00
John Spurlock
6612727c18 Doze: allow devices to opt-out of sigmotion trigger.
For devices with unreliable significant motion sensors, allow
the tease signal to be disabled via device config.

Also add doze state to dream service dumpsys.

Bug:15863249
Change-Id: I23eeec09c69cc3bd43b187e49555391ac0a99d9f
2014-06-28 11:31:44 -04:00
John Spurlock
eb8d1be6ac Add a BIND_DREAM_SERVICE signature-level permission.
Starting in api 21, will be required to bind to a
declared dream or doze service.

Also added to aapt dump badging output.

Bug:15862654
Change-Id: Ifa0a594eeecf21e6146176c7810a847e1d08fe3b
2014-06-27 18:33:42 -04:00
John Spurlock
bf37099250 Create a basic doze dream in SystemUI.
The doze dream is not configured by default.

When configured, the doze dream does not show anything by default.
It teases a dark version of the keyguard (showing only the time
and notifications) when a notification arrives or significant motion
is detected.

Bug:15863249
Change-Id: Icfceb054d35d6fd4d9178eda7480e2464873ca4b
2014-06-25 13:33:09 -04:00
Jim Miller
06e658f324 Hide IFingerprintService and IFingerprintServiceReceiver
The @hide was being ignored because they were being used by the
constructor.  Fixed by making the FingerprintManager constructor
hidden.

Change-Id: I3cd409df5055579f5004b08d00d5d951b8e5afd3
2014-06-17 18:38:14 -07:00
Jim Miller
a7596147b4 First pass at FingerprintService integration with HAL.
Move FingerprintService to framework services directory
Fix merge conflicts.

Tested: scanning, enrolling, removing.

Change-Id: I58b2b902cb671dc82cdaa54a195ba5f1a154622c
2014-06-17 14:03:37 -07:00
Jay Civelli
05dc89bf3a Merge "Make sure TrustAgent applies trust if granted before it is bound." 2014-06-16 15:39:47 +00:00
Jay Civelli
4f22777efb Make sure TrustAgent applies trust if granted before it is bound.
Change-Id: Ibe704d162930e4bb6135fabccb15263935ced009
2014-06-12 11:03:33 -07:00
Dan Sandler
069438d3fe am 54c4c19b: Merge "NotificationListenerService: API updates" into lmp-preview-dev
* commit '54c4c19bc95e839cfce3d10f0e842ed5588391eb':
  NotificationListenerService: API updates
2014-06-12 00:04:01 +00:00
Sandeep Siddhartha
f7a13df899 Add SoundTriggerManager to handle calls to SoundTrigger
- We are abstracting out the nitty-gritty details of the code that talks
  to the SoundTrigger APIs as the
  VoiceInteractionService is mostly interested in the "voice" related
  aspects of the sound trigger APIs

Change-Id: I4a450033040280f2e67d06785d2b05a0e5cdc192
2014-06-11 15:41:23 -07:00
Sandeep Siddhartha
22968950b8 Activity for enrollment
- Make the enrollment attrs public
- Add a dummy activity for enrollment

- Manually tested that the meta-data is correctly read by the
  VoiceInteractionService when the enrollment application is under
  /system/priv-app

Change-Id: I36676ed8ffc919109031c26bac047d0c51a77e13
2014-06-11 15:34:39 -07:00
Sandeep Siddhartha
e912ac012e Add capability APIs to VoiceInteractionService
The only API we currently need is one that tells us whether the system
is capable of running hotword detection for a given keyphrase+locale on
the hardware.

Also adds support in the KeyphraseEnrollmentInfo to provide an intent
for enrollment.

Change-Id: Iec102a4a94e7b161087b8d19785d761346e927c2
2014-06-11 15:34:26 -07:00
Sandeep Siddhartha
e570678759 Initial support for reading the enrollment metadata
- Defines schema for enrollment apps to publish metadata for the search
  keyphrase. This metadata consists of an ID, a user visible keyphrase,
  and the target package to handle the keyphrase, when it triggers.
- Reads the metadata and populates the KeyphraseInfo object for access via
  the VoiceInteractionService
- Adds permission and intent action for the enrollment app.
  The enrollment app needs to be a system app protected with the
  MANAGE_VOICE_KEYPHRASES permission and the activity performing the
  enrollment needs to handle the ACTION_MANAGE_VOICE_KEYPHRASES
- The keyphrase info currently stores an ID - that's for internal
  bookkeeping only, a keyphrase text - that's used by the public APIs,
  and a list of supported locales, which isn't exposed but is used while
  indicating if hardware hotword is available for a particular keyphrase
  in a language or not.

Change-Id: Ibe6c52a5a3eecfd74c4a8382713a35eb88d38df9
2014-06-11 15:33:58 -07:00
Christoph Studer
d0694b6735 NotificationListenerService: API updates
Introduce RankingMap holding single notification Rankings
indexed by SBN keys.

Also, pass RankingMap with notification event callbacks so
subclasses don't have to call getCurrentRanking() unnecessarily.

Bug: 15415840
Change-Id: Id41e174f00c06c86359c03646abc3db78028b324
2014-06-11 18:27:18 +02:00
Jeff Brown
5c507c1371 Rename PrivateApi annotation to SystemApi. (DO NOT MERGE)
Change-Id: I97b473884f81ad375d0733e4766afe091dfdd854
2014-06-09 14:28:11 -07:00
Jeff Brown
d5a5b5a547 Rename PrivateApi annotation to SystemApi.
Change-Id: I97b473884f81ad375d0733e4766afe091dfdd854
2014-06-06 15:16:27 -07:00
Jim Miller
2c1de5b052 Hide the fingerprint API for now. DO NOT MERGE
Change-Id: I78aadf8d03be74eb862c5fe120fa544a2483553c
2014-06-05 19:37:42 -07:00
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