mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 14:20:55 +00:00
Bug 2979 - Editing of Values in Race Summary
This commit is contained in:
1 parent
0cb59907e4
commit
ad5ab35194
3 files changed
+36
-21
No files matched your search
+6
-8
@@ -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());
|
||||
|
||||
+4
-1
@@ -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")) {
|
||||
|
||||
+26
-12
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user