فهرست منبع

chore(mobile): remove hive (#2497)

Fynn Petersen-Frey 2 سال پیش
والد
کامیت
02b8b2c125

+ 0 - 37
mobile/lib/constants/hive_box.dart

@@ -1,37 +0,0 @@
-// Access token
-const String userInfoBox = "immichBoxUserInfo"; // Box
-const String accessTokenKey = "immichBoxAccessTokenKey"; // Key 1
-const String deviceIdKey = 'immichBoxDeviceIdKey'; // Key 2
-const String isLoggedInKey = 'immichIsLoggedInKey'; // Key 3
-const String serverEndpointKey = 'immichBoxServerEndpoint'; // Key 4
-const String assetEtagKey = 'immichAssetEtagKey'; // Key 5
-const String userIdKey = 'immichUserIdKey'; // Key 6
-
-// Login Info
-const String hiveLoginInfoBox = "immichLoginInfoBox"; // Box
-const String savedLoginInfoKey = "immichSavedLoginInfoKey"; // Key 1
-
-// Backup Info
-const String hiveBackupInfoBox = "immichBackupAlbumInfoBox"; // Box
-const String backupInfoKey = "immichBackupAlbumInfoKey"; // Key 1
-
-// Github Release Info
-const String hiveGithubReleaseInfoBox = "immichGithubReleaseInfoBox"; // Box
-const String githubReleaseInfoKey = "immichGithubReleaseInfoKey"; // Key 1
-
-// User Setting Info
-const String userSettingInfoBox = "immichUserSettingInfoBox";
-
-// Background backup Info
-const String backgroundBackupInfoBox = "immichBackgroundBackupInfoBox"; // Box
-const String backupFailedSince = "immichBackupFailedSince"; // Key 1
-const String backupRequireWifi = "immichBackupRequireWifi"; // Key 2
-const String backupRequireCharging = "immichBackupRequireCharging"; // Key 3
-const String backupTriggerDelay = "immichBackupTriggerDelay"; // Key 4
-
-// Duplicate asset
-const String duplicatedAssetsBox = "immichDuplicatedAssetsBox"; // Box
-const String duplicatedAssetsKey = "immichDuplicatedAssetsKey"; // Key 1
-
-// In app logger
-const String immichLoggerBox = "immichInAppLogger"; // Box

+ 0 - 12
mobile/lib/main.dart

@@ -6,17 +6,13 @@ import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_displaymode/flutter_displaymode.dart';
-import 'package:hive_flutter/hive_flutter.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:immich_mobile/constants/locales.dart';
 import 'package:immich_mobile/modules/backup/background_service/background.service.dart';
 import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
 import 'package:immich_mobile/modules/backup/models/duplicated_asset.model.dart';
-import 'package:immich_mobile/modules/backup/models/hive_backup_albums.model.dart';
-import 'package:immich_mobile/modules/backup/models/hive_duplicated_assets.model.dart';
 import 'package:immich_mobile/modules/backup/providers/backup.provider.dart';
 import 'package:immich_mobile/modules/backup/providers/ios_background_settings.provider.dart';
-import 'package:immich_mobile/modules/login/models/hive_saved_login_info.model.dart';
 import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
 import 'package:immich_mobile/modules/onboarding/providers/gallery_permission.provider.dart';
 import 'package:immich_mobile/modules/settings/providers/notification_permission.provider.dart';
@@ -25,7 +21,6 @@ import 'package:immich_mobile/routing/tab_navigation_observer.dart';
 import 'package:immich_mobile/shared/models/album.dart';
 import 'package:immich_mobile/shared/models/asset.dart';
 import 'package:immich_mobile/shared/models/exif_info.dart';
-import 'package:immich_mobile/shared/models/immich_logger_message.model.dart';
 import 'package:immich_mobile/shared/models/logger_message.model.dart';
 import 'package:immich_mobile/shared/models/store.dart';
 import 'package:immich_mobile/shared/models/user.dart';
@@ -50,18 +45,11 @@ void main() async {
 
   final db = await loadDb();
   await initApp();
-  await migrateHiveToStoreIfNecessary();
-  await migrateJsonCacheIfNecessary();
   await migrateDatabaseIfNeeded(db);
   runApp(getMainWidget(db));
 }
 
 Future<void> initApp() async {
-  await Hive.initFlutter();
-  Hive.registerAdapter(HiveSavedLoginInfoAdapter());
-  Hive.registerAdapter(HiveBackupAlbumsAdapter());
-  Hive.registerAdapter(HiveDuplicatedAssetsAdapter());
-  Hive.registerAdapter(ImmichLoggerMessageAdapter());
   await EasyLocalization.ensureInitialized();
 
   if (kReleaseMode && Platform.isAndroid) {

+ 0 - 23
mobile/lib/modules/album/services/album_cache.service.dart

@@ -1,23 +0,0 @@
-import 'package:immich_mobile/shared/models/album.dart';
-import 'package:immich_mobile/shared/services/json_cache.dart';
-
-@Deprecated("only kept to remove its files after migration")
-class _BaseAlbumCacheService extends JsonCache<List<Album>> {
-  _BaseAlbumCacheService(super.cacheFileName);
-
-  @override
-  void put(List<Album> data) {}
-
-  @override
-  Future<List<Album>?> get() => Future.value(null);
-}
-
-@Deprecated("only kept to remove its files after migration")
-class AlbumCacheService extends _BaseAlbumCacheService {
-  AlbumCacheService() : super("album_cache");
-}
-
-@Deprecated("only kept to remove its files after migration")
-class SharedAlbumCacheService extends _BaseAlbumCacheService {
-  SharedAlbumCacheService() : super("shared_album_cache");
-}

+ 0 - 105
mobile/lib/modules/backup/models/hive_backup_albums.model.dart

@@ -1,105 +0,0 @@
-import 'dart:convert';
-
-import 'package:collection/collection.dart';
-import 'package:hive/hive.dart';
-
-part 'hive_backup_albums.model.g.dart';
-
-@HiveType(typeId: 1)
-class HiveBackupAlbums {
-  @HiveField(0)
-  List<String> selectedAlbumIds;
-
-  @HiveField(1)
-  List<String> excludedAlbumsIds;
-
-  @HiveField(2, defaultValue: [])
-  List<DateTime> lastSelectedBackupTime;
-
-  @HiveField(3, defaultValue: [])
-  List<DateTime> lastExcludedBackupTime;
-
-  HiveBackupAlbums({
-    required this.selectedAlbumIds,
-    required this.excludedAlbumsIds,
-    required this.lastSelectedBackupTime,
-    required this.lastExcludedBackupTime,
-  });
-
-  @override
-  String toString() =>
-      'HiveBackupAlbums(selectedAlbumIds: $selectedAlbumIds, excludedAlbumsIds: $excludedAlbumsIds)';
-
-  HiveBackupAlbums copyWith({
-    List<String>? selectedAlbumIds,
-    List<String>? excludedAlbumsIds,
-    List<DateTime>? lastSelectedBackupTime,
-    List<DateTime>? lastExcludedBackupTime,
-  }) {
-    return HiveBackupAlbums(
-      selectedAlbumIds: selectedAlbumIds ?? this.selectedAlbumIds,
-      excludedAlbumsIds: excludedAlbumsIds ?? this.excludedAlbumsIds,
-      lastSelectedBackupTime:
-          lastSelectedBackupTime ?? this.lastSelectedBackupTime,
-      lastExcludedBackupTime:
-          lastExcludedBackupTime ?? this.lastExcludedBackupTime,
-    );
-  }
-
-  /// Returns a deep copy to allow safe modification without changing the global
-  /// state of [HiveBackupAlbums] before actually saving the changes
-  HiveBackupAlbums deepCopy() {
-    return HiveBackupAlbums(
-      selectedAlbumIds: selectedAlbumIds.toList(),
-      excludedAlbumsIds: excludedAlbumsIds.toList(),
-      lastSelectedBackupTime: lastSelectedBackupTime.toList(),
-      lastExcludedBackupTime: lastExcludedBackupTime.toList(),
-    );
-  }
-
-  Map<String, dynamic> toMap() {
-    final result = <String, dynamic>{};
-
-    result.addAll({'selectedAlbumIds': selectedAlbumIds});
-    result.addAll({'excludedAlbumsIds': excludedAlbumsIds});
-    result.addAll({'lastSelectedBackupTime': lastSelectedBackupTime});
-    result.addAll({'lastExcludedBackupTime': lastExcludedBackupTime});
-
-    return result;
-  }
-
-  factory HiveBackupAlbums.fromMap(Map<String, dynamic> map) {
-    return HiveBackupAlbums(
-      selectedAlbumIds: List<String>.from(map['selectedAlbumIds']),
-      excludedAlbumsIds: List<String>.from(map['excludedAlbumsIds']),
-      lastSelectedBackupTime:
-          List<DateTime>.from(map['lastSelectedBackupTime']),
-      lastExcludedBackupTime:
-          List<DateTime>.from(map['lastExcludedBackupTime']),
-    );
-  }
-
-  String toJson() => json.encode(toMap());
-
-  factory HiveBackupAlbums.fromJson(String source) =>
-      HiveBackupAlbums.fromMap(json.decode(source));
-
-  @override
-  bool operator ==(Object other) {
-    if (identical(this, other)) return true;
-    final listEquals = const DeepCollectionEquality().equals;
-
-    return other is HiveBackupAlbums &&
-        listEquals(other.selectedAlbumIds, selectedAlbumIds) &&
-        listEquals(other.excludedAlbumsIds, excludedAlbumsIds) &&
-        listEquals(other.lastSelectedBackupTime, lastSelectedBackupTime) &&
-        listEquals(other.lastExcludedBackupTime, lastExcludedBackupTime);
-  }
-
-  @override
-  int get hashCode =>
-      selectedAlbumIds.hashCode ^
-      excludedAlbumsIds.hashCode ^
-      lastSelectedBackupTime.hashCode ^
-      lastExcludedBackupTime.hashCode;
-}

+ 0 - 52
mobile/lib/modules/backup/models/hive_backup_albums.model.g.dart

@@ -1,52 +0,0 @@
-// GENERATED CODE - DO NOT MODIFY BY HAND
-
-part of 'hive_backup_albums.model.dart';
-
-// **************************************************************************
-// TypeAdapterGenerator
-// **************************************************************************
-
-class HiveBackupAlbumsAdapter extends TypeAdapter<HiveBackupAlbums> {
-  @override
-  final int typeId = 1;
-
-  @override
-  HiveBackupAlbums read(BinaryReader reader) {
-    final numOfFields = reader.readByte();
-    final fields = <int, dynamic>{
-      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
-    };
-    return HiveBackupAlbums(
-      selectedAlbumIds: (fields[0] as List).cast<String>(),
-      excludedAlbumsIds: (fields[1] as List).cast<String>(),
-      lastSelectedBackupTime:
-          fields[2] == null ? [] : (fields[2] as List).cast<DateTime>(),
-      lastExcludedBackupTime:
-          fields[3] == null ? [] : (fields[3] as List).cast<DateTime>(),
-    );
-  }
-
-  @override
-  void write(BinaryWriter writer, HiveBackupAlbums obj) {
-    writer
-      ..writeByte(4)
-      ..writeByte(0)
-      ..write(obj.selectedAlbumIds)
-      ..writeByte(1)
-      ..write(obj.excludedAlbumsIds)
-      ..writeByte(2)
-      ..write(obj.lastSelectedBackupTime)
-      ..writeByte(3)
-      ..write(obj.lastExcludedBackupTime);
-  }
-
-  @override
-  int get hashCode => typeId.hashCode;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is HiveBackupAlbumsAdapter &&
-          runtimeType == other.runtimeType &&
-          typeId == other.typeId;
-}

+ 0 - 57
mobile/lib/modules/backup/models/hive_duplicated_assets.model.dart

@@ -1,57 +0,0 @@
-import 'dart:convert';
-
-import 'package:collection/collection.dart';
-import 'package:hive/hive.dart';
-
-part 'hive_duplicated_assets.model.g.dart';
-
-@HiveType(typeId: 2)
-class HiveDuplicatedAssets {
-  @HiveField(0, defaultValue: [])
-  List<String> duplicatedAssetIds;
-
-  HiveDuplicatedAssets({
-    required this.duplicatedAssetIds,
-  });
-
-  HiveDuplicatedAssets copyWith({
-    List<String>? duplicatedAssetIds,
-  }) {
-    return HiveDuplicatedAssets(
-      duplicatedAssetIds: duplicatedAssetIds ?? this.duplicatedAssetIds,
-    );
-  }
-
-  Map<String, dynamic> toMap() {
-    return {
-      'duplicatedAssetIds': duplicatedAssetIds,
-    };
-  }
-
-  factory HiveDuplicatedAssets.fromMap(Map<String, dynamic> map) {
-    return HiveDuplicatedAssets(
-      duplicatedAssetIds: List<String>.from(map['duplicatedAssetIds']),
-    );
-  }
-
-  String toJson() => json.encode(toMap());
-
-  factory HiveDuplicatedAssets.fromJson(String source) =>
-      HiveDuplicatedAssets.fromMap(json.decode(source));
-
-  @override
-  String toString() =>
-      'HiveDuplicatedAssets(duplicatedAssetIds: $duplicatedAssetIds)';
-
-  @override
-  bool operator ==(Object other) {
-    if (identical(this, other)) return true;
-    final listEquals = const DeepCollectionEquality().equals;
-
-    return other is HiveDuplicatedAssets &&
-        listEquals(other.duplicatedAssetIds, duplicatedAssetIds);
-  }
-
-  @override
-  int get hashCode => duplicatedAssetIds.hashCode;
-}

+ 0 - 42
mobile/lib/modules/backup/models/hive_duplicated_assets.model.g.dart

@@ -1,42 +0,0 @@
-// GENERATED CODE - DO NOT MODIFY BY HAND
-
-part of 'hive_duplicated_assets.model.dart';
-
-// **************************************************************************
-// TypeAdapterGenerator
-// **************************************************************************
-
-class HiveDuplicatedAssetsAdapter extends TypeAdapter<HiveDuplicatedAssets> {
-  @override
-  final int typeId = 2;
-
-  @override
-  HiveDuplicatedAssets read(BinaryReader reader) {
-    final numOfFields = reader.readByte();
-    final fields = <int, dynamic>{
-      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
-    };
-    return HiveDuplicatedAssets(
-      duplicatedAssetIds:
-          fields[0] == null ? [] : (fields[0] as List).cast<String>(),
-    );
-  }
-
-  @override
-  void write(BinaryWriter writer, HiveDuplicatedAssets obj) {
-    writer
-      ..writeByte(1)
-      ..writeByte(0)
-      ..write(obj.duplicatedAssetIds);
-  }
-
-  @override
-  int get hashCode => typeId.hashCode;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is HiveDuplicatedAssetsAdapter &&
-          runtimeType == other.runtimeType &&
-          typeId == other.typeId;
-}

+ 0 - 25
mobile/lib/modules/login/models/hive_saved_login_info.model.dart

@@ -1,25 +0,0 @@
-import 'package:hive/hive.dart';
-
-part 'hive_saved_login_info.model.g.dart';
-
-@HiveType(typeId: 0)
-class HiveSavedLoginInfo {
-  @HiveField(0)
-  String email; // DEPRECATED
-
-  @HiveField(1)
-  String password; // DEPRECATED
-
-  @HiveField(2)
-  String serverUrl;
-
-  @HiveField(4, defaultValue: "")
-  String accessToken;
-
-  HiveSavedLoginInfo({
-    required this.email,
-    required this.password,
-    required this.serverUrl,
-    required this.accessToken,
-  });
-}

+ 0 - 50
mobile/lib/modules/login/models/hive_saved_login_info.model.g.dart

@@ -1,50 +0,0 @@
-// GENERATED CODE - DO NOT MODIFY BY HAND
-
-part of 'hive_saved_login_info.model.dart';
-
-// **************************************************************************
-// TypeAdapterGenerator
-// **************************************************************************
-
-class HiveSavedLoginInfoAdapter extends TypeAdapter<HiveSavedLoginInfo> {
-  @override
-  final int typeId = 0;
-
-  @override
-  HiveSavedLoginInfo read(BinaryReader reader) {
-    final numOfFields = reader.readByte();
-    final fields = <int, dynamic>{
-      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
-    };
-    return HiveSavedLoginInfo(
-      email: fields[0] as String,
-      password: fields[1] as String,
-      serverUrl: fields[2] as String,
-      accessToken: fields[4] == null ? '' : fields[4] as String,
-    );
-  }
-
-  @override
-  void write(BinaryWriter writer, HiveSavedLoginInfo obj) {
-    writer
-      ..writeByte(4)
-      ..writeByte(0)
-      ..write(obj.email)
-      ..writeByte(1)
-      ..write(obj.password)
-      ..writeByte(2)
-      ..write(obj.serverUrl)
-      ..writeByte(4)
-      ..write(obj.accessToken);
-  }
-
-  @override
-  int get hashCode => typeId.hashCode;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is HiveSavedLoginInfoAdapter &&
-          runtimeType == other.runtimeType &&
-          typeId == other.typeId;
-}

+ 0 - 34
mobile/lib/shared/models/immich_logger_message.model.dart

@@ -1,34 +0,0 @@
-import 'package:hive/hive.dart';
-
-part 'immich_logger_message.model.g.dart';
-
-@HiveType(typeId: 3)
-class ImmichLoggerMessage {
-  @HiveField(0)
-  String message;
-
-  @HiveField(1, defaultValue: "INFO")
-  String level;
-
-  @HiveField(2)
-  DateTime createdAt;
-
-  @HiveField(3)
-  String? context1;
-
-  @HiveField(4)
-  String? context2;
-
-  ImmichLoggerMessage({
-    required this.message,
-    required this.level,
-    required this.createdAt,
-    required this.context1,
-    required this.context2,
-  });
-
-  @override
-  String toString() {
-    return 'InAppLoggerMessage(message: $message, level: $level, createdAt: $createdAt)';
-  }
-}

+ 0 - 53
mobile/lib/shared/models/immich_logger_message.model.g.dart

@@ -1,53 +0,0 @@
-// GENERATED CODE - DO NOT MODIFY BY HAND
-
-part of 'immich_logger_message.model.dart';
-
-// **************************************************************************
-// TypeAdapterGenerator
-// **************************************************************************
-
-class ImmichLoggerMessageAdapter extends TypeAdapter<ImmichLoggerMessage> {
-  @override
-  final int typeId = 3;
-
-  @override
-  ImmichLoggerMessage read(BinaryReader reader) {
-    final numOfFields = reader.readByte();
-    final fields = <int, dynamic>{
-      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
-    };
-    return ImmichLoggerMessage(
-      message: fields[0] as String,
-      level: fields[1] == null ? 'INFO' : fields[1] as String,
-      createdAt: fields[2] as DateTime,
-      context1: fields[3] as String?,
-      context2: fields[4] as String?,
-    );
-  }
-
-  @override
-  void write(BinaryWriter writer, ImmichLoggerMessage obj) {
-    writer
-      ..writeByte(5)
-      ..writeByte(0)
-      ..write(obj.message)
-      ..writeByte(1)
-      ..write(obj.level)
-      ..writeByte(2)
-      ..write(obj.createdAt)
-      ..writeByte(3)
-      ..write(obj.context1)
-      ..writeByte(4)
-      ..write(obj.context2);
-  }
-
-  @override
-  int get hashCode => typeId.hashCode;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is ImmichLoggerMessageAdapter &&
-          runtimeType == other.runtimeType &&
-          typeId == other.typeId;
-}

+ 0 - 13
mobile/lib/shared/services/asset_cache.service.dart

@@ -1,13 +0,0 @@
-import 'package:immich_mobile/shared/models/asset.dart';
-import 'package:immich_mobile/shared/services/json_cache.dart';
-
-@Deprecated("only kept to remove its files after migration")
-class AssetCacheService extends JsonCache<List<Asset>> {
-  AssetCacheService() : super("asset_cache");
-
-  @override
-  void put(List<Asset> data) {}
-
-  @override
-  Future<List<Asset>?> get() => Future.value(null);
-}

+ 0 - 36
mobile/lib/shared/services/json_cache.dart

@@ -1,36 +0,0 @@
-import 'dart:io';
-
-import 'package:path_provider/path_provider.dart';
-
-@Deprecated("only kept to remove its files after migration")
-abstract class JsonCache<T> {
-  final String cacheFileName;
-
-  JsonCache(this.cacheFileName);
-
-  Future<File> _getCacheFile() async {
-    final basePath = await getTemporaryDirectory();
-    final basePathName = basePath.path;
-
-    final file = File("$basePathName/$cacheFileName.bin");
-
-    return file;
-  }
-
-  Future<bool> isValid() async {
-    final file = await _getCacheFile();
-    return await file.exists();
-  }
-
-  Future<void> invalidate() async {
-    try {
-      final file = await _getCacheFile();
-      await file.delete();
-    } on FileSystemException {
-      // file is already deleted
-    }
-  }
-
-  void put(T data);
-  Future<T?> get();
-}

+ 0 - 142
mobile/lib/utils/migration.dart

@@ -1,151 +1,9 @@
-// ignore_for_file: deprecated_member_use_from_same_package
-
 import 'dart:async';
 
-import 'package:flutter/cupertino.dart';
-import 'package:hive/hive.dart';
-import 'package:immich_mobile/constants/hive_box.dart';
-import 'package:immich_mobile/modules/album/services/album_cache.service.dart';
-import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
-import 'package:immich_mobile/modules/backup/models/duplicated_asset.model.dart';
-import 'package:immich_mobile/modules/backup/models/hive_backup_albums.model.dart';
-import 'package:immich_mobile/modules/backup/models/hive_duplicated_assets.model.dart';
-import 'package:immich_mobile/modules/login/models/hive_saved_login_info.model.dart';
-import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
-import 'package:immich_mobile/shared/models/immich_logger_message.model.dart';
 import 'package:immich_mobile/shared/models/store.dart';
-import 'package:immich_mobile/shared/services/asset_cache.service.dart';
 import 'package:immich_mobile/utils/db.dart';
 import 'package:isar/isar.dart';
 
-Future<void> migrateHiveToStoreIfNecessary() async {
-  await _migrateHiveBoxIfNecessary(userInfoBox, _migrateHiveUserInfoBox);
-  await _migrateHiveBoxIfNecessary(
-    backgroundBackupInfoBox,
-    _migrateHiveBackgroundBackupInfoBox,
-  );
-  await _migrateHiveBoxIfNecessary(hiveBackupInfoBox, _migrateBackupInfoBox);
-  await _migrateHiveBoxIfNecessary(
-    duplicatedAssetsBox,
-    _migrateDuplicatedAssetsBox,
-  );
-  await _migrateHiveBoxIfNecessary(
-    hiveGithubReleaseInfoBox,
-    _migrateReleaseInfoBox,
-  );
-
-  await _migrateHiveBoxIfNecessary(hiveLoginInfoBox, _migrateLoginInfoBox);
-  await _migrateHiveBoxIfNecessary(
-    immichLoggerBox,
-    (Box<ImmichLoggerMessage> box) => box.deleteFromDisk(),
-  );
-  await _migrateHiveBoxIfNecessary(userSettingInfoBox, _migrateAppSettingsBox);
-}
-
-FutureOr<void> _migrateReleaseInfoBox(Box box) =>
-    _migrateKey(box, githubReleaseInfoKey, StoreKey.githubReleaseInfo);
-
-Future<void> _migrateLoginInfoBox(Box<HiveSavedLoginInfo> box) async {
-  final HiveSavedLoginInfo? info = box.get(savedLoginInfoKey);
-  if (info != null) {
-    await Store.put(StoreKey.serverUrl, info.serverUrl);
-    await Store.put(StoreKey.accessToken, info.accessToken);
-  }
-}
-
-Future<void> _migrateHiveUserInfoBox(Box box) async {
-  await _migrateKey(box, assetEtagKey, StoreKey.assetETag);
-  if (Store.tryGet(StoreKey.deviceId) == null) {
-    await _migrateKey(box, deviceIdKey, StoreKey.deviceId);
-  }
-  await _migrateKey(box, serverEndpointKey, StoreKey.serverEndpoint);
-}
-
-Future<void> _migrateHiveBackgroundBackupInfoBox(Box box) async {
-  await _migrateKey(box, backupFailedSince, StoreKey.backupFailedSince);
-  await _migrateKey(box, backupRequireWifi, StoreKey.backupRequireWifi);
-  await _migrateKey(box, backupRequireCharging, StoreKey.backupRequireCharging);
-  await _migrateKey(box, backupTriggerDelay, StoreKey.backupTriggerDelay);
-}
-
-FutureOr<void> _migrateBackupInfoBox(Box<HiveBackupAlbums> box) {
-  final HiveBackupAlbums? infos = box.get(backupInfoKey);
-  if (infos != null) {
-    final Isar? db = Isar.getInstance();
-    if (db == null) {
-      throw Exception("_migrateBackupInfoBox could not load database");
-    }
-    List<BackupAlbum> albums = [];
-    for (int i = 0; i < infos.selectedAlbumIds.length; i++) {
-      final album = BackupAlbum(
-        infos.selectedAlbumIds[i],
-        infos.lastSelectedBackupTime[i],
-        BackupSelection.select,
-      );
-      albums.add(album);
-    }
-    for (int i = 0; i < infos.excludedAlbumsIds.length; i++) {
-      final album = BackupAlbum(
-        infos.excludedAlbumsIds[i],
-        infos.lastExcludedBackupTime[i],
-        BackupSelection.exclude,
-      );
-      albums.add(album);
-    }
-    return db.writeTxn(() => db.backupAlbums.putAll(albums));
-  }
-}
-
-FutureOr<void> _migrateDuplicatedAssetsBox(Box<HiveDuplicatedAssets> box) {
-  final HiveDuplicatedAssets? duplicatedAssets = box.get(duplicatedAssetsKey);
-  if (duplicatedAssets != null) {
-    final Isar? db = Isar.getInstance();
-    if (db == null) {
-      throw Exception("_migrateBackupInfoBox could not load database");
-    }
-    final duplicatedAssetIds = duplicatedAssets.duplicatedAssetIds
-        .map((id) => DuplicatedAsset(id))
-        .toList();
-    return db.writeTxn(() => db.duplicatedAssets.putAll(duplicatedAssetIds));
-  }
-}
-
-Future<void> _migrateAppSettingsBox(Box box) async {
-  for (AppSettingsEnum s in AppSettingsEnum.values) {
-    if (s.hiveKey != null) {
-      await _migrateKey(box, s.hiveKey!, s.storeKey);
-    }
-  }
-}
-
-Future<void> _migrateHiveBoxIfNecessary<T>(
-  String boxName,
-  FutureOr<void> Function(Box<T>) migrate,
-) async {
-  try {
-    if (await Hive.boxExists(boxName)) {
-      final box = await Hive.openBox<T>(boxName);
-      await migrate(box);
-      await box.deleteFromDisk();
-    }
-  } catch (e) {
-    debugPrint("Error while migrating $boxName $e");
-  }
-}
-
-FutureOr<void> _migrateKey<T>(Box box, String hiveKey, StoreKey<T> key) {
-  final T? value = box.get(hiveKey);
-  if (value != null) {
-    return Store.put(key, value);
-  }
-}
-
-Future<void> migrateJsonCacheIfNecessary() async {
-  await AlbumCacheService().invalidate();
-  await SharedAlbumCacheService().invalidate();
-  await AssetCacheService().invalidate();
-}
-
 Future<void> migrateDatabaseIfNeeded(Isar db) async {
   final int version = Store.get(StoreKey.version, 1);
   switch (version) {

+ 0 - 32
mobile/pubspec.lock

@@ -511,30 +511,6 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "2.2.0"
-  hive:
-    dependency: "direct main"
-    description:
-      name: hive
-      sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.2.3"
-  hive_flutter:
-    dependency: "direct main"
-    description:
-      name: hive_flutter
-      sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  hive_generator:
-    dependency: "direct dev"
-    description:
-      name: hive_generator
-      sha256: "65998cc4d2cd9680a3d9709d893d2f6bb15e6c1f92626c3f1fa650b4b3281521"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.0.0"
   hooks_riverpod:
     dependency: "direct main"
     description:
@@ -1152,14 +1128,6 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "1.2.6"
-  source_helper:
-    dependency: transitive
-    description:
-      name: source_helper
-      sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.3"
   source_span:
     dependency: transitive
     description:

+ 0 - 3
mobile/pubspec.yaml

@@ -16,8 +16,6 @@ dependencies:
   photo_manager: ^2.5.0
   flutter_hooks: ^0.18.6
   hooks_riverpod: ^2.2.0
-  hive: ^2.2.1
-  hive_flutter: ^1.1.0
   cached_network_image: ^3.2.2
   intl: ^0.18.0
   auto_route: ^5.0.1
@@ -59,7 +57,6 @@ dev_dependencies:
   flutter_test:
     sdk: flutter
   flutter_lints: ^2.0.1
-  hive_generator: ^2.0.0
   build_runner: ^2.2.1
   auto_route_generator: ^5.0.2
   flutter_launcher_icons: "^0.9.2"