* feat(about): add "View changes" button with detailed commit history
Add a new "View changes" button in the About screen that displays a detailed
changelog dialog when updates are available. This provides users with better
visibility into what changes they will receive when updating.
Features added:
- New "View changes" button in update section (Available/Downloaded states)
- ChangesDialog component showing commit history since current version
- Clickable commit cards that open GitHub commit pages in browser
- Relative time display (5m, 2h, 3d, etc.) following GitHub's format
- Full internationalization support for time strings
- Fetches commits using GitHub API and compares with current build
- Clean Material 3 UI with proper styling and animations
Technical changes:
- Extended GitHubService with commits and compare endpoints
- Added GitHubCommit and GitHubCompareResponse data models
- Enhanced NightlyBuildsRepository with commit fetching capabilities
- Added time-relative string resources (time_minutes_ago, time_hours_ago, etc.)
- Updated AboutViewModel to handle changes dialog state
- Modified UpdateState models to include build numbers
- Renamed getCommits to getRepositoryCommits for API consistency
- Replaced all hardcoded strings with proper internationalized resources
All strings are now properly internationalized to ensure translatability
across all supported languages.
* style: apply spotless code formatting
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor(updater): move changelog logic to ViewModel
* feat(updater): improve UI and UX
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: SuperDragonXD <70206496+SuperDragonXD@users.noreply.github.com>
* feat(about): add viewmodel and UDF state models
* feat(about): add new repository and service
* feat(about): refactor About screen and related components
* refactor(about): remove legacy update checker file
* refactor(about): improve robustness of NightlyBuildsRepository
This change also tweaks the code to use application storage instead of external storage.
* refactor(acknowledgements): simplify Acknowledgements implementation
* fix(about): add missing strings
* refactor(acknowledgements): apply suggestions from review
* refactor(about): simplify nightly builds repository
* refactor(about): apply changes from review
* refactor(acknowledgements): apply changes from review
* fixup: apply review suggestions from Goooler
* M3E Shape
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
* codespace
* Merge ci/backport-16-dev_material-expressive-shape to designated
upstream
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
* Merge incoming to codespace
* ok ok you win spotless
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
---------
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
* fix(search): apply max result to web suggestion provider
* fix(search): apply file search toggle to FileSearchProvider
* fix(search): apply font settings to empty state search result
* fix(settings): uncheck ContactsSearchProvider switch when permissions are not granted
* refactor(search): migrate clear history button to search settings
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit completes the work started in the search refactor by migrating all remaining legacy file/media permission checks to the new, centralized `FileAccessManager`.
Previously, features like the wallpaper preview and backup system used the side-effect based permission model that created a poor user experience, especially on modern Android versions.
This change unifies all file and media access logic under the new, observable `StateFlow`-based system. This includes:
- Refactoring the wallpaper drawable access logic to correctly handle the various states of media permissions on Android 13+. This is disabled by default on Play Store builds, due to lack of `MANAGE_EXTERNAL_STORAGE` permission.
- Updating the backup/restore system to use the new manager.
- Updating the blur wallpaper feature to use the new manager.
- Migrating the OTA update check to use the new manager.
- Replacing the "Notification Dots" permission bottom sheet with the new, simpler `PermissionDialog` for UI consistency.
Credit-to: @lebao3105 for the initial analysis of the wallpaper permission issue.
Fixes#5632Fixes#5676