wakelock action

This commit is contained in:
jens 2022-07-02 12:46:34 +02:00
parent 99faa2f7ef
commit 536a5e22f9
2 changed files with 41 additions and 31 deletions

View File

@ -576,6 +576,12 @@ public class Action
else if(execParts.length == 2) else if(execParts.length == 2)
Actions.runExecutable(context, this.getParameter1(), execParts[0], execParts[1]); Actions.runExecutable(context, this.getParameter1(), execParts[0], execParts[1]);
break; break;
case wakelock:
if(this.getParameter1())
Actions.wakeLockStart(context, Long.parseLong(this.getParameter2()));
else
Actions.wakeLockStop();
break;
default: default:
Miscellaneous.logEvent("w", "Action", context.getResources().getString(R.string.unknownActionSpecified), 3); Miscellaneous.logEvent("w", "Action", context.getResources().getString(R.string.unknownActionSpecified), 3);
break; break;

View File

@ -1142,7 +1142,6 @@ public class Actions
{ {
Miscellaneous.logEvent("i", "waitBeforeNextAction", "waitBeforeNextAction for " + String.valueOf(waitTime) + " milliseconds.", 4); Miscellaneous.logEvent("i", "waitBeforeNextAction", "waitBeforeNextAction for " + String.valueOf(waitTime) + " milliseconds.", 4);
wakeLockStart(60000);
try try
{ {
Thread.sleep(waitTime); Thread.sleep(waitTime);
@ -2097,17 +2096,21 @@ public class Actions
public final static int wakeLockTimeoutDisabled = -1; public final static int wakeLockTimeoutDisabled = -1;
static boolean wakeLockStopRequested = false; static boolean wakeLockStopRequested = false;
public static void wakeLockStart(long duration) public static void wakeLockStart(Context context, long duration)
{ {
long waited = 0; Thread lockThread = new Thread(new Runnable()
int step = 1000; {
@Override
public void run()
{
wakeLockStopRequested = false;
if(duration < 0) long waited = 0;
step = 99999; int step = 2000;
try try
{ {
PowerManager powerManager = (PowerManager) Miscellaneous.getAnyContext().getSystemService(Context.POWER_SERVICE); PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock fullWakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Loneworker - FULL WAKE LOCK"); PowerManager.WakeLock fullWakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "Loneworker - FULL WAKE LOCK");
fullWakeLock.acquire(); // turn on fullWakeLock.acquire(); // turn on
@ -2123,16 +2126,13 @@ public class Actions
e.printStackTrace(); e.printStackTrace();
} }
if(duration > 0)
waited += step; waited += step;
if(false) //stop requested if(wakeLockStopRequested) //stop requested
{
Miscellaneous.logEvent("i", "WakeLockStart", "Stop requested.", 4); Miscellaneous.logEvent("i", "WakeLockStart", "Stop requested.", 4);
wakeLockStopRequested = false;
break;
} }
} while(!wakeLockStopRequested && (duration < 0 || waited <= duration));
while(waited <= duration);
fullWakeLock.release(); fullWakeLock.release();
} }
@ -2140,6 +2140,10 @@ public class Actions
{ {
} }
} }
});
lockThread.start();
}
public static void wakeLockStop() public static void wakeLockStop()
{ {