From 5786c1bfd40ef55618c2f41c56c3fdcae381487d Mon Sep 17 00:00:00 2001 From: jens Date: Sat, 21 May 2022 02:33:56 +0200 Subject: [PATCH 1/2] full day time window --- .../java/com/jens/automation2/Trigger.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java index 598786bb..b75e7e33 100644 --- a/app/src/main/java/com/jens/automation2/Trigger.java +++ b/app/src/main/java/com/jens/automation2/Trigger.java @@ -884,20 +884,24 @@ public class Trigger if( // Regular case, start time is lower than end time ( - Miscellaneous.compareTimes(tf.getTriggerTimeStart(), nowTime) >= 0 - && - Miscellaneous.compareTimes(nowTime, tf.getTriggerTimeStop()) > 0 + Miscellaneous.compareTimes(tf.getTriggerTimeStart(), nowTime) >= 0 + && + Miscellaneous.compareTimes(nowTime, tf.getTriggerTimeStop()) > 0 + ) + || + // Other case, start time higher than end time, timeframe goes over midnight + ( + Miscellaneous.compareTimes(tf.getTriggerTimeStart(), tf.getTriggerTimeStop()) < 0 + && + (Miscellaneous.compareTimes(tf.getTriggerTimeStart(), nowTime) >= 0 + || + Miscellaneous.compareTimes(nowTime, tf.getTriggerTimeStop()) > 0) + ) + || + // further case: start and end times are identical, meaning a 24h window + ( + Miscellaneous.compareTimes(tf.getTriggerTimeStart(), tf.getTriggerTimeStop()) == 0 ) - | - // Other case, start time higher than end time, timeframe goes over midnight - ( - Miscellaneous.compareTimes(tf.getTriggerTimeStart(), tf.getTriggerTimeStop()) < 0 - && - (Miscellaneous.compareTimes(tf.getTriggerTimeStart(), nowTime) >= 0 - || - Miscellaneous.compareTimes(nowTime, tf.getTriggerTimeStop()) > 0) - ) - ) { // We are in the timeframe From 7e12a0f3e5b8d7f6faf4e7e85c446377cc573614 Mon Sep 17 00:00:00 2001 From: jens Date: Sat, 21 May 2022 13:34:44 +0200 Subject: [PATCH 2/2] full day time window --- .../ActivityManageTriggerTimeFrame.java | 29 ++++++++++++++++++- .../activity_manage_trigger_timeframe.xml | 21 +++++++++----- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 7 files changed, 47 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java index 45ab58c1..65980a6c 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java @@ -10,13 +10,13 @@ import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.RadioButton; +import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import org.apache.commons.lang3.StringUtils; import java.sql.Time; -import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; @@ -27,6 +27,7 @@ public class ActivityManageTriggerTimeFrame extends Activity CheckBox checkMonday, checkTuesday, checkWednesday, checkThursday, checkFriday, checkSaturday, checkSunday, chkRepeat; RadioButton radioTimeFrameEntering, radioTimeFrameLeaving; EditText etRepeatEvery; + TextView tvDaysHint; static Trigger editedTimeFrameTrigger = null; @@ -53,6 +54,7 @@ public class ActivityManageTriggerTimeFrame extends Activity radioTimeFrameLeaving = (RadioButton)findViewById(R.id.radioTimeFrameLeaving); chkRepeat = (CheckBox)findViewById(R.id.chkRepeat); etRepeatEvery = (EditText)findViewById(R.id.etRepeatEvery); + tvDaysHint = (TextView)findViewById(R.id.tvDaysHint); bSaveTimeFrame.setOnClickListener(new OnClickListener() { @@ -181,6 +183,31 @@ public class ActivityManageTriggerTimeFrame extends Activity editedTimeFrameTrigger.setTimeFrame(new TimeFrame(editedTimeFrameTrigger.getTriggerParameter2())); loadVariableIntoGui(); } + + TimePicker.OnTimeChangedListener pickerListener = new TimePicker.OnTimeChangedListener() + { + @Override + public void onTimeChanged(TimePicker timePicker, int i, int i1) + { + if( + startPicker.getCurrentHour() > stopPicker.getCurrentHour() + || + ( + startPicker.getCurrentHour() == stopPicker.getCurrentHour() + && + startPicker.getCurrentMinute() >= stopPicker.getCurrentMinute() + ) + ) + tvDaysHint.setText(getResources().getString(R.string.timeFrameDaysHint)); + else + tvDaysHint.setText(""); + } + }; + startPicker.setOnTimeChangedListener(pickerListener); + stopPicker.setOnTimeChangedListener(pickerListener); + + // Perform check once + pickerListener.onTimeChanged(null, 0, 0); } private void loadVariableIntoGui() diff --git a/app/src/main/res/layout/activity_manage_trigger_timeframe.xml b/app/src/main/res/layout/activity_manage_trigger_timeframe.xml index 8106fc37..e04b3bfc 100644 --- a/app/src/main/res/layout/activity_manage_trigger_timeframe.xml +++ b/app/src/main/res/layout/activity_manage_trigger_timeframe.xml @@ -71,13 +71,20 @@ android:layout_margin="10dp" android:background="#aa000000" /> - - + + + + Profil \"%1$s\" benötigt dies. Letztes Profil: Liste von installierten Anwendungen auslesen + Wenn Sie ein Zeitfenster verwenden, das sich über Mitternacht erstreckt, müssen Sie auch den Folgetag auswählen, wenn der Auslöser auch nach Mitternacht noch auslösen soll. \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b8161aea..f86dc998 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -700,4 +700,5 @@ El perfil \"%1$s\" requiere esto. Último perfil: Obtener una lista de las aplicaciones instaladas + Si utiliza un marco de tiempo que se extiende más allá de la medianoche, también debe seleccionar el día siguiente si desea que la condición se aplique después de la medianoche. \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 91a704b0..36e93003 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -701,4 +701,5 @@ Ottenere la posizione non sembra funzionare su dispositivi Android 12 al momento. Se non funziona per te, mi dispiace. Cercherò di risolvere questo problema non appena conoscerò la causa. Quindi, se cerchio rotante non smette di girare, sai perché. Ultimo profilo: Ottenere un elenco delle applicazioni installate + Se si utilizza un intervallo di tempo che si estende oltre la mezzanotte, è necessario selezionare anche il giorno successivo se si desidera che il trigger venga applicato dopo la mezzanotte. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 3ca0cd1e..89f5b6ba 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -699,4 +699,5 @@ Profiel \"%1$s\" vereist dit. Laatste profiel: Een lijst met geïnstalleerde toepassingen ophalen + Als u een tijdsbestek gebruikt dat zich uitstrekt over middernacht, moet u ook de volgende dag selecteren als u wilt dat de trigger na middernacht van toepassing is. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 179db608..2556594a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -797,4 +797,5 @@ Getting the location does not seem to be working on Android 12 devices currently. If it isn\'t working for you, I\'m sorry. I\'ll try to fix this as soon as I know the cause. So if the donut doesn\'t stop spinning, you know why. Last profile: Get a list of installed applications + If you use a timeframe that stretches over midnight you need to select the following day as well if you want the trigger to apply after midnight. \ No newline at end of file