From 5e873a3659687b74f06372f8bcaed4028dc58fdd Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 8 May 2016 08:46:45 -0400 Subject: [PATCH] Make frequency text more natural --- .../uhabits/fragments/ShowHabitFragment.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java index 3d0521711..f95c83881 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java @@ -168,28 +168,38 @@ public class ShowHabitFragment extends Fragment reminderLabel.setText(getResources().getString(R.string.reminder_off)); TextView frequencyLabel = (TextView) view.findViewById(R.id.frequencyLabel); - String freqText; + frequencyLabel.setText(getFreqText()); + + if(habit.description.isEmpty()) + questionLabel.setVisibility(View.GONE); + } + + private String getFreqText() + { + if(habit == null) + return ""; if(habit.freqNum.equals(habit.freqDen)) - freqText = getResources().getString(R.string.every_day); - else if(habit.freqNum == 1 && habit.freqDen == 7) - freqText = getResources().getString(R.string.every_week); - else + return getResources().getString(R.string.every_day); + + if(habit.freqNum == 1) { - String times_every; - if(habit.freqNum == 1) - times_every = getResources().getString(R.string.time_every); - else - times_every = getResources().getString(R.string.times_every); - - freqText = String.format("%d %s %d %s", habit.freqNum, times_every, habit.freqDen, - getResources().getString(R.string.days)); + if (habit.freqDen == 7) + return getResources().getString(R.string.every_week); + + if (habit.freqDen % 7 == 0) + return getResources().getString(R.string.every_x_weeks, habit.freqDen / 7); + + return getResources().getString(R.string.every_x_days, habit.freqDen); } - frequencyLabel.setText(freqText); + String times_every = getResources().getString(R.string.times_every); - if(habit.description.isEmpty()) - questionLabel.setVisibility(View.GONE); + if(habit.freqNum == 1) + times_every = getResources().getString(R.string.time_every); + + return String.format("%d %s %d %s", habit.freqNum, times_every, habit.freqDen, + getResources().getString(R.string.days)); } @Override