package com.kuxhausen.huemore.alarm; import com.kuxhausen.huemore.persistence.ManagedBitSet; import java.util.BitSet; import java.util.Calendar; public final class DaysOfWeek { private BitSet mDaysAsBits; public DaysOfWeek() { mDaysAsBits = new BitSet(); } public DaysOfWeek(byte asByte) { mDaysAsBits = ManagedBitSet.toBitSet(new byte[]{asByte}); } /** * @param day based on values of Calendar.DAY_OF_WEEK */ public boolean isDaySet(int day) { return mDaysAsBits.get(day); } /** * @param day based on values of Calendar.DAY_OF_WEEK */ public void setDay(int day, boolean dayEnabled) { mDaysAsBits.set(day, dayEnabled); } public boolean isNoDaysSet() { return mDaysAsBits.isEmpty(); } public boolean isAllDaysSet() { int[] daysOfWeek = {Calendar.SUNDAY, Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY, Calendar.FRIDAY, Calendar.SATURDAY}; for (int day : daysOfWeek) { if (!isDaySet(day)) { return false; } } return true; } public byte getValue() { return ManagedBitSet.fromBitSet(mDaysAsBits, 8)[0]; } }