A jogging timer for Android wear.
Revision | d4f68fa3ad6a5c1507733aff63c0ac8cf914dcf1 (tree) |
---|---|
Zeit | 2022-07-07 00:31:21 |
Autor | MRSa <mrsa@myad...> |
Commiter | MRSa |
メイン画面の表示モード・基準値を設定するダイアログを表示するようにした。
@@ -1,17 +1,6 @@ | ||
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | 2 | <project version="4"> |
3 | 3 | <component name="deploymentTargetDropDown"> |
4 | - <runningDeviceTargetSelectedWithDropDown> | |
5 | - <Target> | |
6 | - <type value="RUNNING_DEVICE_TARGET" /> | |
7 | - <deviceKey> | |
8 | - <Key> | |
9 | - <type value="VIRTUAL_DEVICE_PATH" /> | |
10 | - <value value="C:\Users\MRSa\.android\avd\Android_Wear_Round_Chin_API_26.avd" /> | |
11 | - </Key> | |
12 | - </deviceKey> | |
13 | - </Target> | |
14 | - </runningDeviceTargetSelectedWithDropDown> | |
15 | 4 | <targetSelectedWithDropDown> |
16 | 5 | <Target> |
17 | 6 | <type value="QUICK_BOOT_TARGET" /> |
@@ -24,6 +24,7 @@ | ||
24 | 24 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/column_list.xml" value="1.0904605263157894" /> |
25 | 25 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/icon_list.xml" value="1.0904605263157894" /> |
26 | 26 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/information_dialog.xml" value="1.0904605263157894" /> |
27 | + <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/select_reference_dialog.xml" value="1.7394366197183098" /> | |
27 | 28 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/select_set_reference_dialog.xml" value="1.7570422535211268" /> |
28 | 29 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-notround/time_model_picker.xml" value="1.0904605263157894" /> |
29 | 30 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/activity_list.xml" value="0.9636627906976745" /> |
@@ -33,6 +34,7 @@ | ||
33 | 34 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/column_list.xml" value="0.9636627906976745" /> |
34 | 35 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/icon_list.xml" value="0.9636627906976745" /> |
35 | 36 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/information_dialog.xml" value="0.9636627906976745" /> |
37 | + <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/select_reference_dialog.xml" value="1.5502092050209204" /> | |
36 | 38 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/select_set_reference_dialog.xml" value="1.5658995815899581" /> |
37 | 39 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/layout-round/time_model_picker.xml" value="0.9636627906976745" /> |
38 | 40 | <entry key="..\:/Users/MRSa/AndroidStudioProjects/JoggingTimer/wear/src/main/res/menu/selector_detail.xml" value="2.1392857142857142" /> |
@@ -300,7 +300,6 @@ public class DetailActivity extends AppCompatActivity implements RecordDetailSet | ||
300 | 300 | } |
301 | 301 | } |
302 | 302 | }); |
303 | - | |
304 | 303 | ret = true; |
305 | 304 | } |
306 | 305 | else if (itemId == R.id.menu_share_data) |
@@ -12,7 +12,7 @@ import net.osdn.gokigen.joggingtimer.R; | ||
12 | 12 | * |
13 | 13 | * |
14 | 14 | */ |
15 | -public class ButtonClickListener implements View.OnClickListener, View.OnLongClickListener, View.OnTouchListener, Parcelable | |
15 | +public class ButtonClickListener implements View.OnClickListener, View.OnLongClickListener, View.OnTouchListener, Parcelable | |
16 | 16 | { |
17 | 17 | private final String TAG = toString(); |
18 | 18 | private IClickCallback callback = null; |
@@ -1,8 +1,13 @@ | ||
1 | 1 | package net.osdn.gokigen.joggingtimer.stopwatch; |
2 | 2 | |
3 | +import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_DISPLAY_LAPGRAPHIC; | |
4 | +import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_REFERENCE_TIME_SELECTION; | |
5 | + | |
3 | 6 | import android.content.Intent; |
7 | +import android.content.SharedPreferences; | |
4 | 8 | import android.graphics.Color; |
5 | 9 | import android.os.Bundle; |
10 | +import android.preference.PreferenceManager; | |
6 | 11 | import android.util.Log; |
7 | 12 | import android.view.KeyEvent; |
8 | 13 | import android.view.View; |
@@ -12,12 +17,15 @@ import android.widget.RelativeLayout; | ||
12 | 17 | import android.widget.TextView; |
13 | 18 | |
14 | 19 | import androidx.appcompat.app.AppCompatActivity; |
20 | +import androidx.fragment.app.FragmentManager; | |
15 | 21 | import androidx.wear.ambient.AmbientModeSupport; |
16 | 22 | import androidx.wear.widget.BoxInsetLayout; |
17 | 23 | |
18 | 24 | import net.osdn.gokigen.joggingtimer.R; |
19 | 25 | import net.osdn.gokigen.joggingtimer.recordlist.ListActivity; |
20 | 26 | import net.osdn.gokigen.joggingtimer.stopwatch.graphview.LapTimeGraphView; |
27 | +import net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog; | |
28 | +import net.osdn.gokigen.joggingtimer.utilities.SetReferenceDialog; | |
21 | 29 | import net.osdn.gokigen.joggingtimer.utilities.TimeStringConvert; |
22 | 30 | |
23 | 31 | import java.text.SimpleDateFormat; |
@@ -29,7 +37,7 @@ import java.util.Locale; | ||
29 | 37 | * |
30 | 38 | * |
31 | 39 | */ |
32 | -public class MainActivity extends AppCompatActivity implements IClickCallback, MyTimerTrigger.ITimeoutReceiver, MyTimerCounter.ICounterStatusNotify, AmbientModeSupport.AmbientCallbackProvider | |
40 | +public class MainActivity extends AppCompatActivity implements IClickCallback, MyTimerTrigger.ITimeoutReceiver, MyTimerCounter.ICounterStatusNotify, AmbientModeSupport.AmbientCallbackProvider, SelectReferenceViewModeDialog.SelectReferenceCallback | |
33 | 41 | { |
34 | 42 | private final String TAG = toString(); |
35 | 43 | private final IWearableActivityControl controller = new WearableActivityController(); |
@@ -38,6 +46,7 @@ public class MainActivity extends AppCompatActivity implements IClickCallback, M | ||
38 | 46 | private boolean isLaptimeView = true; |
39 | 47 | private boolean pendingStart = false; |
40 | 48 | private int currentLapCount = 0; |
49 | + private int currentReferenceId = 0; | |
41 | 50 | private ITimerStopTrigger stopTrigger = null; |
42 | 51 | |
43 | 52 | /** |
@@ -98,6 +107,7 @@ public class MainActivity extends AppCompatActivity implements IClickCallback, M | ||
98 | 107 | } |
99 | 108 | } |
100 | 109 | isLaptimeView = controller.getDisplayMode(); |
110 | + currentReferenceId = controller.getReferenceTimerSelection(); | |
101 | 111 | //Log.v(TAG, "isLaptimeView " + isLaptimeView); |
102 | 112 | |
103 | 113 | controller.setupReferenceData(); |
@@ -453,11 +463,32 @@ public class MainActivity extends AppCompatActivity implements IClickCallback, M | ||
453 | 463 | @Override |
454 | 464 | public boolean pushedArea() |
455 | 465 | { |
456 | - isLaptimeView = !isLaptimeView; | |
457 | - controller.setDisplayMode(isLaptimeView); | |
458 | - Log.v(TAG, "pushedArea() : " + isLaptimeView); | |
459 | - changeGraphicView(isLaptimeView); | |
460 | - updateTimerLabel(); | |
466 | + try | |
467 | + { | |
468 | + // 基準値の設定ダイアログを表示する | |
469 | + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); | |
470 | + final boolean viewMode = preferences.getBoolean(PREF_KEY_DISPLAY_LAPGRAPHIC, false); | |
471 | + final int selectionId = preferences.getInt(PREF_KEY_REFERENCE_TIME_SELECTION, 0); | |
472 | + final SelectReferenceViewModeDialog.SelectReferenceCallback callback = this; | |
473 | + | |
474 | + this.runOnUiThread(() -> { | |
475 | + try | |
476 | + { | |
477 | + // 基準値&表示モード設定ダイアログを表示する | |
478 | + SelectReferenceViewModeDialog dialog = SelectReferenceViewModeDialog.newInstance(getString(R.string.select_reference_title), " ", viewMode, selectionId, callback); | |
479 | + FragmentManager manager = getSupportFragmentManager(); | |
480 | + dialog.show(manager, "dialog"); | |
481 | + } | |
482 | + catch (Exception e) | |
483 | + { | |
484 | + e.printStackTrace(); | |
485 | + } | |
486 | + }); | |
487 | + } | |
488 | + catch (Exception e) | |
489 | + { | |
490 | + e.printStackTrace(); | |
491 | + } | |
461 | 492 | return (true); |
462 | 493 | } |
463 | 494 |
@@ -761,4 +792,28 @@ public class MainActivity extends AppCompatActivity implements IClickCallback, M | ||
761 | 792 | } |
762 | 793 | }); |
763 | 794 | } |
795 | + | |
796 | + @Override | |
797 | + public void selectedReferenceViewMode(int referenceId, int viewMode) | |
798 | + { | |
799 | + isLaptimeView = (viewMode != 0); | |
800 | + currentReferenceId = referenceId; | |
801 | + | |
802 | + controller.setDisplayMode(isLaptimeView); | |
803 | + controller.setReferenceTimerSelection(currentReferenceId); | |
804 | + controller.setupReferenceData(); | |
805 | + | |
806 | + Log.v(TAG, "pushedArea() : " + isLaptimeView + " REF: " + currentReferenceId); | |
807 | + | |
808 | + runOnUiThread(() -> { | |
809 | + // ラップタイム表示状態の更新 | |
810 | + reloadLapTimeList(true); | |
811 | + | |
812 | + // 表示ビューの切り替え | |
813 | + changeGraphicView(isLaptimeView); | |
814 | + | |
815 | + // 表示のボタン状態を変更 | |
816 | + updateTimerLabel(); | |
817 | + }); | |
818 | + } | |
764 | 819 | } |
@@ -242,7 +242,7 @@ public class MyTimerCounter implements ITimerCounter, IDatabaseReloadCallback | ||
242 | 242 | referenceTimeA = new ArrayList<>(timelist); |
243 | 243 | size = referenceTimeA.size(); |
244 | 244 | } |
245 | - if (referenceTimeId == 1) | |
245 | + else if (referenceTimeId == 1) | |
246 | 246 | { |
247 | 247 | referenceTimeB = null; |
248 | 248 | referenceTimeB = new ArrayList<>(timelist); |
@@ -26,6 +26,9 @@ import java.util.ArrayList; | ||
26 | 26 | |
27 | 27 | import static android.content.Context.VIBRATOR_SERVICE; |
28 | 28 | |
29 | +import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_DISPLAY_LAPGRAPHIC; | |
30 | +import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_REFERENCE_TIME_SELECTION; | |
31 | + | |
29 | 32 | import androidx.appcompat.app.AppCompatActivity; |
30 | 33 | import androidx.core.app.ActivityCompat; |
31 | 34 | import androidx.core.content.ContextCompat; |
@@ -40,8 +43,6 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry | ||
40 | 43 | private final String TAG = toString(); |
41 | 44 | private final String PREF_KEY_TIMER_STARTED = "TMR_START"; |
42 | 45 | private final String PREF_KEY_TIMER_INDEXID = "TMR_INDEX"; |
43 | - private final String PREF_KEY_DISPLAY_LAPGRAPHIC = "DISP_LAPGRPH"; | |
44 | - private final String PREF_KEY_REFERENCE_TIME_SELECTION = "REF_TIME_SEL"; | |
45 | 46 | |
46 | 47 | private SharedPreferences preferences = null; |
47 | 48 | private final ButtonClickListener clickListener = new ButtonClickListener(); |
@@ -335,7 +335,8 @@ class TimeEntryDatabase implements ITimeEntryDatabase | ||
335 | 335 | if (id == 0) |
336 | 336 | { |
337 | 337 | return (REFERENCE_ICON_ID_A); |
338 | - } else if (id == 1) | |
338 | + } | |
339 | + else if (id == 1) | |
339 | 340 | { |
340 | 341 | return (REFERENCE_ICON_ID_B); |
341 | 342 | } |
@@ -0,0 +1,175 @@ | ||
1 | +package net.osdn.gokigen.joggingtimer.utilities; | |
2 | + | |
3 | +import android.app.Activity; | |
4 | +import android.app.AlertDialog; | |
5 | +import android.app.Dialog; | |
6 | +import android.os.Bundle; | |
7 | +import android.util.Log; | |
8 | +import android.view.LayoutInflater; | |
9 | +import android.view.View; | |
10 | +import android.widget.AdapterView; | |
11 | +import android.widget.ArrayAdapter; | |
12 | +import android.widget.Spinner; | |
13 | + | |
14 | +import androidx.annotation.NonNull; | |
15 | +import androidx.fragment.app.DialogFragment; | |
16 | + | |
17 | +import net.osdn.gokigen.joggingtimer.R; | |
18 | + | |
19 | + | |
20 | +public class SelectReferenceViewModeDialog extends DialogFragment | |
21 | +{ | |
22 | + private final String TAG = toString(); | |
23 | + public static final String PREF_KEY_DISPLAY_LAPGRAPHIC = "DISP_LAPGRPH"; | |
24 | + public static final String PREF_KEY_REFERENCE_TIME_SELECTION = "REF_TIME_SEL"; | |
25 | + | |
26 | + int selectedId = 0; | |
27 | + int selectedMode = 0; | |
28 | + String title = ""; | |
29 | + String message = ""; | |
30 | + SelectReferenceViewModeDialog.SelectReferenceCallback callback = null; | |
31 | + Dialog myDialog = null; | |
32 | + | |
33 | + public static SelectReferenceViewModeDialog newInstance(String title, String message, boolean viewMode, int referenceId, @NonNull SelectReferenceViewModeDialog.SelectReferenceCallback callback) | |
34 | + { | |
35 | + SelectReferenceViewModeDialog instance = new SelectReferenceViewModeDialog(); | |
36 | + instance.prepare(callback, viewMode, referenceId, title, message); | |
37 | + | |
38 | + // パラメータはBundleにまとめておく | |
39 | + Bundle arguments = new Bundle(); | |
40 | + arguments.putString("title", title); | |
41 | + arguments.putString("message", message); | |
42 | + instance.setArguments(arguments); | |
43 | + | |
44 | + return (instance); | |
45 | + } | |
46 | + | |
47 | + /** | |
48 | + * | |
49 | + * | |
50 | + */ | |
51 | + private void prepare(SelectReferenceViewModeDialog.SelectReferenceCallback callback, boolean viewMode, int referenceId, String title, String message) | |
52 | + { | |
53 | + this.callback = callback; | |
54 | + this.title = title; | |
55 | + this.message = message; | |
56 | + selectedMode = (viewMode) ? 1 : 0; | |
57 | + selectedId = referenceId; | |
58 | + } | |
59 | + | |
60 | + /** | |
61 | + * | |
62 | + * | |
63 | + */ | |
64 | + @Override | |
65 | + public @NonNull Dialog onCreateDialog(Bundle savedInstanceState) | |
66 | + { | |
67 | + String title = this.title; | |
68 | + String message = this.message; | |
69 | + if (savedInstanceState != null) | |
70 | + { | |
71 | + title = savedInstanceState.getString("title"); | |
72 | + message = savedInstanceState.getString("message"); | |
73 | + } | |
74 | + Activity activity = getActivity(); | |
75 | + final AlertDialog.Builder alertDialog = new AlertDialog.Builder(activity); | |
76 | + LayoutInflater inflater = activity.getLayoutInflater(); | |
77 | + final View alertView = inflater.inflate(R.layout.select_reference_dialog, null, false); | |
78 | + alertDialog.setView(alertView); | |
79 | + | |
80 | + | |
81 | + final String[] viewObjects = activity.getResources().getStringArray(R.array.show_laptime_array); | |
82 | + final Spinner spinner0 = alertView.findViewById(R.id.show_laptime_mode); | |
83 | + ArrayAdapter<String> arrayAdapter0 = new ArrayAdapter<>(activity, android.R.layout.simple_list_item_1, viewObjects); | |
84 | + // selectedMode = 0; | |
85 | + try | |
86 | + { | |
87 | + spinner0.setAdapter(arrayAdapter0); | |
88 | + spinner0.setSelection(selectedMode); | |
89 | + spinner0.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
90 | + @Override | |
91 | + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { | |
92 | + Log.v(TAG, "onItemSelected : " + position + " (" + id + ")"); | |
93 | + selectedMode = position; | |
94 | + } | |
95 | + | |
96 | + @Override | |
97 | + public void onNothingSelected(AdapterView<?> parent) { | |
98 | + Log.v(TAG, "onNothingSelected"); | |
99 | + } | |
100 | + }); | |
101 | + } | |
102 | + catch (Exception e) | |
103 | + { | |
104 | + e.printStackTrace(); | |
105 | + } | |
106 | + | |
107 | + final String[] objects = activity.getResources().getStringArray(R.array.reference_selection_array); | |
108 | + final Spinner spinner = alertView.findViewById(R.id.spinner_select_reference); | |
109 | + ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(activity, android.R.layout.simple_list_item_1, objects); | |
110 | + // selectedId = 0; | |
111 | + try | |
112 | + { | |
113 | + spinner.setAdapter(arrayAdapter); | |
114 | + spinner.setSelection(selectedId); | |
115 | + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
116 | + @Override | |
117 | + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { | |
118 | + Log.v(TAG, "onItemSelected : " + position + " (" + id + ")"); | |
119 | + selectedId = position; | |
120 | + } | |
121 | + | |
122 | + @Override | |
123 | + public void onNothingSelected(AdapterView<?> parent) { | |
124 | + Log.v(TAG, "onNothingSelected"); | |
125 | + } | |
126 | + }); | |
127 | + } | |
128 | + catch (Exception e) | |
129 | + { | |
130 | + e.printStackTrace(); | |
131 | + } | |
132 | + | |
133 | + alertDialog.setTitle(title); | |
134 | + alertDialog.setIcon(android.R.drawable.ic_dialog_alert); | |
135 | + alertDialog.setCancelable(true); | |
136 | + | |
137 | + String positiveLabel = activity.getString(R.string.dialog_positive_execute); | |
138 | + String negativeLabel = activity.getString(R.string.dialog_negative_cancel); | |
139 | + | |
140 | + // ボタンを設定する(実行ボタン) | |
141 | + alertDialog.setPositiveButton(positiveLabel, | |
142 | + (dialog, which) -> { | |
143 | + Log.v(TAG, "ConfirmationDialog::OK " + selectedId + " " + selectedMode); | |
144 | + if (callback != null) | |
145 | + { | |
146 | + callback.selectedReferenceViewMode(selectedId, selectedMode); | |
147 | + } | |
148 | + dialog.dismiss(); | |
149 | + }); | |
150 | + | |
151 | + // ボタンを設定する (キャンセルボタン) | |
152 | + alertDialog.setNegativeButton(negativeLabel, | |
153 | + (dialog, which) -> dialog.cancel()); | |
154 | + | |
155 | + myDialog = alertDialog.create(); | |
156 | + return (myDialog); | |
157 | + } | |
158 | + | |
159 | + @Override | |
160 | + public void onPause() | |
161 | + { | |
162 | + super.onPause(); | |
163 | + Log.v(TAG, "AlertDialog::onPause()"); | |
164 | + if (myDialog != null) | |
165 | + { | |
166 | + myDialog.cancel(); | |
167 | + } | |
168 | + } | |
169 | + | |
170 | + // コールバックインタフェース | |
171 | + public interface SelectReferenceCallback | |
172 | + { | |
173 | + void selectedReferenceViewMode(int referenceId, int viewMode); // OKを選択したとき | |
174 | + } | |
175 | +} |
@@ -0,0 +1,36 @@ | ||
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.wear.widget.BoxInsetLayout | |
3 | + xmlns:android="http://schemas.android.com/apk/res/android" | |
4 | + android:id="@+id/list_drawer_layout" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent" | |
7 | + android:nestedScrollingEnabled="true" | |
8 | + android:paddingStart="@dimen/list_start_padding" | |
9 | + android:paddingEnd="@dimen/list_end_padding" | |
10 | + > | |
11 | + <ScrollView | |
12 | + android:layout_width="match_parent" | |
13 | + android:layout_height="wrap_content" | |
14 | + > | |
15 | + <LinearLayout | |
16 | + android:id="@+id/layout_select_reference" | |
17 | + android:orientation="vertical" | |
18 | + android:layout_width="fill_parent" | |
19 | + android:layout_height="wrap_content" | |
20 | + android:padding="2dp" | |
21 | + > | |
22 | + <Spinner | |
23 | + android:id="@+id/show_laptime_mode" | |
24 | + android:layout_width="fill_parent" | |
25 | + android:layout_height="wrap_content" | |
26 | + android:text="@string/blank" | |
27 | + android:visibility="visible" /> | |
28 | + <Spinner | |
29 | + android:id="@+id/spinner_select_reference" | |
30 | + android:layout_width="fill_parent" | |
31 | + android:layout_height="wrap_content" | |
32 | + android:text="@string/blank" | |
33 | + android:visibility="visible" /> | |
34 | + </LinearLayout> | |
35 | + </ScrollView> | |
36 | +</androidx.wear.widget.BoxInsetLayout> |
@@ -0,0 +1,36 @@ | ||
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.wear.widget.BoxInsetLayout | |
3 | + xmlns:android="http://schemas.android.com/apk/res/android" | |
4 | + android:id="@+id/list_drawer_layout" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent" | |
7 | + android:nestedScrollingEnabled="true" | |
8 | + android:paddingStart="@dimen/list_start_padding" | |
9 | + android:paddingEnd="@dimen/list_end_padding" | |
10 | + > | |
11 | + <ScrollView | |
12 | + android:layout_width="match_parent" | |
13 | + android:layout_height="wrap_content" | |
14 | + > | |
15 | + <LinearLayout | |
16 | + android:id="@+id/layout_select_reference" | |
17 | + android:orientation="vertical" | |
18 | + android:layout_width="fill_parent" | |
19 | + android:layout_height="wrap_content" | |
20 | + android:padding="2dp" | |
21 | + > | |
22 | + <Spinner | |
23 | + android:id="@+id/show_laptime_mode" | |
24 | + android:layout_width="fill_parent" | |
25 | + android:layout_height="wrap_content" | |
26 | + android:text="@string/blank" | |
27 | + android:visibility="visible" /> | |
28 | + <Spinner | |
29 | + android:id="@+id/spinner_select_reference" | |
30 | + android:layout_width="fill_parent" | |
31 | + android:layout_height="wrap_content" | |
32 | + android:text="@string/blank" | |
33 | + android:visibility="visible" /> | |
34 | + </LinearLayout> | |
35 | + </ScrollView> | |
36 | +</androidx.wear.widget.BoxInsetLayout> |
@@ -143,4 +143,8 @@ | ||
143 | 143 | <item>B</item> |
144 | 144 | <item>C</item> |
145 | 145 | </string-array> |
146 | + <string-array name="show_laptime_array"> | |
147 | + <item>List</item> | |
148 | + <item>Graphic</item> | |
149 | + </string-array> | |
146 | 150 | </resources> |
@@ -26,4 +26,5 @@ | ||
26 | 26 | <string name="time_picker_second_separator"> </string> |
27 | 27 | <string name="information_time_picker">LAPと総時間を入力</string> |
28 | 28 | <string name="information_modify_time">目標ラップタイムを設定</string> |
29 | + <string name="select_reference_title">表示/基準 設定</string> | |
29 | 30 | </resources> |
\ No newline at end of file |
@@ -143,4 +143,8 @@ | ||
143 | 143 | <item>B</item> |
144 | 144 | <item>C</item> |
145 | 145 | </string-array> |
146 | + <string-array name="show_laptime_array"> | |
147 | + <item>List</item> | |
148 | + <item>Graphic</item> | |
149 | + </string-array> | |
146 | 150 | </resources> |
\ No newline at end of file |
@@ -24,4 +24,5 @@ | ||
24 | 24 | <string name="time_picker_second_separator"> </string> |
25 | 25 | <string name="information_time_picker">Set LAP and total Time</string> |
26 | 26 | <string name="information_modify_time">Set Target LAP Time</string> |
27 | + <string name="select_reference_title">Set Mode/Ref.</string> | |
27 | 28 | </resources> |
@@ -143,4 +143,8 @@ | ||
143 | 143 | <item>B</item> |
144 | 144 | <item>C</item> |
145 | 145 | </string-array> |
146 | + <string-array name="show_laptime_array"> | |
147 | + <item>List</item> | |
148 | + <item>Graphic</item> | |
149 | + </string-array> | |
146 | 150 | </resources> |
@@ -26,4 +26,5 @@ | ||
26 | 26 | <string name="time_picker_second_separator"> </string> |
27 | 27 | <string name="information_time_picker">Set LAP and total Time</string> |
28 | 28 | <string name="information_modify_time">Set Target LAP Time</string> |
29 | + <string name="select_reference_title">Set Mode/Ref.</string> | |
29 | 30 | </resources> |