Skip to content

Commit 83bd91a

Browse files
committed
plugin now works as a Fragment instead of Activity
To allow multi-plugin on a project, avoiding collisions with other potentially UnityPlayerActivity plugins
1 parent cc3df31 commit 83bd91a

12 files changed

+148
-114
lines changed
Binary file not shown.

UnitySpeechRecognizer/Assets/Scripts/AndroidBridgeUtils.cs

Lines changed: 0 additions & 77 deletions
This file was deleted.

UnitySpeechRecognizer/Assets/Scripts/AndroidBridge.cs renamed to UnitySpeechRecognizer/Assets/Scripts/SpeechRecognizer.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
11
using TMPro;
22
using UnityEngine;
33
using UnityEngine.UI;
4-
using static AndroidBridgeUtils;
4+
using static SpeechRecognizerPlugin;
55

6-
public class AndroidBridge : MonoBehaviour, IAndroidBridge
6+
public class SpeechRecognizer : MonoBehaviour, ISpeechRecognizerPlugin
77
{
88
[SerializeField] private Button startListeningBtn = null;
99
[SerializeField] private Toggle continuousListeningTgle = null;
1010
[SerializeField] private TextMeshProUGUI resultsTxt = null;
1111

12+
private SpeechRecognizerPlugin plugin = null;
13+
1214
void Start()
1315
{
14-
this.gameObject.name = ANDROIDBRIDGE_GO_NAME;
16+
plugin = SpeechRecognizerPlugin.GetPlatformPluginVersion(this.gameObject.name);
1517

1618
startListeningBtn.onClick.AddListener(StartListening);
1719
continuousListeningTgle.onValueChanged.AddListener(SetContinuousListening);
1820
}
1921

2022
private void StartListening()
2123
{
22-
AndroidRunnableCall("StartListening");
24+
plugin.StartListening();
2325
}
2426

2527
private void SetContinuousListening(bool isContinuous)
2628
{
27-
AndroidCall("SetContinuousListening", isContinuous);
29+
plugin.SetContinuousListening(isContinuous);
2830
}
2931

3032
public void OnResult(string recognizedResult)
@@ -38,5 +40,4 @@ public void OnResult(string recognizedResult)
3840
resultsTxt.text += result[i] + '\n';
3941
}
4042
}
41-
4243
}

UnitySpeechRecognizer/Assets/Scripts/AndroidBridge.cs.meta renamed to UnitySpeechRecognizer/Assets/Scripts/SpeechRecognizer.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using UnityEngine;
2+
3+
public abstract class SpeechRecognizerPlugin
4+
{
5+
protected string gameObjectName = "SpeechRecognizer";
6+
7+
protected SpeechRecognizerPlugin(string gameObjectName = null)
8+
{
9+
this.gameObjectName = gameObjectName;
10+
this.SetUp();
11+
}
12+
public static SpeechRecognizerPlugin GetPlatformPluginVersion(string gameObjectName = null)
13+
{
14+
if (Application.isEditor)
15+
return new SpeechRecognizerPlugin_Editor(gameObjectName);
16+
else
17+
{
18+
#if UNITY_ANDROID
19+
return new SpeechRecognizerPlugin_Android(gameObjectName);
20+
#endif
21+
}
22+
}
23+
24+
public interface ISpeechRecognizerPlugin
25+
{
26+
void OnResult(string recognizedResult);
27+
}
28+
29+
//Features
30+
protected abstract void SetUp();
31+
public abstract void StartListening();
32+
public abstract void SetContinuousListening(bool isContinuous);
33+
}

UnitySpeechRecognizer/Assets/Scripts/AndroidBridgeUtils.cs.meta renamed to UnitySpeechRecognizer/Assets/Scripts/SpeechRecognizerPlugin.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using UnityEngine;
2+
3+
public class SpeechRecognizerPlugin_Android : SpeechRecognizerPlugin
4+
{
5+
public string javaClassPackageName = "com.example.eric.unityspeechrecognizerplugin.SpeechRecognizerFragment";
6+
private AndroidJavaClass javaClass = null;
7+
AndroidJavaObject instance = null;
8+
9+
public SpeechRecognizerPlugin_Android(string gameObjectName) : base(gameObjectName) { }
10+
11+
public override void StartListening()
12+
{
13+
instance.Call("StartListening");
14+
}
15+
16+
public override void SetContinuousListening(bool isContinuous)
17+
{
18+
instance.Call("SetContinuousListening", isContinuous);
19+
}
20+
21+
protected override void SetUp()
22+
{
23+
Debug.Log("SetUpAndroid " + gameObjectName);
24+
javaClass = new AndroidJavaClass(javaClassPackageName);
25+
javaClass.CallStatic("SetUp", gameObjectName);
26+
instance = javaClass.GetStatic<AndroidJavaObject>("instance");
27+
}
28+
}

UnitySpeechRecognizer/Assets/Scripts/SpeechRecognizerPlugin_Android.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using UnityEngine;
2+
3+
public class SpeechRecognizerPlugin_Editor : SpeechRecognizerPlugin
4+
{
5+
private bool isContinuous = false;
6+
7+
public SpeechRecognizerPlugin_Editor(string gameObjectName) : base(gameObjectName) { }
8+
9+
public override void SetContinuousListening(bool isContinuous)
10+
{
11+
this.isContinuous = isContinuous;
12+
}
13+
14+
public override void StartListening()
15+
{
16+
SpeechRecognizer speechRecognizer = GameObject.FindObjectOfType<SpeechRecognizer>();
17+
if(this.isContinuous)
18+
speechRecognizer.OnResult("continuous listening test~continuous listening test~continuous listening test");
19+
else
20+
speechRecognizer.OnResult("start listening test~start listening test~start listening test");
21+
}
22+
23+
protected override void SetUp()
24+
{
25+
Debug.LogWarning("<b>WARNING</b>: You are running this plugin on Editor mode. Real recognition only works running on mobile device.");
26+
}
27+
}

UnitySpeechRecognizer/Assets/Scripts/SpeechRecognizerPlugin_Editor.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)