mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05:00 
			
		
		
		
	* curating assets with albums to upload * sorting for background backup * background upload works * transform fields string array to javascript array * send json array * generate sql * refactor upload callback * remove albums info from upload payload * mechanism to create album on album selection * album creation * Sync to upload album * Remove unused service * unify name changes * Add mechanism to sync uploaded assets to albums * Put add to album operation after updating the UI state * clean up * background album sync * add to album in background context * remove add to album in callback * refactor * refactor * refactor * fix: make sure all selected albums are selected for building upload candidate * clean up * add manual sync button * lint * revert server changes * pr feedback * revert time filtering * const * sync album on manual upload * linting * pr feedback and proper time filtering * wording
		
			
				
	
	
		
			98 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:immich_mobile/constants/immich_colors.dart';
 | 
						|
import 'package:immich_mobile/entities/store.entity.dart';
 | 
						|
 | 
						|
enum AppSettingsEnum<T> {
 | 
						|
  loadPreview<bool>(StoreKey.loadPreview, "loadPreview", true),
 | 
						|
  loadOriginal<bool>(StoreKey.loadOriginal, "loadOriginal", false),
 | 
						|
  themeMode<String>(
 | 
						|
    StoreKey.themeMode,
 | 
						|
    "themeMode",
 | 
						|
    "system",
 | 
						|
  ), // "light","dark","system"
 | 
						|
  primaryColor<String>(
 | 
						|
    StoreKey.primaryColor,
 | 
						|
    "primaryColor",
 | 
						|
    defaultColorPresetName,
 | 
						|
  ),
 | 
						|
  dynamicTheme<bool>(
 | 
						|
    StoreKey.dynamicTheme,
 | 
						|
    "dynamicTheme",
 | 
						|
    false,
 | 
						|
  ),
 | 
						|
  colorfulInterface<bool>(
 | 
						|
    StoreKey.colorfulInterface,
 | 
						|
    "colorfulInterface",
 | 
						|
    true,
 | 
						|
  ),
 | 
						|
  tilesPerRow<int>(StoreKey.tilesPerRow, "tilesPerRow", 4),
 | 
						|
  dynamicLayout<bool>(StoreKey.dynamicLayout, "dynamicLayout", false),
 | 
						|
  groupAssetsBy<int>(StoreKey.groupAssetsBy, "groupBy", 0),
 | 
						|
  uploadErrorNotificationGracePeriod<int>(
 | 
						|
    StoreKey.uploadErrorNotificationGracePeriod,
 | 
						|
    "uploadErrorNotificationGracePeriod",
 | 
						|
    2,
 | 
						|
  ),
 | 
						|
  backgroundBackupTotalProgress<bool>(
 | 
						|
    StoreKey.backgroundBackupTotalProgress,
 | 
						|
    "backgroundBackupTotalProgress",
 | 
						|
    true,
 | 
						|
  ),
 | 
						|
  backgroundBackupSingleProgress<bool>(
 | 
						|
    StoreKey.backgroundBackupSingleProgress,
 | 
						|
    "backgroundBackupSingleProgress",
 | 
						|
    false,
 | 
						|
  ),
 | 
						|
  storageIndicator<bool>(StoreKey.storageIndicator, "storageIndicator", true),
 | 
						|
  thumbnailCacheSize<int>(
 | 
						|
    StoreKey.thumbnailCacheSize,
 | 
						|
    "thumbnailCacheSize",
 | 
						|
    10000,
 | 
						|
  ),
 | 
						|
  imageCacheSize<int>(StoreKey.imageCacheSize, "imageCacheSize", 350),
 | 
						|
  albumThumbnailCacheSize<int>(
 | 
						|
    StoreKey.albumThumbnailCacheSize,
 | 
						|
    "albumThumbnailCacheSize",
 | 
						|
    200,
 | 
						|
  ),
 | 
						|
  selectedAlbumSortOrder<int>(
 | 
						|
    StoreKey.selectedAlbumSortOrder,
 | 
						|
    "selectedAlbumSortOrder",
 | 
						|
    0,
 | 
						|
  ),
 | 
						|
  advancedTroubleshooting<bool>(StoreKey.advancedTroubleshooting, null, false),
 | 
						|
  logLevel<int>(StoreKey.logLevel, null, 5), // Level.INFO = 5
 | 
						|
  preferRemoteImage<bool>(StoreKey.preferRemoteImage, null, false),
 | 
						|
  loopVideo<bool>(StoreKey.loopVideo, "loopVideo", true),
 | 
						|
  mapThemeMode<int>(StoreKey.mapThemeMode, null, 0),
 | 
						|
  mapShowFavoriteOnly<bool>(StoreKey.mapShowFavoriteOnly, null, false),
 | 
						|
  mapIncludeArchived<bool>(StoreKey.mapIncludeArchived, null, false),
 | 
						|
  mapwithPartners<bool>(StoreKey.mapwithPartners, null, false),
 | 
						|
  mapRelativeDate<int>(StoreKey.mapRelativeDate, null, 0),
 | 
						|
  allowSelfSignedSSLCert<bool>(StoreKey.selfSignedCert, null, false),
 | 
						|
  ignoreIcloudAssets<bool>(StoreKey.ignoreIcloudAssets, null, false),
 | 
						|
  selectedAlbumSortReverse<bool>(
 | 
						|
    StoreKey.selectedAlbumSortReverse,
 | 
						|
    null,
 | 
						|
    false,
 | 
						|
  ),
 | 
						|
  enableHapticFeedback<bool>(StoreKey.enableHapticFeedback, null, true),
 | 
						|
  syncAlbums<bool>(StoreKey.syncAlbums, null, false),
 | 
						|
  ;
 | 
						|
 | 
						|
  const AppSettingsEnum(this.storeKey, this.hiveKey, this.defaultValue);
 | 
						|
 | 
						|
  final StoreKey<T> storeKey;
 | 
						|
  final String? hiveKey;
 | 
						|
  final T defaultValue;
 | 
						|
}
 | 
						|
 | 
						|
class AppSettingsService {
 | 
						|
  T getSetting<T>(AppSettingsEnum<T> setting) {
 | 
						|
    return Store.get(setting.storeKey, setting.defaultValue);
 | 
						|
  }
 | 
						|
 | 
						|
  void setSetting<T>(AppSettingsEnum<T> setting, T value) {
 | 
						|
    Store.put(setting.storeKey, value);
 | 
						|
  }
 | 
						|
}
 |