Automation/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java

164 lines
5.1 KiB
Java
Raw Normal View History

2021-02-16 13:42:49 +01:00
package com.jens.automation2;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.TimePicker;
import android.widget.Toast;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Calendar;
2021-03-29 16:36:21 +02:00
public class ActivityManageTriggerTimeFrame extends Activity
2021-02-16 13:42:49 +01:00
{
Button bSaveTimeFrame;
TimePicker startPicker, stopPicker;
CheckBox checkMonday, checkTuesday, checkWednesday, checkThursday, checkFriday, checkSaturday, checkSunday;
RadioButton radioTimeFrameEntering, radioTimeFrameLeaving;
public static Trigger editedTimeFrameTrigger = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
2021-05-13 18:37:34 +02:00
setContentView(R.layout.activity_manage_trigger_timeframe);
2021-02-16 13:42:49 +01:00
startPicker = (TimePicker)findViewById(R.id.tpTimeFrameStart);
stopPicker = (TimePicker)findViewById(R.id.tpTimeFrameStop);
startPicker.setIs24HourView(true);
stopPicker.setIs24HourView(true);
bSaveTimeFrame = (Button)findViewById(R.id.bSaveTimeFrame);
checkMonday = (CheckBox)findViewById(R.id.checkMonday);
checkTuesday = (CheckBox)findViewById(R.id.checkTuesday);
checkWednesday = (CheckBox)findViewById(R.id.checkWednesday);
checkThursday = (CheckBox)findViewById(R.id.checkThursday);
checkFriday = (CheckBox)findViewById(R.id.checkFriday);
checkSaturday = (CheckBox)findViewById(R.id.checkSaturday);
checkSunday = (CheckBox)findViewById(R.id.checkSunday);
radioTimeFrameEntering = (RadioButton)findViewById(R.id.radioTimeFrameEntering);
radioTimeFrameLeaving = (RadioButton)findViewById(R.id.radioTimeFrameLeaving);
bSaveTimeFrame.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Time startTime = new Time(0);
startTime.setHours(startPicker.getCurrentHour());
startTime.setMinutes(startPicker.getCurrentMinute());
Time stopTime = new Time(0);
stopTime.setHours(stopPicker.getCurrentHour());
stopTime.setMinutes(stopPicker.getCurrentMinute());
ArrayList<Integer> dayList = new ArrayList<Integer>();
if(checkMonday.isChecked())
dayList.add(Calendar.MONDAY);
if(checkTuesday.isChecked())
dayList.add(Calendar.TUESDAY);
if(checkWednesday.isChecked())
dayList.add(Calendar.WEDNESDAY);
if(checkThursday.isChecked())
dayList.add(Calendar.THURSDAY);
if(checkFriday.isChecked())
dayList.add(Calendar.FRIDAY);
if(checkSaturday.isChecked())
dayList.add(Calendar.SATURDAY);
if(checkSunday.isChecked())
dayList.add(Calendar.SUNDAY);
if(
!checkMonday.isChecked()
&&
!checkTuesday.isChecked()
&&
!checkWednesday.isChecked()
&&
!checkThursday.isChecked()
&&
!checkFriday.isChecked()
&&
!checkSaturday.isChecked()
&&
!checkSunday.isChecked()
)
{
Toast.makeText(getBaseContext(), getResources().getString(R.string.selectOneDay), Toast.LENGTH_LONG).show();
return;
}
if(editedTimeFrameTrigger.getTimeFrame() == null)
// add new one
editedTimeFrameTrigger.setTimeFrame(new TimeFrame(startTime, stopTime, dayList));
else
{
// edit one
editedTimeFrameTrigger.getTimeFrame().setTriggerTimeStart(startTime);
editedTimeFrameTrigger.getTimeFrame().setTriggerTimeStop(stopTime);
editedTimeFrameTrigger.getTimeFrame().getDayList().clear();
editedTimeFrameTrigger.getTimeFrame().setDayList(dayList);
}
editedTimeFrameTrigger.setTriggerParameter(radioTimeFrameEntering.isChecked());
setResult(RESULT_OK);
finish();
}
});
if(editedTimeFrameTrigger.getTimeFrame() != null)
loadVariableIntoGui();
}
private void loadVariableIntoGui()
{
startPicker.setCurrentHour(editedTimeFrameTrigger.getTimeFrame().getTriggerTimeStart().getHours());
startPicker.setCurrentMinute(editedTimeFrameTrigger.getTimeFrame().getTriggerTimeStart().getMinutes());
stopPicker.setCurrentHour(editedTimeFrameTrigger.getTimeFrame().getTriggerTimeStop().getHours());
stopPicker.setCurrentMinute(editedTimeFrameTrigger.getTimeFrame().getTriggerTimeStop().getMinutes());
radioTimeFrameEntering.setChecked(editedTimeFrameTrigger.getTriggerParameter());
radioTimeFrameLeaving.setChecked(!editedTimeFrameTrigger.getTriggerParameter());
for(int day : editedTimeFrameTrigger.getTimeFrame().getDayList())
{
switch(day)
{
case Calendar.MONDAY:
checkMonday.setChecked(true);
break;
case Calendar.TUESDAY:
checkTuesday.setChecked(true);
break;
case Calendar.WEDNESDAY:
checkWednesday.setChecked(true);
break;
case Calendar.THURSDAY:
checkThursday.setChecked(true);
break;
case Calendar.FRIDAY:
checkFriday.setChecked(true);
break;
case Calendar.SATURDAY:
checkSaturday.setChecked(true);
break;
case Calendar.SUNDAY:
checkSunday.setChecked(true);
break;
default:
Miscellaneous.logEvent("w", "TimeFrame", "Daylist contains invalid day: " + String.valueOf(day), 4);
break;
}
}
}
}