History log of /frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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