diff --git a/README.md b/README.md
index 6624eac6ca26dab795438b7d353fd360dd73bb09..36804e9a040bbc53802e3e6368b23fc489583bbf 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@ Network Detect
Storage IO
Command Line Support
UI Control Features (Status Bar and Navigation Bar)
+TTS Features
## Current Version
-1.0-git-201706291123
+1.0-git-201708111646
diff --git a/app/src/main/java/jp/ruby/rubylibrary/A.java b/app/src/main/java/jp/ruby/rubylibrary/A.java
deleted file mode 100644
index 311b446cf54d4fa3e365597032e731608c2c1f47..0000000000000000000000000000000000000000
--- a/app/src/main/java/jp/ruby/rubylibrary/A.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package jp.ruby.rubylibrary;
-
-/**
- * Created by Akeno on 2017/06/30.
- */
-
-public class A {
- public int a;
- public String b;
-}
diff --git a/app/src/main/java/jp/ruby/rubylibrary/JS.java b/app/src/main/java/jp/ruby/rubylibrary/JS.java
new file mode 100644
index 0000000000000000000000000000000000000000..b65b60d0e4732f7a3a0487d0d701a67c405d42f1
--- /dev/null
+++ b/app/src/main/java/jp/ruby/rubylibrary/JS.java
@@ -0,0 +1,40 @@
+package jp.ruby.rubylibrary;
+
+import android.content.Context;
+import android.speech.tts.TextToSpeech;
+import android.webkit.JavascriptInterface;
+import android.widget.Toast;
+
+import java.util.Locale;
+
+/**
+ * Created by Akeno on 2017/08/11.
+ */
+
+public class JS {
+ private Context context;
+ private TextToSpeech tts;
+
+ public JS(final Context context) {
+
+ // TODO Auto-generated constructor stub
+ this.context = context;
+ tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
+ @Override
+ public void onInit(int status) {
+ // TODO Auto-generated method stub
+ if (status == TextToSpeech.SUCCESS) {
+ int result = tts.setLanguage(Locale.SIMPLIFIED_CHINESE);
+ if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
+ Toast.makeText(context, "Language is not available.", Toast.LENGTH_SHORT).show();
+ }
+ }
+ }
+ });
+ }
+ @JavascriptInterface
+ public void say(String text) {
+ tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
+ }
+}
+
diff --git a/app/src/main/java/jp/ruby/rubylibrary/MainActivity.java b/app/src/main/java/jp/ruby/rubylibrary/MainActivity.java
index 02fd0f1e35707914f0c3647878599d262053d263..79757e252c3bd63930dd9405fe0b4a76738f0e26 100644
--- a/app/src/main/java/jp/ruby/rubylibrary/MainActivity.java
+++ b/app/src/main/java/jp/ruby/rubylibrary/MainActivity.java
@@ -16,11 +16,13 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import java.nio.charset.Charset;
+import java.util.Locale;
import yuki.control.extended.WebViewEx;
import yuki.resource.extended.GsonConvert;
import yuki.resource.extended.StorageIOManager;
import yuki.resource.extended.UIController;
+import yuki.tts.extended.TTSComplexController;
public class MainActivity extends Activity {
@@ -28,16 +30,12 @@ public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- A a=new A();
- a.a=1;
- a.b="hello world!";
- TextView tv=findViewById(R.id.tv);
- String gson=GsonConvert.SerializeObject(a);
- tv.setText(gson);
- A b=GsonConvert.DeserializeObject(gson,A.class);
- b=null;
- Intent aa=new Intent(Intent.ACTION_VIEW, Uri.parse("weixin://baidu.com/"));
- startActivity(aa);
+ WebView wv = (WebView) findViewById(R.id.wv);
+ wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
+ wv.getSettings().setJavaScriptEnabled(true);
+ wv.loadUrl("http://10.1.1.134:8282/Client.html");
+ wv.addJavascriptInterface(new TTSComplexController(getApplicationContext(), Locale.SIMPLIFIED_CHINESE), "tts");
+ //wv.addJavascriptInterface(new JS(getApplicationContext()), "tts");
}
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 8c68c42e11026725537387da93da0786ea5a4c4f..151cf76af4803eb591803111a70de82ec5097b95 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -7,9 +7,8 @@
android:orientation="vertical"
tools:context="jp.ruby.rubylibrary.MainActivity">
-
+ android:layout_height="match_parent" />
diff --git a/rubylib/build.gradle b/rubylib/build.gradle
index 2d8bb627dfcaa75834e3b878002b1909c96a246a..4041c9c6a0e81a31716cf6533d999139776375b9 100644
--- a/rubylib/build.gradle
+++ b/rubylib/build.gradle
@@ -7,7 +7,7 @@ publish {
userOrg = 'takeya-yuki-studio' //bintray注册的用户名
groupId = 'jp.ruby.rubylib' //compile引用时的第1部分groupId
artifactId = 'rubylib' //compile引用时的第2部分项目名
- publishVersion = '1.0.4' //compile引用时的第3部分版本号
+ publishVersion = '1.0.5' //compile引用时的第3部分版本号
desc = 'Ruby Extended Controls'
website = 'https://github.com/Takeya-Yuki/RubyLib.git'
}
@@ -20,8 +20,8 @@ android {
defaultConfig {
minSdkVersion 17
targetSdkVersion 26
- versionCode 4
- versionName "1.0.4"
+ versionCode 5
+ versionName "1.0.5"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
diff --git a/rubylib/src/main/java/yuki/tts/extended/TTSComplexController.java b/rubylib/src/main/java/yuki/tts/extended/TTSComplexController.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6b63d8ed7c95fbaa6ee1bff38d8e0abaa4dda64
--- /dev/null
+++ b/rubylib/src/main/java/yuki/tts/extended/TTSComplexController.java
@@ -0,0 +1,63 @@
+package yuki.tts.extended;
+
+import android.content.Context;
+import android.speech.tts.TextToSpeech;
+import android.speech.tts.UtteranceProgressListener;
+import android.util.Log;
+import android.webkit.JavascriptInterface;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Created by Akeno on 2017/08/11.
+ */
+
+public class TTSComplexController {
+ private Context context;
+ private TextToSpeech tts;
+ private ArrayList textList;
+
+ public TTSComplexController(final Context context,final Locale locale){
+
+ // TODO Auto-generated constructor stub
+ this.context = context;
+ textList=new ArrayList();
+ tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
+ @Override
+ public void onInit(int status) {
+ // TODO Auto-generated method stub
+ if (status == TextToSpeech.SUCCESS) {
+ int result = tts.setLanguage(locale);
+ if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
+ Log.d("TTS","Language '"+locale.getDisplayLanguage()+"'is not supported");
+ }
+ }
+ }
+ });
+ tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
+ @Override
+ public void onStart(String s) {
+
+ }
+
+ @Override
+ public void onDone(String s) {
+ if(textList.size()>0) {
+ textList.remove(0);
+ }
+ }
+
+ @Override
+ public void onError(String s) {
+
+ }
+ });
+ }
+ @JavascriptInterface
+ public void say(String text) {
+ textList.add(text);
+ tts.speak(text,TextToSpeech.QUEUE_ADD,null);
+ }
+}
diff --git a/rubylib/src/main/java/yuki/tts/extended/TTSSimpleController.java b/rubylib/src/main/java/yuki/tts/extended/TTSSimpleController.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d3b37e8e97bc4a4351d6458179c624227a54ead
--- /dev/null
+++ b/rubylib/src/main/java/yuki/tts/extended/TTSSimpleController.java
@@ -0,0 +1,40 @@
+package yuki.tts.extended;
+
+import android.content.Context;
+import android.speech.tts.TextToSpeech;
+import android.util.Log;
+import android.webkit.JavascriptInterface;
+import android.widget.Toast;
+
+import java.util.Locale;
+
+/**
+ * Created by Akeno on 2017/08/11.
+ */
+
+public class TTSSimpleController {
+ private Context context;
+ private TextToSpeech tts;
+
+ public TTSSimpleController(final Context context,final Locale locale){
+
+ // TODO Auto-generated constructor stub
+ this.context = context;
+ tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
+ @Override
+ public void onInit(int status) {
+ // TODO Auto-generated method stub
+ if (status == TextToSpeech.SUCCESS) {
+ int result = tts.setLanguage(locale);
+ if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
+ Log.d("TTS","Language '"+locale.getDisplayLanguage()+"'is not supported");
+ }
+ }
+ }
+ });
+ }
+ @JavascriptInterface
+ public void say(String text) {
+ tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
+ }
+}