Add a widget configuration screen

This commit is contained in:
Jimmy Shih
2012-10-05 11:26:57 -07:00
parent 5db20b48ca
commit 1983b63ce8
14 changed files with 593 additions and 200 deletions
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2012 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
<Button
android:id="@+id/bottom_buttons_cancel"
android:layout_gravity="left"
android:text="@string/generic_cancel"
style="@style/BottomButton" />
<Button
android:id="@+id/bottom_buttons_add"
android:layout_gravity="right"
android:text="@string/generic_add"
style="@style/BottomButton" />
</merge>
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2012 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
<Button
android:id="@+id/bottom_buttons_add"
android:layout_gravity="left"
android:text="@string/generic_add"
style="@style/BottomButton" />
<Button
android:id="@+id/bottom_buttons_cancel"
android:layout_gravity="right"
android:text="@string/generic_cancel"
style="@style/BottomButton" />
</merge>
+1 -1
View File
@@ -52,7 +52,7 @@ limitations under the License.
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:singleLine="true"
style="@style/TextTiny" />
style="@style/TextMicro" />
</RelativeLayout>
<ImageButton
android:background="@android:color/transparent"
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2012 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<ScrollView style="@style/ScrollView.WithBottomButtons" >
<TableLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:padding="8dp" >
<TableRow style="@style/TrackWidgetConfigRow" >
<Spinner
android:id="@+id/track_widget_config_item1"
style="@style/TrackWidgetConfigSpinner" />
<LinearLayout style="@style/TrackWidgetConfigSpacer" />
<Spinner
android:id="@+id/track_widget_config_item3"
style="@style/TrackWidgetConfigSpinner" />
</TableRow>
<TableRow style="@style/TrackWidgetConfigRow" >
<Spinner
android:id="@+id/track_widget_config_item2"
style="@style/TrackWidgetConfigSpinner" />
<LinearLayout style="@style/TrackWidgetConfigSpacer" />
<Spinner
android:id="@+id/track_widget_config_item4"
style="@style/TrackWidgetConfigSpinner" />
</TableRow>
</TableLayout>
</ScrollView>
<LinearLayout style="@style/BottomButtonBar" >
<include layout="@layout/bottom_buttons" />
</LinearLayout>
</LinearLayout>
+100 -89
View File
@@ -20,106 +20,117 @@ limitations under the License.
android:layout_width="fill_parent"
android:padding="@dimen/widget_margin" >
<LinearLayout
android:clickable="true"
android:id="@+id/track_widget_statistics"
android:layout_alignParentTop="true"
android:layout_height="wrap_content"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="4dp" >
<LinearLayout style="@style/LinearLayoutHorizontal" >
<!-- average moving speed -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_average_moving_speed_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
android:orientation="vertical" >
<LinearLayout
android:clickable="true"
android:gravity="center_vertical"
android:id="@+id/track_widget_statistics"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="4dp" >
<LinearLayout style="@style/LinearLayoutHorizontal" >
<!-- item1 -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_average_moving_speed_value"
style="@style/TrackWidgetValue" />
android:id="@+id/track_widget_item1_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_item1_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_item1_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
<!-- vertical separator -->
<LinearLayout style="@style/LinearLayoutVertifcal" >
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
<LinearLayout style="@style/TrackWidgetVerticalSeparator" />
</LinearLayout>
<!-- item3 -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_average_moving_speed_unit"
style="@style/TrackWidgetUnit" />
android:id="@+id/track_widget_item3_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_item3_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_item3_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- vertical separator -->
<LinearLayout style="@style/LinearLayoutVertifcal" >
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
<LinearLayout style="@style/TrackWidgetVerticalSeparator" />
</LinearLayout>
<!-- moving time -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:text="@string/stats_moving_time"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<!-- horizontal separator -->
<LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
<LinearLayout style="@style/LinearLayoutHorizontal" >
<!-- item2 -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_moving_time_value"
style="@style/TrackWidgetValue" />
android:id="@+id/track_widget_item2_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_item2_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_item2_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
<!-- vertical separator -->
<LinearLayout style="@style/LinearLayoutVertifcal" >
<LinearLayout style="@style/TrackWidgetVerticalSeparator" />
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
</LinearLayout>
<!-- item4 -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_item4_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_item4_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_item4_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- horizontal separator -->
<LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
<LinearLayout style="@style/LinearLayoutHorizontal" >
<!-- average speed -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:id="@+id/track_widget_average_speed_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_average_speed_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_average_speed_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
<!-- vertical separator -->
<LinearLayout style="@style/LinearLayoutVertifcal" >
<LinearLayout style="@style/TrackWidgetVerticalSeparator" />
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
</LinearLayout>
<!-- total distance -->
<LinearLayout style="@style/TrackWidgetItemContainer" >
<TextView
android:text="@string/stats_total_distance"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_total_distance_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_total_distance_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:gravity="center_vertical"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:paddingBottom="4dp"
android:paddingTop="4dp" >
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
<ImageButton
android:id="@+id/track_widget_record_button"
style="@style/TrackWidgetRecordButton" />
<TextView
android:id="@+id/track_widget_record_status"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight="4"
android:layout_width="0dp"
android:singleLine="true"
style="@style/TextSmall" />
<ImageButton
android:id="@+id/track_widget_stop_button"
style="@style/TrackWidgetStopButton" />
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_below="@id/track_widget_statistics"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:paddingBottom="4dp"
android:paddingTop="4dp" >
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
<ImageButton
android:id="@+id/track_widget_record_button"
style="@style/TrackWidgetRecordButton" />
<TextView
android:id="@+id/track_widget_record_status"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight="4"
android:layout_width="0dp"
android:singleLine="true"
style="@style/TextSmall" />
<ImageButton
android:id="@+id/track_widget_stop_button"
style="@style/TrackWidgetStopButton" />
<LinearLayout style="@style/TrackWidgetVerticalSpacer" />
</LinearLayout>
<ImageView style="@style/TrackWidgetLogo" />
</RelativeLayout>
+10 -5
View File
@@ -45,13 +45,17 @@ limitations under the License.
android:layout_weight="1"
android:layout_width="fill_parent"
android:orientation="vertical" >
<!-- item1 -->
<TextView
android:text="@string/stats_moving_time"
android:id="@+id/track_widget_item1_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_moving_time_value"
android:id="@+id/track_widget_item1_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_item1_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
<LinearLayout style="@style/TrackWidgetHorizontalSeparator" />
@@ -60,15 +64,16 @@ limitations under the License.
android:layout_weight="1"
android:layout_width="fill_parent"
android:orientation="vertical" >
<!-- item2 -->
<TextView
android:text="@string/stats_total_distance"
android:id="@+id/track_widget_item2_label"
style="@style/TrackWidgetLabel" />
<LinearLayout style="@style/TrackWidgetValueContainer" >
<TextView
android:id="@+id/track_widget_total_distance_value"
android:id="@+id/track_widget_item2_value"
style="@style/TrackWidgetValue" />
<TextView
android:id="@+id/track_widget_total_distance_unit"
android:id="@+id/track_widget_item2_unit"
style="@style/TrackWidgetUnit" />
</LinearLayout>
</LinearLayout>
+5 -1
View File
@@ -54,8 +54,12 @@ limitations under the License.
<string name="track_color_mode_slow_key">trackColorModeSlow</string>
<string name="track_color_mode_key">trackColorMode</string>
<string name="track_name_key">trackName</string>
<string name="track_widget_item1">trackWidgetItem1</string>
<string name="track_widget_item2">trackWidgetItem2</string>
<string name="track_widget_item3">trackWidgetItem3</string>
<string name="track_widget_item4">trackWidgetItem4</string>
<string name="voice_frequency_key">voiceFrequency</string>
<!-- Keys for persistend preferences. But they should not get backed up or restored. -->
<string name="auto_resume_track_current_retry_key">autoResumeTrackCurrentRetry</string>
<string name="recording_track_id_key">recordingTrackId</string>
+6
View File
@@ -2293,6 +2293,12 @@ limitations under the License.
Recording your track&#8230;
</string>
<!-- Track Widget -->
<string name="track_widget_config_title"
translation_description="Title of the page to configure the My Tracks widget items.">
Configure Widget Items
</string>
<!-- Unit -->
<string name="unit_feet"
translation_description="Abbreviation for feet. E.g., '2 ft'.">
+31 -7
View File
@@ -192,11 +192,11 @@ limitations under the License.
<item name="android:layout_width">wrap_content</item>
<item name="android:textSize">14sp</item>
</style>
<!-- The style for tiny size text -->
<style name="TextTiny">
<!-- The style for micro size text -->
<style name="TextMicro">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textSize">10sp</item>
<item name="android:textSize">12sp</item>
</style>
<!-- Theme selector -->
<style name="ThemeSelector" parent="android:Theme" />
@@ -212,6 +212,26 @@ limitations under the License.
<item name="android:layout_gravity">center_vertical</item>
<item name="android:scaleType">fitXY</item>
</style>
<!-- The style for the track widget config row -->
<style name="TrackWidgetConfigRow">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:paddingTop">16dp</item>
<item name="android:paddingBottom">16dp</item>
</style>
<!-- The style for the track widget config spacer -->
<style name="TrackWidgetConfigSpacer">
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_weight">2</item>
<item name="android:layout_width">0dp</item>
</style>
<!-- The style for the track widget config spiner -->
<style name="TrackWidgetConfigSpinner">
<item name="android:gravity">left</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">9</item>
<item name="android:layout_width">0dp</item>
</style>
<!-- The style for the track widget horizontal separator -->
<style name="TrackWidgetHorizontalSeparator">
<item name="android:background">@color/track_widget_line</item>
@@ -229,20 +249,22 @@ limitations under the License.
<item name="android:paddingTop">2dp</item>
</style>
<!-- The style for the track widget label -->
<style name="TrackWidgetLabel" parent="@style/TextSmall">
<style name="TrackWidgetLabel">
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:singleLine">true</item>
<item name="android:textAllCaps">true</item>
<item name="android:textColor">@color/orange</item>
<item name="android:textSize">10dp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="TrackWidgetLogo">
<item name="android:contentDescription">@string/my_tracks_app_name</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_alignParentTop">true</item>
<item name="android:layout_height">24dp</item>
<item name="android:layout_width">20dp</item>
<item name="android:layout_width">24dp</item>
<item name="android:padding">4dp</item>
<item name="android:scaleType">fitXY</item>
<item name="android:src">@drawable/my_tracks_icon</item>
@@ -262,15 +284,16 @@ limitations under the License.
<item name="android:src">@drawable/btn_stop_0</item>
</style>
<!-- The style for the track widget unit -->
<style name="TrackWidgetUnit" parent="@style/TextSmall">
<style name="TrackWidgetUnit">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_width">0dp</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:singleLine">true</item>
<item name="android:textSize">10dp</item>
</style>
<!-- The style for the track widget value -->
<style name="TrackWidgetValue" parent="@style/TextSmall">
<style name="TrackWidgetValue" parent="@style/TextMedium">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">2</item>
<item name="android:layout_width">0dp</item>
@@ -282,6 +305,7 @@ limitations under the License.
<style name="TrackWidgetValueContainer">
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginTop">-4dp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:orientation">horizontal</item>
</style>
+1
View File
@@ -15,6 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.google.android.apps.mytracks.widgets.TrackWidgetConfigActivity"
android:initialLayout="@layout/track_widget_large"
android:minHeight="110dp"
android:minResizeHeight="40dp"