Remember previously scheduled time
This commit is contained in:
parent
7e3a0e5712
commit
1f2162f0a7
|
@ -61,20 +61,12 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
|
||||||
|
|
||||||
Switch scheduleSwitch = findViewById(R.id.enableSchedule);
|
Switch scheduleSwitch = findViewById(R.id.enableSchedule);
|
||||||
TimePicker schedulePicker = findViewById(R.id.schedule);
|
TimePicker schedulePicker = findViewById(R.id.schedule);
|
||||||
int sh = remote.getScheduleHour();
|
boolean se = remote.isScheduleEnabled();
|
||||||
int sm = remote.getScheduleMinute();
|
|
||||||
|
|
||||||
if ((sh >= 0) && (sm >= 0)) {
|
schedulePicker.setCurrentHour(remote.getScheduleHour());
|
||||||
schedulePicker.setCurrentHour(sh);
|
schedulePicker.setCurrentMinute(remote.getScheduleMinute());
|
||||||
schedulePicker.setCurrentMinute(sm);
|
schedulePicker.setEnabled(se);
|
||||||
schedulePicker.setEnabled(true);
|
scheduleSwitch.setChecked(se);
|
||||||
scheduleSwitch.setChecked(true);
|
|
||||||
} else {
|
|
||||||
schedulePicker.setCurrentHour(0);
|
|
||||||
schedulePicker.setCurrentMinute(0);
|
|
||||||
schedulePicker.setEnabled(false);
|
|
||||||
scheduleSwitch.setChecked(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
schedulePicker.setOnTimeChangedListener(this);
|
schedulePicker.setOnTimeChangedListener(this);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,9 @@ class RoboVac11sRemote {
|
||||||
|
|
||||||
final IRModulation modulation = new EufyIRModulation();
|
final IRModulation modulation = new EufyIRModulation();
|
||||||
|
|
||||||
private byte schedule = (byte) 0xff;
|
private boolean scheduleEnabled;
|
||||||
|
private int scheduleHour;
|
||||||
|
private int scheduleMinute;
|
||||||
|
|
||||||
private byte[] buildMessage(byte command) {
|
private byte[] buildMessage(byte command) {
|
||||||
byte msg[] = new byte[6];
|
byte msg[] = new byte[6];
|
||||||
|
@ -19,7 +21,7 @@ class RoboVac11sRemote {
|
||||||
msg[1] = command;
|
msg[1] = command;
|
||||||
msg[2] = (byte) now.get(Calendar.HOUR_OF_DAY);
|
msg[2] = (byte) now.get(Calendar.HOUR_OF_DAY);
|
||||||
msg[3] = (byte) now.get(Calendar.MINUTE);
|
msg[3] = (byte) now.get(Calendar.MINUTE);
|
||||||
msg[4] = schedule;
|
msg[4] = (byte) (scheduleEnabled ? (scheduleHour * 4 + scheduleMinute / 15) : 0xff);
|
||||||
msg[5] = (byte) (msg[0] + msg[1] + msg[2] + msg[3] + msg[4]);
|
msg[5] = (byte) (msg[0] + msg[1] + msg[2] + msg[3] + msg[4]);
|
||||||
|
|
||||||
return msg;
|
return msg;
|
||||||
|
@ -27,37 +29,41 @@ class RoboVac11sRemote {
|
||||||
|
|
||||||
RoboVac11sRemote(SharedPreferences pref) {
|
RoboVac11sRemote(SharedPreferences pref) {
|
||||||
preferences = pref;
|
preferences = pref;
|
||||||
schedule = (byte) preferences.getInt("schedule", 0xff);
|
scheduleHour = preferences.getInt("scheduleHour", 0);
|
||||||
|
scheduleMinute = preferences.getInt("scheduleMinute", 0);
|
||||||
|
scheduleEnabled = preferences.getBoolean("scheduleEnabled", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void storeSchedule() {
|
private void storeSchedule() {
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
editor.putInt("schedule", schedule);
|
editor.putBoolean("scheduleEnabled", scheduleEnabled);
|
||||||
|
editor.putInt("scheduleHour", scheduleHour);
|
||||||
|
editor.putInt("scheduleMinute", scheduleMinute);
|
||||||
editor.commit();
|
editor.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isScheduleEnabled() {
|
||||||
|
return scheduleEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
public int getScheduleHour() {
|
public int getScheduleHour() {
|
||||||
if (schedule == 0xff)
|
return scheduleHour;
|
||||||
return -1;
|
|
||||||
else
|
|
||||||
return schedule / 4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getScheduleMinute() {
|
public int getScheduleMinute() {
|
||||||
if (schedule == 0xff)
|
return scheduleMinute;
|
||||||
return -1;
|
|
||||||
else
|
|
||||||
return (schedule % 4) * 15;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] setSchedule(int hour, int minute) {
|
public byte[] setSchedule(int hour, int minute) {
|
||||||
schedule = (byte) (hour * 4 + minute / 15);
|
scheduleHour = hour;
|
||||||
|
scheduleMinute = minute;
|
||||||
|
scheduleEnabled = true;
|
||||||
storeSchedule();
|
storeSchedule();
|
||||||
return buildMessage((byte) 0xcf);
|
return buildMessage((byte) 0xcf);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] clearSchedule() {
|
public byte[] clearSchedule() {
|
||||||
schedule = (byte) 0xff;
|
scheduleEnabled = false;
|
||||||
storeSchedule();
|
storeSchedule();
|
||||||
return buildMessage((byte) 0xdf);
|
return buildMessage((byte) 0xdf);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue