- cross-posted to:
- auai@programming.dev
- cross-posted to:
- auai@programming.dev
Hello there, fellow lemmings!
As the title suggests, I’ve made an app that changes your wallpaper regularly based on the parameters you set. It uses AI Horde (which uses Stable Diffusion) to generate the images and you can set the interval at which your wallpaper changes (from 1 time per day to 48 times per day).
Other features:
- completely free (in fact, will be open source next week)
- easy to use, but offers also advanced options
- there’s a help section with all the parameters explained
- works on both a phone and tablet
There’s also an optional Premium subscription which puts you higher in the priority queue, but most of the time it’s not needed - unless you’re generating during the most busy time, the wait is not really that long even without Premium. Note that if you’re a user of the AI Horde, you can put your own api key there and get the same benefits as having a Premium.
The open source version (released next week) will also allow (toggleable on or off) NSFW content, which is not possible in the Google Play version. It also doesn’t contain the Premium subscription.
Also please check https://dontkillmyapp.com and see steps for your phone vendor, this app needs to work in the background and most vendors kill background apps. It will ask for an exception for battery saver on its own when you set the schedule for the first time, but for some vendors that’s not enough.
Do let me know what do you think about the app! And if you want me to tag you when I make a release post for the open source version, let me know. Also huge thanks to @db0@lemmy.dbzer0.com for creating and maintaining the AI Horde, which makes this (and other cool apps) possible!
The wallpapers are changed automatically in the background. And many phone vendors will kill the background job, even if it doesn’t consume almost any resources. If you don’t disable battery optimizations, don’t be surprised that the app doesn’t work.
Edit: To cite https://dontkillmyapp.com/problem:
Emphasis is mine. I can confirm that it indeed gets killed on my Samsung if I don’t disable battery optimizations. At the same time my phone reports 0% battery used since last charge even with battery optimizations disabled. Meaning I don’t abuse the privilege, but just do what the app should do on its own if some vendors weren’t way too eager.
I wonder how you’re using workmanager , and expect you to not be using services directly. These are the ones that could have an impact.
Wallpapers have their own instance of WallpaperEngine which is kept in use as long as the user is seeing the wallpaper. That’s my experience with my own wallpaper.
I schedule the job using an inexact alarm which then triggers the work manager job. Anyway, Samsung kills pretty much anything in the background unless you go out of your way to prevent it. I have no recent experience with other vendors. It would kill yours, too, no matter what code you use to write it.
You’ve got like 10 seconds to do what you need, should be enough to download your image?
You don’t seem to understand that the job will be killed before it’s even triggered. Like the scheduled job will not run at all.
I think the msg sent yesterday didn’t get through;
periodic alarms is the old way; periodic work manager is the new way.
trigger your workmanager schedule by either alarm or by opening the app. but use the alarm only once if you must.
my wallpaper used to handle reboots by listening to a boot event, which would trigger workmanager. Unfortunately I haven’t come to find an alternative for that for general apps. However, if your wallpaper is set to your app I bet there’s a way to check if you have any workmanager scheduled, and if it’s not, do it from there. I don’t mean from
Application
or anyActivity
, I mean fromWallpaperService
. Anyways, ifWallpaperService
never runs you shouldn’t have workmanager set and consume horde resources anyways.I think I’ve explained quite well already, but again, many vendors, like Samsung, kill any background jobs before they have a chance to run. No matter what technology you use, it will get killed. The only thing that doesn’t get killed is an exact alarm that’s allowed to wake your phone from sleep. Everything else will get killed on Samsung. Including periodic alarms and including work manager, periodic or not.
I have no idea what the rest of your message is even talking about, I don’t have any WallpaperService, I don’t do any of what you mention, so I don’t quite understand why are you even talking about it.
In conclusion, further discussion on this topic is unnecessary because you seem to be rambling on and on about stuff that’s not at all related to why the battery optimization exception is needed. It’s not because of stock Android, but because of other vendor’s flavors of Android.
Ah I assumed you implemented some sort of live wallpaper but apparently is not the case. So your solution has no overlap with mine.
Also I see that help seems to be not welcome. Feel free to reach if you change your mind.