138 lines
5.6 KiB
Java
138 lines
5.6 KiB
Java
package com.haussteuerung;
|
|
|
|
import android.app.TimePickerDialog;
|
|
import android.os.Bundle;
|
|
import android.util.Log;
|
|
import android.widget.Button;
|
|
import android.widget.CheckBox;
|
|
import android.widget.RadioButton;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import androidx.lifecycle.ProcessLifecycleOwner;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.haussteuerung.helper.Temperatur;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.Locale;
|
|
|
|
public class activityDoris extends AppCompatActivity {
|
|
Button buttonSend, buttonTablette, buttonSendEssen, zeitFiebertemp;
|
|
int hourFiebertemp = 0, minuteFiebertemp = 0;
|
|
TextView textFiebertemp;
|
|
LocalDateTime datetime = LocalDateTime.now();
|
|
DateTimeFormatter dateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
Gson gson = new Gson();
|
|
String msg;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleTracker());
|
|
|
|
androidx.appcompat.app.ActionBar actionBar = getSupportActionBar();
|
|
assert actionBar != null;
|
|
actionBar.setBackgroundDrawable(AppCompatResources.getDrawable(getApplicationContext(), R.color.black));
|
|
|
|
setContentView(R.layout.activity_doris);
|
|
setTitle("Haussteuerung - Doris");
|
|
|
|
buttonSend = findViewById(R.id.buttonSend);
|
|
|
|
// Tablette + Essen -------------------------------
|
|
buttonTablette = findViewById(R.id.buttonTablette);
|
|
buttonSendEssen = findViewById(R.id.buttonSendEssen);
|
|
RadioButton doris_fruehstueck = findViewById(R.id.doris_fruehstueck);
|
|
RadioButton doris_mittagessen = findViewById(R.id.doris_mittagessen);
|
|
RadioButton doris_abendessen = findViewById(R.id.doris_abendessen);
|
|
|
|
buttonTablette.setOnClickListener(view -> {
|
|
MqttClient.publish("cmnd/Haussteuerung/Doris/Tabletten", "Tablette");
|
|
});
|
|
|
|
buttonSendEssen.setOnClickListener(view -> {
|
|
if (doris_fruehstueck.isChecked()) {
|
|
MqttClient.publish("cmnd/Haussteuerung/Doris/Tabletten", "Frühstück");
|
|
} else if (doris_mittagessen.isChecked()) {
|
|
MqttClient.publish("cmnd/Haussteuerung/Doris/Tabletten", "Mittagessen");
|
|
} else if (doris_abendessen.isChecked()) {
|
|
MqttClient.publish("cmnd/Haussteuerung/Doris/Tabletten", "Abendessen");
|
|
} else {
|
|
Toast.makeText(activityDoris.this, "Bitte eine Mahlzeit auswählen.", Toast.LENGTH_LONG).show();
|
|
}
|
|
});
|
|
|
|
// Fiebertemperatur --------------------------------
|
|
zeitFiebertemp = findViewById(R.id.zeitFiebertemp);
|
|
CheckBox checkFiebertemp = findViewById(R.id.checkFiebertemp);
|
|
TextView tvFiebertemp = findViewById(R.id.tvFiebertemp);
|
|
textFiebertemp = findViewById(R.id.textFiebertemp);
|
|
hourFiebertemp = datetime.getHour();
|
|
minuteFiebertemp = datetime.getMinute();
|
|
zeitFiebertemp.setText(String.format(Locale.getDefault(), "%02d:%02d", datetime.getHour(), datetime.getMinute()));
|
|
zeitFiebertemp.setOnClickListener(v -> timePickerDialog(zeitFiebertemp));
|
|
|
|
checkFiebertemp.setOnClickListener(view -> {
|
|
if (checkFiebertemp.isChecked()) {
|
|
zeitFiebertemp.setEnabled(true);
|
|
tvFiebertemp.setEnabled(true);
|
|
textFiebertemp.setEnabled(true);
|
|
} else {
|
|
zeitFiebertemp.setEnabled(false);
|
|
tvFiebertemp.setEnabled(false);
|
|
textFiebertemp.setEnabled(false);
|
|
}
|
|
});
|
|
|
|
// Send-Button -------------------------------------
|
|
buttonSend.setOnClickListener(view -> {
|
|
boolean setFiebertemp = false;
|
|
if (checkFiebertemp.isChecked() && (textFiebertemp.getText().length() == 0)) {
|
|
Toast.makeText(activityDoris.this, "Bitte einen Temperaturwert eingeben!", Toast.LENGTH_LONG).show();
|
|
} else if (checkFiebertemp.isChecked() && (textFiebertemp.getText().length() > 0)) {
|
|
String formattedDate = datetime.format(dateTimeFormat);
|
|
String hour = Integer.toString(hourFiebertemp);
|
|
String minute = Integer.toString(minuteFiebertemp);
|
|
String fiebertemp = textFiebertemp.getText().toString();
|
|
msg = gson.toJson(new Temperatur(MainActivity.ID, formattedDate + " " + hour + ":" + minute + ":00", fiebertemp));
|
|
MqttClient.publish("cmnd/Haussteuerung/Doris/Temperatur", msg);
|
|
Log.d("Doris", msg);
|
|
setFiebertemp = true;
|
|
}
|
|
if (setFiebertemp) {
|
|
finish();
|
|
}
|
|
});
|
|
}
|
|
|
|
public void timePickerDialog(Button button) {
|
|
LocalTime localTime = LocalTime.parse(button.getText());
|
|
int hour = localTime.getHour();
|
|
int minute = localTime.getMinute();
|
|
TimePickerDialog.OnTimeSetListener onTimeSetListener = (timePicker, selectedHour, selectedMinute) -> button.setText(String.format(Locale.getDefault(), "%02d:%02d", selectedHour, selectedMinute));
|
|
TimePickerDialog timePickerDialog = new TimePickerDialog(this, onTimeSetListener, hour, minute, true);
|
|
timePickerDialog.show();
|
|
}
|
|
|
|
@Override
|
|
protected void onPause() {
|
|
super.onPause();
|
|
}
|
|
|
|
@Override
|
|
protected void onResume() {
|
|
super.onResume();
|
|
}
|
|
|
|
@Override
|
|
protected void onStop() {
|
|
super.onStop();
|
|
}
|
|
}
|
|
|