mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-22 13:45:42 +00:00
# formatting + naming
This commit is contained in:
+20
-20
@@ -9,31 +9,31 @@ import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceLogChangedListener;
|
||||
|
||||
public class RaceLogChangedVisitor implements RaceLogEventVisitor {
|
||||
|
||||
private RaceLogChangedListener listener;
|
||||
|
||||
public RaceLogChangedVisitor(RaceLogChangedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
private RaceLogChangedListener listener;
|
||||
|
||||
public void visit(RaceLogFlagEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
public RaceLogChangedVisitor(RaceLogChangedListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public void visit(RaceLogPassChangeEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
public void visit(RaceLogFlagEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
public void visit(RaceLogRaceStatusEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
public void visit(RaceLogPassChangeEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
public void visit(RaceLogStartTimeEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
public void visit(RaceLogRaceStatusEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
public void visit(RaceLogCourseAreaChangedEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
public void visit(RaceLogStartTimeEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
public void visit(RaceLogCourseAreaChangedEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-1
@@ -79,7 +79,6 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
}
|
||||
|
||||
public void setStartTime(TimePoint eventTime, TimePoint newStartTime) {
|
||||
|
||||
RaceLogRaceStatus status = getStatus();
|
||||
if (status != RaceLogRaceStatus.UNSCHEDULED) {
|
||||
abortRace(eventTime.minus(1));
|
||||
|
||||
+219
-284
@@ -35,305 +35,240 @@ import com.sap.sailing.racecommittee.app.ui.comparators.SeriesComparator;
|
||||
|
||||
public class ManagedRaceListFragment extends ListFragment implements JuryFlagClickedListener, RaceStateChangedListener {
|
||||
|
||||
private Serializable selectedRaceId;
|
||||
private HashMap<Serializable, ManagedRace> managedRacesById;
|
||||
private RaceListAdapter adapter;
|
||||
private ArrayList<RaceListDataType> raceDataTypeList;
|
||||
|
||||
public ManagedRaceListFragment() {
|
||||
this.selectedRaceId = null;
|
||||
this.managedRacesById = new HashMap<Serializable, ManagedRace>();
|
||||
this.raceDataTypeList = new ArrayList<RaceListDataType>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
// pass the localized string to the data elements...
|
||||
RaceListDataTypeElement.initializeTemplates(this);
|
||||
private Serializable selectedRaceId;
|
||||
private HashMap<Serializable, ManagedRace> managedRacesById;
|
||||
private RaceListAdapter adapter;
|
||||
private ArrayList<RaceListDataType> raceDataTypeList;
|
||||
|
||||
adapter = new RaceListAdapter(
|
||||
getActivity(),
|
||||
R.layout.welter_two_row_no_image,
|
||||
raceDataTypeList,
|
||||
this);
|
||||
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
||||
setListAdapter(adapter);
|
||||
adapter.getFilter().filter("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
unregisterAllRaces();
|
||||
registerAllRaces();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
unregisterAllRaces();
|
||||
super.onStop();
|
||||
}
|
||||
public ManagedRaceListFragment() {
|
||||
this.selectedRaceId = null;
|
||||
this.managedRacesById = new HashMap<Serializable, ManagedRace>();
|
||||
this.raceDataTypeList = new ArrayList<RaceListDataType>();
|
||||
}
|
||||
|
||||
private void registerAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().registerListener(this);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
// pass the localized string to the data elements...
|
||||
RaceListDataTypeElement.initializeTemplates(this);
|
||||
|
||||
private void unregisterAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().unregisterListener(this);
|
||||
}
|
||||
}
|
||||
adapter = new RaceListAdapter(getActivity(), R.layout.welter_two_row_no_image, raceDataTypeList, this);
|
||||
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
||||
setListAdapter(adapter);
|
||||
adapter.getFilter().filter("");
|
||||
}
|
||||
|
||||
public void setupOn(Collection<ManagedRace> listOfManagedRaces) {
|
||||
unregisterAllRaces();
|
||||
managedRacesById.clear();
|
||||
for (ManagedRace managedRace : listOfManagedRaces) {
|
||||
managedRacesById.put(managedRace.getId(), managedRace);
|
||||
}
|
||||
registerAllRaces();
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
unregisterAllRaces();
|
||||
registerAllRaces();
|
||||
}
|
||||
|
||||
// initialize view
|
||||
initListElements(false);
|
||||
|
||||
if (adapter != null) {
|
||||
adapter.getFilter().filter("");
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onStop() {
|
||||
unregisterAllRaces();
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
public void onRaceStateChanged(RaceState state) {
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
private BoatClass getBoatClassForRace(ManagedRace managedRace) {
|
||||
if (managedRace.getRaceGroup().getBoatClass() == null) {
|
||||
return new BoatClassImpl(managedRace.getRaceGroup().getName(), false);
|
||||
}
|
||||
return managedRace.getRaceGroup().getBoatClass();
|
||||
}
|
||||
|
||||
private void initListElements(boolean clearFirst) {
|
||||
|
||||
HashMap<Serializable, RaceLogRaceStatus> savedStates = new HashMap<Serializable, RaceLogRaceStatus>();
|
||||
if (clearFirst) {
|
||||
// we have to save the previous states of the elements
|
||||
for (RaceListDataType r : raceDataTypeList) {
|
||||
if (r instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement el = (RaceListDataTypeElement) r;
|
||||
savedStates.put(el.getRace().getId(), el.getPreviousRaceStatus());
|
||||
}
|
||||
}
|
||||
raceDataTypeList.clear();
|
||||
}
|
||||
|
||||
|
||||
TreeMap<BoatClassSeriesDataFleet, List<ManagedRace>> raceListHashMap =
|
||||
new TreeMap<BoatClassSeriesDataFleet, List<ManagedRace>>(new SeriesComparator());
|
||||
if (managedRacesById != null) {
|
||||
|
||||
// Group Managed Races by boat class and group
|
||||
for (ManagedRace m : managedRacesById.values()) {
|
||||
BoatClassSeriesDataFleet ser = new BoatClassSeriesDataFleet(
|
||||
getBoatClassForRace(m),
|
||||
m.getSeries(),
|
||||
m.getFleet());
|
||||
private void registerAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().registerListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (raceListHashMap.containsKey(ser)) {
|
||||
raceListHashMap.get(ser).add(m);
|
||||
} else {
|
||||
List<ManagedRace> lmr = new LinkedList<ManagedRace>();
|
||||
lmr.add(m);
|
||||
raceListHashMap.put(ser, lmr);
|
||||
}
|
||||
private void unregisterAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().unregisterListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public void setupOn(Collection<ManagedRace> listOfManagedRaces) {
|
||||
unregisterAllRaces();
|
||||
managedRacesById.clear();
|
||||
for (ManagedRace managedRace : listOfManagedRaces) {
|
||||
managedRacesById.put(managedRace.getId(), managedRace);
|
||||
}
|
||||
registerAllRaces();
|
||||
|
||||
for (BoatClassSeriesDataFleet key : raceListHashMap.navigableKeySet()) {
|
||||
List<ManagedRace> mrl = raceListHashMap.get(key);
|
||||
Collections.sort(mrl, new NamedRaceComparator());
|
||||
// initialize view
|
||||
initListElements(false);
|
||||
|
||||
raceDataTypeList.add(new RaceListDataTypeTitle(key));
|
||||
if (adapter != null) {
|
||||
adapter.getFilter().filter("");
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
for (ManagedRace mr : mrl) {
|
||||
RaceListDataTypeElement dataElement = new RaceListDataTypeElement(mr);
|
||||
if (savedStates.containsKey(mr.getId())) {
|
||||
dataElement.setPreviousRaceStatus(savedStates.get(mr.getId()));
|
||||
}
|
||||
raceDataTypeList.add(dataElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onListItemClick(ListView listView, View view, int position, long id) {
|
||||
super.onListItemClick(listView, view, position, id);
|
||||
|
||||
RaceListDataType selectedItem = adapter.getItem(position);
|
||||
if (selectedItem instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement selectedElement = (RaceListDataTypeElement) selectedItem;
|
||||
selectedElement.setUpdateIndicator(false);
|
||||
((ImageView) view.findViewById(R.id.Welter_Cell_UpdateLabel)).setVisibility(View.GONE);
|
||||
|
||||
ManagedRace selectedRace = selectedElement.getRace();
|
||||
this.selectedRaceId = selectedRace.getId();
|
||||
|
||||
ExLog.i(
|
||||
ExLog.RACE_SELECTED_ELEMENT,
|
||||
selectedRace.getId() + " " + selectedRace.getStatus(),
|
||||
getActivity());
|
||||
|
||||
((RacingActivity) getActivity()).onRaceItemClicked(selectedRace);
|
||||
|
||||
} else if (selectedItem instanceof RaceListDataTypeTitle) {
|
||||
RaceListDataTypeTitle selectedTitle = (RaceListDataTypeTitle) selectedItem;
|
||||
ExLog.i(
|
||||
ExLog.RACE_SELECTED_TITLE,
|
||||
selectedTitle.toString(),
|
||||
getActivity());
|
||||
}
|
||||
}
|
||||
|
||||
public void notifyDataChanged() {
|
||||
List<RaceListDataType> list = adapter.getItems();
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
if (list.get(i) instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement listElement = (RaceListDataTypeElement) list.get(i);
|
||||
ManagedRace mr = this.managedRacesById.get(listElement.getRace().getId());
|
||||
if (mr != null) {
|
||||
if (!listElement.getPreviousRaceStatus().name().equals(mr.getStatus().name())) {
|
||||
listElement.setRace(mr);
|
||||
|
||||
if (!listElement.getRace().getId().equals(this.selectedRaceId)) {
|
||||
listElement.setUpdateIndicator(true);
|
||||
}
|
||||
/// TODO: StaticVibrator.vibrate(1000);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if (adapter != null) {
|
||||
adapter.getFilter().filter("");
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
public void onRaceStateChanged(RaceState state) {
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
public void onJuryFlagClicked(BoatClassSeriesDataFleet clicked) {
|
||||
/// TODO: implement.
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
public void notifyDataChanged() {
|
||||
List<RaceListDataType> list = adapter.getItems();
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
if (list.get(i) instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement listElement = (RaceListDataTypeElement) list.get(i);
|
||||
ManagedRace mr = managedRacesMap.get(listElement.getRace().getId());
|
||||
if (mr != null) {
|
||||
if (!listElement.getPreviousRaceStatus().name().equals(mr.getStatus().name())) {
|
||||
listElement.setRace(mr);
|
||||
|
||||
if (!listElement.getRace().getId().equals(selectedRaceId)) {
|
||||
listElement.setUpdateIndicator(true);
|
||||
}
|
||||
StaticVibrator.vibrate(1000);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if (adapter != null) {
|
||||
adapter.getFilter().filter("");
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private BoatClass getBoatClassForRace(ManagedRace managedRace) {
|
||||
if (managedRace.getRaceGroup().getBoatClass() == null) {
|
||||
return new BoatClassImpl(managedRace.getRaceGroup().getName(), false);
|
||||
}
|
||||
return managedRace.getRaceGroup().getBoatClass();
|
||||
}
|
||||
|
||||
public void onJuryFlagClicked(final Group group) {
|
||||
|
||||
TimePickerDialog dialog = createJuryDialog(group);
|
||||
dialog.setIcon(R.drawable.ic_dialog_alert_holo_light);
|
||||
dialog.setTitle(getString(R.string.protest_dialog_title));
|
||||
dialog.show();
|
||||
}
|
||||
private void initListElements(boolean clearFirst) {
|
||||
|
||||
private TimePickerDialog createJuryDialog(final Group group) {
|
||||
|
||||
// TODO: remove this hack!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
boolean hasFinishTime = false;
|
||||
Date latestFinish = new Date(0);
|
||||
for (Race race : group.getRaces()) {
|
||||
FlagRacingEvent latestFinishEvent = new FlagRacingEvent(false, Flags.NONE, new Date(0), 0);
|
||||
for (RacingEvent event : race.getEventLog()) {
|
||||
if (event instanceof FlagRacingEvent) {
|
||||
FlagRacingEvent flagEvent = (FlagRacingEvent) event;
|
||||
if (flagEvent.getUpperFlag().equals(Flags.BLUE) && !flagEvent.isDisplayed()) {
|
||||
if (latestFinishEvent.getTimeStamp().before(flagEvent.getTimeStamp())) {
|
||||
latestFinishEvent = flagEvent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (latestFinish.before(latestFinishEvent.getTimeStamp())) {
|
||||
latestFinish = latestFinishEvent.getTimeStamp();
|
||||
hasFinishTime = true;
|
||||
}
|
||||
}
|
||||
|
||||
final Calendar presetJuryTime = Calendar.getInstance();
|
||||
|
||||
if (hasFinishTime) {
|
||||
presetJuryTime.setTime(latestFinish);
|
||||
} else {
|
||||
Calendar now = Calendar.getInstance();
|
||||
now.set(Calendar.SECOND, 0);
|
||||
now.set(Calendar.MILLISECOND, 0);
|
||||
presetJuryTime.setTime(now.getTime());
|
||||
}
|
||||
// we always add one minute to round the time
|
||||
// so jury event is after finish event
|
||||
presetJuryTime.add(Calendar.MINUTE, 1);
|
||||
|
||||
TimePickerDialog dialog = new TimePickerDialog(getActivity(), new OnTimeSetListener() {
|
||||
|
||||
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
|
||||
Date protestStartDateTime = getStartOfProtestTime(hourOfDay, minute);
|
||||
displayJuryFlag(group, new Date(), protestStartDateTime);
|
||||
}
|
||||
|
||||
}, presetJuryTime.get(Calendar.HOUR_OF_DAY), presetJuryTime.get(Calendar.MINUTE), true);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
private Date getStartOfProtestTime(int hourOfDay, int minute) {
|
||||
Calendar now = Calendar.getInstance();
|
||||
now.set(Calendar.SECOND, 0);
|
||||
now.set(Calendar.MILLISECOND, 0);
|
||||
|
||||
Date pickedDate = (Date)now.getTime().clone();
|
||||
pickedDate.setHours(hourOfDay);
|
||||
pickedDate.setMinutes(minute);
|
||||
HashMap<Serializable, RaceLogRaceStatus> savedStates = new HashMap<Serializable, RaceLogRaceStatus>();
|
||||
if (clearFirst) {
|
||||
// we have to save the previous states of the elements
|
||||
for (RaceListDataType r : raceDataTypeList) {
|
||||
if (r instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement el = (RaceListDataTypeElement) r;
|
||||
savedStates.put(el.getRace().getId(), el.getPreviousRaceStatus());
|
||||
}
|
||||
}
|
||||
raceDataTypeList.clear();
|
||||
}
|
||||
|
||||
return pickedDate;
|
||||
}
|
||||
TreeMap<BoatClassSeriesDataFleet, List<ManagedRace>> raceListHashMap = new TreeMap<BoatClassSeriesDataFleet, List<ManagedRace>>(
|
||||
new SeriesComparator());
|
||||
if (managedRacesById != null) {
|
||||
|
||||
private void displayJuryFlag(Group group, Date eventTime, Date protestTime) {
|
||||
for (ManagedRace race : managedRacesMap.values()) {
|
||||
if (!race.getGroup().equals(group)) {
|
||||
continue;
|
||||
}
|
||||
if (race.getStatus().equals(SimpleRaceStatus.FINISHED)) {
|
||||
race.displayJuryFlag(eventTime, protestTime);
|
||||
}
|
||||
}
|
||||
Toast.makeText(getActivity(), String.format(getString(R.string.protest_flag_set), group.getName()), Toast.LENGTH_LONG).show();
|
||||
}*/
|
||||
// Group Managed Races by boat class and group
|
||||
for (ManagedRace m : managedRacesById.values()) {
|
||||
BoatClassSeriesDataFleet ser = new BoatClassSeriesDataFleet(getBoatClassForRace(m), m.getSeries(),
|
||||
m.getFleet());
|
||||
|
||||
if (raceListHashMap.containsKey(ser)) {
|
||||
raceListHashMap.get(ser).add(m);
|
||||
} else {
|
||||
List<ManagedRace> lmr = new LinkedList<ManagedRace>();
|
||||
lmr.add(m);
|
||||
raceListHashMap.put(ser, lmr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (BoatClassSeriesDataFleet key : raceListHashMap.navigableKeySet()) {
|
||||
List<ManagedRace> mrl = raceListHashMap.get(key);
|
||||
Collections.sort(mrl, new NamedRaceComparator());
|
||||
|
||||
raceDataTypeList.add(new RaceListDataTypeTitle(key));
|
||||
|
||||
for (ManagedRace mr : mrl) {
|
||||
RaceListDataTypeElement dataElement = new RaceListDataTypeElement(mr);
|
||||
if (savedStates.containsKey(mr.getId())) {
|
||||
dataElement.setPreviousRaceStatus(savedStates.get(mr.getId()));
|
||||
}
|
||||
raceDataTypeList.add(dataElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onListItemClick(ListView listView, View view, int position, long id) {
|
||||
super.onListItemClick(listView, view, position, id);
|
||||
|
||||
RaceListDataType selectedItem = adapter.getItem(position);
|
||||
if (selectedItem instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement selectedElement = (RaceListDataTypeElement) selectedItem;
|
||||
selectedElement.setUpdateIndicator(false);
|
||||
((ImageView) view.findViewById(R.id.Welter_Cell_UpdateLabel)).setVisibility(View.GONE);
|
||||
|
||||
ManagedRace selectedRace = selectedElement.getRace();
|
||||
this.selectedRaceId = selectedRace.getId();
|
||||
|
||||
ExLog.i(ExLog.RACE_SELECTED_ELEMENT, selectedRace.getId() + " " + selectedRace.getStatus(), getActivity());
|
||||
|
||||
((RacingActivity) getActivity()).onRaceItemClicked(selectedRace);
|
||||
|
||||
} else if (selectedItem instanceof RaceListDataTypeTitle) {
|
||||
RaceListDataTypeTitle selectedTitle = (RaceListDataTypeTitle) selectedItem;
|
||||
ExLog.i(ExLog.RACE_SELECTED_TITLE, selectedTitle.toString(), getActivity());
|
||||
}
|
||||
}
|
||||
|
||||
public void notifyDataChanged() {
|
||||
List<RaceListDataType> list = adapter.getItems();
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
if (list.get(i) instanceof RaceListDataTypeElement) {
|
||||
RaceListDataTypeElement listElement = (RaceListDataTypeElement) list.get(i);
|
||||
ManagedRace mr = this.managedRacesById.get(listElement.getRace().getId());
|
||||
if (mr != null) {
|
||||
if (!listElement.getPreviousRaceStatus().name().equals(mr.getStatus().name())) {
|
||||
listElement.setRace(mr);
|
||||
|
||||
if (!listElement.getRace().getId().equals(this.selectedRaceId)) {
|
||||
listElement.setUpdateIndicator(true);
|
||||
}
|
||||
// / TODO: StaticVibrator.vibrate(1000);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if (adapter != null) {
|
||||
adapter.getFilter().filter("");
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public void onJuryFlagClicked(BoatClassSeriesDataFleet clicked) {
|
||||
// / TODO: implement.
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* public void notifyDataChanged() { List<RaceListDataType> list = adapter.getItems(); for (int i = 0; i <
|
||||
* list.size(); ++i) { if (list.get(i) instanceof RaceListDataTypeElement) { RaceListDataTypeElement listElement =
|
||||
* (RaceListDataTypeElement) list.get(i); ManagedRace mr = managedRacesMap.get(listElement.getRace().getId()); if
|
||||
* (mr != null) { if (!listElement.getPreviousRaceStatus().name().equals(mr.getStatus().name())) {
|
||||
* listElement.setRace(mr);
|
||||
*
|
||||
* if (!listElement.getRace().getId().equals(selectedRaceId)) { listElement.setUpdateIndicator(true); }
|
||||
* StaticVibrator.vibrate(1000); }
|
||||
*
|
||||
* } } } if (adapter != null) { adapter.getFilter().filter(""); adapter.notifyDataSetChanged(); } }
|
||||
*
|
||||
*
|
||||
* public void onJuryFlagClicked(final Group group) {
|
||||
*
|
||||
* TimePickerDialog dialog = createJuryDialog(group); dialog.setIcon(R.drawable.ic_dialog_alert_holo_light);
|
||||
* dialog.setTitle(getString(R.string.protest_dialog_title)); dialog.show(); }
|
||||
*
|
||||
* private TimePickerDialog createJuryDialog(final Group group) {
|
||||
*
|
||||
* // TODO: remove this hack!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! boolean hasFinishTime =
|
||||
* false; Date latestFinish = new Date(0); for (Race race : group.getRaces()) { FlagRacingEvent latestFinishEvent =
|
||||
* new FlagRacingEvent(false, Flags.NONE, new Date(0), 0); for (RacingEvent event : race.getEventLog()) { if (event
|
||||
* instanceof FlagRacingEvent) { FlagRacingEvent flagEvent = (FlagRacingEvent) event; if
|
||||
* (flagEvent.getUpperFlag().equals(Flags.BLUE) && !flagEvent.isDisplayed()) { if
|
||||
* (latestFinishEvent.getTimeStamp().before(flagEvent.getTimeStamp())) { latestFinishEvent = flagEvent; } } } } if
|
||||
* (latestFinish.before(latestFinishEvent.getTimeStamp())) { latestFinish = latestFinishEvent.getTimeStamp();
|
||||
* hasFinishTime = true; } }
|
||||
*
|
||||
* final Calendar presetJuryTime = Calendar.getInstance();
|
||||
*
|
||||
* if (hasFinishTime) { presetJuryTime.setTime(latestFinish); } else { Calendar now = Calendar.getInstance();
|
||||
* now.set(Calendar.SECOND, 0); now.set(Calendar.MILLISECOND, 0); presetJuryTime.setTime(now.getTime()); } // we
|
||||
* always add one minute to round the time // so jury event is after finish event
|
||||
* presetJuryTime.add(Calendar.MINUTE, 1);
|
||||
*
|
||||
* TimePickerDialog dialog = new TimePickerDialog(getActivity(), new OnTimeSetListener() {
|
||||
*
|
||||
* public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Date protestStartDateTime =
|
||||
* getStartOfProtestTime(hourOfDay, minute); displayJuryFlag(group, new Date(), protestStartDateTime); }
|
||||
*
|
||||
* }, presetJuryTime.get(Calendar.HOUR_OF_DAY), presetJuryTime.get(Calendar.MINUTE), true); return dialog; }
|
||||
*
|
||||
* private Date getStartOfProtestTime(int hourOfDay, int minute) { Calendar now = Calendar.getInstance();
|
||||
* now.set(Calendar.SECOND, 0); now.set(Calendar.MILLISECOND, 0);
|
||||
*
|
||||
* Date pickedDate = (Date)now.getTime().clone(); pickedDate.setHours(hourOfDay); pickedDate.setMinutes(minute);
|
||||
*
|
||||
* return pickedDate; }
|
||||
*
|
||||
* private void displayJuryFlag(Group group, Date eventTime, Date protestTime) { for (ManagedRace race :
|
||||
* managedRacesMap.values()) { if (!race.getGroup().equals(group)) { continue; } if
|
||||
* (race.getStatus().equals(SimpleRaceStatus.FINISHED)) { race.displayJuryFlag(eventTime, protestTime); } }
|
||||
* Toast.makeText(getActivity(), String.format(getString(R.string.protest_flag_set), group.getName()),
|
||||
* Toast.LENGTH_LONG).show(); }
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user