utterances under heavy load was caused by the speech
queue being locked. Switched to using a timeout with
tryLock so that the TTS service does not give up
immediately.
+ Remove NormalProcessProxy and ProcessProxy as they are not used
anymore.
+ Rename AndroidServiceProxy to DaemonProxy and simplify its
implementation as it does not extend to ProcessProxy anymore.
+ Execute connect() in VpnService in one thread, which simplifies socket
and error handling.
+ Modify service subclasses accordingly.
+ Execute connect() and disconnect() in VpnServiceBinder so that the
operations do not block the UI thread. Mark service as foreground only upon
connecting.
Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
Merge commit '7c94ceaeac65f4604fa49df6dce9a8d584f52da2'
* commit '7c94ceaeac65f4604fa49df6dce9a8d584f52da2':
Increase the volume of the AudioTrack instance used for the speech synthesis.
Merge commit '841ed8596a745d90822467bc2c0e13880bb59cc9'
* commit '841ed8596a745d90822467bc2c0e13880bb59cc9':
Reset the speech synth singleton to null when the service is destroyed
* changes:
Reset the speech synth singleton to null when the service is destroyed so it can be recreated when the service is initialized. In the interface with the native synthesizer library, close the lib in the finalizer, delete the global ref to the SynthProxy java object.
so it can be recreated when the service is initialized.
In the interface with the native synthesizer library, close the lib
in the finalizer, delete the global ref to the SynthProxy java object.
Merge commit '69a841a1649390d68b32b3bcf0c429a60c400cfa'
* commit '69a841a1649390d68b32b3bcf0c429a60c400cfa':
Make sure the speech synthesizer proxy is a singleton in the TTS service.
Merge commit '592f1a65815598f705260df9dbe5488e3990b45d'
* commit '592f1a65815598f705260df9dbe5488e3990b45d':
Prevent the setLanguage() method in TextToSpeech to change the language
for all current TextToSpeech instances by only caching the language
value so it is used with each subsequent utterance for this instance.
Synchronize calls to the engine around a global mutex since the engine
isn't thread-safe, except for the stop() call which is meant to interrupt
the synthesis loop.
Merge commit '4b897aa99bf71f933f5b202c1531858382122d6f'
* commit '4b897aa99bf71f933f5b202c1531858382122d6f':
Making sure that there are no calls made to the native TTS
Merge commit '19e53f7ae506ccb294f46a36c70d7f3154b258ad'
* commit '19e53f7ae506ccb294f46a36c70d7f3154b258ad':
Delete global ref to the weak reference to the SynthProxy in the
Merge commit '65d99c3cbf149776c7ec4ea1f3cb1f4470d2be83'
* commit '65d99c3cbf149776c7ec4ea1f3cb1f4470d2be83':
Fixing a race condition that causes synthesis to not be aborted
Merge commit '83fa3565896ed19846f6498c00de3cc9a29b1a57'
* commit '83fa3565896ed19846f6498c00de3cc9a29b1a57':
Fixing a bug in how stop works - keep stop from always stopping
Merge commit 'b197021e160091897391cd27093c35bd3c22a7fc'
* commit 'b197021e160091897391cd27093c35bd3c22a7fc':
Making sure that the audio buffers for speech are cleared
* changes:
Fixing a bug in how stop works - keep stop from always stopping the currently speaking item if that item does not belong to the app that is trying to do the stop.
the currently speaking item if that item does not belong to the
app that is trying to do the stop.
Also adds back the functionality of globally stopping speech that
was lost when utterance IDs were added (needed by screen reader).
Merge commit 'df01d6b50b4502f12947bf4c6cc733a4a467f682'
* commit 'df01d6b50b4502f12947bf4c6cc733a4a467f682':
Implementing utterance ID callbacks for silence and pre-recorded files
Merge commit '3a27b29e41777e58fbcdca440a00676915ebea4f'
* commit '3a27b29e41777e58fbcdca440a00676915ebea4f':
Make VPN connect even when DNS is not present and other fixes.
* Changes:
+ As title.
+ Add two new states to VpnState: UNKNOWN and UNUSABLE.
+ Add more debug messages when stopping a service and when DNS being
overridden.