History log of /frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
fb96985d9a9c0256746671fc607df741a032493a 17-Oct-2016 Felipe Leme <felipeal@google.com> Fixed typo on service name.

Test: none

Change-Id: Iba9324d0bbd8152594bb92ce66d2b1d1371f559b
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
d953ab6fdf788352f1524685ad8e608a87c299c0 07-Jul-2016 Annie Chin <afchin@google.com> Move voice interaction callback list to VoiceInteractionManagerService

Bug: 30005941

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

Bug: 30005941
Change-Id: I1212aa66be71b7ee0e990596272a33fa7530770f
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
ecb9f3e9b810c6d59d31e8bdeff6cc174d170792 28-Jun-2016 Annie Chin <afchin@google.com> Add callbacks to VoiceInteractionManagerService

Bug: 29582254

Change-Id: I548d01bd1c7e261b2d2e0afd606d964e5553124e
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
3973b1a75dd8420d51a2cf0dbba0eea174a7dc9e 02-Feb-2016 Joe Onorato <joeo@google.com> Turn down the logging a little bit.

Change-Id: I810b9bd58412d2b38d8ce4497baa71047125b92f
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
19695d97118d74aa7f54ba09b178e65378825cc0 21-Jul-2015 Jorim Jaggi <jjaggi@google.com> Add callback to voice interaction session for lockscreen shown

Bug: 22402726
Change-Id: Iaf83e2f2b0389d74b6ecf480aa91a34443803f7b
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
cc3a46ada84b2c27544df0fa3369631c8dc9386e 26-Jun-2015 Jorim Jaggi <jjaggi@google.com> Also reset assist setting when force stopping assist

Bug: 20882522
Change-Id: I57725586ab5ff203b378a1e6d2e5e77a47fd2448
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
5f560d056243638a83a4e7770035fdb66004c9d7 30-Apr-2015 Jorim Jaggi <jjaggi@google.com> Rename supportsAssistGesture to supportsAssist

Bug: 20642759
Change-Id: Idddc786980244cc94570d04fd414540bbad60448
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
b09f8e29dd7d45b2044c3c75fa40e3b31c5d2cfa 16-Apr-2015 Jorim Jaggi <jjaggi@google.com> Fix VoiceInteraction permission issues

Change-Id: Id3796066353a6d7799ae983d18e6adc38c8cef52
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
4e106cedfecd1f6026a79870c2e427853cba7491 15-Jan-2015 Dianne Hackborn <hackbod@google.com> Bring back voice interaction APIs.

Change-Id: I6039d7c0b188ac342441c56f7d19994b9a80ba17
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
efe0f9c7f2bdc10cfd28c186e68676e27b6944a1 23-Aug-2014 Sandeep Siddhartha <sansid@google.com> Turn off hotword when in power save mode

Bug: 15705459
Change-Id: Ifa8b80223affffdc00da467c2066bc6370c85af1
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
5e33fb057c20b84418d96574abe861e9d05956eb 02-Aug-2014 Sandeep Siddhartha <sansid@google.com> Stop recognition when shutting down VIS

Bug: 16629417
Change-Id: I9c98d7e6d487d3eaff604df401c320f8554589f9
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
2883ba69751de69811a38f086ecbe4c2032ca87d 17-Jul-2014 Sandeep Siddhartha <sansid@google.com> Plumb the database code to read/update sound models

Change-Id: I135131b042481462f905bdb69ea8544e2561d177
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.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
/frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java