diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerTimeFrame.java index 45ab58c..65980a6 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/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java index 03e7cc8..4cce7c9 100644 --- a/app/src/main/java/com/jens/automation2/Trigger.java +++ b/app/src/main/java/com/jens/automation2/Trigger.java @@ -925,20 +925,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 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 8106fc3..e04b3bf 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. Dienst startet Gerät startet Gerät ist gerade gestartet diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a116433..d150e11 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -700,6 +700,7 @@ 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. Dispositivo esta enciendo Servicio esta enciendo el dispositivo justamente ha encendido diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 48c1846..cf53f7e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -701,6 +701,7 @@ 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. Device starts Avvio del servizio Il dispositivo è appena stato avviato diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7575ea7..573c7e1 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -699,6 +699,7 @@ 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. apparaat is net gestart service is net begonnen Service start diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a8c756a..6ca21f4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -797,6 +797,7 @@ 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. Device starts Service starts device has just started