From 0008642044221e1081536eb3331c7aeb424774dc Mon Sep 17 00:00:00 2001 From: jens Date: Wed, 8 Dec 2021 19:57:27 +0100 Subject: [PATCH] Rework --- .../java/com/jens/automation2/Action.java | 29 +++++++++++++++++++ .../java/com/jens/automation2/Actions.java | 15 +++++----- .../jens/automation2/ActivityManageRule.java | 7 +++++ app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index 57a92ef..4cd32f5 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -36,6 +36,7 @@ public class Action startOtherActivity, waitBeforeNextAction, wakeupDevice, + turnScreenOnOrOff, setAirplaneMode, setDataConnection, speakText, @@ -91,6 +92,8 @@ public class Action return context.getResources().getString(R.string.waitBeforeNextAction); case wakeupDevice: return context.getResources().getString(R.string.wakeupDevice); + case turnScreenOnOrOff: + return context.getResources().getString(R.string.turnScreenOnOrOff); case vibrate: return context.getResources().getString(R.string.vibrate); case setAirplaneMode: @@ -233,6 +236,13 @@ public class Action { returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.wakeupDevice)); } + else if(this.getAction().equals(Action_Enum.turnScreenOnOrOff)) + { + if(getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOff)); + } else if(this.getAction().equals(Action_Enum.playSound)) { returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.playSound)); @@ -416,6 +426,25 @@ public class Action e.printStackTrace(); } break; + case turnScreenOnOrOff: + if(getParameter1()) + { + Actions.wakeupDevice(Long.parseLong(this.getParameter2())); + // wakeupDevice() will create a separate thread. That'll take some time, we wait 100ms. + try + { + Thread.sleep(100); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + else + { + Actions.turnOffScreen(); + } + break; case setAirplaneMode: Actions.setAirplaneMode(this.getParameter1(), toggleActionIfPossible); break; diff --git a/app/src/main/java/com/jens/automation2/Actions.java b/app/src/main/java/com/jens/automation2/Actions.java index 14373fa..cee7f6d 100644 --- a/app/src/main/java/com/jens/automation2/Actions.java +++ b/app/src/main/java/com/jens/automation2/Actions.java @@ -1097,7 +1097,7 @@ public class Actions try { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - WakeLock wakeLock = pm.newWakeLock((WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Automation:Wakelock"); + WakeLock wakeLock = pm.newWakeLock((PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Automation:Wakelock"); wakeLock.acquire(); try @@ -1118,21 +1118,22 @@ public class Actions } } - public void turnOnScreen() + public static void turnOnScreen() { // turn on screen - Log.v("ProximityActivity", "ON!"); + Miscellaneous.logEvent("i", "Actions", "Turning screen on.", 3); PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); wakeLock.acquire(); } @TargetApi(21) //Suppress lint error for PROXIMITY_SCREEN_OFF_WAKE_LOCK - public void turnOffScreen(){ - // turn off screen - Log.v("ProximityActivity", "OFF!"); + public static void turnOffScreen() + { + Miscellaneous.logEvent("i", "Actions", "Turning screen off.", 3); PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - WakeLock wakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag"); +// WakeLock wakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag"); + WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK , "tag"); wakeLock.acquire(); } diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index d1e9190..67ad229 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -1409,6 +1409,8 @@ public class ActivityManageRule extends Activity items.add(new Item(typesLong[i].toString(), R.drawable.plane)); else if(types[i].toString().equals(Action_Enum.wakeupDevice.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.alarm)); + else if(types[i].toString().equals(Action_Enum.turnScreenOnOrOff.toString())) + items.add(new Item(typesLong[i].toString(), R.drawable.smartphone)); else if(types[i].toString().equals(Action_Enum.changeSoundProfile.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.sound)); else if(types[i].toString().equals(Action_Enum.triggerUrl.toString())) @@ -1543,6 +1545,11 @@ public class ActivityManageRule extends Activity newAction.setAction(Action_Enum.wakeupDevice); getActionWakeupDeviceDialog(ActivityManageRule.this).show(); } + else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.turnScreenOnOrOff.toString())) + { + newAction.setAction(Action_Enum.turnScreenOnOrOff); + getActionParameter1Dialog(ActivityManageRule.this).show(); + } else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.setAirplaneMode.toString())) { newAction.setAction(Action_Enum.setAirplaneMode); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5258355..b707b72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -726,4 +726,7 @@ unknown Position " There's something wrong with this trigger. It could not be loaded correctly." + Turn screen on or off + turn screen on + turn screen off \ No newline at end of file