• Home
  • History
  • Annotate
  • only in /frameworks/base/services/voiceinteraction/java/
History log of /frameworks/base/services/voiceinteraction/java/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a35c96eb90f3be5980797b160da3780f2b8f35e6 06-Aug-2015 Chris Wren <cwren@android.com> add metrics to assistant

long press
screenshot enabled
context enabled

Bug: 22949579
Change-Id: Iac178207fa7149cda03c9a817a0d1450e46e1c59
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
om/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
216f5c33472bf4014cb1951deeb2b7c09f4cae37 17-Jun-2015 Dianne Hackborn <hackbod@google.com> Bring back screenshot API.

Change-Id: Ia6bdfa300398d39119239f6a88c9992673edb3e0
om/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
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
38a499edf5542fbd0948a02b77ecd84c0d62a846 19-May-2015 Dianne Hackborn <hackbod@google.com> Remove screenshot APIs.

Change-Id: I1efdb7945bd52f5f43c7103480be3d7dac60018b
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
5f560d056243638a83a4e7770035fdb66004c9d7 30-Apr-2015 Jorim Jaggi <jjaggi@google.com> Rename supportsAssistGesture to supportsAssist

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

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

Change-Id: I6039d7c0b188ac342441c56f7d19994b9a80ba17
om/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
om/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
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
6df952ec2208714d3206c54987eb388aee799be6 09-Aug-2014 Sandeep Siddhartha <sansid@google.com> Add debugging info to VIS via dump()

Change-Id: I9e8f4536de309256db835b30d94765bfc27d4e80
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
6b8556d2e320b631d3741bf064796efddb6e51df 07-Aug-2014 Sandeep Siddhartha <sansid@google.com> Dump the state of SoundTriggerHelper for bugreports

Change-Id: I01a17d969fbd22c6bcbb161e3542ca14a3f8c7c8
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/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
om/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
om/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
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/android/server/voiceinteraction/SoundTriggerHelper.java
om/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
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/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
om/android/server/voiceinteraction/DatabaseHelper.java
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/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
om/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
om/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
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/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
om/android/server/voiceinteraction/VoiceInteractionManagerService.java
om/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java