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