From 901195442fde27a2d7a51afd3a76ea98945b6105 Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Thu, 9 May 2024 00:11:40 +0800 Subject: [PATCH] Remove unused code --- app/lib/bloc/bloc_util.dart | 3 - app/lib/bloc/list_album_share_outlier.dart | 4 +- app/lib/notified_action.dart | 48 ------ app/lib/object_extension.dart | 10 -- app/lib/use_case/archive_file.dart | 72 --------- app/lib/use_case/archive_file.g.dart | 14 -- app/lib/use_case/scan_dir_offline.dart | 55 ------- app/test/use_case/scan_dir_offline_test.dart | 152 ------------------- 8 files changed, 2 insertions(+), 356 deletions(-) delete mode 100644 app/lib/use_case/archive_file.dart delete mode 100644 app/lib/use_case/archive_file.g.dart delete mode 100644 app/lib/use_case/scan_dir_offline.dart delete mode 100644 app/test/use_case/scan_dir_offline_test.dart diff --git a/app/lib/bloc/bloc_util.dart b/app/lib/bloc/bloc_util.dart index c1056fa2..26fb6fe9 100644 --- a/app/lib/bloc/bloc_util.dart +++ b/app/lib/bloc/bloc_util.dart @@ -2,6 +2,3 @@ import 'package:nc_photos/account.dart'; String getInstNameForAccount(String className, Account account) => "$className(${account.scheme}://${account.userId.toCaseInsensitiveString()}@${account.address})"; - -String getInstNameForRootAwareAccount(String className, Account account) => - "$className(${account.scheme}://${account.userId.toCaseInsensitiveString()}@${account.address}?${account.roots.join('&')})"; diff --git a/app/lib/bloc/list_album_share_outlier.dart b/app/lib/bloc/list_album_share_outlier.dart index 108ebe23..cda5914d 100644 --- a/app/lib/bloc/list_album_share_outlier.dart +++ b/app/lib/bloc/list_album_share_outlier.dart @@ -11,11 +11,11 @@ import 'package:nc_photos/entity/album/provider.dart'; import 'package:nc_photos/entity/file.dart'; import 'package:nc_photos/entity/file_descriptor.dart'; import 'package:nc_photos/entity/share.dart'; -import 'package:nc_photos/object_extension.dart'; import 'package:nc_photos/use_case/list_share.dart'; import 'package:nc_photos/use_case/list_sharee.dart'; import 'package:np_codegen/np_codegen.dart'; import 'package:np_collection/np_collection.dart'; +import 'package:np_common/object_util.dart'; import 'package:np_string/np_string.dart'; import 'package:to_string/to_string.dart'; @@ -277,7 +277,7 @@ class ListAlbumShareOutlierBloc extends Bloc call() async { - if (processingText != null) { - SnackBarManager().showSnackBar( - SnackBar( - content: Text(processingText!), - duration: k.snackBarDurationShort, - ), - canBeReplaced: true, - ); - } - try { - await action(); - SnackBarManager().showSnackBar(SnackBar( - content: Text(successText), - duration: k.snackBarDurationNormal, - )); - } catch (e) { - SnackBarManager().showSnackBar(SnackBar( - content: Text( - (failureText?.isNotEmpty == true ? "$failureText: " : "") + - exception_util.toUserString(e)), - duration: k.snackBarDurationNormal, - )); - rethrow; - } - } - - final FutureOr Function() action; - - /// Message to be shown before performing [action] - final String? processingText; - - /// Message to be shown after [action] finished without throwing - final String successText; - - /// Message to be shown if [action] threw, prepending the exception - final String? failureText; -} - class NotifiedListAction { NotifiedListAction({ required this.list, diff --git a/app/lib/object_extension.dart b/app/lib/object_extension.dart index 0b541c7c..ec2194e3 100644 --- a/app/lib/object_extension.dart +++ b/app/lib/object_extension.dart @@ -1,16 +1,6 @@ -import 'dart:async'; import 'package:np_common/object_util.dart'; extension ObjectExtension on T { - /// Deprecated, use [also] - T apply(void Function(T obj) fn) => also(fn); - - /// Deprecated, use [alsoFuture] - Future applyFuture(FutureOr Function(T obj) fn) => alsoFuture(fn); - /// Deprecated, use [let] U run(U Function(T obj) fn) => let(fn); - - /// Deprecated, use [letFuture] - Future runFuture(FutureOr Function(T obj) fn) => letFuture(fn); } diff --git a/app/lib/use_case/archive_file.dart b/app/lib/use_case/archive_file.dart deleted file mode 100644 index f8acbe95..00000000 --- a/app/lib/use_case/archive_file.dart +++ /dev/null @@ -1,72 +0,0 @@ -import 'package:logging/logging.dart'; -import 'package:nc_photos/account.dart'; -import 'package:nc_photos/debug_util.dart'; -import 'package:nc_photos/di_container.dart'; -import 'package:nc_photos/entity/file.dart'; -import 'package:nc_photos/entity/file_descriptor.dart'; -import 'package:nc_photos/use_case/update_property.dart'; -import 'package:np_codegen/np_codegen.dart'; -import 'package:np_common/type.dart'; - -part 'archive_file.g.dart'; - -class ArchiveFile { - ArchiveFile(DiContainer c) : _op = _SetArchiveFile(c); - - /// Archive list of [files] and return the archived count - Future call( - Account account, - List files, { - ErrorWithValueHandler? onError, - }) => - _op(account, files, true, onError: onError); - - final _SetArchiveFile _op; -} - -class UnarchiveFile { - UnarchiveFile(DiContainer c) : _op = _SetArchiveFile(c); - - /// Unarchive list of [files] and return the unarchived count - Future call( - Account account, - List files, { - ErrorWithValueHandler? onError, - }) => - _op(account, files, false, onError: onError); - - final _SetArchiveFile _op; -} - -@npLog -class _SetArchiveFile { - _SetArchiveFile(this._c) : assert(require(_c)); - - static bool require(DiContainer c) => DiContainer.has(c, DiType.fileRepo); - - /// Archive list of [files] and return the archived count - Future call( - Account account, - List files, - bool flag, { - ErrorWithValueHandler? onError, - }) async { - var count = 0; - for (final f in files) { - try { - await UpdateProperty(_c).updateIsArchived(account, f, flag); - ++count; - } catch (e, stackTrace) { - _log.severe( - "[call] Failed while UpdateProperty: ${logFilename(f.strippedPath)}", - e, - stackTrace, - ); - onError?.call(f, e, stackTrace); - } - } - return count; - } - - final DiContainer _c; -} diff --git a/app/lib/use_case/archive_file.g.dart b/app/lib/use_case/archive_file.g.dart deleted file mode 100644 index e04ace9a..00000000 --- a/app/lib/use_case/archive_file.g.dart +++ /dev/null @@ -1,14 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'archive_file.dart'; - -// ************************************************************************** -// NpLogGenerator -// ************************************************************************** - -extension _$_SetArchiveFileNpLog on _SetArchiveFile { - // ignore: unused_element - Logger get _log => log; - - static final log = Logger("use_case.archive_file._SetArchiveFile"); -} diff --git a/app/lib/use_case/scan_dir_offline.dart b/app/lib/use_case/scan_dir_offline.dart deleted file mode 100644 index baf3506d..00000000 --- a/app/lib/use_case/scan_dir_offline.dart +++ /dev/null @@ -1,55 +0,0 @@ -import 'package:nc_photos/account.dart'; -import 'package:nc_photos/db/entity_converter.dart'; -import 'package:nc_photos/di_container.dart'; -import 'package:nc_photos/entity/file.dart'; -import 'package:nc_photos/entity/file_descriptor.dart'; -import 'package:nc_photos/entity/file_util.dart' as file_util; -import 'package:nc_photos/remote_storage_util.dart' as remote_storage_util; - -class ScanDirOffline { - const ScanDirOffline(this._c); - - Future> call( - Account account, - File root, { - bool isOnlySupportedFormat = true, - }) async { - final results = await _c.npDb.getFileDescriptors( - account: account.toDb(), - includeRelativeRoots: [root.strippedPathWithEmpty], - excludeRelativeRoots: [remote_storage_util.remoteStorageDirRelativePath], - mimes: isOnlySupportedFormat ? file_util.supportedFormatMimes : null, - ); - return results - .map((e) => - DbFileDescriptorConverter.fromDb(account.userId.toString(), e)) - .toList(); - } - - final DiContainer _c; -} - -class ScanDirOfflineMini { - const ScanDirOfflineMini(this._c); - - Future> call( - Account account, - List roots, - int limit, { - bool isOnlySupportedFormat = true, - }) async { - final results = await _c.npDb.getFileDescriptors( - account: account.toDb(), - includeRelativeRoots: roots.map((e) => e.strippedPathWithEmpty).toList(), - excludeRelativeRoots: [remote_storage_util.remoteStorageDirRelativePath], - mimes: isOnlySupportedFormat ? file_util.supportedFormatMimes : null, - limit: limit, - ); - return results - .map((e) => - DbFileDescriptorConverter.fromDb(account.userId.toString(), e)) - .toList(); - } - - final DiContainer _c; -} diff --git a/app/test/use_case/scan_dir_offline_test.dart b/app/test/use_case/scan_dir_offline_test.dart deleted file mode 100644 index b1135831..00000000 --- a/app/test/use_case/scan_dir_offline_test.dart +++ /dev/null @@ -1,152 +0,0 @@ -import 'package:nc_photos/db/entity_converter.dart'; -import 'package:nc_photos/di_container.dart'; -import 'package:nc_photos/entity/file.dart'; -import 'package:nc_photos/entity/file_util.dart' as file_util; -import 'package:nc_photos/use_case/scan_dir_offline.dart'; -import 'package:np_db_sqlite/np_db_sqlite_compat.dart' as compat; -import 'package:test/test.dart'; - -import '../test_util.dart' as util; - -void main() { - group("ScanDirOffline", () { - group("single account", () { - test("root", _root); - test("subdir", _subDir); - test("unsupported file", _unsupportedFile); - }); - group("multiple account", () { - test("root", _multiAccountRoot); - }); - }); -} - -/// Scan root dir -/// -/// Files: admin/test1.jpg, admin/test/test2.jpg -/// Scan: admin -/// Expect: all files -Future _root() async { - final account = util.buildAccount(); - final files = (util.FilesBuilder() - ..addJpeg("admin/test1.jpg") - ..addJpeg("admin/test/test2.jpg")) - .build(); - final c = DiContainer( - npDb: util.buildTestDb(), - ); - addTearDown(() => c.sqliteDb.close()); - await c.sqliteDb.transaction(() async { - await c.sqliteDb.insertAccounts([account.toDb()]); - await util.insertFiles(c.sqliteDb, account, files); - }); - - // convert to set because ScanDirOffline does not guarantee order - expect( - (await ScanDirOffline(c)( - account, File(path: file_util.unstripPath(account, ".")))) - .toSet(), - files.map(util.fileToFileDescriptor).toSet(), - ); -} - -/// Scan sub dir (admin/test) -/// -/// Files: admin/test1.jpg, admin/test/test2.jpg -/// Scan: admin/test -/// Expect: admin/test/test2.jpg -Future _subDir() async { - final account = util.buildAccount(); - final files = (util.FilesBuilder() - ..addJpeg("admin/test1.jpg") - ..addJpeg("admin/test/test2.jpg")) - .build(); - final c = DiContainer( - npDb: util.buildTestDb(), - ); - addTearDown(() => c.sqliteDb.close()); - await c.sqliteDb.transaction(() async { - await c.sqliteDb.insertAccounts([account.toDb()]); - await util.insertFiles(c.sqliteDb, account, files); - }); - - expect( - (await ScanDirOffline(c)( - account, File(path: file_util.unstripPath(account, "test")))) - .toSet(), - [files[1]].map(util.fileToFileDescriptor).toSet(), - ); -} - -/// Scan dir with unsupported file -/// -/// Files: admin/test1.jpg, admin/test2.pdf -/// Scan: admin -/// Expect: admin/test1.jpg -Future _unsupportedFile() async { - final account = util.buildAccount(); - final files = (util.FilesBuilder() - ..addJpeg("admin/test1.jpg") - ..addGenericFile("admin/test2.pdf", "application/pdf")) - .build(); - final c = DiContainer( - npDb: util.buildTestDb(), - ); - addTearDown(() => c.sqliteDb.close()); - await c.sqliteDb.transaction(() async { - await c.sqliteDb.insertAccounts([account.toDb()]); - await util.insertFiles(c.sqliteDb, account, files); - }); - - // convert to set because ScanDirOffline does not guarantee order - expect( - (await ScanDirOffline(c)( - account, File(path: file_util.unstripPath(account, ".")))) - .toSet(), - [files[0]].map(util.fileToFileDescriptor).toSet(), - ); -} - -/// Scan root dir with multiple accounts -/// -/// Files: admin/test1.jpg, admin/test/test2.jpg, user1/test1.jpg, -/// user1/test/test2.jpg -/// Scan: admin -/// Expect: admin/test1.jpg, admin/test/test2.jpg -/// Scan: user1 -/// Expect: user1/test1.jpg, user1/test/test2.jpg -Future _multiAccountRoot() async { - final account = util.buildAccount(); - final user1Account = util.buildAccount(userId: "user1"); - final files = (util.FilesBuilder() - ..addJpeg("admin/test1.jpg") - ..addJpeg("admin/test/test2.jpg")) - .build(); - final user1Files = (util.FilesBuilder(initialFileId: files.length) - ..addJpeg("user1/test1.jpg", ownerId: "user1") - ..addJpeg("user1/test/test2.jpg", ownerId: "user1")) - .build(); - final c = DiContainer( - npDb: util.buildTestDb(), - ); - addTearDown(() => c.sqliteDb.close()); - await c.sqliteDb.transaction(() async { - await c.sqliteDb.insertAccounts([account.toDb()]); - await util.insertFiles(c.sqliteDb, account, files); - await c.sqliteDb.insertAccounts([user1Account.toDb()]); - await util.insertFiles(c.sqliteDb, user1Account, user1Files); - }); - - expect( - (await ScanDirOffline(c)( - account, File(path: file_util.unstripPath(account, ".")))) - .toSet(), - files.map(util.fileToFileDescriptor).toSet(), - ); - expect( - (await ScanDirOffline(c)( - user1Account, File(path: file_util.unstripPath(user1Account, ".")))) - .toSet(), - user1Files.map(util.fileToFileDescriptor).toSet(), - ); -}