From 2dfc538343e1cfa51ff9b6811514daabe523c973 Mon Sep 17 00:00:00 2001 From: jens Date: Fri, 27 May 2022 20:21:13 +0200 Subject: [PATCH] screenstate no sec lock screen fixed --- app/src/fdroidFlavor/java/com/jens/automation2/Rule.java | 8 +++++++- .../googlePlayFlavor/java/com/jens/automation2/Rule.java | 8 +++++++- .../java/com/jens/automation2/ActivityManageRule.java | 1 + .../jens/automation2/receivers/ScreenStateReceiver.java | 9 +++------ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java index 0a4ab03a..fd6b6c71 100644 --- a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java @@ -10,6 +10,7 @@ import android.os.Looper; import android.util.Log; import android.widget.Toast; +import com.jens.automation2.receivers.BroadcastListener; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -345,6 +346,10 @@ public class Rule implements Comparable if(oneTrigger.getTimeFrame().repetition > 0) return true; } + else if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.broadcastReceived)) + { + return oneTrigger.getTriggerParameter() == BroadcastListener.getInstance().hasBroadcastOccurredSince(oneTrigger.getTriggerParameter2(), getLastExecution()); + } } return false; @@ -383,7 +388,8 @@ public class Rule implements Comparable if (!oneTrigger.applies(null, context)) return false; } - + + Miscellaneous.logEvent("i", String.format(context.getResources().getString(R.string.ruleCheckOf), this.getName()), String.format("Rule %1$s generally applies currently. Checking if it's really due, yet will be done separately.", this.getName()), 3); return true; } diff --git a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java index 27798c9d..b4306bcd 100644 --- a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java @@ -12,6 +12,7 @@ import android.widget.Toast; import com.google.android.gms.location.DetectedActivity; import com.jens.automation2.receivers.ActivityDetectionReceiver; +import com.jens.automation2.receivers.BroadcastListener; import java.util.ArrayList; import java.util.Calendar; @@ -348,6 +349,10 @@ public class Rule implements Comparable if(oneTrigger.getTimeFrame().repetition > 0) return true; } + else if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.broadcastReceived)) + { + return oneTrigger.getTriggerParameter() == BroadcastListener.getInstance().hasBroadcastOccurredSince(oneTrigger.getTriggerParameter2(), getLastExecution()); + } } return false; @@ -386,7 +391,8 @@ public class Rule implements Comparable if (!oneTrigger.applies(null, context)) return false; } - + + Miscellaneous.logEvent("i", String.format(context.getResources().getString(R.string.ruleCheckOf), this.getName()), String.format("Rule %1$s generally applies currently. Checking if it's really due, yet will be done separately.", this.getName()), 3); return true; } diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index bd086e65..cdb1fd38 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -1090,6 +1090,7 @@ public class ActivityManageRule extends Activity @Override public void onClick(DialogInterface dialog, int which) { + newTrigger.setTriggerParameter(true); newTrigger.setTriggerParameter2(String.valueOf(which)); ruleToEdit.getTriggerSet().add(newTrigger); refreshTriggerList(); diff --git a/app/src/main/java/com/jens/automation2/receivers/ScreenStateReceiver.java b/app/src/main/java/com/jens/automation2/receivers/ScreenStateReceiver.java index 7eac053a..934439bb 100644 --- a/app/src/main/java/com/jens/automation2/receivers/ScreenStateReceiver.java +++ b/app/src/main/java/com/jens/automation2/receivers/ScreenStateReceiver.java @@ -65,6 +65,7 @@ public class ScreenStateReceiver extends BroadcastReceiver implements Automation screenStateIntentFilter.addAction(Intent.ACTION_SCREEN_OFF); screenStateIntentFilter.addAction(Intent.ACTION_SCREEN_ON); screenStateIntentFilter.addAction(Intent.ACTION_USER_PRESENT); // also fired when device is unlocked + screenStateIntentFilter.addAction(broadcastScreenLockedWithoutSecurity); screenStateIntentFilter.addAction(broadcastScreenLockedWithSecurity); // Intent.ACTION_USER_UNLOCKED } @@ -121,15 +122,11 @@ public class ScreenStateReceiver extends BroadcastReceiver implements Automation { ScreenStateReceiver.screenPowerState = SCREEN_STATE_OFF; -// Method 2 -// PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); + +// PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); // Miscellaneous.logEvent("i", "ScreenStateReceiver", "Method 2: " + String.valueOf(pm.isInteractive() && pm.isScreenOn() && keyguardManager.isKeyguardLocked() && keyguardManager.isDeviceLocked()), 4); // if (pm.isInteractive() && pm.isScreenOn() && keyguardManager.isKeyguardLocked() && keyguardManager.isDeviceLocked()) -// { -// -// } - // Miscellaneous.logEvent("i", "ScreenStateReceiver", "pm.isInteractive(): " + String.valueOf(pm.isInteractive()), 4); // Miscellaneous.logEvent("i", "ScreenStateReceiver", "pm.isScreenOn(): " + String.valueOf(pm.isScreenOn()), 4); Miscellaneous.logEvent("i", "ScreenStateReceiver", "keyguardManager.isKeyguardLocked(): " + String.valueOf(keyguardManager.isKeyguardLocked()), 4);