Move alarm related classes to appropriate packages

This commit is contained in:
Phillip Hsu 2016-09-21 17:07:24 -07:00
parent dba5fa860f
commit 77fc69e6a9
27 changed files with 120 additions and 112 deletions

View File

@ -24,7 +24,7 @@
</activity>
<receiver
android:name=".UpcomingAlarmReceiver"
android:name=".alarms.background.UpcomingAlarmReceiver"
android:enabled="true"
android:exported="false">
</receiver>
@ -39,12 +39,12 @@
</activity>
<receiver
android:name=".PendingAlarmScheduler"
android:name=".alarms.background.PendingAlarmScheduler"
android:enabled="true"
android:exported="false">
</receiver>
<receiver
android:name=".OnBootUpReceiver"
android:name=".alarms.background.OnBootUpReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
@ -53,7 +53,7 @@
</receiver>
<service
android:name=".OnBootUpAlarmScheduler"
android:name=".alarms.background.OnBootUpAlarmScheduler"
android:enabled="true"
android:exported="false">
</service>
@ -81,7 +81,7 @@
android:taskAffinity="com.philliphsu.clock2.RingtoneActivity">
</activity>
<activity
android:name=".alarms.AlarmActivity"
android:name=".ringtone.AlarmActivity"
android:excludeFromRecents="true"
android:label="@string/title_activity_ringtone"
android:launchMode="singleTask"
@ -89,7 +89,7 @@
</activity>
<service
android:name=".alarms.AlarmRingtoneService"
android:name=".ringtone.AlarmRingtoneService"
android:enabled="true"
android:exported="false">
</service>

View File

@ -19,7 +19,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.philliphsu.clock2.alarms.AlarmsFragment;
import com.philliphsu.clock2.alarms.ui.AlarmsFragment;
import com.philliphsu.clock2.settings.SettingsActivity;
import com.philliphsu.clock2.stopwatch.StopwatchFragment;
import com.philliphsu.clock2.timers.TimersFragment;

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms;
import android.os.Parcel;
import android.os.Parcelable;
@ -12,9 +12,9 @@ import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.TimeUnit;
import static com.philliphsu.clock2.DaysOfWeek.NUM_DAYS;
import static com.philliphsu.clock2.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.NUM_DAYS;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SUNDAY;
/**
* Created by Phillip Hsu on 5/26/2016.

View File

@ -1,12 +1,13 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.background;
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import com.philliphsu.clock2.model.AlarmCursor;
import com.philliphsu.clock2.model.AlarmsTableManager;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.data.AlarmCursor;
import com.philliphsu.clock2.alarms.data.AlarmsTableManager;
import com.philliphsu.clock2.alarms.misc.AlarmController;
/**
* An {@link IntentService} subclass for handling asynchronous task requests in

View File

@ -1,13 +1,9 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.background;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* If the device is turned off, all alarms scheduled will be cancelled, and they will not be automatically
* rescheduled when it is turned on again.
*/
public class OnBootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

View File

@ -1,12 +1,13 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.background;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.philliphsu.clock2.model.AlarmCursor;
import com.philliphsu.clock2.model.AlarmsTableManager;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.data.AlarmCursor;
import com.philliphsu.clock2.alarms.data.AlarmsTableManager;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import static com.philliphsu.clock2.util.Preconditions.checkNotNull;
@ -20,7 +21,7 @@ import static com.philliphsu.clock2.util.Preconditions.checkNotNull;
public class PendingAlarmScheduler extends BroadcastReceiver {
// We include the class name in the string to distinguish this constant from the one defined
// in UpcomingAlarmReceiver.
public static final String EXTRA_ALARM_ID = "com.philliphsu.clock2.PendingAlarmScheduler.extra.ALARM_ID";
public static final String EXTRA_ALARM_ID = "com.philliphsu.clock2.alarms.background.PendingAlarmScheduler.extra.ALARM_ID";
@Override
public void onReceive(final Context context, Intent intent) {

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.background;
import android.app.Notification;
import android.app.NotificationManager;
@ -8,8 +8,11 @@ import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import com.philliphsu.clock2.alarms.AlarmsFragment;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.MainActivity;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.alarms.ui.AlarmsFragment;
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
import static android.app.PendingIntent.FLAG_ONE_SHOT;

View File

@ -1,16 +1,17 @@
package com.philliphsu.clock2.model;
package com.philliphsu.clock2.alarms.data;
import android.database.Cursor;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.model.BaseItemCursor;
import static com.philliphsu.clock2.DaysOfWeek.FRIDAY;
import static com.philliphsu.clock2.DaysOfWeek.MONDAY;
import static com.philliphsu.clock2.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.DaysOfWeek.THURSDAY;
import static com.philliphsu.clock2.DaysOfWeek.TUESDAY;
import static com.philliphsu.clock2.DaysOfWeek.WEDNESDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.FRIDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.MONDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.THURSDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.TUESDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.WEDNESDAY;
/**
* Created by Phillip Hsu on 7/30/2016.

View File

@ -1,15 +1,16 @@
package com.philliphsu.clock2.model;
package com.philliphsu.clock2.alarms.data;
import android.content.Context;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.model.SQLiteCursorLoader;
/**
* Created by Phillip Hsu on 6/28/2016.
*/
public class AlarmsListCursorLoader extends SQLiteCursorLoader<Alarm, AlarmCursor> {
public static final String ACTION_CHANGE_CONTENT
= "com.philliphsu.clock2.model.AlarmsListCursorLoader.action.CHANGE_CONTENT";
= "com.philliphsu.clock2.alarms.data.action.CHANGE_CONTENT";
public AlarmsListCursorLoader(Context context) {
super(context);

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.model;
package com.philliphsu.clock2.alarms.data;
import android.database.sqlite.SQLiteDatabase;

View File

@ -1,18 +1,19 @@
package com.philliphsu.clock2.model;
package com.philliphsu.clock2.alarms.data;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.model.DatabaseTableManager;
import static com.philliphsu.clock2.DaysOfWeek.FRIDAY;
import static com.philliphsu.clock2.DaysOfWeek.MONDAY;
import static com.philliphsu.clock2.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.DaysOfWeek.THURSDAY;
import static com.philliphsu.clock2.DaysOfWeek.TUESDAY;
import static com.philliphsu.clock2.DaysOfWeek.WEDNESDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.FRIDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.MONDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.THURSDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.TUESDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.WEDNESDAY;
/**
* Created by Phillip Hsu on 7/30/2016.

View File

@ -1,12 +1,14 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.data;
import android.content.Context;
import android.support.design.widget.Snackbar;
import android.view.View;
import com.philliphsu.clock2.AsyncDatabaseTableUpdateHandler;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.ScrollHandler;
import com.philliphsu.clock2.model.AlarmsTableManager;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.misc.AlarmController;
/**
* Created by Phillip Hsu on 7/1/2016.

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.util;
package com.philliphsu.clock2.alarms.misc;
import android.app.AlarmManager;
import android.app.PendingIntent;
@ -8,13 +8,15 @@ import android.support.design.widget.Snackbar;
import android.util.Log;
import android.view.View;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.PendingAlarmScheduler;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.UpcomingAlarmReceiver;
import com.philliphsu.clock2.alarms.AlarmActivity;
import com.philliphsu.clock2.alarms.AlarmRingtoneService;
import com.philliphsu.clock2.model.AlarmsTableManager;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.ringtone.AlarmActivity;
import com.philliphsu.clock2.ringtone.AlarmRingtoneService;
import com.philliphsu.clock2.alarms.background.PendingAlarmScheduler;
import com.philliphsu.clock2.alarms.background.UpcomingAlarmReceiver;
import com.philliphsu.clock2.alarms.data.AlarmsTableManager;
import com.philliphsu.clock2.util.DelayedSnackbarHandler;
import com.philliphsu.clock2.util.DurationUtils;
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
import static android.app.PendingIntent.FLAG_NO_CREATE;
@ -26,7 +28,6 @@ import static java.util.concurrent.TimeUnit.HOURS;
* Created by Phillip Hsu on 7/10/2016.
*
* API to control alarm states and update the UI.
* TODO: Move this out of the .utils package when done.
* TODO: Rename to AlarmStateHandler? AlarmStateController?
*/
public final class AlarmController {
@ -73,7 +74,7 @@ public final class AlarmController {
// We use a WAKEUP alarm to send the upcoming alarm notification so it goes off even if the
// device is asleep. Otherwise, it will not go off until the device is turned back on.
long ringAt = alarm.isSnoozed() ? alarm.snoozingUntil() : alarm.ringsAt();
int hoursToNotifyInAdvance = AlarmUtils.hoursBeforeUpcoming(mAppContext);
int hoursToNotifyInAdvance = AlarmPreferences.hoursBeforeUpcoming(mAppContext);
long upcomingAt = ringAt - HOURS.toMillis(hoursToNotifyInAdvance);
// If snoozed, upcoming note posted immediately.
am.set(AlarmManager.RTC_WAKEUP, upcomingAt, notifyUpcomingAlarmIntent(alarm, false));
@ -111,7 +112,7 @@ public final class AlarmController {
// Does nothing if it's not posted.
removeUpcomingAlarmNotification(alarm);
int hoursToNotifyInAdvance = AlarmUtils.hoursBeforeUpcoming(mAppContext);
int hoursToNotifyInAdvance = AlarmPreferences.hoursBeforeUpcoming(mAppContext);
// TOneverDO: Place block after making value changes to the alarm.
if (showSnackbar
// TODO: Consider showing the snackbar for non-upcoming alarms too;
@ -151,7 +152,7 @@ public final class AlarmController {
}
public void snoozeAlarm(Alarm alarm) {
int minutesToSnooze = AlarmUtils.snoozeDuration(mAppContext);
int minutesToSnooze = AlarmPreferences.snoozeDuration(mAppContext);
alarm.snooze(minutesToSnooze);
scheduleAlarm(alarm, false);
String message = mAppContext.getString(R.string.title_snoozing_until,

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.util;
package com.philliphsu.clock2.alarms.misc;
import android.content.Context;
import android.preference.PreferenceManager;
@ -11,10 +11,10 @@ import com.philliphsu.clock2.R;
*
* Utilities for reading alarm preferences.
*/
public final class AlarmUtils {
private static final String TAG = "AlarmUtils";
public final class AlarmPreferences {
private static final String TAG = "AlarmPreferences";
private AlarmUtils() {}
private AlarmPreferences() {}
public static int snoozeDuration(Context c) {
return readPreference(c, R.string.key_snooze_duration, 10);

View File

@ -1,11 +1,9 @@
package com.philliphsu.clock2;
package com.philliphsu.clock2.alarms.misc;
import android.content.Context;
import android.support.annotation.VisibleForTesting;
import android.util.Log;
import com.philliphsu.clock2.util.AlarmUtils;
import java.text.DateFormatSymbols;
import java.util.Arrays;
@ -31,7 +29,7 @@ public final class DaysOfWeek {
private static int sLastPreferredFirstDay;
public static DaysOfWeek getInstance(Context context) {
int preferredFirstDay = AlarmUtils.firstDayOfWeek(context);
int preferredFirstDay = AlarmPreferences.firstDayOfWeek(context);
if (sInstance == null || preferredFirstDay != sLastPreferredFirstDay) {
sLastPreferredFirstDay = preferredFirstDay;
sInstance = new DaysOfWeek(preferredFirstDay);

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.annotation.TargetApi;
import android.content.Context;

View File

@ -1,13 +1,13 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.BaseCursorAdapter;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.model.AlarmCursor;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.data.AlarmCursor;
import com.philliphsu.clock2.alarms.misc.AlarmController;
/**
* Created by Phillip Hsu on 6/29/2016.

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.app.Activity;
import android.content.Intent;
@ -14,15 +14,15 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.AsyncAlarmsTableUpdateHandler;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.RecyclerViewFragment;
import com.philliphsu.clock2.TimePickerDialogController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.data.AlarmsListCursorLoader;
import com.philliphsu.clock2.alarms.data.AsyncAlarmsTableUpdateHandler;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.timepickers.BaseTimePickerDialog;
import com.philliphsu.clock2.model.AlarmCursor;
import com.philliphsu.clock2.model.AlarmsListCursorLoader;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.data.AlarmCursor;
import com.philliphsu.clock2.util.DelayedSnackbarHandler;
import static com.philliphsu.clock2.util.FragmentTagUtils.makeTag;

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
@ -16,9 +16,11 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.alarms.misc.AlarmPreferences;
import com.philliphsu.clock2.dialogs.AddLabelDialog;
import com.philliphsu.clock2.dialogs.AddLabelDialogController;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.BaseViewHolder;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.R;
@ -26,8 +28,6 @@ import com.philliphsu.clock2.TimePickerDialogController;
import com.philliphsu.clock2.aospdatetimepicker.Utils;
import com.philliphsu.clock2.timepickers.BaseTimePickerDialog.OnTimeSetListener;
import com.philliphsu.clock2.util.TimeTextUtils;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.util.AlarmUtils;
import com.philliphsu.clock2.util.FragmentTagUtils;
import java.util.Date;
@ -275,7 +275,7 @@ public abstract class BaseAlarmViewHolder extends BaseViewHolder<Alarm> {
}
private void bindDismissButton(Alarm alarm) {
int hoursBeforeUpcoming = AlarmUtils.hoursBeforeUpcoming(getContext());
int hoursBeforeUpcoming = AlarmPreferences.hoursBeforeUpcoming(getContext());
boolean upcoming = alarm.ringsWithinHours(hoursBeforeUpcoming);
boolean snoozed = alarm.isSnoozed();
boolean visible = alarm.isEnabled() && (upcoming || snoozed);

View File

@ -1,19 +1,19 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.view.ViewGroup;
import android.widget.TextView;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.DaysOfWeek;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.alarms.misc.DaysOfWeek;
import butterknife.Bind;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static com.philliphsu.clock2.DaysOfWeek.NUM_DAYS;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.NUM_DAYS;
/**
* Created by Phillip Hsu on 5/31/2016.

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.alarms.ui;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
@ -13,14 +13,14 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ToggleButton;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.DaysOfWeek;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.alarms.misc.DaysOfWeek;
import com.philliphsu.clock2.dialogs.RingtonePickerDialog;
import com.philliphsu.clock2.aospdatetimepicker.Utils;
import com.philliphsu.clock2.dialogs.RingtonePickerDialogController;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.util.FragmentTagUtils;
import butterknife.Bind;

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.philliphsu.clock2.alarms.data.AlarmsTable;
import com.philliphsu.clock2.stopwatch.LapsTable;
/**

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.ringtone;
import android.app.Notification;
import android.app.NotificationManager;
@ -7,11 +7,9 @@ import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.ViewGroup;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.ringtone.RingtoneActivity;
import com.philliphsu.clock2.ringtone.RingtoneService;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.util.TimeFormatUtils;
public class AlarmActivity extends RingtoneActivity<Alarm> {

View File

@ -1,4 +1,4 @@
package com.philliphsu.clock2.alarms;
package com.philliphsu.clock2.ringtone;
import android.app.Notification;
import android.content.Intent;
@ -6,11 +6,10 @@ import android.net.Uri;
import android.provider.Settings;
import android.support.v4.app.NotificationCompat;
import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.ringtone.RingtoneService;
import com.philliphsu.clock2.util.AlarmController;
import com.philliphsu.clock2.util.AlarmUtils;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.AlarmController;
import com.philliphsu.clock2.alarms.misc.AlarmPreferences;
import static com.philliphsu.clock2.util.TimeFormatUtils.formatTime;
@ -89,6 +88,6 @@ public class AlarmRingtoneService extends RingtoneService<Alarm> {
@Override
protected int minutesToAutoSilence() {
return AlarmUtils.minutesToSilenceAfter(this);
return AlarmPreferences.minutesToSilenceAfter(this);
}
}

View File

@ -29,7 +29,7 @@
android:layout_below="@id/time_layout"
android:layout_marginBottom="@dimen/item_margin_between_elements"/>
<com.philliphsu.clock2.alarms.AlarmCountdown
<com.philliphsu.clock2.alarms.ui.AlarmCountdown
android:id="@+id/countdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -1,12 +1,15 @@
package com.philliphsu.clock2;
import com.philliphsu.clock2.alarms.Alarm;
import com.philliphsu.clock2.alarms.misc.DaysOfWeek;
import org.junit.Test;
import java.util.Calendar;
import java.util.GregorianCalendar;
import static com.philliphsu.clock2.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SATURDAY;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.SUNDAY;
import static java.lang.System.out;
import static java.util.Calendar.HOUR_OF_DAY;
import static java.util.Calendar.MILLISECOND;

View File

@ -1,8 +1,10 @@
package com.philliphsu.clock2;
import com.philliphsu.clock2.alarms.misc.DaysOfWeek;
import org.junit.Test;
import static com.philliphsu.clock2.DaysOfWeek.*;
import static com.philliphsu.clock2.alarms.misc.DaysOfWeek.*;
import static org.junit.Assert.assertEquals;
/**