From aba3b534a1581b1e27957508f8d565fd902e38e4 Mon Sep 17 00:00:00 2001 From: Phillip Hsu Date: Wed, 1 Jun 2016 21:03:07 -0700 Subject: [PATCH] DaysOfWeek finished --- .../com/philliphsu/clock2/DaysOfWeek.java | 4 +- .../clock2/alarms/AlarmViewHolder.java | 2 +- .../clock2/editalarm/EditAlarmActivity.java | 17 ++++--- .../com/philliphsu/clock2/DaysOfWeekTest.java | 44 +++++++++---------- 4 files changed, 34 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/philliphsu/clock2/DaysOfWeek.java b/app/src/main/java/com/philliphsu/clock2/DaysOfWeek.java index 38d7bd4..6889541 100644 --- a/app/src/main/java/com/philliphsu/clock2/DaysOfWeek.java +++ b/app/src/main/java/com/philliphsu/clock2/DaysOfWeek.java @@ -44,7 +44,7 @@ public class DaysOfWeek { sAppContext = context.getApplicationContext(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); // TODO First day of week preference. Entries are the full days' names and values are their respective integers. - String preferredFirstDay = prefs.getString("", "1"); + String preferredFirstDay = prefs.getString("", "0"); if (sInstance == null || !preferredFirstDay.equals(sLastPreferredFirstDay)) { sLastPreferredFirstDay = preferredFirstDay; sInstance = new DaysOfWeek(Integer.parseInt(preferredFirstDay)); @@ -59,7 +59,7 @@ public class DaysOfWeek { } /** @return the week day at {@code position} within the user-defined week */ - public int weekDay(int position) { + public int weekDayAt(int position) { if (position < 0 || position > 6) throw new ArrayIndexOutOfBoundsException("Ordinal day out of range"); return DAYS[position]; diff --git a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java index 77fec43..1ef54d4 100644 --- a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java +++ b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java @@ -97,7 +97,7 @@ public class AlarmViewHolder extends BaseViewHolder { StringBuilder sb = new StringBuilder(); for (int i = 0 /* Ordinal days*/; i < NUM_DAYS; i++) { // What day is at this position in the week? - int weekDay = DaysOfWeek.getInstance(getContext()).weekDay(i); + int weekDay = DaysOfWeek.getInstance(getContext()).weekDayAt(i); if (alarm.isRecurring(weekDay)) { sb.append(DaysOfWeek.getLabel(weekDay)).append(", "); } diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java index 9bdfe19..bc2707b 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/EditAlarmActivity.java @@ -19,6 +19,7 @@ import java.util.Date; import butterknife.Bind; import butterknife.OnClick; +import static com.philliphsu.clock2.DaysOfWeek.SATURDAY; import static com.philliphsu.clock2.DaysOfWeek.SUNDAY; public class EditAlarmActivity extends BaseActivity { @@ -46,11 +47,11 @@ public class EditAlarmActivity extends BaseActivity { if (alarm != null) { mSwitch.setChecked(alarm.isEnabled()); mTimeText.setText(DateFormat.getTimeFormat(this).format(new Date(alarm.ringsAt()))); - for (int i = 0; i < mDays.length; i++) { - // What day is at this position in the week? - int weekDay = DaysOfWeek.getInstance(this).weekDay(i); - // We toggle the button at this position because it represents that day - mDays[i].setChecked(alarm.isRecurring(weekDay)); + for (int i = SUNDAY; i <= SATURDAY; i++) { + // What position in the week is this day located at? + int at = DaysOfWeek.getInstance(this).positionOf(i); + // Toggle the button that corresponds to this day + mDays[at].setChecked(alarm.isRecurring(i)); } } } @@ -74,7 +75,9 @@ public class EditAlarmActivity extends BaseActivity { @OnClick(R.id.save) void save() { boolean[] days = new boolean[7]; - days[SUNDAY] = true; + days[0] = true; + days[1] = true; + days[6] = true; Alarm a = Alarm.builder() .recurringDays(days) .build(); @@ -90,7 +93,7 @@ public class EditAlarmActivity extends BaseActivity { private void setWeekDaysText() { for (int i = 0; i < mDays.length; i++) { - int weekDay = DaysOfWeek.getInstance(this).weekDay(i); + int weekDay = DaysOfWeek.getInstance(this).weekDayAt(i); String label = DaysOfWeek.getLabel(weekDay); mDays[i].setTextOn(label); mDays[i].setTextOff(label); diff --git a/app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java b/app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java index 96cd306..5b51b28 100644 --- a/app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java +++ b/app/src/test/java/com/philliphsu/clock2/DaysOfWeekTest.java @@ -13,13 +13,13 @@ public class DaysOfWeekTest { @Test public void testSundayAsFirstDayOfWeek() { DaysOfWeek days = new DaysOfWeek(SUNDAY); - assertEquals(days.weekDay(0), SUNDAY); - assertEquals(days.weekDay(1), MONDAY); - assertEquals(days.weekDay(2), TUESDAY); - assertEquals(days.weekDay(3), WEDNESDAY); - assertEquals(days.weekDay(4), THURSDAY); - assertEquals(days.weekDay(5), FRIDAY); - assertEquals(days.weekDay(6), SATURDAY); + assertEquals(days.weekDayAt(0), SUNDAY); + assertEquals(days.weekDayAt(1), MONDAY); + assertEquals(days.weekDayAt(2), TUESDAY); + assertEquals(days.weekDayAt(3), WEDNESDAY); + assertEquals(days.weekDayAt(4), THURSDAY); + assertEquals(days.weekDayAt(5), FRIDAY); + assertEquals(days.weekDayAt(6), SATURDAY); assertEquals(days.positionOf(SUNDAY), 0); assertEquals(days.positionOf(MONDAY), 1); @@ -33,13 +33,13 @@ public class DaysOfWeekTest { @Test public void testSaturdayAsFirstDayOfWeek() { DaysOfWeek days = new DaysOfWeek(SATURDAY); - assertEquals(days.weekDay(0), SATURDAY); - assertEquals(days.weekDay(1), SUNDAY); - assertEquals(days.weekDay(2), MONDAY); - assertEquals(days.weekDay(3), TUESDAY); - assertEquals(days.weekDay(4), WEDNESDAY); - assertEquals(days.weekDay(5), THURSDAY); - assertEquals(days.weekDay(6), FRIDAY); + assertEquals(days.weekDayAt(0), SATURDAY); + assertEquals(days.weekDayAt(1), SUNDAY); + assertEquals(days.weekDayAt(2), MONDAY); + assertEquals(days.weekDayAt(3), TUESDAY); + assertEquals(days.weekDayAt(4), WEDNESDAY); + assertEquals(days.weekDayAt(5), THURSDAY); + assertEquals(days.weekDayAt(6), FRIDAY); assertEquals(days.positionOf(SUNDAY), 1); assertEquals(days.positionOf(MONDAY), 2); @@ -53,13 +53,13 @@ public class DaysOfWeekTest { @Test public void testMondayAsFirstDayOfWeek() { DaysOfWeek days = new DaysOfWeek(MONDAY); - assertEquals(days.weekDay(0), MONDAY); - assertEquals(days.weekDay(1), TUESDAY); - assertEquals(days.weekDay(2), WEDNESDAY); - assertEquals(days.weekDay(3), THURSDAY); - assertEquals(days.weekDay(4), FRIDAY); - assertEquals(days.weekDay(5), SATURDAY); - assertEquals(days.weekDay(6), SUNDAY); + assertEquals(days.weekDayAt(0), MONDAY); + assertEquals(days.weekDayAt(1), TUESDAY); + assertEquals(days.weekDayAt(2), WEDNESDAY); + assertEquals(days.weekDayAt(3), THURSDAY); + assertEquals(days.weekDayAt(4), FRIDAY); + assertEquals(days.weekDayAt(5), SATURDAY); + assertEquals(days.weekDayAt(6), SUNDAY); assertEquals(days.positionOf(SUNDAY), 6); assertEquals(days.positionOf(MONDAY), 0); @@ -68,7 +68,5 @@ public class DaysOfWeekTest { assertEquals(days.positionOf(THURSDAY), 3); assertEquals(days.positionOf(FRIDAY), 4); assertEquals(days.positionOf(SATURDAY), 5); - - System.out.println(days.toString()); } }