Adirstat v1.0.2 — Settings & Stability Release
Release date: 2026-03-08
Version code: 3
Min SDK: API 24 (Android 7.0)
What's new
✅ All Settings items fully implemented
Every setting on the Settings screen is now wired end-to-end and persisted to DataStore — nothing is a stub anymore.
| Setting |
Behaviour |
| Theme |
Radio-button dialog — System Default / Light / Dark / Dynamic (Material You on Android 12+) |
| Minimum File Size |
Radio-button dialog — Show All / 1 KB+ / 10 KB+ / 1 MB+ / 10 MB+ / 100 MB+ |
| Excluded Paths |
Add/remove dialog — add arbitrary folder paths to skip during scans |
| Clear Scan Cache |
Confirmation dialog → actually deletes all Room scan cache rows; Snackbar confirms |
| Scan History |
Dialog listing every cached scan entry: partition path, total size, file count, scan date |
| Export Data |
Writes a timestamped CSV to the Downloads folder; Snackbar on success or failure |
🐛 Bug fixes
| Bug |
Fix |
| Double scan on treemap open |
TreemapViewModel.loadTreemap() now has an idempotency guard — if the same volume is already scanning or has results loaded, the call is silently ignored |
| Dashboard shows "0 B" then fills |
DashboardViewModel.loadDashboardData() now loads all data in parallel (async) and emits one final state update instead of two partial ones |
| Search rescans when navigating back |
Removed the ON_RESUME lifecycle observer from SearchScreen that was calling refreshIndex every time the user returned to the screen |
| Settings "Clear Cache" did nothing |
Now calls StorageRepository.clearAllScans() → scanCacheDao.deleteAllCache() for a real wipe |
Changed files
| File |
Change |
StorageRepository.kt |
Added clearAllScans() and getAllScanSummaries() |
StorageRepositoryImpl.kt |
Implemented both new methods |
ScanCacheDao.kt |
Added getAllCaches() returning all cache rows |
SettingsViewModel.kt |
Injected StorageRepository + Context; real clearCache(), exportToCsv(), loadScanHistory() |
SettingsScreen.kt |
All dialogs wired — file size, excluded paths, history, export with Snackbar feedback |
TreemapViewModel.kt |
Idempotency guard in loadTreemap(); fixed refresh() to bypass guard correctly |
DashboardViewModel.kt |
Single parallel load instead of two-phase update |
SearchScreen.kt |
Removed DisposableEffect ON_RESUME observer |
app/build.gradle.kts |
Version bumped to 1.0.2 / versionCode 3 |
Downloads
| File |
Description |
Adirstat-v1.0.2-release.apk |
Signed release APK (minified, resources shrunk) |
Upgrade notes
- No database migration required — schema unchanged
- DataStore preferences unchanged — settings from v1.0.1 carry over
- Cached scan results are preserved unless the user explicitly taps Clear Scan Cache