mirror of
https://github.com/immich-app/immich.git
synced 2026-06-04 22:05:19 -04:00
32ac4f694c
Detect an iOS edit, upload the unedited original, and stack the edited version on top of it. Reverting in Photos flips the stack cover back to the original and keeps the edits. Adds an optional stackParentId field to the asset upload on the server.
60 lines
2.1 KiB
Dart
60 lines
2.1 KiB
Dart
import 'dart:io';
|
|
|
|
const String kMobileMetadataKey = "mobile-app";
|
|
|
|
// Number of log entries to retain on app start
|
|
const int kLogTruncateLimit = 2000;
|
|
|
|
// Sync
|
|
const int kSyncEventBatchSize = 5000;
|
|
const int kFetchLocalAssetsBatchSize = 40000;
|
|
|
|
// Hash batch limits
|
|
final int kBatchHashFileLimit = Platform.isIOS ? 32 : 512;
|
|
const int kBatchHashSizeLimit = 1024 * 1024 * 1024; // 1GB
|
|
|
|
// Secure storage keys
|
|
const String kSecuredPinCode = "secured_pin_code";
|
|
|
|
// background_downloader task groups
|
|
const String kManualUploadGroup = 'manual_upload_group';
|
|
const String kBackupGroup = 'backup_group';
|
|
const String kBackupLivePhotoGroup = 'backup_live_photo_group';
|
|
const String kBackupEditPairGroup = 'backup_edit_pair_group';
|
|
const String kDownloadGroupImage = 'group_image';
|
|
const String kDownloadGroupVideo = 'group_video';
|
|
const String kDownloadGroupLivePhoto = 'group_livephoto';
|
|
const String kShareDownloadGroup = 'group_share';
|
|
|
|
// Timeline constants
|
|
const int kTimelineNoneSegmentSize = 120;
|
|
const int kTimelineAssetLoadBatchSize = 1024;
|
|
const int kTimelineAssetLoadOppositeSize = 64;
|
|
|
|
// Widget keys
|
|
const String kWidgetAuthToken = "widget_auth_token";
|
|
const String kWidgetServerEndpoint = "widget_server_url";
|
|
const String kWidgetCustomHeaders = "widget_custom_headers";
|
|
|
|
// add widget identifiers here for new widgets
|
|
// these are used to force a widget refresh
|
|
// (iOSName, androidFQDN)
|
|
const List<(String, String)> kWidgetNames = [
|
|
('com.immich.widget.random', 'app.alextran.immich.widget.RandomReceiver'),
|
|
('com.immich.widget.memory', 'app.alextran.immich.widget.MemoryReceiver'),
|
|
];
|
|
|
|
const int kMinMonthsToEnableScrubberSnap = 12;
|
|
|
|
const String kImmichAppStoreLink = "https://apps.apple.com/app/immich/id1613945652";
|
|
const String kImmichPlayStoreLink = "https://play.google.com/store/apps/details?id=app.alextran.immich";
|
|
const String kImmichLatestRelease = "https://github.com/immich-app/immich/releases/latest";
|
|
|
|
const int kPhotoTabIndex = 0;
|
|
const int kSearchTabIndex = 1;
|
|
const int kAlbumTabIndex = 2;
|
|
const int kLibraryTabIndex = 3;
|
|
|
|
// Workaround for SQLite's variable limit (SQLITE_MAX_VARIABLE_NUMBER = 32766)
|
|
const int kDriftMaxChunk = 32000;
|