From b7f7d031d534e9bc600746478c67ce6b68d6ad02 Mon Sep 17 00:00:00 2001 From: mikem Date: Mon, 21 Jul 2014 15:12:30 -0700 Subject: Fixing a bug where the values for reps/weight would drop to 0 when making the first edit of the activity for that week. Now it starts properly at last week's value. --- .../com/mikemiller/gymlog/ActivityFragment.java | 19 ++++++++++-- .../src/main/java/com/mikemiller/gymlog/Util.java | 35 ++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 GymLog/src/main/java/com/mikemiller/gymlog/Util.java diff --git a/GymLog/src/main/java/com/mikemiller/gymlog/ActivityFragment.java b/GymLog/src/main/java/com/mikemiller/gymlog/ActivityFragment.java index 748f844..249db8c 100644 --- a/GymLog/src/main/java/com/mikemiller/gymlog/ActivityFragment.java +++ b/GymLog/src/main/java/com/mikemiller/gymlog/ActivityFragment.java @@ -192,9 +192,17 @@ public class ActivityFragment extends Fragment { refreshButton(); } public int getWeight() { + if (getActivityStats().weight == 0) { + return getLastWeight(); + } + return getActivityStats().weight; } public int getReps() { + if (getActivityStats().reps == 0) { + return getLastReps(); + } + return getActivityStats().reps; } private int getLastWeight() { @@ -222,10 +230,15 @@ public class ActivityFragment extends Fragment { getActivity().sendBroadcast(new Intent(STAT_UPDATED)); } + private boolean refreshingButton = false; private void refreshButton() { - int weight = getWeight() == 0 ? getLastWeight() : getWeight(); - int reps = getReps() == 0 ? getLastReps() : getReps(); - mSummaryButton.setText(mActivity.getSummary(weight, reps, getLastWeight(), getLastReps())); + if (!refreshingButton && mSummaryButton != null) { + refreshingButton = true; + int weight = getWeight(); + int reps = getReps(); + mSummaryButton.setText(mActivity.getSummary(weight, reps, getLastWeight(), getLastReps())); + refreshingButton = false; + } } diff --git a/GymLog/src/main/java/com/mikemiller/gymlog/Util.java b/GymLog/src/main/java/com/mikemiller/gymlog/Util.java new file mode 100644 index 0000000..4818895 --- /dev/null +++ b/GymLog/src/main/java/com/mikemiller/gymlog/Util.java @@ -0,0 +1,35 @@ +package com.mikemiller.gymlog; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.TimeZone; + +/** + * Created by Mike on 7/5/2014. COPYRIGHT OLIO. + */ +public class Util { + public static Calendar getMostRecentMondayFrom(long dateInMillis) { + Calendar referenceDay = new GregorianCalendar(); + referenceDay.setFirstDayOfWeek(Calendar.MONDAY); + referenceDay.setTimeInMillis(dateInMillis); + + Calendar calendar = new GregorianCalendar(); + // Clear the calendar since the default is the current time + calendar.clear(); + // Directly set year and week of year + calendar.setFirstDayOfWeek(Calendar.MONDAY); + calendar.set(Calendar.YEAR, referenceDay.get(Calendar.YEAR)); + calendar.set(Calendar.WEEK_OF_YEAR, referenceDay.get(Calendar.WEEK_OF_YEAR)); + // Start date for the week + //Date startDate = calendar.getTime(); + + //c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // Move the date to the previous Monday + + return calendar; + } + + public static Calendar getMostRecentMonday() { + return getMostRecentMondayFrom(Calendar.getInstance().getTimeInMillis()); + } +} -- cgit v1.2.3-70-g09d2