* changes:
Add support in TextToSpeech for an audio stream type param and utterance ID specified as a hashmap param in the synthesis calls. Fix a bug where the cached parameters were not passed to the service when synthesizing to a file.
The locale picker now wants the locale to always have a country, not just
a language, so having something for the country is necessary to let these
be chosen.
ID specified as a hashmap param in the synthesis calls.
Fix a bug where the cached parameters were not passed to the service
when synthesizing to a file.
Install an observer for the Location system setting and
move the Gears permission check to a slightly earlier time.
Move the logic into a separate manager class.
Also delete some whitespace and fix some style issues.
android.app.SearchManager implements
DialogInterface.OnDismissListener and DialogInterface.OnCancelListener
and thus exposes the methods onCancel(DialogInterface dialog) and
onDismiss(DialogInterface dialog). This was used by the SearchManager
to register itself as a listener on the search dialog, but is no
longer used.
This was an implementation detail that leaked into the public
API. Removing them would change the API, so they are deprecated instead.
Fixes http://b/issue?id=1962203
This is the problem where various things are listening for broadcasts
(such as battery status, PIN/PUK/Network) that an application can send
to cause harm to the system.
Solving this is tricky because many of these broadcasts are sticky,
and I have never figured out how to do permissions with sticky
broadcasts in a sane way. So instead, I am going to punt on the
general problem and just brute force it:
There is new a way for system components to declare specific
broadcast actions to be protected, which means that only the system
and the phone can send them. This is good enough for now. None
of it is exposed in the public API so we can make something a little
less stupid in the future if we ever need to.
* changes:
Check if a searchable is null before adding it to the list of searchables for web search. If getActivityMetaData returned null for a web search searchable, previously, this null would get added to the list of searchables for web search, which was causing GlobalSearch's SearchSettings to crash with an NPE (which I've guarded against in change 6602).
Restore runs during the SetupWizard, before the phone is usable per se, so we
want to avoid presenting the usual "Application whatever has crashed..." dialog
to the user in the middle of that process. This change modifies the exception
handling around agent bringup so that agent-originated exceptions are caught and
a null agent binder reported to the backup manager.
There are three points during this code sequence at which an exception can be
thrown due to application-code error:
+ the app's manifest can name a nonexistent or malformed BackupAgent class,
incurring a VM-level exception like ClassNotFound or BadCast.
- the agent's onCreate() method could crash/throw.
- the agent's onBind() method could crash/throw.
The new code arrangement here puts a try/catch around all of these possible
failure points. When the code is invoked for backup, any caught exception is
merely rethrown. During restore, however, execution is allowed to proceed
through reporting the app's agent binder back to the activity manager. If any
exception was thrown, this reported binder will be null, i.e. a clean failure
notification to the backup manager.
What this code does *not* do at present is tear down the app when an exception
has been thrown. This is happens if the exception is allowed to propagate.
Doing so cleanly is problematic, however, in circumstances where mutiple apps
and agents share a process. Leaving the background process around until it is
torn down by the usual policies is probably the safer course at present.
for web search. If getActivityMetaData returned null for a web search
searchable, previously, this null would get added to the list of searchables
for web search, which was causing GlobalSearch's SearchSettings to crash
with an NPE (which I've guarded against in change 6602).
Active scans will only happen if a hidden AP is in use, or if the new method
WifiManager.startScanActive() is called.
This fixes some audio playback problems with bluetooth A2DP.
Signed-off-by: Mike Lockwood <lockwood@android.com>