diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 43859d6..ea23d43 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -175,7 +175,7 @@ jobs: if: ${{ env.acra_id }} continue-on-error: true run: | - echo -n "See GitHub Actions" | curl -m 120 \ + echo -n "See: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" | curl -m 120 \ -H "Content-Type: text/plain" \ -u "${{ secrets.ACRARIUM_USER }}:${{ secrets.ACRARIUM_PASS }}" \ --data-binary @- \ diff --git a/.github/yamllint.yaml b/.github/yamllint.yaml index 38237e5..ccf5e5e 100644 --- a/.github/yamllint.yaml +++ b/.github/yamllint.yaml @@ -4,4 +4,4 @@ ignore-from-file: .gitignore rules: line-length: - max: 119 + max: 120 diff --git a/README.md b/README.md index deff89c..65dbaae 100644 --- a/README.md +++ b/README.md @@ -304,10 +304,11 @@ You can also star this project on GitHub and support other related projects: - [Django Files Android](https://github.com/django-files/android-client?tab=readme-ov-file#readme) - [Zipline Android](https://github.com/cssnr/zipline-android?tab=readme-ov-file#readme) -- [NOAA Weather Android](https://github.com/cssnr/noaa-weather-android?tab=readme-ov-file#readme) - [Remote Wallpaper Android](https://github.com/cssnr/remote-wallpaper-android?tab=readme-ov-file#readme) +- [NOAA Weather Android](https://github.com/cssnr/noaa-weather-android?tab=readme-ov-file#readme) - [ParKing Android](https://github.com/cssnr/parking-android?tab=readme-ov-file#readme) - [Todo List Android](https://github.com/cssnr/todolist-android?tab=readme-ov-file#readme) +- [Device Info Android](https://github.com/cssnr/device-info-android?tab=readme-ov-file#readme) - [Tibs3DPrints Android](https://github.com/cssnr/tibs3dprints-android?tab=readme-ov-file#readme) For a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8b5c0eb..22be262 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -60,7 +60,7 @@ - Not Limited + Not Limited (Default) 1.25x Screen Width 1.5x Screen Width 2.0x Screen Width diff --git a/build.gradle.kts b/build.gradle.kts index 022552f..e74a215 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + // NOTE: Not sure if this is required or not... + //repositories { + // google() + // mavenCentral() + //} + dependencies { + classpath(libs.kotlin.gradle.plugin) + } +} plugins { alias(libs.plugins.android.application) apply false //alias(libs.plugins.kotlin.android) apply false diff --git a/docs/usage.md b/docs/usage.md index 65c0d01..49b3cbf 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -81,39 +81,89 @@ seconds.** ## :lucide-settings: Settings -App Settings: +Settings control how and when wallpapers update, how the home screen widget looks, and give access +to app information and debugging tools. -- Update Interval -- Screens to Update (Home/Lock) -- Crop Wallpaper for Device -- Updates on Metered Connection -- Remove Background Restriction +### :lucide-cog: App Settings + +**Widget Settings** - Opens a separate screen to customize the home screen widget. See +[Appearance](#appearance) and [Foreground Refresh](#foreground-refresh) below. + +**Crop Wallpaper for Device** - When enabled (default), the image is scaled and center-cropped to +match your device's screen size. This is required for the system's parallax effect (the wallpaper +that shifts as you swipe between home screens) to work correctly. When disabled, the raw image is +handed to Android as-is. + +**Limit Parallax Width** - Caps how much wider than the screen the wallpaper canvas can be (up to +2.5x). A smaller canvas leaves less of the image hidden off-screen, so more of it is visible during +parallax scrolling, at the cost of a larger center-crop. Only shown when **Crop Wallpaper for +Device** is enabled. Off by default. + +**Screens to Update** - Controls where the wallpaper is applied: the home screen, the lock screen, +or both (default). + +**Update Interval** - How often the wallpaper is refreshed in the background, from 15 minutes up to +weekly. The default is 1 hour. Selecting **Never Update** disables scheduled updates entirely, which +also disables **Updates on Metered Connection**. + +**Updates on Metered Connection** - When enabled (default), background updates are allowed on +metered networks like mobile data. When disabled, updates only run on unmetered networks such as +Wi-Fi. Ignored while **Update Interval** is set to **Never Update**. + +**Disable HTTP Cache** - A debugging option. When enabled, the app skips its normal conditional +request headers (ETag / Last-Modified) and re-downloads the full image on every update instead of +accepting a `304 Not Modified` response. Off by default. + +**Remove Background Restriction** - Android may block the app's background work to save battery, +which delays wallpaper and widget updates. Tapping this requests an exemption from battery +optimizations. Once the permission is granted, the item shows _Permission Already Granted_ and can +no longer be tapped. + +### :lucide-app-window: Widget Settings + +These options style the home screen widget described in +[Appearance](#appearance) and [Foreground Refresh](#foreground-refresh). + +**Text Color** - Sets the color of the widget's text and icons to white, black, or liberty. +White by default. + +**Background Color** - Sets the color of the widget's background to white, black, or liberty. +Black by default. + +**Background Opacity** - Controls how transparent the widget background is, from 0 (fully +transparent) to 100 (fully opaque). 35 by default. + +**Show Screen Icons** - Toggles the Home/Lock screen icons on the widget, which indicate which +screen(s) were updated. On by default. + +**Foreground Widget Refresh** - When enabled, the widget's refresh button runs the update through +an invisible foreground activity instead of a background broadcast. This makes the dynamic system +theme update immediately, but the home screen is non-interactive for the roughly 1-2 seconds the +update takes. -Widget Settings: +### :lucide-badge-info: App Information -- Text Color -- Background Color -- Background Opacity -- Show Screen Icons -- Foreground Widget Refresh +**Application Information** - Shows a dialog with the package name, version name, and version code, +plus links to the project website and GitHub repository. -App Information: +**Open Android Settings** - Opens the system's App Info page for Remote Wallpaper, where you can +manage permissions, storage, notifications, and other system-level settings. -- Application Information -- Open Android Settings -- Send Feedback +**Send Feedback** - Opens a dialog with a text field for sending suggestions or bug reports directly +to the developer. The item is disabled after feedback has been sent. -Debugging: +### :lucide-activity: Debugging -- Enable Crash Reporting -- Enable Application Logs -- View Logs +**Enable Crash Reporting** - When enabled (default), an anonymized crash report is sent automatically +after an unhandled crash. See [Crash Reporting](#crash-reporting) below for details on what is +collected. -Application Logs: +**Enable Application Logs** - When enabled (default), the app keeps a local log of wallpaper updates, +scheduled work, and widget refreshes for debugging purposes. Logs are stored on-device only and +entries older than 7 days are purged automatically. -- Wallpaper updates, scheduled work, and widget refreshes -- Entries older than 7 days are purged automatically -- Copy, Share, or Delete the logs from the logs page +**View Logs** - Opens the logs page where the recorded entries can be viewed, copied, shared, or +deleted. ### :lucide-bug: Crash Reporting diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 360d28b..2b514f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] agp = "9.4.1" # kotlin = "2.4.10" +kotlin = "2.4.20" ksp = "2.3.12" coreKtx = "1.19.1" # coreSplashscreen = "1.2.0" @@ -28,7 +29,7 @@ retrofit = "3.0.0" moshiKotlinCodegen = "1.15.2" photoview = "1.0.3" konfettiXml = "2.0.5" -acra = "5.13.1" +acra = "5.14.2" # taptargetview = "1.15.0" [libraries] @@ -62,6 +63,7 @@ photoview = { group = "io.getstream", name = "photoview", version.ref = "photovi konfetti-xml = { group = "nl.dionsegijn", name = "konfetti-xml", version.ref = "konfettiXml" } acra-http = { group = "ch.acra", name = "acra-http", version.ref = "acra" } acra-toast = { group = "ch.acra", name = "acra-toast", version.ref = "acra" } +kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } # taptargetview = { group = "com.getkeepsafe.taptargetview", name = "taptargetview", version.ref = "taptargetview" } [plugins]