Skip to content

Commit aa06978

Browse files
authored
Merge pull request #1698 from SatoshiPortal/refactor-locator
refactor: Unify Background Task Locator with the AppLocator into a single Dependency Injection Pattern
2 parents d4d6c7a + 278a086 commit aa06978

42 files changed

Lines changed: 204 additions & 316 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/core/background_tasks/handler.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import 'package:bb_mobile/core/background_tasks/locator.dart';
21
import 'package:bb_mobile/core/background_tasks/tasks.dart';
32
import 'package:bb_mobile/core/storage/sqlite_database.dart';
43
import 'package:bb_mobile/core/swaps/domain/usecases/restart_swap_watcher_usecase.dart';
54
import 'package:bb_mobile/core/utils/logger.dart' show log;
65
import 'package:bb_mobile/core/wallet/domain/usecases/get_wallets_usecase.dart';
76
import 'package:bb_mobile/core/wallet/domain/usecases/sync_wallet_usecase.dart';
7+
import 'package:bb_mobile/locator.dart';
88
import 'package:bb_mobile/main.dart';
99
import 'package:flutter_dotenv/flutter_dotenv.dart';
1010
import 'package:get_it/get_it.dart';
@@ -31,7 +31,7 @@ Future<bool> tasksHandler(String task) async {
3131
await driftIsolate.connect(singleClientMode: true),
3232
);
3333
final locator = GetIt.asNewInstance();
34-
await TaskLocator.setup(locator, sqlite);
34+
await AppLocator.setup(locator, sqlite);
3535

3636
final syncWalletUsecase = locator<SyncWalletUsecase>();
3737
final getWalletsUsecase = locator<GetWalletsUsecase>();

lib/core/background_tasks/locator.dart

Lines changed: 0 additions & 108 deletions
This file was deleted.

lib/core/bitbox/bitbox_locator.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,24 @@ import 'package:bb_mobile/core/bitbox/domain/usecases/sign_psbt_bitbox_usecase.d
99
import 'package:bb_mobile/core/bitbox/domain/usecases/unlock_bitbox_device_usecase.dart';
1010
import 'package:bb_mobile/core/bitbox/domain/usecases/verify_address_bitbox_usecase.dart';
1111
import 'package:bb_mobile/core/settings/data/settings_repository.dart';
12-
import 'package:bb_mobile/locator.dart';
12+
import 'package:get_it/get_it.dart';
1313

1414
class BitBoxCoreLocator {
15-
static void registerDatasources() {
15+
static void registerDatasources(GetIt locator) {
1616
locator.registerLazySingleton<BitBoxDeviceDatasource>(
1717
() => BitBoxDeviceDatasource(),
1818
);
1919
}
2020

21-
static void registerRepositories() {
21+
static void registerRepositories(GetIt locator) {
2222
locator.registerLazySingleton<BitBoxDeviceRepository>(
2323
() => BitBoxDeviceRepositoryImpl(
2424
datasource: locator<BitBoxDeviceDatasource>(),
2525
),
2626
);
2727
}
2828

29-
static void registerUsecases() {
29+
static void registerUsecases(GetIt locator) {
3030
locator.registerLazySingleton<ScanBitBoxDevicesUsecase>(
3131
() => ScanBitBoxDevicesUsecase(
3232
repository: locator<BitBoxDeviceRepository>(),

lib/core/core_locator.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ import 'package:bb_mobile/core/storage/storage_locator.dart';
1616
import 'package:bb_mobile/core/swaps/swaps_locator.dart';
1717
import 'package:bb_mobile/core/tor/tor_locator.dart';
1818
import 'package:bb_mobile/core/wallet/wallet_locator.dart';
19-
import 'package:bb_mobile/locator.dart';
19+
import 'package:get_it/get_it.dart';
2020

2121
class CoreLocator {
22-
static void register() {
23-
locator.registerLazySingleton<SqliteDatabase>(() => SqliteDatabase());
22+
static void register(GetIt locator, SqliteDatabase database) {
23+
locator.registerLazySingleton<SqliteDatabase>(() => database);
2424
}
2525

26-
static Future<void> registerDatasources() async {
26+
static Future<void> registerDatasources(GetIt locator) async {
2727
LabelsLocator.registerDatasources(locator);
2828
await TorLocator.registerDatasources(locator);
2929
BlockchainLocator.registerDatasources(locator);
@@ -39,19 +39,19 @@ class CoreLocator {
3939
await WalletLocator.registerDatasources(locator);
4040
await SettingsLocator.registerDatasources(locator);
4141
Bip85DerivationsLocator.registerDatasources(locator);
42-
LedgerLocator.registerDatasources();
43-
BitBoxCoreLocator.registerDatasources();
42+
LedgerLocator.registerDatasources(locator);
43+
BitBoxCoreLocator.registerDatasources(locator);
4444
}
4545

46-
static void registerPorts() {
46+
static void registerPorts(GetIt locator) {
4747
ElectrumLocator.registerPorts(locator);
4848
BlockchainLocator.registerPorts(locator);
4949
MempoolLocator.registerPorts(locator);
5050
SwapsLocator.registerPorts(locator);
5151
WalletLocator.registerPorts(locator);
5252
}
5353

54-
static Future<void> registerRepositories() async {
54+
static Future<void> registerRepositories(GetIt locator) async {
5555
LabelsLocator.registerRepositories(locator);
5656
await TorLocator.registerRepositories(locator);
5757
BlockchainLocator.registerRepositories(locator);
@@ -67,17 +67,17 @@ class CoreLocator {
6767
SwapsLocator.registerRepositories(locator);
6868
WalletLocator.registerRepositories(locator);
6969
Bip85DerivationsLocator.registerRepositories(locator);
70-
LedgerLocator.registerRepositories();
71-
BitBoxCoreLocator.registerRepositories();
70+
LedgerLocator.registerRepositories(locator);
71+
BitBoxCoreLocator.registerRepositories(locator);
7272
}
7373

74-
static void registerServices() {
74+
static void registerServices(GetIt locator) {
7575
MempoolLocator.registerServices(locator);
7676
SeedLocator.registerServices(locator);
7777
SwapsLocator.registerServices(locator);
7878
}
7979

80-
static void registerUsecases() {
80+
static void registerUsecases(GetIt locator) {
8181
LabelsLocator.registerUseCases(locator);
8282
ElectrumLocator.registerUsecases(locator);
8383
BlockchainLocator.registerUsecases(locator);
@@ -93,7 +93,7 @@ class CoreLocator {
9393
TorLocator.registerUsecases(locator);
9494
WalletLocator.registerUsecases(locator);
9595
Bip85DerivationsLocator.registerUsecases(locator);
96-
LedgerLocator.registerUsecases();
97-
BitBoxCoreLocator.registerUsecases();
96+
LedgerLocator.registerUsecases(locator);
97+
BitBoxCoreLocator.registerUsecases(locator);
9898
}
9999
}

lib/core/ledger/ledger_locator.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ import 'package:bb_mobile/core/ledger/domain/usecases/scan_ledger_devices_usecas
77
import 'package:bb_mobile/core/ledger/domain/usecases/sign_psbt_ledger_usecase.dart';
88
import 'package:bb_mobile/core/ledger/domain/usecases/verify_address_ledger_usecase.dart';
99
import 'package:bb_mobile/core/settings/data/settings_repository.dart';
10-
import 'package:bb_mobile/locator.dart';
10+
import 'package:get_it/get_it.dart';
1111

1212
class LedgerLocator {
13-
static void registerDatasources() {
13+
static void registerDatasources(GetIt locator) {
1414
locator.registerLazySingleton<LedgerDeviceDatasource>(
1515
() => LedgerDeviceDatasource(),
1616
);
1717
}
1818

19-
static void registerRepositories() {
19+
static void registerRepositories(GetIt locator) {
2020
locator.registerLazySingleton<LedgerDeviceRepository>(
2121
() => LedgerDeviceRepositoryImpl(
2222
datasource: locator<LedgerDeviceDatasource>(),
2323
),
2424
);
2525
}
2626

27-
static void registerUsecases() {
27+
static void registerUsecases(GetIt locator) {
2828
locator.registerFactory<ScanLedgerDevicesUsecase>(
2929
() => ScanLedgerDevicesUsecase(
3030
repository: locator<LedgerDeviceRepository>(),

lib/features/address_view/address_view_locator.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import 'package:bb_mobile/core/wallet/data/repositories/wallet_address_repository.dart';
22
import 'package:bb_mobile/features/address_view/domain/usecases/get_address_list_usecase.dart';
33
import 'package:bb_mobile/features/address_view/presentation/address_view_bloc.dart';
4-
import 'package:bb_mobile/locator.dart';
4+
import 'package:get_it/get_it.dart';
55

66
class AddressViewLocator {
7-
static void setup() {
8-
registerUsecases();
9-
registerBlocs();
7+
static void setup(GetIt locator) {
8+
registerUsecases(locator);
9+
registerBlocs(locator);
1010
}
1111

12-
static void registerUsecases() {
12+
static void registerUsecases(GetIt locator) {
1313
locator.registerFactory<GetAddressListUsecase>(
1414
() => GetAddressListUsecase(
1515
walletAddressRepository: locator<WalletAddressRepository>(),
1616
),
1717
);
1818
}
1919

20-
static void registerBlocs() {
20+
static void registerBlocs(GetIt locator) {
2121
// Register the AddressViewBloc with the locator
2222
locator.registerFactoryParam<AddressViewBloc, String, int?>(
2323
(walletId, limit) => AddressViewBloc(

lib/features/all_seed_view/all_seed_view_locator.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import 'package:bb_mobile/core/seed/domain/usecases/get_all_seeds_usecase.dart';
33
import 'package:bb_mobile/core/seed/domain/usecases/process_and_separate_seeds_usecase.dart';
44
import 'package:bb_mobile/core/wallet/domain/usecases/get_wallets_usecase.dart';
55
import 'package:bb_mobile/features/all_seed_view/presentation/all_seed_view_cubit.dart';
6-
import 'package:bb_mobile/locator.dart';
6+
import 'package:get_it/get_it.dart';
77

88
class AllSeedViewLocator {
9-
static void setup() {
9+
static void setup(GetIt locator) {
1010
locator.registerFactory<AllSeedViewCubit>(
1111
() => AllSeedViewCubit(
1212
getAllSeedsUsecase: locator<GetAllSeedsUsecase>(),

lib/features/app_startup/app_startup_locator.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import 'package:bb_mobile/features/app_startup/presentation/bloc/app_startup_blo
1212
import 'package:bb_mobile/features/app_unlock/domain/usecases/check_pin_code_exists_usecase.dart';
1313
import 'package:bb_mobile/features/pin_code/data/repositories/pin_code_repository.dart';
1414
import 'package:bb_mobile/features/test_wallet_backup/domain/usecases/check_backup_usecase.dart';
15-
import 'package:bb_mobile/locator.dart';
15+
import 'package:get_it/get_it.dart';
1616

1717
class AppStartupLocator {
18-
static void setup() {
18+
static void setup(GetIt locator) {
1919
// Use cases
2020
locator.registerFactory<ResetAppDataUsecase>(
2121
() =>

lib/features/app_unlock/app_unlock_locator.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import 'package:bb_mobile/features/app_unlock/domain/usecases/check_pin_code_exi
88
import 'package:bb_mobile/features/app_unlock/domain/usecases/get_latest_unlock_attempt_usecase.dart';
99
import 'package:bb_mobile/features/app_unlock/presentation/bloc/app_unlock_bloc.dart';
1010
import 'package:bb_mobile/features/pin_code/data/repositories/pin_code_repository.dart';
11-
import 'package:bb_mobile/locator.dart';
11+
import 'package:get_it/get_it.dart';
1212

1313
class AppUnlockLocator {
14-
static void setup() {
14+
static void setup(GetIt locator) {
1515
// Repositories
1616
locator.registerLazySingleton<FailedUnlockAttemptsRepository>(
1717
() => FailedUnlockAttemptsRepository(

lib/features/autoswap/autoswap_locator.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import 'package:bb_mobile/core/swaps/domain/usecases/get_auto_swap_settings_usec
33
import 'package:bb_mobile/core/swaps/domain/usecases/save_auto_swap_settings_usecase.dart';
44
import 'package:bb_mobile/core/wallet/data/repositories/wallet_repository.dart';
55
import 'package:bb_mobile/features/autoswap/presentation/autoswap_settings_cubit.dart';
6-
import 'package:bb_mobile/locator.dart';
6+
import 'package:get_it/get_it.dart';
77

88
class AutoSwapLocator {
9-
static void setup() {
9+
static void setup(GetIt locator) {
1010
// Register the cubit
1111
locator.registerFactory<AutoSwapSettingsCubit>(
1212
() => AutoSwapSettingsCubit(

0 commit comments

Comments
 (0)