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!

  • Rikudou_SageOPA
    link
    English
    1
    edit-2
    7 months ago

    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:

    (…) This even gets so absurd that with some vendors (e.g. Nokia, Xiaomi, OnePlus, Samsung or Huawei) our smartphones are becoming dumbphones again.

    Dumbphones are unable to do any useful tasks for you in the background unless you actively use your device at the time. This affects most of the apps that are not just another browser window. Most affected are alarm clocks, health trackers, automation apps, or simply anything that needs to do some job for you at a particular moment when you aren’t using your device.

    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.

    • @trolololol@lemmy.world
      link
      fedilink
      English
      17 months ago

      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.

      • Rikudou_SageOPA
        link
        English
        17 months ago

        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.

          • Rikudou_SageOPA
            link
            English
            17 months ago

            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.

            • @trolololol@lemmy.world
              link
              fedilink
              English
              17 months ago

              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 any Activity, I mean from WallpaperService. Anyways, if WallpaperService never runs you shouldn’t have workmanager set and consume horde resources anyways.

              • Rikudou_SageOPA
                link
                English
                17 months ago

                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.

                • @trolololol@lemmy.world
                  link
                  fedilink
                  English
                  17 months ago

                  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.