mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-08 10:42:50 -06:00
Add new Android voice translator sample app
This adds a simple voice translator Android app that uses the JNI bindings to the PGF C runtime. Caveats: - Since the C runtime doesn't compile for Android right now, I've bundled an old copy, along with its Java bindings. That should be removed once the C runtime compiels for Android again. - Adding an automated build would be nice. - Replacing the grammar requires editing a Java file, that should really be more dynamic.
This commit is contained in:
85
src/ui/android/res/layout/activity_main.xml
Normal file
85
src/ui/android/res/layout/activity_main.xml
Normal file
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/top_bg"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:padding="8dp"
|
||||
android:background="#C0C0C0"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/start_stop"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_alignTop="@+id/source_language"
|
||||
android:layout_alignBottom="@+id/target_language"
|
||||
android:layout_alignParentRight="true"
|
||||
android:padding="8dp"
|
||||
android:src="@drawable/ic_mic"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:contentDescription="@string/microphone"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/switch_languages"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_alignTop="@+id/source_language"
|
||||
android:layout_alignBottom="@+id/target_language"
|
||||
android:layout_toLeftOf="@id/start_stop"
|
||||
android:padding="8dp"
|
||||
android:src="@drawable/ic_action_switch"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:contentDescription="@string/switch_languages"
|
||||
/>
|
||||
|
||||
<org.grammaticalframework.ui.android.LanguageSelector
|
||||
android:id="@+id/source_language"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_toLeftOf="@id/switch_languages"
|
||||
android:padding="0dp"
|
||||
/>
|
||||
|
||||
<org.grammaticalframework.ui.android.LanguageSelector
|
||||
android:id="@+id/target_language"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_below="@id/source_language"
|
||||
android:layout_toLeftOf="@id/switch_languages"
|
||||
android:padding="0dp"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<org.grammaticalframework.ui.android.ConversationView
|
||||
android:id="@+id/conversation"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_below="@id/top_bg"
|
||||
>
|
||||
<LinearLayout
|
||||
android:id="@+id/conversation_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp"
|
||||
>
|
||||
</LinearLayout>
|
||||
</org.grammaticalframework.ui.android.ConversationView>
|
||||
|
||||
</RelativeLayout>
|
||||
11
src/ui/android/res/layout/first_person_utterance.xml
Normal file
11
src/ui/android/res/layout/first_person_utterance.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginRight="32dp"
|
||||
android:layout_gravity="left"
|
||||
android:padding="8dp"
|
||||
android:textSize="20sp"
|
||||
android:background="@drawable/first_person_utterance_bg"
|
||||
/>
|
||||
8
src/ui/android/res/layout/languages_item.xml
Normal file
8
src/ui/android/res/layout/languages_item.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:padding="8dp"
|
||||
android:textSize="20sp"
|
||||
/>
|
||||
12
src/ui/android/res/layout/second_person_utterance.xml
Normal file
12
src/ui/android/res/layout/second_person_utterance.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginLeft="32dp"
|
||||
android:layout_gravity="right"
|
||||
android:padding="8dp"
|
||||
android:textSize="20sp"
|
||||
android:background="@drawable/second_person_utterance_bg"
|
||||
/>
|
||||
Reference in New Issue
Block a user