Code Monkey home page Code Monkey logo

keepscreenon's Introduction

KeepScreenOn

Keep Screen On allows you to add a quick settings tile, with which you can easily disable screen timeout and then restore the previous timeout value.

For example, this may be useful to you if you need the display to stay on temporarily when viewing a website or document or if your device does not have the option to set the screen timeout to never in the settings.

Get it on F-Droid Get it on GitHub

Screenshots

Screenshot Tile Disabled Screenshot Tile Enabled Screenshot App

Permissions

  • WRITE_SETTINGS - Required to read and update system timeout
  • FOREGROUND_SERVICE - Needed to listen for battery_low and/or screen_off actions, if you enable the feature "Restore timeout when battery is low" and/or "Restore timeout when screen is turned off"
  • FOREGROUND_SERVICE_SPECIAL_USE - Needed to specify the appropriate foreground service type
  • POST_NOTIFICATIONS - Needed to post notifications when foreground service is running

keepscreenon's People

Contributors

ab-mr avatar aorinngodo avatar elastic-rock avatar vasiliskos avatar weiguangtwk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

keepscreenon's Issues

after update restoring to system timeout value doesn't work

system:

  • Android 10
  • Keep Screen On: at least versions 1.12.0 and 1.11.0

before update:

  • in Keep Screen On both Options to restore timeout (low battery, screen off) activated
  • icon shows up on status bar if Keep Screen On gets activated

after update:

  • restoring to system timeout value doesn't work anymore
  • icon doesn't show up on status bar

work around:
toggle both Options and app behaves as expected again

NB:

  • a reboot is not solving the issue
  • have not systematically tested whether status of Keep Screen On, i.e. being active or not, at time of update is making a difference

Can't update to 1.17.0

Looks like versionCode was set to 2 instead of 24 by accident in 3453ea6, so Android thinks a newer version is already installed when trying to update from 1.16.2 to 1.17.0

Low battery deactivation

There is a risk of forgetting to reactivate the timeout and draining the battery overnight.

A customizable minimum battery level could re-enable the timeout when the device drops below that level. If the timeout is disabled again below this level, it could work as normal and drain the device until it is empty.

suggestion: automatically reset to system timeout value after locking the device

Great app, as simple and effective! Thank you.

Similar to #9 I'd like to suggest an enhancement, mainly for security reasons:

After the screen gets locked KeepScreenOn should by default get deactivated and the screen timeout value should revert back to the system setting value. Of course, in addition there could be an option to override this default behavior.

Thank you for your consideration

Suggestion: A notification for better control

Personally i think the app should show a notification with a turn off button, all the other similar apps I've used does this. I find it more easy than swiping through quick tiles to turn the service off. Please consider adding it if possible. Thank you

Version 1.1 safety issue

When I installed the new 1.1 version, I got a warning from Play Protect. That didn't happen with 1.0. Can you check this? Maybe it has to do with the apk signature or something.

P. S. I hope the app size issue is soon fixed. ๐Ÿ˜Š

Unit missing

At the bottom of the screen, it shows the delay without indicating the unit (looks like ms). See yellow arrow on the image below.
Screenshot_20240403-070446

Option to hide app icon

Add a toggle in the app window, to hide the app icon in the app drawer. It's useless after the initial start of the app. If someone wants to launch the app, he can do it by long tapping the tile, and then tap "launch" in the app settings.

OPINION WANTED: Tile activation indication

I think the active indication of the tile should be reversed. What I mean is that, when the app is not "active" the screen timeout is the one set by the user; the default one. In that case the tile should not be lit. When it's tapped, the app is "activated" (infinite timeout), so the tile should be lit. That makes more sense, and it's the way all other respective apps' tiles work.

Keep Screen On keeps crashing (exception and logcat provided)

I'm running on the latest version of GrapheneOS and the latest version of KeepScreenOn (via f-droid).
When I unlock my phone, KeepScreenOn keeps crashing and below is the exception that's generated.
I've also attached the logcat in hope this might help Keep Screen On log 53aeee890cf9.txt.

Let me know if you need further information or tests on my end.

type: crash
osVersion: google/bluejay/bluejay:14/UQ1A.240105.002/2024011600:user/release-keys
package: com.elasticrock.keepscreenon:22
process: com.elasticrock.keepscreenon
processUptime: 539002 + 341 ms
installer: com.android.packageinstaller

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.service.quicksettings.Tile.setLabel(java.lang.CharSequence)' on a null object reference
	at com.elasticrock.keepscreenon.QSTileService.onStartListening(SourceFile:71)
	at android.service.quicksettings.TileService$H.handleMessage(TileService.java:488)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:205)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8279)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ExecInit.main(ExecInit.java:49)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.