Defined Alarm contracts for MVP
This commit is contained in:
parent
19856e1981
commit
70992a7cbd
@ -0,0 +1,20 @@
|
||||
package com.philliphsu.clock2.editalarm;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/2/2016.
|
||||
*/
|
||||
interface AlarmContract {
|
||||
|
||||
interface View {
|
||||
void showTime(String time);
|
||||
void showLabel(String label);
|
||||
void showEnabled(boolean enabled);
|
||||
void showCanDismissNow();
|
||||
void showSnoozed(String message);
|
||||
}
|
||||
|
||||
interface Presenter {
|
||||
void dismissNow();
|
||||
void endSnoozing();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.philliphsu.clock2.editalarm;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/2/2016.
|
||||
*/
|
||||
public interface AlarmEditor {
|
||||
|
||||
interface View extends AlarmContract.View {
|
||||
void showRecurringDays(int weekDay, boolean recurs);
|
||||
void showRingtone(String ringtone);
|
||||
void showVibrates(boolean vibrates);
|
||||
void showEditorClosed();
|
||||
int getHour();
|
||||
int getMinutes();
|
||||
boolean isEnabled();
|
||||
boolean isRecurringDay(int weekDay);
|
||||
String getLabel();
|
||||
String getRingtone();
|
||||
boolean vibrates();
|
||||
}
|
||||
|
||||
interface Presenter extends AlarmContract.Presenter {
|
||||
void save();
|
||||
void delete();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.philliphsu.clock2.editalarm;
|
||||
|
||||
/**
|
||||
* Created by Phillip Hsu on 6/2/2016.
|
||||
*/
|
||||
public interface AlarmItem {
|
||||
|
||||
interface View extends AlarmContract.View {
|
||||
void showCountdown(long remainingTime);
|
||||
void showRecurringDays(String recurringDays);
|
||||
}
|
||||
|
||||
interface Presenter extends AlarmContract.Presenter {
|
||||
void setEnabled(boolean enabled);
|
||||
}
|
||||
}
|
||||
@ -11,6 +11,7 @@ import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.format.DateFormat;
|
||||
import android.text.style.RelativeSizeSpan;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
@ -230,6 +231,16 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
|
||||
|
||||
@OnClick(R.id.save)
|
||||
void save() {
|
||||
int hour;
|
||||
int minutes;
|
||||
try {
|
||||
hour = mNumpad.getHours();
|
||||
minutes = mNumpad.getMinutes();
|
||||
} catch (IllegalStateException e) {
|
||||
Log.e(TAG, e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
boolean[] days = new boolean[NUM_DAYS];
|
||||
for (int i = SUNDAY; i <= SATURDAY; i++) {
|
||||
// What position in the week is this day located at?
|
||||
@ -238,7 +249,8 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
|
||||
days[i] = mDays[pos].isChecked();
|
||||
}
|
||||
Alarm a = Alarm.builder()
|
||||
// TODO: set hour and minute
|
||||
.hour(hour)
|
||||
.minutes(minutes)
|
||||
.ringtone(mSelectedRingtoneUri.toString())
|
||||
.recurringDays(days) // TODO: See https://github.com/google/auto/blob/master/value/userguide/howto.md#mutable_property
|
||||
.label(mLabel.getText().toString())
|
||||
@ -289,6 +301,18 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
|
||||
}
|
||||
}
|
||||
|
||||
@OnClick(R.id.numpad)
|
||||
void captureClickEvent() {
|
||||
/*
|
||||
* ====================== DO NOT IMPLEMENT =====================================
|
||||
* A stray click in the vicinity of the persistent footer buttons, even while
|
||||
* they are covered by the numpad, will still have the click event call through
|
||||
* to those buttons. This captures the buttons' click events as long as the numpad
|
||||
* is in view.
|
||||
* =============================================================================
|
||||
*/
|
||||
}
|
||||
|
||||
private void setWeekDaysText() {
|
||||
for (int i = 0; i < mDays.length; i++) {
|
||||
int weekDay = DaysOfWeek.getInstance(this).weekDayAt(i);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user