-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request - Make ScreensaverActivity Public #175
Comments
@rac146 Can you test the apk below and tell me if it's OK for you (I've only modified the manifest)? |
Yes, it works great! |
Hey @BlackyHawky - I tried to install the latest 2.12.1 via Obtanium and it's still showing the ScreensaverActivity marked to private. Any ideas? I previously compiled the code manually (with the same changes you pushed) and it switched the activity to public. |
@rac146 It's strange because in the apk I provided you with the other day I didn't add the "exported=true" attribute for the "ScreensaverActivity" activity. Indeed, the "ScreensaverActivity" activity only serves to preview the screensaver. In any case, I'll provide you with another apk later. |
@rac146 |
Confirmed, that works! Thanks for working through that with me, really appreciate it! |
For anyone interested, if using Fully Kiosk or another app and want to directly launch the screensaver, it will look something like this: Debug: Release: |
@rac146 Before merging my change into the main branch, I want to clarify one thing with you. You said in your original post: What do you mean exactly? |
It's a niche use-case where you can launch the current Daydream screensaver manually instead of waiting for the screen to timeout. Before Android 13 you were basically able to launch the DaydreamActivity directly (which would turn on the current screensaver); after the update to Android 13 or later this is now restricted. By making your ScreensaverActivity public, it's useful for Kiosk-like applications where you might want to override the default Daydream screensaver behavior and launch a custom activity as a screensaver. |
It's already possible to launch the screensaver manually by long-pressing the application icon and clicking on the "Screensaver" shortcut. So why are your manipulations necessary? |
It's alright - a Kiosk app such as Fully Kiosk would present a dashboard/webpage with an always-on screen (in my case it's Home Assistant). It may turn the screen on and off or be triggered on and off by motion or a webhook. Since applications like this take over screen behavior, Daydream screensaver settings built into Android are unreliable and don't always work correctly. To work around the unreliability, most Kiosk apps give you the ability to custom launch activities as screensavers and bypass the Daydream settings all-together. So for example, you can set up a custom 30 second timeout that will custom launch your ScreensaverActivity after 30 seconds of inactivity. In order for this to work, the custom activity needs to be exported as public. Before Android 13, Fully Kiosk had an option just to launch the DaydreamActivity directly (like a screensaver override), but like I mentioned Android locked that down after 13 so you can no longer do that. Hope that helps make more sense. |
@rac146 FYI: I'll publish a new version in a few hours with this change. |
No prob, thanks!! |
Is your feature request related to a problem? Please describe.
Yes - I am running a tablet with Fully Kiosk and would like to launch a customized screensaver with this clock. In order to do so, the ScreenSaverActivity needs to be public.
Describe the solution you'd like
Make "ScreensaverActivity"
exportable=true
Use case
By making this public, users can launch the Clock Screensaver Activity directly (Android 13+ no longer lets you launch the current Daydream Screensaver so this is a workaround for that limitation)
Would there be any issues with making the ScreensaverActivity public?
The text was updated successfully, but these errors were encountered: