DaysOfWeek finished
This commit is contained in:
parent
9aa47ccfbe
commit
aba3b534a1
@ -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];
|
||||||
|
|||||||
@ -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(", ");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user