Commit Graph

266 Commits

Author SHA1 Message Date
Sandeep Siddhartha
3962aa5d40 Merge "Use @IntDef for manage actions" into lmp-dev 2014-08-04 23:48:34 +00:00
Sandeep Siddhartha
0db30899f0 Use @IntDef for manage actions
Change-Id: I12473fb82bf865af36aaf681a1b12a19e9f218fc
2014-08-05 13:07:06 -07:00
Svetoslav
976e8bd201 Allow adding widgets from user profiles.
The goal of this change is to enable support for appwidget from
user profiles to the user main profile. A user profile is a user
which is associated as a child of the main user profile. For example,
a user may have a personal (parent) and corporate (child) profile.
The device policy should be able to control whether adding a widget
from a child profile and given packages is allowed. This change
assumes that all packages from managed profiles are white listed.
Another change will add the device policy changes.

Change-Id: I267260b55d74c48b112a29979a9f59eef7a8194e
2014-08-05 20:57:20 +00:00
Eric Laurent
d3b8223377 SoundTrigger API update.
Add sound model update callback.
Add native service state change callback.
Add vendor UUID in sound model description.
Add coarse confidence level in recognition event.
Add capture format in recognition event.

Bug: 12378680.

Change-Id: Id63437819ec7b9a4a69e1ff6185b747e20cad95e
2014-08-04 16:35:27 -07:00
Christoph Studer
ce2e23ff69 NoMan: Fix speedbump when no low-prio notifs
Bug: 16705179
Change-Id: I32329710c27052c35b64ba91759200341ed0b127
2014-08-04 12:54:21 +02:00
Sandeep Siddhartha
5e33fb057c Stop recognition when shutting down VIS
Bug: 16629417
Change-Id: I9c98d7e6d487d3eaff604df401c320f8554589f9
2014-08-01 18:18:08 -07:00
Sandeep Siddhartha
2c0273e50a Add a flag for multiple triggers with same recognition session
Also annotate the flags with @IntDef to make things clearer and safer

Add more debug logging

Revert to start/stop being synchronous since telephony and microphone will
need to be handled internally.

Bug: 16731586
Bug: 16514535
Bug: 16549061
Change-Id: I83695d52e9547269c95d443e4d921c9238b7401e
2014-08-01 17:46:27 -07:00
Sandeep Siddhartha
011dcbfa23 Cleanup some documentation with @see references to constants
Change-Id: I1c9c4f25525732ecfecdf1faa91e0f24805ef295
2014-08-01 09:34:26 -07:00
Sandeep Siddhartha
668327d028 Tighten the checks around a detector being invalidated
Don't call back for a detector being marked invalid because
that happens when someone else obtains a detector or VIS shuts down,
in either case we don't want a loop where two entities keep creating new detectors
and being invalidated.

Don't call back on an invalid detector for availability change/detected/started and stopped
only propagate errors.

This helps us with cases where a callback for the previous VIS may get called and then crash because it
tries to make calls without being the current VIS.

In the new scheme of things, if the VIS changes, or the current VIS obtains a new AlwaysOnHotwordDetector,
the previous one is shutdown and internally marked as invalid and all calls to it fail with an IllegalStateException.

Bug: 16629417
Change-Id: I74417bf76ba80916ebc21b042c18b3467857733e
2014-07-31 15:48:26 -07:00
Christoph Studer
4579fd2d0c Merge "Strip RemoteViews from Notifications, re-create them in SysUI" into lmp-dev 2014-07-24 15:35:58 +00:00
Christoph Studer
4600f9b607 Strip RemoteViews from Notifications, re-create them in SysUI
Bug: 16329721
Change-Id: Ic0bea763ffaec4c5644ca78705007211ac6b4b88
2014-07-30 20:17:12 +02:00
Sandeep Siddhartha
1ed12ddb8c Make startRecognition async
- This is needed for telephony and audio integration which should happen via async callbacks
that'll end up starting/stopping recognition.

e.g. if a startRecognition happens when in a phone call - the onDetectionStarted will get called once the phone
call ends.

For now the transient stoppages due to internal reasons will not be propagated back to the client.

Bug: 16514535
Bug: 16515468
Change-Id: I1b2b8edd28f5c5e67c453f66c23e1a67a626114e
2014-07-30 11:43:41 -07:00
Christoph Studer
dda48f1221 NoListener: Optimize RankingMap
Cache ranks and interception bits instead of re-calculating
them every time they're accessed.

Change-Id: I2c6bbeaa01648d03ff8b3690b7f21cef4e2b9d97
2014-07-30 13:48:04 +00:00
Adrian Roos
8f21158fe6 Trust: Make setEnabledFeatures asynchronous
Unsynchronizes the call into app code from setEnabledFeatures,
replacing it with a callback mechanism. Also makes this actually
work by fixing the check in TrustManagerService to take into account
whitelisting.

Change-Id: I0831752cd2d3158eda9c8404a5569498f11ac2ac
2014-07-30 12:34:18 +00:00
Adrian Roos
7861c663fd Add setManagingTrust and expose it on lockscreen
Adds a facility for trust agents to indicate if they
are ready to manage trust. Also adds an indication to
the lock icon on the lockscreen to show whether trust is
being managed.

Bug: 15518469
Bug: 16123013

Change-Id: Ie17f588aebeafe66c81dea4a69c733b0d2c72fd4
2014-07-30 12:33:33 +00:00
Sandeep Siddhartha
6817337118 Read the keyphrase ID from the recognition event
Bug: 16516658
Change-Id: Ibeee81c9543aa1091bb075066cfc2269107f13c0
2014-07-29 11:24:51 -07:00
Adrian Roos
a06d5ca1d9 Make TrustAgentService a SystemApi
Bug: 16401527
Change-Id: I6d19281600bacac7c8a29afc07c39ca1d461d23c
2014-07-29 12:54:49 +02:00
Jim Miller
604e7558ef Add new DevicePolicyManager API to allow fine-grained TrustAgent management
This adds a new feature that allows a device admin to specify a
whitelist of features that are allowed for the given admin.

Change-Id: I83f853318efbcf72308532d0a997374f73fa9c10
2014-07-28 21:32:01 -07:00
Sandeep Siddhartha
39c12fab49 Use blob (shared memory) for large data in sound model/recognition event/config
Also add a missing null check in writeBlob

Bug: 16516353
Change-Id: Ie702f8daae541cab7c2cee6e13d49e7fc84c84e1
2014-07-28 11:10:32 -07:00
Jeff Brown
0f208eb707 Remove DozeHardware since it will not be used.
Bug: 16516536
Change-Id: I14597d3c9470c94e3bc5b8cff500d2fe6b2fd977
2014-07-26 15:41:21 -07:00
Sandeep Siddhartha
452a642430 Fix various bugs with model management
- Tie the sound model and keyphrase for simplicity
  We won't support multiple keyphrases in a single model out of the box.
  The db schema will need to be changed by the OEM wishing to add multiple hotwords.
  This is because we currently have no way to test the flow and make sure that things work well with multiple keyphrases
  and also the framework only reads the metadata for one keyphrase.

- Make the delete/update operations atomic

- Make the flow of data from Enrollment -> VIMS; the large sound model doesn't cross the process boundary any other time.
  This is achieved by passing they key around, instead of the model themselves.

- Add a specific delete operation in DatabaseHelper rather than relying on emptying the keyphrases to delete.

Bug: 16555803
Bug: 16516353
Change-Id: I1e0cce137517502a669e431ca7e9f9f755598328
2014-07-25 17:11:34 -07:00
Chris Wren
1031c97485 Honor the sort and group keys for notification ranking.
Sort notifications naturally, then move group childen to be next their proxy.
The group proxy is the summary, or if no summary exists, the lowest-ranked
member of the group is chosen as the proxy.

Notifications with a sortKey but no group and placed into a synthetic
group that consists of all notifications from that package and user in
the same priority bucket that also have sortKeys.

Expose a new API for listeners to get the group key for the notificaiton.

Bug: 15190903
Change-Id: I324ba0c394affdabb3588ca2ebafa7cf0acad2af
2014-07-23 09:45:25 -04:00
Chris Wren
cf7ed58308 Revert "Honor the sort and group keys for notification ranking."
This reverts commit df09d4c348f9f2aea10391b27d157d8b71a9e189.

Change-Id: Idbc9ed5c5c83cd0cad5a71872bcc203321a11e9e
2014-07-23 12:41:37 +00:00
Chris Wren
4a24fd3c7b Honor the sort and group keys for notification ranking.
Sort notifications naturally, then move group childen to be next their proxy.
The group proxy is the summary, or if no summary exists, the lowest-ranked
member of the group is chosen as the proxy.

Notifications with a sortKey but no group and placed into a synthetic
group that consists of all notifications from that package and user in
the same priority bucket that also have sortKeys.

Bug: 15190903
Change-Id: I377ed65b9592079446da4a4189f5ab49d28630ec
2014-07-23 10:36:57 +00:00
Sandeep Siddhartha
f63bc523ea Make hotword availability a callback
This helps us make the list sound models operation an async one, it also helps us
with the case where a detector is invalidated, so the client doesn't have to keep checking the
state.

Synchronize DatabaseHelper methods on its instance so that other VoiceInteractionManagerService
calls aren't blocked on db writes/reads.
It's still possible for the list operation to be blocked on update and vice-versa

Change-Id: Ib8ec4ac5056b62d443038560ce31d0641b4627b0
2014-07-22 17:11:52 -07:00
Sandeep Siddhartha
6daae96226 AlwaysOnHotwordDetector needs to reflect enrollment changes
Add a callback for when any sound model change happens. This helps the VIS
to re-check the availability and either enroll the user, or start/stop recognition.

Also shut down any active recognition when VIS dies, or a different hotword detector instance is obtained from VIS.

Change-Id: I03f94e78c6ee307afe822a84aebc7e74c64de7b4
2014-07-22 09:16:18 -07:00
John Spurlock
1fa865f396 New NotificationListenerService listener flags api.
Give activated listeners the ability to request changes to
listener-level or host-level state.

Currently this consists of the ability to suppress notification alerts
(alerts = the haptic / audio feedback of a notification).

Bug:15888672
Change-Id: I045e3b99d1f15e3f96ebaf17d3083a97e02ecb42
2014-07-22 07:24:22 -04:00
Jeff Brown
970d4132ea Allow dreams to control screen state and brightness.
Added setDozeScreenState() and setDozeScreenBrightness() methods to
DreamService.  The values specified here only take effect once
startDozing is called and can be changed while dozing.

This required some significant rework of the display power controller
but the result seems quite nice and better represents the policy
we want to apply.

Changed the test dream a little bit to make it flash the screen
every minute using the new functions.

Bug: 15903322
Change-Id: I83bcc34503f1b87727d2b2b3c0ef08507f9f0808
2014-07-22 01:18:26 +00:00
Sandeep Siddhartha
110f569b47 Fix synchronization issues in AlwaysOnHotwordDetector
- Remove unnecessary recognition status from AlwaysOnHotwordDetector

- Remove unnecessary recognition started callback from IRecognitionStatusCallback

- Fix a bug around the fact that we weren't picking up enrollment at runtime because
we were storing the availability at instantiation time.

- Handle 0-length arrays in SoundTrigger classes while parceling/unparceling

- Fix issue in SoundTrigger helper where we were not comparing binders for start/stop calls

- Unload the previous model when starting a new recognition

- Add more debug logging

Change-Id: Icc56d7f3dd1ffa49a8cfeea49080e3ab4d342c32
2014-07-20 16:53:09 -07:00
Sandeep Siddhartha
055897208d Move sound trigger calls to VoiceInteractionManagerService
- This ensures that any data being loaded on the DSP comes from the framework

Change-Id: Ie15f0994850ba8f298ca07c49fe0b89e066d9e2b
2014-07-20 11:22:55 -07:00
Jeff Brown
f6d466895b Allow dreams to wake up gently.
This change adds a new DreamService.wakeUp() method to allow a
dream to wake itself up gently and perform a transition before
finally finishing.  The power manager will ask a dream to wake
up gently in most cases but may force it to happen immediately
when necessary.

If the dream takes too long to finish itself then the dream
controller will douse it with water summarily after 5 seconds.

Change-Id: Ib0564c5650cd5a454e1acc5aa91fe46995eecfa7
2014-07-18 21:56:08 -07:00
Andres Morales
963295ea10 Permit settings to "wipe" the persistent partition
One of the requirements is that when the user does a
factory reset through settings, all data on the
persistent partition should be cleared.

This adds one last API method that allows settings
to wipe the partition.

Bug: 14288780
Change-Id: Ib87ee741d1e5195814516ae1d66eb7c4cf754dcf
2014-07-17 20:42:04 +00:00
Dianne Hackborn
fee756ff91 Implement issue #16330060: Inform ActivityManager about WebView...
...state changes.

Add a new API to tell the activity manager about a new dependency
one process has on another package.  Start using it already for
when apps is Context.createPackageContext() to load code from another
app.

Also do some work on getting the monitoring of proc/uid states
in shape so it can be used by unundled code, along with an
AppImportanceMonitor class for doing so.

Some small fixes and additions to VoiceInteractionService.

Improve handling of unaccounted/overcounted battery use so that
they aren't shown to the user unless they are significant.

Change-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c
2014-07-16 22:50:31 -07:00
Sandeep Siddhartha
e6cd2476aa Add recognition modes to the enrollment metadata
This will be used by the Voice interaction service to determine what type of recognition may be run
on the DSP. e.g. If the DSP supports voice trigger only for the given keyphrase,
the voice interaction service may want to perform user identification at its end.

Also support keyphrase metadata for all keyphrases and locales.
In case the enrollment app supports open-ended keyphrases, it can leave the keyphrase text
to be empty
similarly, if the enrollment app supports all locales, it can leave the supported locales
attribute to be empty,

Change-Id: I782a17a877fc79ed569fa7c3a81697641182590b
2014-07-16 22:03:03 -07:00
Sandeep Siddhartha
7ee0d45835 Merge "Hook in startRecogniton call" into lmp-dev 2014-07-16 02:25:05 +00:00
Sandeep Siddhartha
8ecaf5f5cf Hook in startRecogniton call
Add required info to the sound model database: users & recognition modes

Change-Id: I6e12cbc6342a2767c0e3d8328c0a3be899ac9952
2014-07-15 18:36:09 -07:00
John Spurlock
50806fc4ce Zen: handle exit conditions across reboots.
- Use the persisted exit condition (and a new
  persisted exit component) to immediately resubscribe
  to the manual exit condition (if present)
- Fire false immediately for old countdown conditions.
- Add a new zen lens to noman dump, and a bit more info.
- Refresh the current exit condition when reopening the panel.

Bug:15844990
Bug:16212455
Change-Id: I8bfaf1b2a6cf3d8818002a9db5c527ad3aa4c05c
2014-07-16 06:54:35 -04:00
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