$ show jenly1314/AppUpdater
AppUpdater is a multi-module Android library that provides in-app update functionality: it checks a remote version, downloads the APK, shows progress via notification or dialog, and installs the APK across Android versions. The core `app-updater` module contains the update orchestration, download/install services, notification handling, and file/checksum utilities; the `app-dialog` module provides a ready-made update dialog; the `app` module is a sample. The main entry point is the `AppUpdater` builder/facade, which accepts an `UpdateConfig` and optional custom parser/strategy implementations, so consumers can plug in their own update-info JSON schema.
The LLM identified 5 files worth highlighting for reuse:
Fluent entry point that encapsulates update configuration and lifecycle. Consumers construct an update request without touching download/install internals; the builder pattern makes it easy to add optional custom parsers and listeners.
Coordinates the update pipeline: version check, APK download, progress notification, and installation. Isolates the state transitions so the rest of the library stays decoupled; reusable as a template for any multi-step background task.
Downloads APK with progress callbacks and file checksum verification. Handles streaming, cancellation, and temporary files; can be extracted for any Android download-with-progress use case.
Builds and updates download progress notifications across Android versions, including notification channels, POST_NOTIFICATIONS permission, and PendingIntent mutability flags. Encapsulates the most error-prone Android platform differences.
Handles APK installation across Android versions: FileProvider content URIs, unknown-apps install permission, and ACTION_VIEW intents. Isolates the most device-fragile part of the update flow.