Also...
+ stop daemons before getting server IP;
+ remove setForeground();
+ add the DBG flag for Log.d calls.
PatchSet 3:
+ add CHALLENGE_ERROR and REMOTE_HUNG_UP to VpnManager
+ broadcast new error codes in VpnService
+ check local IP change instead of dns change
+ move removeStates() to VpnService.onFinalCleanUp()
PatchSet 7:
+ add encryption flag to PptpProfile
+ PptpService and MtpdHelper are revised accordingly
Removed the TTS_ prefix in the TextToSpeech class to follow the standard naming convention.
Moved the TTS-related intents from the Intent class to TextToSpeech and TextToSpeech.Engine.
Renamed the TextToSpeech.Engine constants that are used as extras for the
ACTION_TTS_CHECK_TTS_DATA intent to prefix them with EXTRA_.
Cleaned up the other TextToSpeech.Engine constant to remove superfluous mentions of
"TTS" in the name.
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.
* 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.
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.
* 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).
* 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.
* Changes
+ Add VpnConnectingError.java.
+ Broadcast the error returned by daemons.
+ Add error codes to VpnManager.java.
+ Add error code to VpnManager.broadcastConnectivity().
Patch Set 4:
+ Replace VPN_UP with VPN_STATUS in response to ip-up-vpn changes.
+ Make VpnServiceBinder a foreground service so that it won't be
interrupted by the system.
Patch Set 5:
+ Remove the support of returning 0 from daemon and restart socket in
AndroidServiceProxy.
Optimize backups by writing an entity only if the checksum of the data has changed.
Call into the hidden AudioService API to apply changed audio settings.
After restoring wifi data, make sure that the permissions and ownership are set
properly for the supplicant process to access it.
Locale isn't restoring properly - TODO added.