bug 3639: generalizing how PassingInstruction values are offered and processed

Change-Id: If894f4f5250e927788bc90a5f382c149c539fd91
This commit is contained in:
Axel Uhl committed 2016-05-01 11:18:31 +02:00
1 parent 7f5d8ae024
commit bd0b929505
4 files changed
+69 -18

No files matched your search

@@ -78,13 +78,14 @@
<string name="pick_a_rounding_direction">Wenderichtung auswählen</string>
<string name="select_penalty_reason">Strafe auswählen</string>
<string-array name="rounding_directions">
<item>Backbord</item>
<item>Steuerbord</item>
<item>Gate</item>
<item>Linie</item>
<item>Ablauf</item>
</string-array>
<string name="passing_instruction_none">Leer</string>
<string name="passing_instruction_port">Backbord</string>
<string name="passing_instruction_starboard">Steuerbord</string>
<string name="passing_instruction_single_unknown">Einzel, unbekannt</string>
<string name="passing_instruction_gate">Gate</string>
<string name="passing_instruction_line">Linie</string>
<string name="passing_instruction_offset">Ablauf</string>
<string name="passing_instruction_fixed_bearing">Feste Peilung</string>
<string name="publish">Veröffentlichen</string>
<string name="unpublish">Zurücknehmen</string>
@@ -91,13 +91,14 @@
<string name="pick_a_rounding_direction">Pick a rounding direction</string>
<string name="select_penalty_reason">Select penalty reason</string>
<string-array name="rounding_directions">
<item>Port</item>
<item>Starboard</item>
<item>Gate</item>
<item>Line</item>
<item>Offset</item>
</string-array>
<string name="passing_instruction_none">None</string>
<string name="passing_instruction_port">Port</string>
<string name="passing_instruction_starboard">Starboard</string>
<string name="passing_instruction_single_unknown">Single, Unknown</string>
<string name="passing_instruction_gate">Gate</string>
<string name="passing_instruction_line">Line</string>
<string name="passing_instruction_offset">Offset</string>
<string name="passing_instruction_fixed_bearing">Fixed Bearing</string>
<string name="publish">Publish</string>
<string name="unpublish">Unpublish</string>
@@ -453,7 +453,9 @@ public class CourseFragmentMarks extends CourseFragment implements CourseMarkAda
private void createPassingInstructionDialog(final CourseListDataElementWithIdImpl courseElement) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
builder.setTitle(R.string.pick_a_rounding_direction).setItems(R.array.rounding_directions, new DialogInterface.OnClickListener() {
final PassingInstruction[] passingInstructionsRelevantForUserEntry = PassingInstruction.relevantValues();
final CharSequence[] i18NPassingInstructions = getI18NPassingInstructions(passingInstructionsRelevantForUserEntry);
builder.setTitle(R.string.pick_a_rounding_direction).setItems(i18NPassingInstructions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int position) {
PassingInstruction pickedDirection = PassingInstruction.relevantValues()[position];
onPassingInstructionPicked(courseElement, pickedDirection);
@@ -462,6 +464,46 @@ public class CourseFragmentMarks extends CourseFragment implements CourseMarkAda
builder.create().show();
}
private CharSequence[] getI18NPassingInstructions(PassingInstruction[] passingInstructionsRelevantForUserEntry) {
final CharSequence[] result = new CharSequence[passingInstructionsRelevantForUserEntry.length];
int i=0;
for (final PassingInstruction passingInstruction : passingInstructionsRelevantForUserEntry) {
result[i++] = getI18NPassingInstruction(passingInstruction);
}
return result;
}
private CharSequence getI18NPassingInstruction(PassingInstruction passingInstruction) {
CharSequence result = "";
switch (passingInstruction) {
case FixedBearing:
result = getString(R.string.passing_instruction_fixed_bearing);
break;
case Gate:
result = getString(R.string.passing_instruction_gate);
break;
case Line:
result = getString(R.string.passing_instruction_line);
break;
case None:
result = getString(R.string.passing_instruction_none);
break;
case Offset:
result = getString(R.string.passing_instruction_offset);
break;
case Port:
result = getString(R.string.passing_instruction_port);
break;
case Single_Unknown:
result = getString(R.string.passing_instruction_single_unknown);
break;
case Starboard:
result = getString(R.string.passing_instruction_starboard);
break;
}
return result;
}
protected void onPassingInstructionPicked(CourseListDataElementWithIdImpl courseElement, PassingInstruction pickedDirection) {
courseElement.setPassingInstructions(pickedDirection);
if (!PassingInstruction.Gate.equals(pickedDirection) && !PassingInstruction.Line.equals(pickedDirection)) {