mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
Introduced the aborting flag selection diaglog, Implemented Aborting
Flag selection in SetTimeFragment
This commit is contained in:
1 parent
7445289ffd
commit
4d8156faeb
2 files changed
+128
No files matched your search
+102
@@ -0,0 +1,102 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.fragments.dialogs;
|
||||
|
||||
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;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
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;
|
||||
|
||||
public class AbortModeSelectionDialog extends RaceDialogFragment {
|
||||
Flags abortFlag;
|
||||
|
||||
ImageButton abortFlagOnly;
|
||||
ImageButton abortFlagOverHotel;
|
||||
ImageButton abortFlagOverAlpha;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.race_choose_abort_mode_view, container);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void initializeAPDialog() {
|
||||
getDialog().setTitle(getText(R.string.flag_ap));
|
||||
abortFlagOnly.setImageResource(R.drawable.ap_flag);
|
||||
abortFlagOverHotel.setImageResource(R.drawable.ap_over_hotel);
|
||||
abortFlagOverAlpha.setImageResource(R.drawable.ap_over_alpha);
|
||||
|
||||
}
|
||||
|
||||
private void initializeNovemberDialog() {
|
||||
getDialog().setTitle(getText(R.string.flag_november));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
Flags anAbortFlag = Flags.valueOf(getArguments().getString(AppConstants.FLAG_KEY));
|
||||
|
||||
if (!(anAbortFlag == Flags.AP || anAbortFlag == Flags.NOVEMBER)) {
|
||||
throw new IllegalArgumentException(
|
||||
"An abort dialog can only be instantiated with flags NOVEMBER or AP, but was " + anAbortFlag);
|
||||
}
|
||||
abortFlag = anAbortFlag;
|
||||
|
||||
abortFlagOnly = (ImageButton) getView().findViewById(R.id.abortFlagOnly);
|
||||
abortFlagOverHotel = (ImageButton) getView().findViewById(R.id.abortFlagOverHotel);
|
||||
abortFlagOverAlpha = (ImageButton) getView().findViewById(R.id.abortFlagOverAlpha);
|
||||
|
||||
abortFlagOverAlpha.setOnClickListener(new OnClickListener() {
|
||||
|
||||
public void onClick(View arg0) {
|
||||
ExLog.i(ExLog.RACE_CHOOSE_ABORT_ALPHA, getRace().getId().toString(), getActivity());
|
||||
signalAbort(Flags.ALPHA);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
abortFlagOverHotel.setOnClickListener(new OnClickListener() {
|
||||
|
||||
public void onClick(View arg0) {
|
||||
ExLog.i(ExLog.RACE_CHOOSE_ABORT_HOTEL, getRace().getId().toString(), getActivity());
|
||||
signalAbort(Flags.HOTEL);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
abortFlagOnly.setOnClickListener(new OnClickListener() {
|
||||
|
||||
public void onClick(View arg0) {
|
||||
ExLog.i(ExLog.RACE_CHOOSE_ABORT_NONE, getRace().getId().toString(), getActivity());
|
||||
signalAbort(Flags.NONE);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if (this.abortFlag == Flags.NOVEMBER) {
|
||||
initializeNovemberDialog();
|
||||
} else {
|
||||
initializeAPDialog();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void signalAbort(Flags additionalFlag) {
|
||||
if (this.abortFlag.equals(Flags.AP)) {
|
||||
getRace().getState().getStartProcedure().setPostponed(MillisecondsTimePoint.now(), additionalFlag);
|
||||
} else if (this.abortFlag.equals(Flags.NOVEMBER)) {
|
||||
getRace().getState().getStartProcedure().setAbandoned(MillisecondsTimePoint.now(), additionalFlag);
|
||||
}
|
||||
this.dismiss();
|
||||
}
|
||||
}
|
||||
+26
@@ -3,6 +3,7 @@ package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -14,11 +15,14 @@ import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
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.domain.ManagedRace;
|
||||
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.AbortModeSelectionDialog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment;
|
||||
|
||||
public class SetStartTimeRaceFragment extends RaceFragment {
|
||||
|
||||
@@ -65,6 +69,16 @@ public class SetStartTimeRaceFragment extends RaceFragment {
|
||||
setStartTime();
|
||||
}
|
||||
});
|
||||
|
||||
abortRaceButton.setOnClickListener(new OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
ExLog.i(ExLog.RACE_SET_TIME_BUTTON_AP, getRace().getId().toString(), getActivity());
|
||||
showAPModeDialog();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// / TODO: click-listener for abort button
|
||||
|
||||
@@ -147,4 +161,16 @@ public class SetStartTimeRaceFragment extends RaceFragment {
|
||||
getRace().getState().setStartTime(new MillisecondsTimePoint(newStartTime));
|
||||
}
|
||||
|
||||
protected void showAPModeDialog() {
|
||||
FragmentManager fragmentManager = getFragmentManager();
|
||||
|
||||
RaceDialogFragment fragment = new AbortModeSelectionDialog();
|
||||
|
||||
Bundle args = getParameterBundle();
|
||||
args.putString(AppConstants.FLAG_KEY, Flags.AP.name());
|
||||
fragment.setArguments(args);
|
||||
|
||||
fragment.show(fragmentManager, "dialogAPMode");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user