92 lines
3.7 KiB
Java
92 lines
3.7 KiB
Java
package eu.worn.apps.androvac;
|
|
|
|
import android.os.Bundle;
|
|
import android.preference.PreferenceManager;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.view.View;
|
|
import android.widget.CompoundButton;
|
|
import android.widget.Switch;
|
|
import android.widget.TimePicker;
|
|
import android.widget.Toast;
|
|
|
|
public class MainActivity extends AppCompatActivity implements View.OnClickListener, TimePicker.OnTimeChangedListener {
|
|
|
|
private IRBeamer beamer;
|
|
private RoboVac11sRemote remote;
|
|
|
|
private void beam(byte[] msg) {
|
|
beamer.transmit(remote.modulation.getCarrierFrequency(), remote.modulation.modulate(msg));
|
|
}
|
|
|
|
public void onClick(View v) {
|
|
byte[] msg;
|
|
|
|
switch (v.getId()) {
|
|
case R.id.cleanAuto: msg = remote.cleanAuto(); break;
|
|
case R.id.cleanSpot: msg = remote.cleanSpot(); break;
|
|
case R.id.cleanEdge: msg = remote.cleanEdge(); break;
|
|
case R.id.cleanRoom: msg = remote.cleanRoom(); break;
|
|
case R.id.powerStandard: msg = remote.powerStandard(); break;
|
|
case R.id.powerMax: msg = remote.powerMax(); break;
|
|
case R.id.powerBoostIQ: msg = remote.powerBoostIQ(); break;
|
|
case R.id.moveForward: msg = remote.moveForward(); break;
|
|
case R.id.moveBackward: msg = remote.moveBackward(); break;
|
|
case R.id.moveCCW: msg = remote.moveCCW(); break;
|
|
case R.id.moveCW: msg = remote.moveCW(); break;
|
|
case R.id.returnBase: msg = remote.returnBase(); break;
|
|
case R.id.stop: msg = remote.stop(); break;
|
|
default: msg = new byte[0];
|
|
}
|
|
if (msg.length > 0)
|
|
beam(msg);
|
|
}
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
|
|
if (remote == null)
|
|
remote = new RoboVac11sRemote(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));
|
|
|
|
if (beamer == null) {
|
|
beamer = new AndroidIRBeamer(this);
|
|
if (!beamer.isAvailable()) {
|
|
Toast.makeText(this.getApplicationContext(),
|
|
"No IR beamer found: entering debug mode",
|
|
Toast.LENGTH_LONG).show();
|
|
beamer = new DebugIRBeamer(this);
|
|
}
|
|
}
|
|
|
|
Switch scheduleSwitch = findViewById(R.id.enableSchedule);
|
|
TimePicker schedulePicker = findViewById(R.id.schedule);
|
|
boolean se = remote.isScheduleEnabled();
|
|
|
|
schedulePicker.setCurrentHour(remote.getScheduleHour());
|
|
schedulePicker.setCurrentMinute(remote.getScheduleMinute());
|
|
schedulePicker.setEnabled(se);
|
|
scheduleSwitch.setChecked(se);
|
|
|
|
schedulePicker.setOnTimeChangedListener(this);
|
|
|
|
scheduleSwitch.setOnCheckedChangeListener(
|
|
new CompoundButton.OnCheckedChangeListener() {
|
|
@Override
|
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
TimePicker schedulePicker = findViewById(R.id.schedule);
|
|
schedulePicker.setEnabled(isChecked);
|
|
if (isChecked)
|
|
beam(remote.setSchedule(schedulePicker.getCurrentHour(), schedulePicker.getCurrentMinute()));
|
|
else
|
|
beam(remote.clearSchedule());
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
|
|
remote.setSchedule(hourOfDay, minute);
|
|
}
|
|
}
|