What's Changed
🚀 Enhancements
- General: User interface and user experience overhaul by @d4rken in #2381
- General: Explain why Advanced Protection blocks accessibility by @d4rken in #2479
- General: Smoother multi-select on tool lists by @d4rken in #2477
- Swiper: Select individual files, not just whole folders by @d4rken in #2483
- General: Action buttons hide on scroll and stop covering the last item by @d4rken in #2486
- Swiper: Make swiping fast and fluid by @d4rken in #2490
- General: Read file info in one step; fix symlink size reporting by @d4rken in #2493
- General: Cancel automation on Android TV with the Home button by @d4rken in #2501
- Scheduler: Explain why app cleaning is skipped while locked by @d4rken in #2499
- Squeezer: Add HEIC/HEIF image compression by @d4rken in #2423
- CorpseFinder: Avoid false leftovers for data owned by installed apps by @d4rken in #2472
- General: Back up and restore your settings to a file by @d4rken in #2482
- General: Explain why the app list can't be read on some devices by @d4rken in #2511
- General: Add a home-screen storage widget with one-tap cleanup by @d4rken in #2503
- General: Show total space freed on the home-screen widget by @d4rken in #2527
- Deduplicator: Make the similarity-detection warning clearer by @d4rken in #2528
- General: Confirm before the home-screen widget deletes in one tap by @d4rken in #2531
- Media Squeeze: Make the quality slider easier to adjust by @d4rken in #2533
- AppControl: Always-visible floating scrollbar in the app list by @d4rken in #2535
- General: Polish spacing, readability, and card visuals across tools by @d4rken in #2532
- General: Move Swiper & Media Squeeze up, remove their New tags by @d4rken in #2537
- General: Detect Shizuku even when hidden from other apps by @d4rken in #2541
- AppControl: Library tags and a search-closing fix by @d4rken in #2538
- General: Move guided tour controls below the tour text by @d4rken in #2551
- General: Keep one-time Pro buyers Pro through longer Play outages by @d4rken in #2555
- General: Show returning Pro buyers a Restore prompt, not a paywall by @d4rken in #2556
- General: Show progress while restoring a purchase by @d4rken in #2558
- General: Reconnect billing instantly on user actions and fix trial wording by @d4rken in #2562
- General: Keep Pro grace reliable and record its history in debug logs by @d4rken in #2566
- General: Let subscribers switch to the one-time Pro purchase by @d4rken in #2563
- General: UI polish across dashboard, setup, and cleaning tools by @d4rken in #2568
- General: Add automated Play Store screenshots by @d4rken in #2574
- General: Keep Pro restore options reliable during Play outages by @d4rken in #2575
- Deduplicator: Refine The Duplicates Grid Cards by @d4rken in #2576
🐞 Bug fixes
- General: Fix setup card still flashing on launch for root users by @d4rken in #2474
- General: Fix rare races in root/ADB/Shizuku access lifecycle by @d4rken in #2476
- AppCleaner: Make deleted item count match the scanned count by @d4rken in #2480
- Swiper: Fix action buttons hidden behind the navigation bar by @d4rken in #2484
- General: Fix the beta badge wrapping below the dashboard title by @d4rken in #2488
- General: Fix "service connection lost" error during root scans by @d4rken in #2489
- General: Keep the dashboard readable at large font sizes by @d4rken in #2492
- SystemCleaner: Handle symlinks consistently in filter matching by @d4rken in #2494
- General: Make the full lint build pass and fix the issues it surfaced by @d4rken in #2498
- General: Fix rare shell errors when a session is reused right after shutdown by @d4rken in #2502
- General: Look up symlinks with broken targets without root/ADB by @d4rken in #2495
- Deduplicator: Fix deletion of the copy that was meant to be kept by @d4rken in #2507
- Analyzer: Keep storage overview available with invalid app list by @d4rken in #2444
- General: Fix connection loss after cancelling scans with root/ADB by @d4rken in #2506
- Squeezer: Keep photos correctly rotated when compressing HEIC files by @d4rken in #2508
- Analyzer: Fix crash after granting storage access by @d4rken in #2509
- General: Fix stale duplicate details and wasted work during scans by @d4rken in #2510
- General: Center the dashboard title when it wraps onto two lines by @d4rken in #2513
- General: Fix cancelled scans continuing to read folders in the background by @d4rken in #2512
- General: Fix Pro users seeing the upgrade screen right after app start by @d4rken in #2514
- General: Fix Select all in the file picker deselecting chosen items by @d4rken in #2515
- General: Fix Home-button cancel on Android TV stopping to work mid-run by @d4rken in #2516
- Squeezer: Never silently strip photo metadata and report skipped HDR photos by @d4rken in #2517
- Swiper: Fix silent save failures and wrong card previews while swiping by @d4rken in #2518
- General: Fix stale gallery entries, slow live search, and lost filter edits by @d4rken in #2521
- General: Smoother multi-select in Deduplicator and SystemCleaner lists by @d4rken in #2522
- Analyzer: Fix storage size shown as double on some realme devices by @d4rken in #2505
- General: Fix rare root/Shizuku access errors that resolved on retry by @d4rken in #2523
- General: Fix short freezes while root/Shizuku access is starting up by @d4rken in #2524
- AppControl: Fix force-stop opening the uninstall dialog by mistake by @d4rken in #2529
- Media Squeeze: Zoom both comparison images together again by @d4rken in #2539
- Media Squeeze: Fix confusing "0 of N" search progress by @d4rken in #2540
- AppControl: Keep search open when the keyboard hides by @d4rken in #2542
- General: Fix app freeze on Android TV after one-click cleaning by @d4rken in #2543
- General: Fix selecting folders in the file picker on Android TV by @d4rken in #2545
- General: Prevent slow shell cleanup from stalling the root/ADB helper by @d4rken in #2547
- AppControl: Fix slow force stop on vivo devices by @d4rken in #2549
- AppControl: Fix HyperOS 3 force-stop button label matching by @d4rken in #2552
- General: Fix 'Restore purchase' failing when you already own Pro by @d4rken in #2554
- General: Show an error when Google Play can't start a purchase by @d4rken in #2559
- General: Make billing recover from Play outages and stale purchase data by @d4rken in #2561
- Fix: Delete app data on SD cards correctly on Android 11 and 12 by @d4rken in #2565
- General: Fix Google Play billing getting stuck and missing purchases by @d4rken in #2564
- Scheduler: Fix schedules silently stopping after a failed run by @d4rken in #2567
- General: Fix dashboard size not updating after excluding items by @d4rken in #2571
🤷 Other changes
- General: Consolidate static chip composables into shared SdmInfoChip by @d4rken in #2428
- Squeezer: Add unit and Compose UI tests, fix exclusion-count mismatch by @d4rken in #2433
- SystemCleaner: Add unit and Compose UI tests, document 9 pre-existing bugs by @d4rken in #2434
- General: Handle symlinks consistently in root/ADB file scans by @d4rken in #2487
- General: Avoid memory spikes when scanning very large folders by @d4rken in #2491
- General: Fix crashing Compose previews for tour-enabled screens by @d4rken in #2504
- General: Remove leftover dead code from the interface rewrite by @d4rken in #2520
- General: Update translations from Crowdin by @d4rken in #2525
- General: Clean up compiler build warnings by @d4rken in #2526
- General: Update Jetpack Compose to the latest version by @d4rken in #2530
- General: Fix flaky DebugLogSessionManager deadlock test by @d4rken in #2534
- Deduplicator: Fix screen tests broken by size-label and grid changes by @d4rken in #2536
- General: Fix a flaky debug log unit test in CI by @d4rken in #2544
- General: Stop debug logs flagging user cancels as errors by @d4rken in #2548
- General: Capture ADB/Shizuku host crashes in the debug log by @d4rken in #2553
- General: Remove unused strings and polish in-app wording by @d4rken in #2569
- General: Upgrade Android Gradle Plugin and Gradle wrapper by @d4rken in #2570
- General: Update translations from Crowdin by @d4rken in #2572
- General: Quiet repeated purchase acknowledgement log spam by @d4rken in #2573
- General: Fix beta GitHub releases missing the APK download by @d4rken in #2577
Full Changelog: v1.7.5-rc0...v2.0.1-beta1