mirror of
https://github.com/immich-app/immich.git
synced 2024-12-24 10:37:28 +02:00
cb391342d7
* feat(mobile): map page - add map view * map: add map-markers * feat(map): add relative date filter * fix: do not let users scroll past map bounds * fix: fetch relative date from store to state on init * feat(mobile):re-fetch markers only on filter change * feat(mobile) - asset bottom sheet in map page * feat(mobile): display markers based on bottom sheet scroll * fix: exif-bottom-sheet - rebase conflict * feat(mobile): map-view - strongly typed map page events * feat(map): zoom to asset * chore: dart analyzer fixes * map-page move attribution to top-right * feat(mobile): map view - asset selection handling * feat(mobile): map-view display map in places row * fix: make asset marker icon responsive * optimise map page rebuilds * refactor(mobile): map page * feat(mobile): map-view: Go to location * map-view(mobile): minor refactor * fix(mobile): Handle invalid coords gracefully * small styling --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
70 lines
2.2 KiB
Dart
70 lines
2.2 KiB
Dart
import 'package:immich_mobile/shared/models/store.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"
|
|
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),
|
|
mapThemeMode<bool>(StoreKey.mapThemeMode, null, false),
|
|
mapShowFavoriteOnly<bool>(StoreKey.mapShowFavoriteOnly, null, false),
|
|
mapRelativeDate<int>(StoreKey.mapRelativeDate, null, 0),
|
|
;
|
|
|
|
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);
|
|
}
|
|
}
|