Fix bug in TTS service where the language setting was using the default language
when the setting wasn't enforced, and vice-versa.
Cleaning the log of the native TTS layer to use LOGV for verbose messages,
rather than LOGI.
diff --git a/packages/TtsService/jni/android_tts_SynthProxy.cpp b/packages/TtsService/jni/android_tts_SynthProxy.cpp
index 0aa4fa5..0dafcc1 100644
--- a/packages/TtsService/jni/android_tts_SynthProxy.cpp
+++ b/packages/TtsService/jni/android_tts_SynthProxy.cpp
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
+#define LOG_NDEBUG 0
 
 #include <stdio.h>
 #include <unistd.h>
@@ -168,7 +168,7 @@
 static tts_callback_status ttsSynthDoneCB(void *& userdata, uint32_t rate,
                            AudioSystem::audio_format format, int channel,
                            int8_t *&wav, size_t &bufferSize, tts_synth_status status) {
-    LOGI("ttsSynthDoneCallback: %d bytes", bufferSize);
+    LOGV("ttsSynthDoneCallback: %d bytes", bufferSize);
 
     if (userdata == NULL){
         LOGE("userdata == NULL");
@@ -178,7 +178,7 @@
     SynthProxyJniStorage* pJniData = (SynthProxyJniStorage*)(pForAfter->jniStorage);
 
     if (pForAfter->usageMode == USAGEMODE_PLAY_IMMEDIATELY){
-        LOGI("Direct speech");
+        LOGV("Direct speech");
 
         if (wav == NULL) {
             delete pForAfter;
@@ -189,16 +189,16 @@
             prepAudioTrack(pJniData, rate, format, channel);
             if (pJniData->mAudioOut) {
                 pJniData->mAudioOut->write(wav, bufferSize);
-                LOGI("AudioTrack wrote: %d bytes", bufferSize);
+                //LOGV("AudioTrack wrote: %d bytes", bufferSize);
             } else {
-                LOGI("Can't play, null audiotrack");
+                LOGE("Can't play, null audiotrack");
             }
         }
     } else  if (pForAfter->usageMode == USAGEMODE_WRITE_TO_FILE) {
-        LOGI("Save to file");
+        LOGV("Save to file");
         if (wav == NULL) {
             delete pForAfter;
-            LOGI("Null: speech has completed");
+            LOGV("Null: speech has completed");
         }
         if (bufferSize > 0){
             fwrite(wav, 1, bufferSize, pForAfter->outputFile);
diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java
index 21f56f8..a6a2dd3 100755
--- a/packages/TtsService/src/android/tts/TtsService.java
+++ b/packages/TtsService/src/android/tts/TtsService.java
@@ -170,6 +170,39 @@
     }
 
 
+    private String getDefaultLanguage() {
+        String defaultLang = android.provider.Settings.Secure.getString(mResolver,
+                android.provider.Settings.Secure.TTS_DEFAULT_LANG);
+        if (defaultLang == null) {
+            return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_LANG;
+        } else {
+            return defaultLang;
+        }
+    }
+
+
+    private String getDefaultCountry() {
+        String defaultCountry = android.provider.Settings.Secure.getString(mResolver,
+                android.provider.Settings.Secure.TTS_DEFAULT_COUNTRY);
+        if (defaultCountry == null) {
+            return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_COUNTRY;
+        } else {
+            return defaultCountry;
+        }
+    }
+
+
+    private String getDefaultLocVariant() {
+        String defaultVar = android.provider.Settings.Secure.getString(mResolver,
+                android.provider.Settings.Secure.TTS_DEFAULT_VARIANT);
+        if (defaultVar == null) {
+            return TextToSpeech.Engine.FALLBACK_TTS_DEFAULT_VARIANT;
+        } else {
+            return defaultVar;
+        }
+    }
+
+
     private void setSpeechRate(int rate) {
         if (isDefaultEnforced()) {
             nativeSynth.setSpeechRate(getDefaultRate());
@@ -185,15 +218,16 @@
 
 
     private void setLanguage(String lang, String country, String variant) {
-        Log.v("TTS", "TtsService.setLanguage("+lang+", "+country+", "+variant+")");
+        Log.v("TTS", "TtsService.setLanguage(" + lang + ", " + country + ", " + variant + ")");
         if (isDefaultEnforced()) {
-            nativeSynth.setLanguage(lang, country, variant);
+            nativeSynth.setLanguage(getDefaultLanguage(), getDefaultCountry(),
+                    getDefaultLocVariant());
         } else {
-            // TODO handle default language
-            nativeSynth.setLanguage("eng", "USA", "");
+            nativeSynth.setLanguage(lang, country, variant);
         }
     }
 
+
     /**
      * Adds a sound resource to the TTS.
      *