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

173 lines
8.2 KiB
Java
Raw Normal View History

2023-12-23 13:55:02 +01:00
package com.jens.automation2;
import android.app.Activity;
2023-12-25 11:57:55 +01:00
import android.content.Intent;
2023-12-23 13:55:02 +01:00
import android.os.Bundle;
2023-12-25 11:57:55 +01:00
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
2023-12-23 13:55:02 +01:00
import android.widget.CheckBox;
import android.widget.CompoundButton;
2023-12-25 11:57:55 +01:00
import android.widget.EditText;
import android.widget.Spinner;
2023-12-23 13:55:02 +01:00
import androidx.annotation.Nullable;
public class ActivityManageTriggerCalendar extends Activity
{
CheckBox chkCalendarEventDirection;
2023-12-25 11:57:55 +01:00
Spinner spinnerCalendarTitleDirection, spinnerCalendarLocationDirection, spinnerCalendarDescriptionDirection, spinnerCalendarAvailabilityDirection, spinnerCalendarAvailability;
EditText etCalendarTitle, etCalendarLocation, etCalendarDescription;
Button bSaveTriggerCalendar;
private static String[] directions;
ArrayAdapter<String> directionSpinnerAdapter;
private static String[] availabilities;
ArrayAdapter<String> availabilitySpinnerAdapter;
2023-12-23 13:55:02 +01:00
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Miscellaneous.setDisplayLanguage(this);
setContentView(R.layout.activity_manage_trigger_calendar);
chkCalendarEventDirection = (CheckBox) findViewById(R.id.chkCalendarEventDirection);
2023-12-25 11:57:55 +01:00
spinnerCalendarTitleDirection = (Spinner)findViewById(R.id.spinnerCalendarTitleDirection);
spinnerCalendarLocationDirection = (Spinner)findViewById(R.id.spinnerCalendarLocationDirection);
spinnerCalendarDescriptionDirection = (Spinner)findViewById(R.id.spinnerCalendarDescriptionDirection);
spinnerCalendarAvailabilityDirection = (Spinner)findViewById(R.id.spinnerCalendarAvailabilityDirection);
spinnerCalendarAvailability = (Spinner)findViewById(R.id.spinnerCalendarAvailability);
etCalendarTitle = (EditText)findViewById(R.id.etCalendarTitle);
etCalendarLocation = (EditText)findViewById(R.id.etCalendarLocation);
etCalendarDescription = (EditText)findViewById(R.id.etCalendarDescription);
bSaveTriggerCalendar = (Button)findViewById(R.id.bSaveTriggerCalendar);
directions = new String[] {
getResources().getString(R.string.directionStringEquals),
getResources().getString(R.string.directionStringContains),
getResources().getString(R.string.directionStringDoesNotContain),
getResources().getString(R.string.directionStringStartsWith),
getResources().getString(R.string.directionStringEndsWith),
getResources().getString(R.string.directionStringNotEquals)
};
directionSpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, ActivityManageTriggerCalendar.directions);
spinnerCalendarTitleDirection.setAdapter(directionSpinnerAdapter);
spinnerCalendarLocationDirection.setAdapter(directionSpinnerAdapter);
spinnerCalendarDescriptionDirection.setAdapter(directionSpinnerAdapter);
spinnerCalendarAvailabilityDirection.setAdapter(directionSpinnerAdapter);
directionSpinnerAdapter.notifyDataSetChanged();
/*
AVAILABILITY_BUSY = 0
AVAILABILITY_FREE = 1;
AVAILABILITY_TENTATIVE = 2;
============================ Own Types:
EXCHANGE OOF = 3
EXCHANGE WORKING ELSEWHERE = 4
*/
availabilities = new String[] {
getResources().getString(R.string.calendarStringBusy),
getResources().getString(R.string.calendarStringFree),
getResources().getString(R.string.calendarStringTentative),
getResources().getString(R.string.calendarStringOutOfOffice),
getResources().getString(R.string.calendarStringWorkingElsewhere),
};
availabilitySpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, ActivityManageTriggerCalendar.availabilities);
spinnerCalendarAvailability.setAdapter(availabilitySpinnerAdapter);
availabilitySpinnerAdapter.notifyDataSetChanged();
2023-12-23 13:55:02 +01:00
chkCalendarEventDirection.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked)
{
if(checked)
chkCalendarEventDirection.setText(R.string.eventIsCurrentlyHappening);
else
chkCalendarEventDirection.setText(R.string.eventIsCurrentlyNotHappening);
}
});
2023-12-25 11:57:55 +01:00
bSaveTriggerCalendar.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
String titleDir = Trigger.getMatchCode(spinnerCalendarTitleDirection.getSelectedItem().toString());
String title = etCalendarTitle.getText().toString();
String descriptionDir = Trigger.getMatchCode(spinnerCalendarDescriptionDirection.getSelectedItem().toString());
String description = etCalendarDescription.getText().toString();
String locationDir = Trigger.getMatchCode(spinnerCalendarLocationDirection.getSelectedItem().toString());
String location = etCalendarLocation.getText().toString();
String availabilityDir = Trigger.getMatchCode(spinnerCalendarAvailabilityDirection.getSelectedItem().toString());
int availability = spinnerCalendarAvailability.getSelectedItemPosition();
String returnString =
titleDir + Trigger.triggerParameter2Split + title + Trigger.triggerParameter2Split +
descriptionDir + Trigger.triggerParameter2Split + description + Trigger.triggerParameter2Split +
locationDir + Trigger.triggerParameter2Split + location + Trigger.triggerParameter2Split +
availabilityDir + Trigger.triggerParameter2Split + String.valueOf(availability);
Intent data = new Intent();
data.putExtra(ActivityManageRule.intentNameTriggerParameter1, chkCalendarEventDirection.isChecked());
data.putExtra(ActivityManageRule.intentNameTriggerParameter2, returnString);
ActivityManageTriggerCalendar.this.setResult(RESULT_OK, data);
finish();
}
});
Intent inputIntent = getIntent();
if(inputIntent.hasExtra(ActivityManageRule.intentNameTriggerParameter1))
loadValuesIntoGui(inputIntent);
}
void loadValuesIntoGui(Intent data)
{
//TODO:try-catch
if(data.hasExtra(ActivityManageRule.intentNameTriggerParameter1))
chkCalendarEventDirection.setChecked(data.getBooleanExtra(ActivityManageRule.intentNameTriggerParameter1, true));
if(data.hasExtra(ActivityManageRule.intentNameTriggerParameter2))
{
String input[] = data.getStringExtra(ActivityManageRule.intentNameTriggerParameter2).split(Trigger.triggerParameter2Split);
/*
0 = titleDir
1 = title
2 = descriptionDir
3 = description
4 = locationDir
5 = location
6 = availabilityDir
7 = availability
*/
for(int i = 0; i < directions.length; i++)
{
if(Trigger.getMatchCode(directions[i]).equalsIgnoreCase(input[0]))
spinnerCalendarTitleDirection.setSelection(i);
if(Trigger.getMatchCode(directions[i]).equalsIgnoreCase(input[2]))
spinnerCalendarDescriptionDirection.setSelection(i);
if(Trigger.getMatchCode(directions[i]).equalsIgnoreCase(input[4]))
spinnerCalendarLocationDirection.setSelection(i);
if(Trigger.getMatchCode(directions[i]).equalsIgnoreCase(input[6]))
spinnerCalendarAvailabilityDirection.setSelection(i);
}
spinnerCalendarAvailability.setSelection(Integer.parseInt(input[7]));
etCalendarTitle.setText(input[1]);
etCalendarDescription.setText(input[3]);
etCalendarLocation.setText(input[5]);
}
2023-12-23 13:55:02 +01:00
}
}