Muzei 3.0 and Legacy Sources

Ian Lake
muzei
Published in
3 min readOct 10, 2018

TL/DR: If you’re using Muzei 3.2 or higher and want to continue to use a Legacy Source until they convert to the Muzei 3.0 API, you can install Muzei Legacy to regain support for Legacy Sources.

Muzei offers a plugin system that allows any app to provide wallpapers for display in Muzei. Muzei 3.0 introduced a new API that fixes a number of long standing issues, particularly on API 23+ and the battery optimizations changes introduced on those newer versions of Android.

Apps built with the previous Muzei 2.x Legacy API are classified as ‘Legacy Sources’ in Muzei 3.0 and are no longer directly supported in Muzei 3.2 and higher.

What’s different about Legacy Sources?

No support for Auto Advance

Legacy Sources load new wallpapers in two steps:

  1. Based on their own internal logic, they ‘publish’ new wallpapers to Muzei with a URL to load the wallpaper from.
  2. Muzei then loads the new wallpaper immediately.

This means that the decision on when to load new wallpapers depend entirely on the Legacy Source. This means that Legacy Sources don’t support Auto Advance.

Therefore it is not possible to control how often Legacy Sources load new wallpapers or if they wait until the device is on WiFi unless the Legacy Source has built those specific settings.

It also means that data usage caused by downloading wallpapers is attributed to Muzei itself (since it is Muzei that downloads the wallpaper on the Legacy Source’s request), rather than attributed to the Legacy Source itself. This is in contrast to Muzei 3.0 Sources which have their data usage properly attributed to the Source, not to Muzei.

Requirement to disable Battery Optimizations on API 23+ devices

Due to how to the Legacy API was built and Android’s evolution, you must manually disable Battery Optimizations on Legacy Sources on API 23 (Marshmallow, Android 6.0) and higher devices.

Note: you do not need to disable Battery Optimizations on Muzei itself — only on the third party app providing the Legacy Source you want to use.

This is generally done through the Settings app on your device. However, the location for these settings can differ by manufacturer. Generally, Google searching for ‘YOUR DEVICE NAME battery optimizations’ will bring up relevant results for disabling battery optimizations.

What’s the future for Legacy Sources?

In late 2018, Google Play is enforcing that all new apps and updated apps target API 26 or higher. The Legacy API is totally incompatible with apps that target API 26 or higher, meaning that all new plugins and apps still publishing updates must move to the Muzei 3.0 API.

Note: Muzei has disallowed apps that target API 26+ from using the Legacy API even on Muzei 2.6.0 builds for exactly this reason.

Please send feedback to any apps providing a Legacy Source with a link to the Muzei 3.0 API.

You can also tell them that they can email support@muzei.co for help moving to the new API (including help writing their new API support if the app is open source!).

What happens to Legacy Sources that aren’t updated?

To continue to push updates to Muzei after November 2018, Muzei itself must target API 26 or higher, which means that Muzei 3.2 removes direct support for Legacy Sources.

However, to avoid cases where users upgrading lose permanent access to Legacy Sources, we have made Muzei Legacy available as an additional installation (not through the Google Play Store, given that it needs to target API 25) to re-add support for Legacy Sources to Muzei 3.2 or higher.

Given all of the above issues with Legacy Sources, it is still strongly recommended to avoid using Legacy Sources, particularly on API 23 and higher devices. Please send feedback to Sources continuing to use the Legacy API to have them convert to the Muzei 3.0 API.

--

--

Ian Lake
muzei
Editor for

Android Framework Developer at Google and Runner