$ show ReVanced/revanced-manager
ReVanced Manager is an Android application that applies custom patches to Android APKs using the ReVanced Patcher engine. It provides a user interface for downloading patch bundles, selecting and configuring patches, patching applications (including a background patcher service), signing the resulting APKs, and installing them. The app is built with modern Android technologies: Jetpack Compose for UI, Room for local persistence, Koin for dependency injection, Ktor for networking, and WorkManager for background tasks. It follows an MVVM architecture with a repository pattern and supports root-based installation via Magisk modules. The application manages a complex state of patch selections, downloaded apps, installed apps, and options through a Room database with schema migrations. It includes a downloader plugin system for acquiring APK files from various sources, automatic update checks for the manager itself, patches, and downloaders, and extensive localization support via Crowdin.
The LLM identified 2 files worth highlighting for reuse:
Provides custom Compose SaveableStateSavers for collections (e.g., persistentSet, persistentMap) that enable state preservation across configuration changes. These savers handle serialization of complex collection types using Kotlin's standard serialization and are fully isolated from the rest of the app, making them reusable for any Android Compose project that needs to save collection state.
A simple but reusable Compose SaveableStateSaver that wraps an existing saver to support nullable values. It handles the case where the saved value is null by saving a null sentinel. This is a common pattern needed across Compose apps, and the implementation is clean, generic, and independent of the rest of the codebase.