package com.jens.automation2; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.Spinner; import androidx.annotation.Nullable; public class ActivityManageTriggerCalendar extends Activity { CheckBox chkCalendarEventDirection; Spinner spinnerCalendarTitleDirection, spinnerCalendarLocationDirection, spinnerCalendarDescriptionDirection, spinnerCalendarAvailabilityDirection, spinnerCalendarAvailability; EditText etCalendarTitle, etCalendarLocation, etCalendarDescription; Button bSaveTriggerCalendar; private static String[] directions; ArrayAdapter directionSpinnerAdapter; private static String[] availabilities; ArrayAdapter availabilitySpinnerAdapter; @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); 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(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(this, R.layout.text_view_for_poi_listview_mediumtextsize, ActivityManageTriggerCalendar.availabilities); spinnerCalendarAvailability.setAdapter(availabilitySpinnerAdapter); availabilitySpinnerAdapter.notifyDataSetChanged(); 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); } }); 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]); } } }