Bug 2979 - Editing of Values in Race Summary

This commit is contained in:
Peter Siegmund committed 2015-06-20 16:11:47 +02:00
1 parent 0cb59907e4
commit ad5ab35194
3 files changed
+36 -21

No files matched your search

@@ -22,13 +22,11 @@ import java.util.Calendar;
public class RaceTimeChangeFragment extends BaseFragment implements View.OnClickListener {
private final static String START_MODE = "startMode";
public final static int START_TIME_MODE = 0;
public final static int FINISHING_TIME_MODE = 1;
public final static int FINISHED_TIME_MODE = 2;
private static final int FUTURE_DAYS = 25;
private final static String START_MODE = "startMode";
private static final int FUTURE_DAYS = 3;
private static final int PAST_DAYS = -3;
private NumberPicker mDatePicker;
@@ -83,9 +81,9 @@ public class RaceTimeChangeFragment extends BaseFragment implements View.OnClick
mDatePicker = (NumberPicker) layout.findViewById(R.id.date_picker);
if (mDatePicker != null) {
ThemeHelper.setPickerTextColor(getActivity(), mDatePicker, ThemeHelper.getColor(getActivity(), R.attr.white));
TimeUtils.initDatePicker(getActivity(), mDatePicker, calendar, PAST_DAYS, FUTURE_DAYS);
int days = TimeUtils.daysBetween(Calendar.getInstance(), calendar) + Math.abs(PAST_DAYS);
mDatePicker.setValue(days);
TimeUtils.initDatePicker(getActivity(), mDatePicker, calendar, PAST_DAYS, FUTURE_DAYS, false);
mDatePicker.setValue(Math.abs(PAST_DAYS));
mDatePicker.setTag(calendar);
}
mTimePicker = (TimePicker) layout.findViewById(R.id.time_picker);
@@ -141,7 +139,7 @@ public class RaceTimeChangeFragment extends BaseFragment implements View.OnClick
}
private TimePoint getPickerTime() {
Calendar calendar = Calendar.getInstance();
Calendar calendar = (Calendar) mDatePicker.getTag();
calendar.add(Calendar.DAY_OF_MONTH, mDatePicker.getValue() + PAST_DAYS);
calendar.set(Calendar.HOUR_OF_DAY, mTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, mTimePicker.getCurrentMinute());
@@ -175,6 +175,7 @@ public class StartTimeFragment extends BaseFragment
ThemeHelper.setPickerTextColor(getActivity(), mDatePicker, ThemeHelper.getColor(getActivity(), R.attr.white));
mDatePicker.setOnValueChangedListener(this);
TimeUtils.initDatePicker(getActivity(), mDatePicker, time, PAST_DAYS, FUTURE_DAYS);
mDatePicker.setValue(Math.abs(PAST_DAYS));
}
mTimePicker = ViewHolder.get(getView(), R.id.time_picker);
if (mTimePicker != null) {
@@ -235,13 +236,14 @@ public class StartTimeFragment extends BaseFragment
mTimeRight.add(Calendar.MINUTE, -1);
timeRight = TimeUtils.formatDurationSince(mTimeRight.getTimeInMillis());
}
}
if (mCountdown != null) {
String countdown = getString(resId).replace("#TIME#", time);
mCountdown.setText(countdown);
mCountdown.setTag(resId);
}
if (mMinuteDec != null) {
String countdown = getString(resId).replace("#TIME#", timeLeft);
if (countdown.equals("-00:00:00")) {
@@ -249,6 +251,7 @@ public class StartTimeFragment extends BaseFragment
}
mMinuteDec.setText(countdown);
}
if (mMinuteInc != null) {
String countdown = getString(resId).replace("#TIME#", timeRight);
if (countdown.equals("-00:00:00")) {
@@ -22,19 +22,21 @@ public class TimeUtils {
public static long timeUntil(TimePoint targetTime) {
return targetTime.asMillis() - MillisecondsTimePoint.now().asMillis();
}
/**
* Formats your time to 'kk:mm:ss'.
*
* @param timePoint timestamp to format
*/
public static String formatTime(TimePoint timePoint) {
return formatTime(timePoint, "kk:mm:ss");
}
/**
* Formats your time with the help of {@link DateFormat}.
*
* @param timePoint timestamp to format
* @param format format as defined by {@link DateFormat}
* @param format format as defined by {@link DateFormat}
* @return timestamp formatted as {@link String}
*/
public static String formatTime(TimePoint timePoint, String format) {
@@ -45,7 +47,7 @@ public class TimeUtils {
int secondsTillStart = (int) Math.floor(milliseconds / 1000f);
return formatDuration(secondsTillStart);
}
public static String formatDurationUntil(long milliseconds) {
int secondsTillStart = (int) Math.ceil(milliseconds / 1000f);
return formatDuration(secondsTillStart);
@@ -79,7 +81,7 @@ public class TimeUtils {
return calendar;
}
public static int daysBetween(Calendar day1, Calendar day2){
public static int daysBetween(Calendar day1, Calendar day2) {
Calendar dayOne = (Calendar) day1.clone();
Calendar dayTwo = (Calendar) day2.clone();
@@ -117,29 +119,41 @@ public class TimeUtils {
}
public static void initDatePicker(Context context, NumberPicker datePicker, Calendar time, int pastDays, int futureDays) {
initDatePicker(context, datePicker, time, pastDays, futureDays, true);
}
public static void initDatePicker(Context context, NumberPicker datePicker, Calendar time, int pastDays, int futureDays, boolean useWords) {
java.text.DateFormat dateFormat = java.text.DateFormat.getDateInstance();
ArrayList<String> dates = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
calendar.setTime(time.getTime());
// Past
calendar.add(Calendar.DAY_OF_MONTH, pastDays);
for (int i = pastDays; i < -1; i++) {
dates.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
dates.add(context.getString(R.string.yesterday));
dates.add(context.getString(R.string.today));
dates.add(context.getString(R.string.tomorrow));
if (useWords) {
dates.add(context.getString(R.string.yesterday));
dates.add(context.getString(R.string.today));
dates.add(context.getString(R.string.tomorrow));
calendar.add(Calendar.DAY_OF_MONTH, 3);
} else {
for (int i = 0; i < 3; i++) {
dates.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
}
// Future
calendar.add(Calendar.DAY_OF_MONTH, 2);
for (int i = 3; i <= futureDays + 1; i++) {
calendar.add(Calendar.DAY_OF_MONTH, 1);
dates.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
datePicker.setDisplayedValues(dates.toArray(new String[dates.size()]));
datePicker.setMinValue(0);
datePicker.setMaxValue(dates.size() - 1);
datePicker.setWrapSelectorWheel(false);
datePicker.setValue(TimeUtils.daysBetween(time, Calendar.getInstance()) + Math.abs(pastDays));
datePicker.setValue(TimeUtils.daysBetween(calendar, Calendar.getInstance()) + Math.abs(pastDays));
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
TextView date = new TextView(context);
date.setText(dateFormat.format(calendar.getTime()));
@@ -149,4 +163,4 @@ public class TimeUtils {
datePicker.getLayoutParams().width = date.getMeasuredWidth();
}
}
}
}