From d6c6bfa551f1087adb272fb49a57a6e9ad8ea9b7 Mon Sep 17 00:00:00 2001 From: Armin Zamani Date: Mon, 8 Apr 2013 14:38:09 +0200 Subject: [PATCH] introduced aborting flag input possibility to running and finishing fragment --- .../res/layout/race_finishing_view.xml | 4 +- .../res/layout/race_running_view.xml | 8 +-- .../dialogs/AbortTypeSelectionDialog.java | 66 +++++++++++++++++++ .../raceinfo/FinishingRaceFragment.java | 32 +++++---- .../raceinfo/RunningRaceFragment.java | 21 ++++++ 5 files changed, 112 insertions(+), 19 deletions(-) create mode 100644 mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/AbortTypeSelectionDialog.java diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_finishing_view.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_finishing_view.xml index 8f207272c0d..f7e03d5ab71 100644 --- a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_finishing_view.xml +++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_finishing_view.xml @@ -146,7 +146,7 @@ android:textAppearance="@style/TextAppearance.Welter.TitleLabel" /> - + android:textAppearance="@style/TextAppearance.Welter.TitleLabel" /> diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/AbortTypeSelectionDialog.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/AbortTypeSelectionDialog.java new file mode 100644 index 00000000000..f5a1f61fb18 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/AbortTypeSelectionDialog.java @@ -0,0 +1,66 @@ +package com.sap.sailing.racecommittee.app.ui.fragments.dialogs; + +import com.sap.sailing.domain.common.racelog.Flags; +import com.sap.sailing.racecommittee.app.AppConstants; +import com.sap.sailing.racecommittee.app.R; +import com.sap.sailing.racecommittee.app.logging.ExLog; + +import android.app.FragmentManager; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageButton; + +public class AbortTypeSelectionDialog extends RaceDialogFragment { + private ImageButton apFlag; + private ImageButton novemberFlag; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.race_choose_ap_november_view, container); + return view; + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + getDialog().setTitle(getText(R.string.ap_or_november)); + + apFlag = (ImageButton) getView().findViewById(R.id.choose_ap_flag_button); + novemberFlag = (ImageButton) getView().findViewById(R.id.choose_november_flag_button); + + apFlag.setOnClickListener(new OnClickListener() { + + public void onClick(View arg0) { + ExLog.i(ExLog.RACE_CHOOSE_ABORT_AP, getRace().getId().toString(), getActivity()); + showAbortModeDialog(Flags.AP, "dialogAPFlag"); + } + + }); + + novemberFlag.setOnClickListener(new OnClickListener() { + + public void onClick(View arg0) { + ExLog.i(ExLog.RACE_CHOOSE_ABORT_NOVEMBER, getRace().getId().toString(), getActivity()); + showAbortModeDialog(Flags.NOVEMBER, "dialogNovemberFlag"); + } + + }); + } + + private void showAbortModeDialog(Flags abortingFlag, String dialogName) { + FragmentManager fragmentManager = getFragmentManager(); + + RaceDialogFragment fragment = new AbortModeSelectionDialog(); + + Bundle args = getParameterBundle(); + args.putString(AppConstants.FLAG_KEY, abortingFlag.name()); + fragment.setArguments(args); + + fragment.show(fragmentManager, dialogName); + this.dismiss(); + } +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java index 3fefac21743..edf634721ec 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import android.app.AlertDialog; +import android.app.FragmentManager; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; @@ -25,17 +26,21 @@ import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sailing.domain.common.racelog.Flags; +import com.sap.sailing.racecommittee.app.AppConstants; import com.sap.sailing.racecommittee.app.R; import com.sap.sailing.racecommittee.app.logging.ExLog; import com.sap.sailing.racecommittee.app.ui.adapters.finishing.CompetitorPositioningListAdapter; import com.sap.sailing.racecommittee.app.ui.adapters.finishing.CompetitorsAdapter; import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.AbortModeSelectionDialog; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment; public class FinishingRaceFragment extends RaceFragment { private TextView countUpTextView; protected TextView nextFlagCountdown; - private ImageButton novemberFlagButton; + private ImageButton abortingFlagButton; private ImageButton blueFlagButton; private DragSortListView positioningListView; @@ -67,7 +72,7 @@ public class FinishingRaceFragment extends RaceFragment { nextFlagCountdown = (TextView) getView().findViewById(R.id.nextFlagCountdown); blueFlagButton = (ImageButton) getView().findViewById(R.id.blueFlagButton); - novemberFlagButton = (ImageButton) getView().findViewById(R.id.novemberButton); + abortingFlagButton = (ImageButton) getView().findViewById(R.id.abortingFlagButton); competitors = new ArrayList(); Util.addAll(getRace().getCompetitors(), competitors); @@ -123,10 +128,10 @@ public class FinishingRaceFragment extends RaceFragment { } }); - novemberFlagButton.setOnClickListener(new OnClickListener() { + abortingFlagButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { - showChooseAPNovemberDialog(); + showNovemberModeDialog(); ExLog.i(ExLog.FLAG_NOVEMBER, getRace().getId().toString(), getActivity()); } }); @@ -291,16 +296,17 @@ public class FinishingRaceFragment extends RaceFragment { private String getFormattedTimePart(int timePart) { return (timePart < 10) ? "0" + timePart : String.valueOf(timePart); } + + protected void showNovemberModeDialog() { + FragmentManager fragmentManager = getFragmentManager(); - private void showChooseAPNovemberDialog() { -// FragmentManager fragmentManager = getFragmentManager(); -// -// RaceChooseAPNovemberDialog fragment = new RaceChooseAPNovemberDialog(); -// -// Bundle args = getParameterBundle(); -// fragment.setArguments(args); -// -// fragment.show(fragmentManager, "dialogAPNovemberMode"); + RaceDialogFragment fragment = new AbortModeSelectionDialog(); + + Bundle args = getParameterBundle(); + args.putString(AppConstants.FLAG_KEY, Flags.NOVEMBER.name()); + fragment.setArguments(args); + + fragment.show(fragmentManager, "dialogNovemberMode"); } private void showRemoveBlueFlagDialog() { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/RunningRaceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/RunningRaceFragment.java index f98b9b37dee..290eb1ff1f5 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/RunningRaceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/RunningRaceFragment.java @@ -1,6 +1,7 @@ package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo; import android.app.AlertDialog; +import android.app.FragmentManager; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; @@ -14,6 +15,8 @@ import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.racecommittee.app.R; import com.sap.sailing.racecommittee.app.logging.ExLog; import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.AbortTypeSelectionDialog; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment; public class RunningRaceFragment extends RaceFragment { @@ -36,6 +39,13 @@ public class RunningRaceFragment extends RaceFragment { showDisplayBlueFlagDialog(); } }); + + ImageButton abortingFlagButton = (ImageButton) getView().findViewById(R.id.abortingFlagButton); + abortingFlagButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + showChooseAPNovemberDialog(); + } + }); } private void showDisplayBlueFlagDialog() { @@ -83,4 +93,15 @@ public class RunningRaceFragment extends RaceFragment { return String.format(timePattern, hoursString, minutesString, secondsString); } + private void showChooseAPNovemberDialog() { + FragmentManager fragmentManager = getFragmentManager(); + + RaceDialogFragment fragment = new AbortTypeSelectionDialog(); + + Bundle args = getParameterBundle(); + fragment.setArguments(args); + + fragment.show(fragmentManager, "dialogAPNovemberMode"); + } + }