• Home
  • History
  • Annotate
  • only in /frameworks/base/services/voiceinteraction/
History log of /frameworks/base/services/voiceinteraction/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d3178c4ed52358009d51518551325b5b0c84de67 11-Jun-2017 Chris Thornton <thorntonc@google.com> Prevent ConcurrentModificationException in updateAllRecognitions

When invoking updateAllRecognitions, if a callback binder was determined
to have died, an internal function would go and remove it from
mModelDataMap. However, updateAllRecognitions was iterating over this
map, so it would then explode. By first making a copy of the model datas
before iterating over all of them, this problem is avoided.

(As part of trying to figure out what was happening, also updated all
the method names that implicitly assumed they had a lock, and double
checked that everything with a Locked suffix is actually locked)

Bug: 62487479
Test: Use the sound trigger test app to load and start two models, force
kill the app (so the dangling binders hang around), then enable power
save (which triggers the call to updateAllRecognitions)

Change-Id: I87b9dfc1b2af5e294050b146737916ccaad882c1
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
fc3ec4c5e689e4d64f0c24d42a3b4b31ee4621c4 02-Jun-2017 Winson Chung <winsonc@google.com> Prevent showing voice session when it is already queued to be hidden.

- It is possible for the session to be requested to be hidden before it
gets the message to be shown and completes showing. This leads to an
inconsistency where the voice interaction service implementation will be
in a different state than the system for the session. Instead, we can
cancel any pending show messages, and also clean up the pending show
callback list immediately when the session is hidden.
- Also fixing up some error message codes when starting the assistant
activity.

Bug: 38379130
Test: android.server.cts.ActivityManagerAssistantStackTests
Test: CtsVoiceInteractionTestCases
Test: CtsAlarmClockTestCases
Change-Id: I0d0e9c024367a47bda82d6a29ca89e18b7d69527
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
7a3d9014535381934a705aa6454a83b7f26d3055 12-Apr-2017 Sudheer Shanka <sudheersai@google.com> Update VIMS internal state when a packge is modified.

When the package that contains the current voice interaction service component
is changed, internal state of VoiceInteractionManagerService needs to
modified to correctly reflect that.

Bug: 36649034
Test: manual
Change-Id: I7e21ac25785b035711affd87f1b04efa717b13c4
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
9260d568dac8ed9148bd8a6c1c67fb93f6b3f0ff 11-Apr-2017 Sudheer Shanka <sudheersai@google.com> Fix the issue of voice interactor getting reset after reboot.

Bug: 35308046
Test: manual
Change-Id: I71ca106f1186e3cebc7899eca30f7b7746fe1e6c
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
fe9a53bc45fd0124a876dc0a49680aaf86641d3e 31-Mar-2017 Jeff Sharkey <jsharkey@android.com> Consistent dump() permission checking.

This change introduces new methods on DumpUtils that can check if the
caller has DUMP and/or PACKAGE_USAGE_STATS access. It then moves all
existing dump() methods to use these checks so that we emit
consistent error messages.

Test: cts-tradefed run commandAndExit cts-dev -m CtsSecurityTestCases -t android.security.cts.ServicePermissionsTest
Bug: 32806790
Change-Id: Iaff6b9506818ee082b1e169c89ebe1001b3bfeca
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
2411a2c38e6c050f2175eac48b6aaefb94a84be8 22-Mar-2017 Chris Thornton <thorntonc@google.com> Clean up dead objects when detected in the SoundTriggerHelper

If an app has died while being connected to the sound trigger helper/the
binder goes away, we should stop and unload the model since there's no
way to get a handle on it again (without reloading the same UUID at some
point).

Test: Force stop the SoundTriggerTestApp while it has a model started,
trigger the sound model, then watch it get unloaded when the helper
notices that the binder is dead.

Change-Id: Iddfaaa03482d56e71f23e5982d4bd579f386b51d
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
455e90add22835d0744fc0f5c2feb5fcaf03b28f 10-Feb-2017 jackqdyulei <jackqdyulei@google.com> Add BatterySaverPolicy for power save mode

The BatterySaverPolicy is designed to consolidate all battery saver
knobs into a central location. Usually it is consistent to
mLowPowerModeEnabled unless it gets different data for specific
service. By adding these knobs, we can effectively tune the battery
saver.

This cl sets up the framework for BatterySaverPolicy and updates
following service to get battery saver data from BatterySaverPolicy

1. GnssLocationProvider
2. VibratorService
3. WindowManagerService
4. BackupManagerService
5. SoundTriggerService
6. NetworkPolicyManagerService

Screen brightness will come in a following cl.

Bug: 34693888
Test: FrameworksServicesTests

Change-Id: I6b040e93391614b44d136a485faa4a332c396e51
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
8347163dbb64fb61012c0393163283106a0a351e 13-Dec-2016 Winson Chung <winsonc@google.com> Create a new stack for the assistant activity.

- Add a new stack that is not resized with multiwindow, and
appears above the fullscreen and docked stacks, but below
the pinned stack
- Add a method on VoiceInteractionSession to allow the assistant
to launch activities into this new fullscreen stack.
- Also prevent any activities in the assist stack from the
fetching of the on screen assist data.

Bug: 30999386
Test: android.server.cts.ActivityManagerAssistantStackTests

Change-Id: I22ab7629b5f758cf1e66d7d1c26648af6bc887c9
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0 11-Nov-2016 Sudheer Shanka <sudheersai@google.com> Update usage of ActivityManagerNative.

- Remove references to ActivityManagerProxy.
- Add isSystemReady to ActivityManager.

Bug: 30977067
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts
adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \
-w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
ac2561e8206ac42921bb6ddbb0a5972fb360e394 01-Nov-2016 Wale Ogunwale <ogunwale@google.com> Make window token add/remove APIs require displayId

Window tokens can now only be on one display, so we now require clients
that want to add/remove window tokens to specify the display they would
like the token to be created on. This simplifies the token handling code
in WM and will be useful moving forward for clients that want to add
windows to external displays.

Test: Existing tests pass
Change-Id: I6b2d8d58a913b3624f1a9a7bebbb99315613f103
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
3916c8f033af5ce1636760c9fdd808fc9f0aa0ce 27-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Removed temporary workaround for multi-window assist crash."
662a134c91307318a36ad1f6693c98c968aaf610 20-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Synchronized access to mService."
e01d95e593fac83ed7c91926eb33a6dd6e45bcd9 20-Oct-2016 Felipe Leme <felipeal@google.com> Removed temporary workaround for multi-window assist crash.

BUG: 28348867
Test: manual

Change-Id: I19b8e4cd06ee5f1a3b5818434da6fafbcb3a0550
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
5aaca3a6201d8c043122cae836e927d101384b86 20-Oct-2016 Felipe Leme <felipeal@google.com> Synchronized access to mService.

Test: none
Change-Id: Ibab1211384c1c579fa24be19821c2784faa22b8c
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
b587d8d2c8a27e490da56ff529716e2be7e0e4e6 19-Oct-2016 Chris Thornton <thorntonc@google.com> Only purge sound models that violate the new primary key constraint if they don't contain identical data. am: d5ff116403 am: 519b7837bb
am: a7f3f1aa91

Change-Id: I5a376cac47bd279ed13116213b2a78ddcdae8eb2
d5ff11640310cfc9edaf55296fc29350a6564068 19-Oct-2016 Chris Thornton <thorntonc@google.com> Only purge sound models that violate the new primary key constraint if
they don't contain identical data.

Bug: 32174118
Change-Id: Ied5e4e852337e5f819c7ded53dd941d79087ce73
ava/com/android/server/voiceinteraction/DatabaseHelper.java
4a648f03c92d33fbfb421ecfef7bd3d6cb81a0be 18-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed typo on service name."
fb96985d9a9c0256746671fc607df741a032493a 17-Oct-2016 Felipe Leme <felipeal@google.com> Fixed typo on service name.

Test: none

Change-Id: Iba9324d0bbd8152594bb92ce66d2b1d1371f559b
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
5bd5cf75e1d86baa49fb65836d69f294714d7066 17-Oct-2016 Chris Thornton <thorntonc@google.com> Update primary key in VIS sound model database.

The public API for getting at KeyphraseSoundModels is based on the user,
locale, and keyphrase ID. However, the sound model database would allow
multiple models to be registered using the same values, as it has a
primary key on the model UUID. This can potentially lead to a scenario
where multiple models are enrolled for the same user, and the data that
is returned when querying models is arbitrary.

V6 of the sound model database now enforces a primary key over the user
ID, locale and keyphrase ID. When inserting a new model with the same
primary key, the old model will be removed and the new model will be
used instead.

When upgrading from V5 to V6, if there are any models that would violate
the primary key constraint, they are all dropped.

Bug: 32174118
Change-Id: I9597c6a994f01a426625c3be2c53e826f26f5156
ava/com/android/server/voiceinteraction/DatabaseHelper.java
e9563659a5976a82c643267cd309fbb705256331 19-Aug-2016 Dianne Hackborn <hackbod@google.com> Fix issue #30929080: Default Assist app is set to None...

...on removing the third pary search app

We weren't taking into account old style assistants when determining
whether something interesting had been removed.

Change-Id: I6b7b09cdf0781622924e10556d678565570dbd05
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
2335bd67876e5346acef8db2fc2f58fb2adb465e 12-Aug-2016 Adrian Roos <roosa@google.com> Assist: Allow disabling the disclosure animation

Change-Id: I6e7ed00f066fda7cc268119e7aa4133010aa69c1
Fixes: 30809067
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
d0a83b89a622eb4b568951113ea627ee8f484a36 20-Jul-2016 Chris Thornton <thorntonc@google.com> SoundTriggerHelpoer: Send pause events on abort if a model is running.

If the recognition was aborted due to the service state being set to
false, clients were not made aware that the model had been stopped (but
would get a resume event).

Bug: 30233664
Change-Id: I9f663362ff142eadfd5ef727c5f0c941f8e9e89d
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
d953ab6fdf788352f1524685ad8e608a87c299c0 07-Jul-2016 Annie Chin <afchin@google.com> Move voice interaction callback list to VoiceInteractionManagerService

Bug: 30005941

Change-Id: I23b3bba8b4525068b0f032d5ca908c0f1d181558
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
2045bdd958a84b150a1db15216debcb46cdcba3a 07-Jul-2016 Annie Chin <afchin@google.com> Add a null check for mImpl.

Bug: 30005941
Change-Id: I1212aa66be71b7ee0e990596272a33fa7530770f
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
d58f07f58a8230ee906b9af7d7a89ac876158ab6 07-Jul-2016 Annie Chin <afchin@google.com> Merge "Add callbacks to VoiceInteractionManagerService" into nyc-mr1-dev
ecb9f3e9b810c6d59d31e8bdeff6cc174d170792 28-Jun-2016 Annie Chin <afchin@google.com> Add callbacks to VoiceInteractionManagerService

Bug: 29582254

Change-Id: I548d01bd1c7e261b2d2e0afd606d964e5553124e
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
174c58187746293144eaa27cf5fc5079db949439 15-Jun-2016 Chris Thornton <thorntonc@google.com> Prevent NPE when updating models without a vendor UUID

Change-Id: If58cd3ddb0a2afd601af3e3868ab4ff500be53a9
ava/com/android/server/voiceinteraction/DatabaseHelper.java
6b1a34877da1551c949dd6be9c775f391a76b654 10-Jun-2016 Chris Thornton <thorntonc@google.com> Store the vendor UUID of a KeyphraseSoundModel in the database

Bug:28027337
Change-Id: Ieb1905812f9655aaf5608e92e160d59ff7b3abd9
ava/com/android/server/voiceinteraction/DatabaseHelper.java
b625e19a877dc8e128329d730bc5e9b8e8a2fce9 03-Jun-2016 Svetoslav Ganov <svetoslavganov@google.com> Properly set default voice interactor

We need to figure out the default voice interactor to give
it default permissions. This happens before the user has
been unlocked and if the voice interactor is not direct
boot aware we fail to find it, hence no permissions are
granted. Now we query the package manager for both direct
boot aware and unaware components. This is fine as we
don't interact with the assistant until the user is
unlocked.

bug:28963642

Change-Id: Ide5471fa1798e868c6e3a4b5e87570a5556e2d3f
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
f5c37eb3b7e7b377aa7adb7fce58006ee06bd450 24-May-2016 Amith Yamasani <yamasani@google.com> Use correct synchronization lock

This is to fix an incorrect unregister() that was crashing
the system server. The only way it could be happening is
because of incorrect locking. So, hopefully this fixes it.

Bug: 28813750
Change-Id: Ie3c47ffa3024a0c533e12db0d2d021df8fc0367a
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
4f128e4d968b376bb7c3fa209d27b0a30202e604 10-May-2016 Amith Yamasani <yamasani@google.com> Fix multi-window assiststructure trashing

When multiple activities within the same process
try to handle requests for AssistStructure, the
singleton mLastAssistStructure tends to trash
the old structure when a second window's request
comes in.

This change passes in a sessionId so that the
cache is only cleared if the session id changes.

Bug: 28348867
Change-Id: I07efcd933db7e48aefd25a1c95493b71bbcffe4b
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
02c80c63d44a6b9d10b18d3b12ee10c0d3e32748 09-May-2016 Amith Yamasani <yamasani@google.com> Workaround for assist crash with multiwindow

Temporarily disable multiwindow assist until
Bug: 28348867
is fixed correctly.

Change-Id: Ia9d0fb5d4412e87aada90e8dcffe829b61221c6c
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
f967da90528426ff48f75c9109aede2b89a14880 03-May-2016 Chris Thornton <thorntonc@google.com> VIMS should only stop the keyphrases it started.

When the VIMS changes the implementation or has its implementation force
stopped, it used to stop all the recognitions that were in the
SoundTriggerService (without letting those clients know that they've
been stopped). Instead, the VIMS should just unload the keyphrases that
it loaded, so the other clients are not perturbed.

Bug:28518547
Change-Id: Ia70e8576f43cb8a8521c947ff7fc56f63cfbad54
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
ava/com/android/server/soundtrigger/SoundTriggerInternal.java
ava/com/android/server/soundtrigger/SoundTriggerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
37f9776ab9aec865fe2ef6544fc84c37e48aca1a 30-Apr-2016 Chris Thornton <thorntonc@google.com> Remove the STH tracking if a model has been aborted.

The STH just needs to log the fact that a model has been stopped when it
is aborted. We also need to allow models to be stopped even if the
service is unavailable.

Bug:28474708
Change-Id: I2d618ae9c7c87311223f7d75b8ded7678252d11c
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
56056038f750d29af79e47b04b845ec24a47157f 30-Apr-2016 Chris Thornton <thorntonc@google.com> Keep STH state in sync with HAL

During stopAllRecognitions(), the internal state of a sound model was
being cleared (which made it look like the model was being unloaded).
However, the model was still loaded, so subsequent calls to load a 'new'
model would break.

Bug:28432002

Change-Id: I7090bf52704c6e46e3bb6d495d8fe4b8a1d9e2ad
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
50bbb66d604feb8652c344ded22ac207a6c272d5 23-Apr-2016 Amith Yamasani <yamasani@google.com> Fix a regression in assist when context is disabled

Fixes: 28293783
CTS: DisableContextTest#testContextAndScreenshotOff failure

When assist context is disabled, make sure that the handleAssist() is
still called with no data.

Change-Id: I569dd9f6de503e62fb04c590214df0f2ce3aa4f3
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
2be4c463bc6411cf6fb9e2a4be0cbb90c485d0de 21-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Throw better exception when startVoiceActivity fails" into nyc-dev
37f9de996ee36f6d33930f765946dfcb44c23064 20-Apr-2016 Amith Yamasani <yamasani@google.com> Reinitialize voice interaction service on unlock

Fixes the incomplete initialization on FBE devices when
voice interaction service is not available before unlock.

Change-Id: I397237e4554453d29da643aee59384e289fa3654
Fixes: 28183380
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
42449786211591d097d0fbac72296534c4ab23b6 19-Apr-2016 Amith Yamasani <yamasani@google.com> Throw better exception when startVoiceActivity fails

Introduced new error codes so that Instrumentation can
include the correct message in the exception.

Bug: 28216630
Change-Id: I93ee77153cdad11fa208c74c28c6790db27c9753
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
41e04a4525923815176630a992cdbc6c4c737e6b 19-Apr-2016 Chris Thornton <thorntonc@google.com> Use .equals() to compare two UUIDs in SoundTriggerHelper, rather than ==

Also refactors ModelData::clearState to clear a bit more of the state.

Bug:28251543
Change-Id: I18d7ccd90a6a9ee8bc8743d9a92c48f17d87c842
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
a09b4d2a611a7606e8fc8c73a24bd941b6fc173f 15-Apr-2016 Narayan Kamath <narayan@google.com> Remove unnecessary allocation+unboxing of objects.

Transforming String->int can be done with 0 allocations
using Integer.parseInt.

bug: 28078871
Change-Id: I8d9f322d7154728849dde61ef282046032858d60
ava/com/android/server/voiceinteraction/DatabaseHelper.java
59623ee33742e69c4cb24901e5e81e2aca6496e7 14-Apr-2016 Arunesh Mishra <arunesh@google.com> Merge "SoundTriggerHelper: Add ability to manage multiple voice models." into nyc-dev
fac2515695b9be78743d243b88f92d7687d24772 11-Apr-2016 Arunesh Mishra <arunesh@google.com> SoundTriggerHelper: Add ability to manage multiple voice models.

This CL adds the ability in STH to manage multiple voice models indexed by
keyphrase ID, which is an integer.

Bug: 28104190
Change-Id: I8e10cca05ed8b4b8414cae7fffc26c132d4b7cbd
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
e8222e551f8abd2d82ca4f77ddb275e2e509751e 09-Apr-2016 Amith Yamasani <yamasani@google.com> Multi-window assist callback

Introducing a new callback in VoiceInteractionSession to
provide assist data for additional activities in the
foreground in a multiwindow setup.

PIP, docked windows and free-form windows (top-most)
will be queried for assist data and passed through the
new API to the Voice Interaction service.

Bug: 27718385

Change-Id: Ib4427c304611b75c2078dcb54f1f7e47ae7d9cfa
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
78ab7cf301fd102fbfd99c69fd442ed93563a6f1 04-Mar-2016 Arunesh Mishra <arunesh@google.com> SoundTriggerHelper re-design.

This CL redesigns and cleans up a lot of the core logic in STH.

Major changes include:
- Adds Tron logging based counters.
- Common startRecognition(), stopRecognition() and updateRecognition()
routines that work on both Keyphrase and Generic sound models.
- Common streamlined logic for when recognition is aborted, requested and
paused due to phone call/power save etc, for both keyphrase and generic
models.
- Special handling of the singleton nature of keyphrase models in
startRecognition().
- Moves all Keyphrase model state to the common ModelData structure.
- Adds Recognition pause/resume() for generic sound models so that they react
to power save, call state, recognition aborted due to service unavailable
etc.
Bug: 27972641

Change-Id: I96a7f567d2a4973facec556892a163ca74176bbf
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
6e3eeadee26fc70bc9c4f08c4f8fa8cdeb9b437e 09-Mar-2016 Ryan Bavetta <bavetta@google.com> Merge "Fix unsynchronized access to model hashmap" into nyc-dev
79655ebf7e1ef9dd48e71761fe71f8180d98a49f 07-Mar-2016 Ryan Bavetta <bavetta@google.com> Fix unsynchronized access to model hashmap

BUG:27529749
Change-Id: I5b7cd59d8b45858896e6014b8fe95c1cc3c77869
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
3973b1a75dd8420d51a2cf0dbba0eea174a7dc9e 02-Feb-2016 Joe Onorato <joeo@google.com> Turn down the logging a little bit.

Change-Id: I810b9bd58412d2b38d8ce4497baa71047125b92f
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
f47f173b06e2972bb376da8ff11db3a83c21d10b 19-Feb-2016 Arunesh Mishra <arunesh@google.com> Fix AlwaysOnHotwordDetector recognition event bug.

Parcelables don't work well with inheritance. So changed the
IRecognitionStatusCallback to have onKeyphraseDetected() and
onGenericSoundTriggerDetected() for those respective events.

Made corresponding changes to AlwaysOnHotwordDetector and SoundTriggerDetector.

Bug: 27250528
Change-Id: Ic08a431e7cc4248c688b05c865348170246de576
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
2d1de78a4c8fc224329a9622c9326e42a42ddadd 22-Feb-2016 Arunesh Mishra <arunesh@google.com> Unload logic for generic and keyphrase sound models.

When delete is called, now the STH unloads the corresponding models.

Fix bug with keyphrase where a delete call didn't unload (or stop)
the keyphrase model.

Bug: 27279380
Change-Id: Ia34f713d2aecef4102c0f0ccc57b8d2e5febe4bb
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
ava/com/android/server/soundtrigger/SoundTriggerInternal.java
ava/com/android/server/soundtrigger/SoundTriggerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
933da8150c4a80b94684c97cd6813e5018a73a8d 19-Feb-2016 Arunesh Mishra <arunesh@google.com> Fix minor bugs:

- Fix issue when multiple starts cause multiple spurious loads to be sent to
the native layer.
- Fix scrolling issue in the native app.

Bug: 27222043
Change-Id: Iddf36a8b68637f478dc23b001ecbde352db3a5f0
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
3fff7f5634ca788c1c84b6f1b316819ffd4c7cb2 09-Feb-2016 Arunesh Mishra <arunesh@google.com> SoundTriggerHelper changes for GenericSoundModels.

- Refactoring SoundTriggerHelper to handle generic sound models.
- Ability to store multiple models, callback and state information.
- Separate out initialization to be done per voice model, per any model
and per generic model.
- Minor change to the API exposed -- removing the Handler from the
createSoundTriggerDetector call.
- Added callback processing for onRecognitionEvent().
- Added logic for stopAll().
- Changes to the SoundTriggerTestApp to start/stop recognition.
- Multiple models (3).
- Ability to start/stop/load/unload individual models.

Bug: 22860713
Bug: 27222043
Change-Id: Ie5d811babb956bead653fb560a43f1e549ed11bd
ava/com/android/server/soundtrigger/SoundTriggerDbHelper.java
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
ava/com/android/server/soundtrigger/SoundTriggerService.java
55a9b0089c12dd657a8dc8551c79cf3e0f25d7e4 01-Feb-2016 Arunesh Mishra <arunesh@google.com> Fix moduleProperties in SoundTriggerInternal.

Change-Id: Ie7ea74ca39894f78875768dbc3e504b32f262fe6
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
ava/com/android/server/soundtrigger/SoundTriggerInternal.java
ava/com/android/server/soundtrigger/SoundTriggerService.java
c722ec4105f7a4733a22fb9004e784347ee36663 27-Jan-2016 Arunesh Mishra <arunesh@google.com> Fix SoundTriggerModel uses to GenericSoundModel.

Change-Id: I30308b39536864d7b9640367861730e3b1b12129
ava/com/android/server/soundtrigger/SoundTriggerService.java
a772e5fc062c8de48cb9c1d61755110f6b2e189b 25-Jan-2016 Arunesh Mishra <arunesh@google.com> SoundTrigger API improvements.

This CL implements the SoundTrigger API improvements as given in b/22860713. Only the java-level
parts are implemented in this CL.

Key changes include:

* Addition of a SoundTriggerManager/SoundTriggerDetector system API to manage
the sound-trigger based sound models.
* Addition of a SoundTriggerService service that manages all sound models
including voice (keyphrase) and sound-trigger based models.
* Includes logic to write sound-trigger based models to the database.
* VoiceInteractionManager service now uses SoundTriggerService instead of
SoundTriggerHelper.

Bug: 22860713
Change-Id: I7b5c0ed80702527c4460372efeb5e542d3693a69
ava/com/android/server/soundtrigger/SoundTriggerDbHelper.java
ava/com/android/server/soundtrigger/SoundTriggerHelper.java
ava/com/android/server/soundtrigger/SoundTriggerInternal.java
ava/com/android/server/soundtrigger/SoundTriggerService.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
0af6fa7015cd9da08bf52c1efb13641d30fd6bd7 18-Jan-2016 Amith Yamasani <yamasani@google.com> Voice Interaction from within an Activity

This allows an app to show a voice search button
and invoke a voice interaction session for use
within the activity. Once the activity exits, the
session is stopped.

Test application has a new activity that
demonstrates it with the test voice interaction
service.

This initial version is functional enough for
an integration test, with some more tests
and improvements to come later.

Bug: 22791070
Change-Id: Ib1e5bc8cae1fde40570c999b9cf4bb29efe4916d
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
6ac42aeed905181b484f97a53db57a17134ef7a8 09-Dec-2015 Dianne Hackborn <hackbod@google.com> Add a mechanism for broadcasts to control background dispatching.

Right now this is just for the BOOT_COMPLETED broadcast to allow
all apps to receive it.

Also clean up the dumpsys of the broadcast queue to not have
every little detail of ResolveInfo+ActivityInfo+ApplicationInfo,
which is just not useful and makes reading the broadcast queue
debug output a lot harder because of so much noise there is.

And rename the package shell query-intent-* commands to a
shorter query-* form.

Change-Id: I0d01565babb87e68b840c9756a2ea730d699efc7
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
c83189b5d6ab2fe5f1c38cbe22254f4995379c88 17-Nov-2015 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
f9fc6d6cc05595241bc7ced6d4cab97b45f9b901 09-Nov-2015 Jeff Sharkey <jsharkey@android.com> More file-based encryption work.

Add granular StorageManager APIs for key creation/destruction and
unlocking/locking. Start passing through an opaque token as part
of the unlock command, but leave it empty for now. We now have a
separate "prepare" method that sanity checks that user directories
are correctly setup.

Define a handful of system properties used for marking devices that
should be operating in FBE mode, and if they're emulating FBE. Wire
a command to "sm", but persisting will come later.

Start using new "encryptionAware" flag on apps previously marked with
coreApp flag, which were apps running in the legacy CryptKeeper
model. Small tweaks to handle non-encryptionAware voice interaction
services. Switch PackageManager to consult StorageManager about the
unlocked state of a user.

Bug: 22358539
Change-Id: Ic2865f9b81c10ea39369c441422f7427a3c3c3d6
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
d8ef44bc51a4a27cd9a57c880a367636a1377082 15-Oct-2015 Chris Thornton <thorntonc@google.com> Merge "Don't call StopRecognition when recognition was aborted." into mnc-dr-dev
958b9d2ecc0fabdd1d6d3e99b001f0fa57897da9 10-Oct-2015 Dianne Hackborn <hackbod@google.com> Fix issue #24743380: VoiceInteractionManagerService doesn't use current...

...user for service info

Now it does.

The actual change is basically one line, passing in the current user
when building the service info. The rest is more debugging output to
be able to see what is going on.

Change-Id: I451884e0780aac6ee92fd2cd520071894afdf586
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
b7b5812147aadb159080f14944b7d93a5002fdb7 07-Oct-2015 Chris Thornton <thorntonc@google.com> Don't call StopRecognition when recognition was aborted.

If recognition has been aborted, then the call to the sound trigger
device stop recognition has already occurred. The sound trigger helper
would then try to stop it again, which generates an error code for a
stop without a corresponding start event.

BUG=24677430

Change-Id: Ibf5d1da1a8eb06b677e428f047905d15fd5cf21f
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
a35c96eb90f3be5980797b160da3780f2b8f35e6 06-Aug-2015 Chris Wren <cwren@android.com> add metrics to assistant

long press
screenshot enabled
context enabled

Bug: 22949579
Change-Id: Iac178207fa7149cda03c9a817a0d1450e46e1c59
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
3551a59b277fd4dc924f48116c153a50fb0913eb 28-Jul-2015 Dianne Hackborn <hackbod@google.com> Merge "Work on issue #21516866: Implement voice interaction in ResolverActivity" into mnc-dev
57dd737443a174379eb638450e4888500d8e4a23 28-Jul-2015 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
1dfa7c6c79a7dfe842c229d7b2efb34608609db1 28-Jul-2015 Jorim Jaggi <jjaggi@google.com> Don't use screenshot if structure is disabled (1/2)

Bug: 22674955
Change-Id: I694bb8dbb578da9d729414c7f2947ba4c15651e3
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
19695d97118d74aa7f54ba09b178e65378825cc0 21-Jul-2015 Jorim Jaggi <jjaggi@google.com> Add callback to voice interaction session for lockscreen shown

Bug: 22402726
Change-Id: Iaf83e2f2b0389d74b6ecf480aa91a34443803f7b
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
17f693520da8977c4a60f5b4be3be035cba7146c 18-Jul-2015 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
1de1186d28f0ca7c0b6298edfa8ae497e651ba87 15-Jul-2015 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
165ce066b701ba0153000f0692bfc7032655d17d 07-Jul-2015 Jorim Jaggi <jjaggi@google.com> Fix assist for hardware long-press

Activating the assistant will now route through SysUI, so
we have the logic whether to start an activity or to start a voice
interaction session in one single place.

Bug: 22201770
Change-Id: I0f4699533aea2a1e595ee25a844434c82f548c01
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
4e88bcd39918197c78b148afe40a08b6adcace1e 01-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20672970: Notifications are not dismissed on hot word detection

Add new VoiceInteractionSession.closeSystemDialogs() API that closes
everything except the session itself.

Change-Id: If45f1e120d8ca095b6c8055b6485acb5e710820e
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
a133f0b522f66b45d4105f6d514a8a17120833ad 27-Jun-2015 Jorim Jaggi <jjaggi@google.com> Add setting to disable screenshot separately (1/2)

Bug: 22063668
Change-Id: Ief704004a8ab0a65d34753f9098003ba695726df
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
b6fb3fe8f4fce5fda82a833247bd99ec435815f1 29-Jun-2015 Benjamin Franz <bfranz@google.com> Merge "Block assist when screenshots are disabled by policy" into mnc-dev
cc3a46ada84b2c27544df0fa3369631c8dc9386e 26-Jun-2015 Jorim Jaggi <jjaggi@google.com> Also reset assist setting when force stopping assist

Bug: 20882522
Change-Id: I57725586ab5ff203b378a1e6d2e5e77a47fd2448
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
c200f44c46b7d6ddb104c0f09f2a4c679e218d0b 25-Jun-2015 Benjamin Franz <bfranz@google.com> Block assist when screenshots are disabled by policy

When a device or profile owner disables screen capture, we also want to
block context data being collected for the assist structure.

Bug: 21797707
Change-Id: Ib8716c6dd71d538a027c04e1e907c87e2afa0ac8
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
1e575a0f32a00fc6a2f9a71fe1d1eb4426c71787 20-Jun-2015 Svet Ganov <svetoslavganov@google.com> Merge "Only grant runtime permissions to special components." into mnc-dev
adc1cf46045ae756d3a9ccbccf6b0f894e4c1edd 16-Jun-2015 Svet Ganov <svetoslavganov@google.com> Only grant runtime permissions to special components.

Now runtime permissions are granted only to components that are
part of the system or perform special system operations. For
exmple, the shell UID gets its runtime permissions granted by
default and the default phone app gets the phone permissions
granted by default.

bug:21764803

Change-Id: If8b8cadbd1980ffe7a6fc15bbb5f54a425f6e8f9
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
4f43dc042bf76ec6c3b340b2297dec7c4cdd9098 18-Jun-2015 Adrian Roos <roosa@google.com> Assist disclosure

Add an animation that discloses delivery
of contextual data to the assist component.

Also fixes a bug where contextual data was
delivered to legacy assist activities even
though the user explicitly disabled context.

Bug: 21568059
Change-Id: I27dfaa36e2f677b0d73acfa4730f0f4ea3486919
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
216f5c33472bf4014cb1951deeb2b7c09f4cae37 17-Jun-2015 Dianne Hackborn <hackbod@google.com> Bring back screenshot API.

Change-Id: Ia6bdfa300398d39119239f6a88c9992673edb3e0
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
b8004ff3d4be75f2d57ac757cd0b983eed4ae9c0 15-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #21816660 (app standby), work on issue #20882522 (voice interact)

Issue #21816660: More app standby abuse prevention

We now apply the same rules for deciding when an app has counted
as active when the screen is on as when the screen is off; the only
change this really means is that we don't immediately count foreground
services as making an app active both screen on as well as the
existing behavior for screen off.

Also small fix to how we switch into voice interaction mode that
guarantees we immediately switch to the screen on state.

Issue #20882522 VI: voice interactor service not restarted

This fixes some problems in the framework, allowing it to be
correctly restarted (and rolled by to the default voice interactor
if appropriate). There are still some problems in system UI that
leave things broken in some cases.

Also small fix to how we switch into voice interaction mode that
guarantees we immediately switch to the screen on state.

Change-Id: Ie4fd098a2f5174a2c94f36d30427fb2a9db3d835
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
5f531f1f362af3a82cce93ad3ab6785c9224ce48 11-Jun-2015 Yohei Yukawa <yukawa@google.com> Make VIMS.SettingsObserver multiuser-aware.

VoiceInteractionManagerService.SettingsObserver has been used
to monitor per-user settings hence we have to take care of
multiuser scenario.

In the case of VoiceInteractionManagerService, monitoring
changes from all the users is OK because event handlers will
read settins from the current user anyway.

Bug: 21766395
Change-Id: I357fe2a7e2a5645355e696c6fbaae762f54ca029
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
b835dd7641c60cd5d2b372331ffc19f7165244bd 08-Jun-2015 Jorim Jaggi <jjaggi@google.com> Close assist when launching intents from notification shade

Bug: 21035363
Change-Id: I51a6dbe5f0d93aaf81a38d1f1afacaaeaf7732e2
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
69c6adc96eecfde74ceb83cf9177428dc08b6067 02-Jun-2015 Dianne Hackborn <hackbod@google.com> More API changes.

Start moving Assist* stuff to android.app.assist.

Clean up some more of the VoiceInteractionSession APIs.

Clearly document that finish() is not the same as hide(),
always call hide() instead, and fix the finish() path to
also always do a hide to make sure everything is cleaned
up correctly.

Change-Id: I962d4069fcb34fe89547a95d395ae1b9fa3b4148
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
2ee5c368f844bc0f6ce55ff6d5cf3d5604cad5d8 30-May-2015 Dianne Hackborn <hackbod@google.com> Update VoiceInteractionService from API review.

This may even manage to retain compatibility with existing
binaries! (For now.)

Change-Id: I3b1386287a6b9b20b57ac2e2444fd6f458837277
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
09d57fe9b357495b7bc62be39a8befa00d9d7ffb 28-May-2015 Dianne Hackborn <hackbod@google.com> Add new API to set URI on AssistContent.

Also rework how we transfer AssistContent and AssistStructure
to the assistant, so they are delivered as completely separate
objects rather than the kludgy bundling them in the assist
data thing.

Change-Id: Ib40cc3b152bafeb358fd3adec564a7dda3a0dd1d
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
496767c142fbf8b412237f9ffc2f9af411a3d077 23-May-2015 James Cook <jamescook@google.com> Cancel voice assist session on user switch

Ensure any active voice interaction session is canceled when the
voice interaction service is shutdown. This ensures that the UI window
is closed when a user switches accounts.

Bug: 20501283
Change-Id: I9f3dae5afc4048482f6bedaed36dbae3c0823ebd
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
d9b0c913f7dd1508b8d4b97d8b82ea23a5a9ca40 21-May-2015 Cedric Ho <cedricho@google.com> am 782def77: am 80cf2210: Add config_forceVoiceInteractionServicePackage to allow a device to config its VoiceInteractionService package and ignore the regular setting.

* commit '782def772adacaf029d7d9850605923066665424':
Add config_forceVoiceInteractionServicePackage to allow a device to config its VoiceInteractionService package and ignore the regular setting.
80cf2210226bc652181abafe606b69ebce63af78 20-May-2015 Cedric Ho <cedricho@google.com> Add config_forceVoiceInteractionServicePackage to allow a device to config its VoiceInteractionService package and ignore the regular setting.

Change-Id: Ic40d90f1a7a9942f5e82080668552239bbed9b03
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
c6767354c5c2e32648c7404b73878a8ae66dd3c8 19-May-2015 Jorim Jaggi <jjaggi@google.com> Merge "Add setting to disable assist data (1/2)" into mnc-dev
9d91083034654b37461c891308a1d426054170a8 19-May-2015 Jorim Jaggi <jjaggi@google.com> Add setting to disable assist data (1/2)

Bug: 20944446
Change-Id: I8050df3177b6d540829c3f0989a4e4b1381c87ec
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
38a499edf5542fbd0948a02b77ecd84c0d62a846 19-May-2015 Dianne Hackborn <hackbod@google.com> Remove screenshot APIs.

Change-Id: I1efdb7945bd52f5f43c7103480be3d7dac60018b
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
03872c075e756b37a80de708cbd8d3d65d50a3a8 08-May-2015 Selim Cinek <cinek@google.com> Fixed a bug with svelte and voice assist

Handling the case that no info is around.
Bug: 20925281

Change-Id: Id5a4c4373877909a898c8852891a854eacbc1f6c
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
e70d6535237d2e6f03adcd0bdc11e45ea714dc97 25-Apr-2015 Selim Cinek <cinek@google.com> The voice assist may now be launched above the lockscreen

A possibility was introduced to launch voice assist over
the lockscreen using the left keyguard affordance.

Change-Id: Ic4618d24256b65441a50d77d0ef59b0ec99b6ead
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
5f560d056243638a83a4e7770035fdb66004c9d7 30-Apr-2015 Jorim Jaggi <jjaggi@google.com> Rename supportsAssistGesture to supportsAssist

Bug: 20642759
Change-Id: Idddc786980244cc94570d04fd414540bbad60448
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
d69e4c1460017062e7c36be55801cb434ad19d97 24-Apr-2015 Dianne Hackborn <hackbod@google.com> Update use of procstate for services.

Now that we have a separate foreground service proc state
(above a sleeping top app), update various system services
to put their bindings into this state when appropriate.

There are two new bind flags for this -- one that just always
makes it a foreground service, another that only does it when
the device is awake (useful for things like the wallpaper).

And with all of that, tweak network policy manager to only
include apps that are at least foreground service state when
in power save and device idle modes. This will allow us to
further reduce the set of apps that have network access
(in particular not giving access to the current top app when
the screen is off), hopefully leading to even better battery
life.

Change-Id: I91d85a5c5ed64e856149e9a5d94a634a7925ec7f
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
4e41767977257a2b949f95a7ecb9b7ab4d1cdf10 27-Apr-2015 Cedric Ho <cedricho@google.com> resolved conflicts for merge of 0af3af03 to mnc-dev

Change-Id: I38f423be6dcef216cf813aa0f747be38f0ad792f
c663d99f007c0faa7b66a569ec4083b82d60ef15 24-Apr-2015 Cedric Ho <cedricho@google.com> Enable VoiceInteractionService on watch.

Change-Id: I1d23ba55a98f6d68942cc344b4a564ab62285656
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
b09f8e29dd7d45b2044c3c75fa40e3b31c5d2cfa 16-Apr-2015 Jorim Jaggi <jjaggi@google.com> Fix VoiceInteraction permission issues

Change-Id: Id3796066353a6d7799ae983d18e6adc38c8cef52
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
4870e9d5eba59fb257a87f97f1adf0b734cf48d3 09-Apr-2015 Dianne Hackborn <hackbod@google.com> More work on device idle mode and other power stuff.

Add idle mode support to the alarm manager. Introduce
a new concept of flags associated with alarms to tell
the alarm manager how to treat the alarm -- they allow
everything from the alarm that will bring us out of idle
mode, to alarms that are allowed when idle or should
also bring us out of idle. The standalone boolean is
now also a flag.

(Note there is currently no protection from user space
setting the flags however it wants; I will be working
on that in a follow-up change.)

When in idle mode, the alarm manager pushes all alarms
that shouldn't execute during that time over to a
separate list that is not executed until out of idle.
To help with this, I reworked a bit how Alarm objects
are managed, so that when rebatching or moving between
lists we don't have to allocated new objects but can
just use the same existing instance.

Also tweaked the sync manager to deal with idle mode,
which currently just means doing the same thing as when
low on storage -- turning off sync.

Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts
that apps can listen for to know when the device is actively
charging and discharging. These are better than the old
POWER_CONNECTED and POWER_DISCONNECTED ones because we only
report charging when we actually see that there is enough
power being provided to charge the battery (and will report
discharging if there is not enough power).

The job controller uses these new actions for scheduling
jobs that want to run while plugged in. Removed the
"stable charging" stuff while doing so, since the new
charging state serves as an even better signal for that.

Introduced two new process states: FOREGROUND_SERVICE and
TOP_SLEEPING. This will allow us to treat foreground services
specially (such as still allowing network access to them for
background music playback) while not mixing them together with
whatever happens to be the top activity while the device is
asleep.

Also some other small cleanup here and there.

Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
d59a5d59df920d743723521a2afed9de1da3373b 04-Apr-2015 Dianne Hackborn <hackbod@google.com> Various fixes and improvements...

Issue #19912529: VI: VoiceInteractor callback ClassCastException

Fix to use correct argument.

Issue #19912636: VI: Documentation for VoiceInteractionSession.onBackPressed

Added documentation.

Issue #19912703: VI: VoiceInteractionSession NPE on Abort Request

Maybe fix this -- don't crash if there is no active session.

Issue #19953731: VI: Add value index to...
...android.app.VoiceInteractor.PickOptionRequest.Option

There is now an optional index integer that can be associated with
every Option object.

Issue #19912635: VI: Behavior of startActivity when in voice...
...interaction is unexpected

We now forcibly finish the current voice interaction task whenever
another activity takes focus from it.

Issue #20066569: Add API to request heap dumps

New ActivityManager API to set the pss limit to generate heap
dumps.

Also added app ops for assist receiving structure and screenshot
data, so that we can track when it does these things.

Change-Id: I688d4ff8f0bd0b8b9e3390a32375b4bb7875c1a1
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
0b68ff45125e449dd0b4120f530240093aa6253e 02-Apr-2015 Jorim Jaggi <jjaggi@google.com> Add flag to voice interactor for supporting assist gesture

Add an additional flag to the voice-interaction-service declaration
so it can indicate whether it is able to handle the assist gesture.
Use that information in SystemUI so it only starts the voice
interaction session if the service is able to support it.

Change-Id: I62b035ce4f4cf06ee6e7eb0ddc4bf5edbc0e6737
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
225d3b5449d29b43e619d8538d024305f6e81ba9 01-Apr-2015 Jorim Jaggi <jjaggi@google.com> Add more internal API's for assist

- When starting a voice interaction session from SysUI, a callback
can be passed to know when voice interaction has successfully started
- Add a new window type for the voice interaction starting window,
which resides behind the voice interaction layer.
- SystemUI now also inspects the voice interaction service to get the
logo asset for the starting window.
- Make VoiceInteractionSession window fullscreen, to accomodate for
the visuals.

Change-Id: If8c3c445e8b39841f48e8d153e6d1ba81e447286
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
25e12abc5b8a4aa83cfa150094fd145b777e6e03 02-Apr-2015 Jorim Jaggi <jjaggi@google.com> Add ability to start voice interaction session directly

Add internal API's for SystemUI to start a voice interaction session
directly, without using an intent.

Make the assist gesture use that ability, if available.

Change-Id: I88ce3c7514714eb45666884847193585a07417a9
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
27eac1d58fe0b7ca3a2e27f5ed64eff232745f45 17-Mar-2015 Dianne Hackborn <hackbod@google.com> Add ability to get a screenshot for assist.

New flag you pass in to startSession() to say you want it,
new callback on VoiceInteractionSession to receive it.

Change-Id: I61fdcfdee41a60d46036a2ef16681a9b4181115a
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
3d07c94c393831091958fe6a98811843db8973bd 14-Mar-2015 Dianne Hackborn <hackbod@google.com> Add new voice request for picking from a list.

Also add API for voice interaction service to control
whether the system should hold a wake lock while it is
working with an activity (and actually *do* hold a wake
lock while doing so, duh!).

And while in there, clean up the launching wake lock to
correctly give blame to the app that is launching.

Change-Id: I7cc4d566b80f59fe0a9ac51ae9bbb7188a01f433
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9d 11-Mar-2015 Dianne Hackborn <hackbod@google.com> More work on collecting assist data.

Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at. This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session. This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
ffeecb1bfb9b71f4b62c9ef1fbf7b58a7a63f655 25-Feb-2015 Dianne Hackborn <hackbod@google.com> Rework voice interaction session lifecycle.

We now have a formal concept of the session being shown and
hidden, with it being able to continue running while hidden
as long as there is enough RAM.

This changes the flow that a VoiceInteractionSession will
see: onCreate() is when it is first created, onCreateContentView()
is when its UI first needs to be built, onShow() is called each
time it needs to be shown and has the arguments given when the
show request was made (which has been renamed from startSession to
showSession), and then onHide() will be called when the UI is
no longer shown.

The methods show() and hide() now allow a VoiceInteractionSession
subclass to control when it is shown and hidden, working with the
shown state being maintained by the system.

Change-Id: Ic4a430ec7e8bf76a5441fd0425e2932806170fcc
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
ava/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
ae6688b09649447e57468b3e7935691bc09ec9b9 12-Feb-2015 Dianne Hackborn <hackbod@google.com> Update voice interaction layer for new UI design.

Can switch from a pure overlay at the top of the screen,
to interactive mode with the voice UI drawing at the bottom
and pushing its target activity up like an IME.

Add mechanism to get assist data to the voice interaction UI.

Add some basic visualization of the assist data, outlining
where on the screen we have text.

Add a test ACTION_ASSIST handler, which can propagate the
assist data it gets to the voice interaction session so
you can see what kind of data we are getting from different
apps.

Change-Id: I18312fe1601d7926d1fb96a817638d60f6263771
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
4e106cedfecd1f6026a79870c2e427853cba7491 15-Jan-2015 Dianne Hackborn <hackbod@google.com> Bring back voice interaction APIs.

Change-Id: I6039d7c0b188ac342441c56f7d19994b9a80ba17
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
c0e4aaad1ecd5df2608f10a644f3d8f60056d94c 14-Nov-2014 Dianne Hackborn <hackbod@google.com> Issue #17551667: Voice interaction service should be disabled...

...by default on Svelte devices

Also make sure the voice_recognizers feature is not enabled on
low-ram devices, with a new facility for platform feature
declarations to say they should be ignored on low ram devices.

Change-Id: I833c04b12e0e566dd682ed20adb0985c677a696f
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
45c00b5877e908f44853783b42deb437cfd30d94 17-Oct-2014 Sandeep Siddhartha <sansid@google.com> Don't unload the sound model on stopRecognition

This helps us in majority of the scenarios where the sound model doesn't
change across start/stop calls.

Bug: 17954633
Change-Id: Ibff817bb69bc69d2bb3a2603460fed596688b892
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
8cf8f71644643601fe8c3e9538fd00412b1ae8b1 15-Sep-2014 Sandeep Siddhartha <sansid@google.com> Fix issues with multiple languages and multi-users

For multi-user the issue was looking into the user ID of the current
process instead of the active user. The current process was the system
process and the call to UserManager was returning a user handle that
wasn't of any use while trying to map sound models to a user.

For language, the issue was that we were incorrectly just looking up the
model based on the keyphrase id, however we should have also taken the
enrolled model's locale into account.

Explicitly document that for model management the string representation of locales
is a BCP47 language tag.

Remove debug logging.

Bug: 16798166
Bug: 17462570
Bug: 17463511
Change-Id: Ieffb3e218de63f6e7f40af9705dced481a35b0ad
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
2475e38c10a02973665752e0b829153a5c493b28 10-Sep-2014 Eric Laurent <elaurent@google.com> SoundTriggerHelper: handle media server death

Retry to attach sound trigger module when startRecognition() is called.

Bug: 17373746.
Change-Id: I5b2f806b6cab47741d345be1cde73a84f5a62590
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
d7c0395d26694c594c3e64b16ab647c971aeb422 30-Aug-2014 Dianne Hackborn <hackbod@google.com> Hide the interaction part of VoiceInteractionService.

Also the ability to start voice activities is turned off,
though for testing purposes it can be turned back on with a system
property.

Change-Id: I867704d32c53beeb851ceea9b45c28bf5c01ef61
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
1b012d302b56b4adf950035136d1d191a1936d5a 20-Aug-2014 Jeff Hao <jeffhao@google.com> Add sample profiling option to am.

Also bundles all profiling options into a class.

Bug: 17040932
Change-Id: I85d675ee1494bdc7308caffdf94145d27c996e9d
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
efe0f9c7f2bdc10cfd28c186e68676e27b6944a1 23-Aug-2014 Sandeep Siddhartha <sansid@google.com> Turn off hotword when in power save mode

Bug: 15705459
Change-Id: Ifa8b80223affffdc00da467c2066bc6370c85af1
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
16ec0808b5c19f8f33cdacb7b2e444eebfae7d21 16-Aug-2014 Dianne Hackborn <hackbod@google.com> Make sure we initialize to enable the default voice interaction service.

We weren't taking care of the case of an upgrade to L. The main
change here is that the voice interaction service setting now has
an empty string when the user has explicitly said they don't want
one, so when it is null we will initialize it to its default.

Change-Id: Icdd30b4f09498f8928cea759a64628bd43bc5d0e
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
a31413a325747aa91ff8002a0975e1651ad68325 13-Aug-2014 Sandeep Siddhartha <sansid@google.com> Fix delete clause for sound model DB

Since UUIDs contain '-'s they need to be wrapped within quotes

Bug: 16985919
Change-Id: I624a512ca7fc2494a7737b5465c94a9e161dec88
ava/com/android/server/voiceinteraction/DatabaseHelper.java
6df952ec2208714d3206c54987eb388aee799be6 09-Aug-2014 Sandeep Siddhartha <sansid@google.com> Add debugging info to VIS via dump()

Change-Id: I9e8f4536de309256db835b30d94765bfc27d4e80
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
a351ab96987381ffe7ea29a7cdec1e7fbd1497d5 09-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issues 16739817 and 16709247 in voice interaction service.

Issue #16739817 VIS doesn't start for non-primary user(s)
Issue #16709247 GSA is not the default voice interaction agent

These are both fixed by getting rid of the existing code for applying
the default voice recognizer, moving it in to the voice interaction
manager service, and extending it to also set up the default voice
interaction service.

Change-Id: If8d5936c28aebfa7eff77c8d99241c3a2ffdb0a4
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
6b8556d2e320b631d3741bf064796efddb6e51df 07-Aug-2014 Sandeep Siddhartha <sansid@google.com> Dump the state of SoundTriggerHelper for bugreports

Change-Id: I01a17d969fbd22c6bcbb161e3542ca14a3f8c7c8
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
cb4e81c7fe1ec843d80f7604a688c71086c23685 06-Aug-2014 Sandeep Siddhartha <sansid@google.com> Handle microphone contention/Phone calls while recognition is active

Internally we pause the recognition when:
- a phone call is active/off-hook/ringing
- or some other application grabs the microphone

we auto-resume when the condition that caused us to pause reverses.

Both these events are notified to the client via callbacks so that they can choose to display on their UI,
that the recognition is paused for some reason.

Bug: 16515468
Bug: 16740806
Bug: 16514535
Change-Id: Ib274d68522c8cf37d42402c875b16159957657f0
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
256e1a62673472d685232d88ad4d067eb82deeac 05-Aug-2014 Sandeep Siddhartha <sansid@google.com> Handle same keyphrase for multiple users

Also notify the VIS of a change after finishing the change

Bug: 16816191
Change-Id: I6c96595819cd07182c3825c522d9bae559bb6814
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
d3b8223377b8046280e4c09e728edc600171f941 30-Jul-2014 Eric Laurent <elaurent@google.com> 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
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
5e33fb057c20b84418d96574abe861e9d05956eb 02-Aug-2014 Sandeep Siddhartha <sansid@google.com> Stop recognition when shutting down VIS

Bug: 16629417
Change-Id: I9c98d7e6d487d3eaff604df401c320f8554589f9
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
2c0273e50a3162595e9a54030166f2369b039a5a 01-Aug-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
299efbe1fbdca7bf2c852b67df3da361930f3ef2 30-Jul-2014 Sandeep Siddhartha <sansid@google.com> Don't unload sound model in start recognition unless the model changes

This helps in start -> detected -> start again scenarios

Change-Id: I6d8d55e469e0623b9eb07595df8897ad4942aa11
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
1ed12ddb8c46193cc4d790b9c7d6a5d61afb3311 29-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
8ef360f34893771ee22a8ec7a1dc9c9aedc4b38c 29-Jul-2014 Sandeep Siddhartha <sansid@google.com> Notify VIS of shutdown before switching implementations

This lets the implementation cleanup before it's destroyed.

Bug: 16629417
Change-Id: Ia717d461677e9ca8fa66f02c030aacad1597692d
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
2e14dd46e16432fe264025087b57ce6ec71622a3 29-Jul-2014 Sandeep Siddhartha <sansid@google.com> Use keyphrase id from the recognition event

Bug: 16516658
Change-Id: I8be773eec39e1c4c57d106e03a443cbfc5c6dc5d
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
6817337118655d5792e36e954b123e6daa4174a6 28-Jul-2014 Sandeep Siddhartha <sansid@google.com> Read the keyphrase ID from the recognition event

Bug: 16516658
Change-Id: Ibeee81c9543aa1091bb075066cfc2269107f13c0
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
39c12fab49075b715c253c68c84b5c10c3150197 26-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
452a642430e3f8abfa053e48893dd0edfb12799b 25-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
f63bc523eadbe01ce0a5ad52868a5dccb3d5f6dd 22-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
6daae9622672e0b38fc2efed29f68061d749cacc 21-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
110f569b47bc21fb38ec25b6110ee302ce137e06 20-Jul-2014 Sandeep Siddhartha <sansid@google.com> 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
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
055897208d659e9734a82def88be4a806ff55448 18-Jul-2014 Sandeep Siddhartha <sansid@google.com> Move sound trigger calls to VoiceInteractionManagerService

- This ensures that any data being loaded on the DSP comes from the framework

Change-Id: Ie15f0994850ba8f298ca07c49fe0b89e066d9e2b
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/SoundTriggerHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
7444c906faef1f7a9a6e6f7a443ba156f1e856be 17-Jul-2014 Sandeep Siddhartha <sansid@google.com> Test hotword flow

- Also fix a few StrictMode violations in DatabaseHelper

Change-Id: I93f27407dae34cc0dca5e9f891d4ca718d6010a5
ava/com/android/server/voiceinteraction/DatabaseHelper.java
f8cf71d753b86895f987f682c80491aa2967e0c2 17-Jul-2014 Sandeep Siddhartha <sansid@google.com> Support model deletion

the updateKeyphrase call is also used to clear out a sound model currently,
this happens when the sound model passed in has no keyphrases.

We can revisit if we need another deleteSoundModel method

- Also fix an issue with the way we were writing keyphrase to the DB
and when updating keyphrase, we actually addOrUpdate

Change-Id: Ib7250c2fdafef6bc40387912a79366c334d73292
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7 17-Jul-2014 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
2883ba69751de69811a38f086ecbe4c2032ca87d 17-Jul-2014 Sandeep Siddhartha <sansid@google.com> Plumb the database code to read/update sound models

Change-Id: I135131b042481462f905bdb69ea8544e2561d177
ava/com/android/server/voiceinteraction/DatabaseHelper.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
8ecaf5f5cfd18e0436db1a27ccf46a063e9aacd7 11-Jul-2014 Sandeep Siddhartha <sansid@google.com> Hook in startRecogniton call

Add required info to the sound model database: users & recognition modes

Change-Id: I6e12cbc6342a2767c0e3d8328c0a3be899ac9952
ava/com/android/server/voiceinteraction/DatabaseHelper.java
d7018200312e4e4dc3f67cf33dc90bf7ce585844 11-Jul-2014 Sandeep <sansid@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
013f66b92db609fceeff9c8171daca13d057cc95 07-Jul-2014 Eric Laurent <elaurent@google.com> SoundTrigger: update API

class Keyphrase: replaced number of users by list of user IDs.
class RecognitionEvent: added capture preamble duration.
class KeyphraseRecognitionEvent: add keyphrase ID and explicit list of
user ID/confidence level pairs.
startRecognition(): takes a RecognitionConfig specifying the list of
keyphrases to listen to as well as for each keyphrase the recognition mode,
users and min confidence levels for each user.

Bug: 12378680.
Change-Id: I57036cc83b5d9e90512b8bb3f951af3a4a74c0ce
ava/com/android/server/voiceinteraction/DatabaseHelper.java
d4233c68fc17f0909e9e36494db85a634f8e2665 13-Jun-2014 Sandeep Siddhartha <sansid@google.com> Initial code for listing/storing sound models

- We use a DB to store and persist the sound models.
- This'll be used by SoundTriggerModelManager, a service that lists,
deletes and registers new models. This'll be used by the enrollment
client to enroll and unenroll users.

- This needs the unique identifiers for sound model & keyphrases to be
present in the respective data structures

This is very early stage so please point out any concerns.

Change-Id: I82962895bf326167458f20e6ba995295551de025
ava/com/android/server/voiceinteraction/DatabaseHelper.java
6ea0d0a2592395b8980c24304733daec628e947e 03-Jul-2014 Dianne Hackborn <hackbod@google.com> Fix cleanup of voice sessions.

They would leave active voice activities lingering around.

Change-Id: I5b6716ab303636ebdf2f13c3172552a73dae3bb1
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
e30e02f5d9a9141c9ee70c712d4f9d52c88ea969 28-May-2014 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
c03c9167c2d9a1e22fb2b176b00a0524177fb037 02-May-2014 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
18f0d357f9693fe787a3e3777d8fdf01357a6e3f 26-Apr-2014 Dianne Hackborn <hackbod@google.com> 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
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
91097de49b0f683b00e26a75dbc0ac6082344137 05-Apr-2014 Dianne Hackborn <hackbod@google.com> 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
ndroid.mk
ava/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ava/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java