DaysOfWeek finished

This commit is contained in:
Phillip Hsu 2016-06-01 21:03:07 -07:00
parent 9aa47ccfbe
commit aba3b534a1
4 changed files with 34 additions and 33 deletions

View File

@ -44,7 +44,7 @@ public class DaysOfWeek {
sAppContext = context.getApplicationContext(); sAppContext = context.getApplicationContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
// TODO First day of week preference. Entries are the full days' names and values are their respective integers. // 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)) { if (sInstance == null || !preferredFirstDay.equals(sLastPreferredFirstDay)) {
sLastPreferredFirstDay = preferredFirstDay; sLastPreferredFirstDay = preferredFirstDay;
sInstance = new DaysOfWeek(Integer.parseInt(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 */ /** @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) if (position < 0 || position > 6)
throw new ArrayIndexOutOfBoundsException("Ordinal day out of range"); throw new ArrayIndexOutOfBoundsException("Ordinal day out of range");
return DAYS[position]; return DAYS[position];

View File

@ -97,7 +97,7 @@ public class AlarmViewHolder extends BaseViewHolder<Alarm> {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (int i = 0 /* Ordinal days*/; i < NUM_DAYS; i++) { for (int i = 0 /* Ordinal days*/; i < NUM_DAYS; i++) {
// What day is at this position in the week? // 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)) { if (alarm.isRecurring(weekDay)) {
sb.append(DaysOfWeek.getLabel(weekDay)).append(", "); sb.append(DaysOfWeek.getLabel(weekDay)).append(", ");
} }

View File

@ -19,6 +19,7 @@ import java.util.Date;
import butterknife.Bind; import butterknife.Bind;
import butterknife.OnClick; import butterknife.OnClick;
import static com.philliphsu.clock2.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.DaysOfWeek.SUNDAY; import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
public class EditAlarmActivity extends BaseActivity { public class EditAlarmActivity extends BaseActivity {
@ -46,11 +47,11 @@ public class EditAlarmActivity extends BaseActivity {
if (alarm != null) { if (alarm != null) {
mSwitch.setChecked(alarm.isEnabled()); mSwitch.setChecked(alarm.isEnabled());
mTimeText.setText(DateFormat.getTimeFormat(this).format(new Date(alarm.ringsAt()))); mTimeText.setText(DateFormat.getTimeFormat(this).format(new Date(alarm.ringsAt())));
for (int i = 0; i < mDays.length; i++) { for (int i = SUNDAY; i <= SATURDAY; i++) {
// What day is at this position in the week? // What position in the week is this day located at?
int weekDay = DaysOfWeek.getInstance(this).weekDay(i); int at = DaysOfWeek.getInstance(this).positionOf(i);
// We toggle the button at this position because it represents that day // Toggle the button that corresponds to this day
mDays[i].setChecked(alarm.isRecurring(weekDay)); mDays[at].setChecked(alarm.isRecurring(i));
} }
} }
} }
@ -74,7 +75,9 @@ public class EditAlarmActivity extends BaseActivity {
@OnClick(R.id.save) @OnClick(R.id.save)
void save() { void save() {
boolean[] days = new boolean[7]; boolean[] days = new boolean[7];
days[SUNDAY] = true; days[0] = true;
days[1] = true;
days[6] = true;
Alarm a = Alarm.builder() Alarm a = Alarm.builder()
.recurringDays(days) .recurringDays(days)
.build(); .build();
@ -90,7 +93,7 @@ public class EditAlarmActivity extends BaseActivity {
private void setWeekDaysText() { private void setWeekDaysText() {
for (int i = 0; i < mDays.length; i++) { 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); String label = DaysOfWeek.getLabel(weekDay);
mDays[i].setTextOn(label); mDays[i].setTextOn(label);
mDays[i].setTextOff(label); mDays[i].setTextOff(label);

View File

@ -13,13 +13,13 @@ public class DaysOfWeekTest {
@Test @Test
public void testSundayAsFirstDayOfWeek() { public void testSundayAsFirstDayOfWeek() {
DaysOfWeek days = new DaysOfWeek(SUNDAY); DaysOfWeek days = new DaysOfWeek(SUNDAY);
assertEquals(days.weekDay(0), SUNDAY); assertEquals(days.weekDayAt(0), SUNDAY);
assertEquals(days.weekDay(1), MONDAY); assertEquals(days.weekDayAt(1), MONDAY);
assertEquals(days.weekDay(2), TUESDAY); assertEquals(days.weekDayAt(2), TUESDAY);
assertEquals(days.weekDay(3), WEDNESDAY); assertEquals(days.weekDayAt(3), WEDNESDAY);
assertEquals(days.weekDay(4), THURSDAY); assertEquals(days.weekDayAt(4), THURSDAY);
assertEquals(days.weekDay(5), FRIDAY); assertEquals(days.weekDayAt(5), FRIDAY);
assertEquals(days.weekDay(6), SATURDAY); assertEquals(days.weekDayAt(6), SATURDAY);
assertEquals(days.positionOf(SUNDAY), 0); assertEquals(days.positionOf(SUNDAY), 0);
assertEquals(days.positionOf(MONDAY), 1); assertEquals(days.positionOf(MONDAY), 1);
@ -33,13 +33,13 @@ public class DaysOfWeekTest {
@Test @Test
public void testSaturdayAsFirstDayOfWeek() { public void testSaturdayAsFirstDayOfWeek() {
DaysOfWeek days = new DaysOfWeek(SATURDAY); DaysOfWeek days = new DaysOfWeek(SATURDAY);
assertEquals(days.weekDay(0), SATURDAY); assertEquals(days.weekDayAt(0), SATURDAY);
assertEquals(days.weekDay(1), SUNDAY); assertEquals(days.weekDayAt(1), SUNDAY);
assertEquals(days.weekDay(2), MONDAY); assertEquals(days.weekDayAt(2), MONDAY);
assertEquals(days.weekDay(3), TUESDAY); assertEquals(days.weekDayAt(3), TUESDAY);
assertEquals(days.weekDay(4), WEDNESDAY); assertEquals(days.weekDayAt(4), WEDNESDAY);
assertEquals(days.weekDay(5), THURSDAY); assertEquals(days.weekDayAt(5), THURSDAY);
assertEquals(days.weekDay(6), FRIDAY); assertEquals(days.weekDayAt(6), FRIDAY);
assertEquals(days.positionOf(SUNDAY), 1); assertEquals(days.positionOf(SUNDAY), 1);
assertEquals(days.positionOf(MONDAY), 2); assertEquals(days.positionOf(MONDAY), 2);
@ -53,13 +53,13 @@ public class DaysOfWeekTest {
@Test @Test
public void testMondayAsFirstDayOfWeek() { public void testMondayAsFirstDayOfWeek() {
DaysOfWeek days = new DaysOfWeek(MONDAY); DaysOfWeek days = new DaysOfWeek(MONDAY);
assertEquals(days.weekDay(0), MONDAY); assertEquals(days.weekDayAt(0), MONDAY);
assertEquals(days.weekDay(1), TUESDAY); assertEquals(days.weekDayAt(1), TUESDAY);
assertEquals(days.weekDay(2), WEDNESDAY); assertEquals(days.weekDayAt(2), WEDNESDAY);
assertEquals(days.weekDay(3), THURSDAY); assertEquals(days.weekDayAt(3), THURSDAY);
assertEquals(days.weekDay(4), FRIDAY); assertEquals(days.weekDayAt(4), FRIDAY);
assertEquals(days.weekDay(5), SATURDAY); assertEquals(days.weekDayAt(5), SATURDAY);
assertEquals(days.weekDay(6), SUNDAY); assertEquals(days.weekDayAt(6), SUNDAY);
assertEquals(days.positionOf(SUNDAY), 6); assertEquals(days.positionOf(SUNDAY), 6);
assertEquals(days.positionOf(MONDAY), 0); assertEquals(days.positionOf(MONDAY), 0);
@ -68,7 +68,5 @@ public class DaysOfWeekTest {
assertEquals(days.positionOf(THURSDAY), 3); assertEquals(days.positionOf(THURSDAY), 3);
assertEquals(days.positionOf(FRIDAY), 4); assertEquals(days.positionOf(FRIDAY), 4);
assertEquals(days.positionOf(SATURDAY), 5); assertEquals(days.positionOf(SATURDAY), 5);
System.out.println(days.toString());
} }
} }