SambaLite v1.6.0
SambaLite v1.6.0
Downloads
- APK: For direct installation (sideloading)
- AAB: For Google Play Store and other app stores
Verification
Both files include SHA256 checksums for integrity verification.
Changelog
Added
- Adaptive launcher icons for improved visual consistency across Android devices and launchers.
SharesDiffCallbackfor efficient RecyclerView list updates when browsing SMB shares.- GitHub Actions workflow for automated code quality checks (CI).
- New unit tests for caching, file utilities, diff callbacks, and progress formatting.
- Open files directly from SMB shares: New utility classes for file opening (
FileOpenHelper), MIME type resolution (MimeTypeUtils), cache management (OpenFileCacheManager), and a customFileProviderwith_datacolumn support for broad app compatibility. downloadToCachemethod inFileOperationsViewModelfor managing open-file downloads and cache handling.- Leave confirmation dialog when navigating away from the file browser during active file transfers.
- New unit tests for
MimeTypeUtilsandOpenFileCacheManagercovering MIME type resolution, cache cleanup, and size-based eviction logic. - Translations for leave confirmation and file open strings in all supported languages.
- FileProvider configuration (
file_paths.xml) for external file sharing via content URIs.
Changed
- Comprehensive
@NonNulland@Nullableannotations added across the entire codebase (~40 classes) for improved null safety, API clarity, andNullPointerExceptionprevention. Affected areas include ViewModels, controllers, adapters, repositories, utilities, cache classes, sync classes, Dagger components, and more. - Enabled stricter lint checks with a new lint baseline for better code quality enforcement.
- Updated WorkManager dependencies to version 2.11.1.
- Removed unused resources, plurals, and obsolete strings; simplified layout attributes for dialogs.
- Refactored
SambaLiteAppand utility classes for enhanced readability and formatting consistency. - Removed redundant API-level checks in
BatteryOptimizationUtils. - Replaced
getMimeTypeimplementation inFolderSyncWorkerwith shared utility method fromMimeTypeUtils. - Prevented potential memory leaks in
DialogControllerby replacing strongContextreferences withWeakReferenceand adding null checks. - Made
instancefield volatile inIntelligentCacheManagerto ensure thread-safe singleton access. - Improved keyboard handling: New utility method for hiding keyboard in dialogs; dialogs now resize correctly with keyboard visibility.
- Added file transfer activity checks before finishing
FileBrowserActivityand streamlined FAB visibility logic. - Added default case handling in
SmartErrorHandlerswitch statements for improved code clarity. - Used UTF-8 charset explicitly in
hashStringmethod and simplified fallback hash calculation logic. - Removed redundant code: unused
Localeimport andgetSubnetFromIpmethod inNetworkScanner, unusedlastByteCountfield inBandwidthMonitor, redundantifchecks inDiscoveredServerAdapterandSharesAdapter, unusedisLifecycleAtLeastStartedmethod inProgressController, redundant fallback cache key logic inSearchViewModel, unnecessary type checks inSerializationValidator. - Suppressed lint warnings in
FileListCacheOperations,CacheMaintenanceManager,SmbBackgroundService,SmbRepositoryImpl,SearchCacheOperations, andShareReceiverActivityfor future-use variables and non-API types. - Open-file cache cleanup now runs on app start in
SambaLiteAppinitialization. - Updated
AndroidManifest.xml: Added FileProvider for external file sharing and handle configuration changes inMainActivity.
Fixed
FileDiffCallback.areContentsTheSamenow compares timestamps correctly.- Keyboard dismissal logic fixed in
MainActivitydialogs.
Developer Notes
- Lint baseline file added to track and gradually resolve pre-existing lint issues.
SharesDiffCallback: NewDiffUtil.ItemCallbackimplementation forSmbFileItemlists, enabling efficient partial RecyclerView updates.- Null safety annotations applied systematically to:
FileBrowserUIState,FileListController,FileListViewModel,ConnectionAdapter,FileOperationCallbacks,FileSkippedException,FileUploadTask,InputController,LogUtils,PreferenceUtils,ProgressController,ProgressFormat,UIHelper,UserFeedbackProvider,ActivityResultController,DialogController,MemoryCacheStrategy,DiscoveredServerAdapter,SmbFileItem,LoadingIndicator,SearchCacheOperations,ShareReceiverViewModel,ShareReceiverActivity,SimplePerformanceMonitor,BatteryOptimizationUtils,SmartErrorHandler,CacheKeyGenerator,CacheExceptionHandler,SambaLiteApp, Dagger components,ViewModelFactory,ConnectionRepository,SmbRepository, and related test classes. - CI workflow: GitHub Actions pipeline for lint, unit tests, and build verification.
MimeTypeUtils: Extracted shared MIME type resolution utility, used by bothFolderSyncWorkerand the new file open feature.OpenFileCacheManager: Size-based eviction cache for temporarily stored files opened from SMB shares.DialogController: Refactored to useWeakReference<Context>to prevent activity leak on configuration changes.
If you like this update, support SambaLite here: https://ko-fi.com/egdels • https://www.paypal.com/paypalme/egdels