diff options
| author | bringert <bringert@google.com> | 2013-10-04 16:26:46 +0000 |
|---|---|---|
| committer | bringert <bringert@google.com> | 2013-10-04 16:26:46 +0000 |
| commit | a35b286ce040919a71d27e5bf696886237c6c470 (patch) | |
| tree | 4e54cc1994a7f0760f76b0efe8c9e85ef38ec9ef /src/ui/android/res | |
| parent | f156a5e8f9c903f132541e1c34f1c9f5c1ee69af (diff) | |
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.
Diffstat (limited to 'src/ui/android/res')
25 files changed, 199 insertions, 3 deletions
diff --git a/src/ui/android/res/drawable-hdpi/ic_action_switch.png b/src/ui/android/res/drawable-hdpi/ic_action_switch.png Binary files differnew file mode 100644 index 000000000..5449a32b8 --- /dev/null +++ b/src/ui/android/res/drawable-hdpi/ic_action_switch.png diff --git a/src/ui/android/res/drawable-hdpi/ic_launcher.png b/src/ui/android/res/drawable-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..a6c350aea --- /dev/null +++ b/src/ui/android/res/drawable-hdpi/ic_launcher.png diff --git a/src/ui/android/res/drawable-hdpi/ic_mic.png b/src/ui/android/res/drawable-hdpi/ic_mic.png Binary files differnew file mode 100644 index 000000000..f79ff489b --- /dev/null +++ b/src/ui/android/res/drawable-hdpi/ic_mic.png diff --git a/src/ui/android/res/drawable-mdpi/ic_action_switch.png b/src/ui/android/res/drawable-mdpi/ic_action_switch.png Binary files differnew file mode 100644 index 000000000..ecf7d0347 --- /dev/null +++ b/src/ui/android/res/drawable-mdpi/ic_action_switch.png diff --git a/src/ui/android/res/drawable-mdpi/ic_launcher.png b/src/ui/android/res/drawable-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..204c58a8f --- /dev/null +++ b/src/ui/android/res/drawable-mdpi/ic_launcher.png diff --git a/src/ui/android/res/drawable-mdpi/ic_mic.png b/src/ui/android/res/drawable-mdpi/ic_mic.png Binary files differnew file mode 100644 index 000000000..8f7f55cf9 --- /dev/null +++ b/src/ui/android/res/drawable-mdpi/ic_mic.png diff --git a/src/ui/android/res/drawable-xhdpi/ic_action_switch.png b/src/ui/android/res/drawable-xhdpi/ic_action_switch.png Binary files differnew file mode 100644 index 000000000..b5da00fb2 --- /dev/null +++ b/src/ui/android/res/drawable-xhdpi/ic_action_switch.png diff --git a/src/ui/android/res/drawable-xhdpi/ic_launcher.png b/src/ui/android/res/drawable-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..7f212cc6b --- /dev/null +++ b/src/ui/android/res/drawable-xhdpi/ic_launcher.png diff --git a/src/ui/android/res/drawable-xhdpi/ic_mic.png b/src/ui/android/res/drawable-xhdpi/ic_mic.png Binary files differnew file mode 100644 index 000000000..13d21274a --- /dev/null +++ b/src/ui/android/res/drawable-xhdpi/ic_mic.png diff --git a/src/ui/android/res/drawable-xxhdpi/ic_launcher.png b/src/ui/android/res/drawable-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..da2c7a235 --- /dev/null +++ b/src/ui/android/res/drawable-xxhdpi/ic_launcher.png diff --git a/src/ui/android/res/drawable/brushed_metal.png b/src/ui/android/res/drawable/brushed_metal.png Binary files differdeleted file mode 100644 index c2f03fe7d..000000000 --- a/src/ui/android/res/drawable/brushed_metal.png +++ /dev/null diff --git a/src/ui/android/res/drawable/first_person_utterance_bg.xml b/src/ui/android/res/drawable/first_person_utterance_bg.xml new file mode 100644 index 000000000..9eb02aef1 --- /dev/null +++ b/src/ui/android/res/drawable/first_person_utterance_bg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <corners android:radius="4dp" /> + <solid android:color="#75CD75" /> +</shape>
\ No newline at end of file diff --git a/src/ui/android/res/drawable/icon.png b/src/ui/android/res/drawable/icon.png Binary files differdeleted file mode 100644 index a07c69fa5..000000000 --- a/src/ui/android/res/drawable/icon.png +++ /dev/null diff --git a/src/ui/android/res/drawable/second_person_utterance_bg.xml b/src/ui/android/res/drawable/second_person_utterance_bg.xml new file mode 100644 index 000000000..4acf07c67 --- /dev/null +++ b/src/ui/android/res/drawable/second_person_utterance_bg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <corners android:radius="4dp" /> + <solid android:color="#7575CD" /> +</shape>
\ No newline at end of file diff --git a/src/ui/android/res/layout/activity_main.xml b/src/ui/android/res/layout/activity_main.xml new file mode 100644 index 000000000..b0ccab0ea --- /dev/null +++ b/src/ui/android/res/layout/activity_main.xml @@ -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>
\ No newline at end of file diff --git a/src/ui/android/res/layout/first_person_utterance.xml b/src/ui/android/res/layout/first_person_utterance.xml new file mode 100644 index 000000000..55779ae8f --- /dev/null +++ b/src/ui/android/res/layout/first_person_utterance.xml @@ -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" + /> diff --git a/src/ui/android/res/layout/languages_item.xml b/src/ui/android/res/layout/languages_item.xml new file mode 100644 index 000000000..d5f47ab27 --- /dev/null +++ b/src/ui/android/res/layout/languages_item.xml @@ -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" + /> diff --git a/src/ui/android/res/layout/second_person_utterance.xml b/src/ui/android/res/layout/second_person_utterance.xml new file mode 100644 index 000000000..416d85328 --- /dev/null +++ b/src/ui/android/res/layout/second_person_utterance.xml @@ -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" + /> diff --git a/src/ui/android/res/values-sw600dp/dimens.xml b/src/ui/android/res/values-sw600dp/dimens.xml new file mode 100644 index 000000000..44f01db75 --- /dev/null +++ b/src/ui/android/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ +<resources> + + <!-- + Customize dimensions originally defined in res/values/dimens.xml (such as + screen margins) for sw600dp devices (e.g. 7" tablets) here. + --> + +</resources> diff --git a/src/ui/android/res/values-sw720dp-land/dimens.xml b/src/ui/android/res/values-sw720dp-land/dimens.xml new file mode 100644 index 000000000..61e3fa8fb --- /dev/null +++ b/src/ui/android/res/values-sw720dp-land/dimens.xml @@ -0,0 +1,9 @@ +<resources> + + <!-- + Customize dimensions originally defined in res/values/dimens.xml (such as + screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. + --> + <dimen name="activity_horizontal_margin">128dp</dimen> + +</resources> diff --git a/src/ui/android/res/values-v11/styles.xml b/src/ui/android/res/values-v11/styles.xml new file mode 100644 index 000000000..3c02242ad --- /dev/null +++ b/src/ui/android/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/src/ui/android/res/values-v14/styles.xml b/src/ui/android/res/values-v14/styles.xml new file mode 100644 index 000000000..a91fd0372 --- /dev/null +++ b/src/ui/android/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/src/ui/android/res/values/dimens.xml b/src/ui/android/res/values/dimens.xml new file mode 100644 index 000000000..55c1e5908 --- /dev/null +++ b/src/ui/android/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/src/ui/android/res/values/strings.xml b/src/ui/android/res/values/strings.xml index 0d7b9a606..26601be1b 100644 --- a/src/ui/android/res/values/strings.xml +++ b/src/ui/android/res/values/strings.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <string name="app_name">GFTranslator</string> - <string name="action_settings">Settings</string> - <string name="hello_world">Hello world!</string> + <string name="app_name">GF Translator</string> + + <string name="microphone">Microphone</string> + <string name="switch_languages">Switch languages</string> </resources> diff --git a/src/ui/android/res/values/styles.xml b/src/ui/android/res/values/styles.xml new file mode 100644 index 000000000..6ce89c7ba --- /dev/null +++ b/src/ui/android/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> |
