From b2f26cdffdb654f618a1648a8fb3fb2b2aae927e Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Tue, 19 Aug 2025 11:56:04 +0330 Subject: [PATCH] feat : local location loading --- .../livestock/livestock_repository.dart | 4 ++-- .../livestock/livestock_repository_imp.dart | 16 ++++++++-------- .../livestock/lib/injection/live_stock_di.dart | 16 ++++++++++------ .../page/map/widget/map_widget/logic.dart | 8 ++++---- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/livestock/lib/data/repository/livestock/livestock_repository.dart b/packages/livestock/lib/data/repository/livestock/livestock_repository.dart index 77b1954..2bd095b 100644 --- a/packages/livestock/lib/data/repository/livestock/livestock_repository.dart +++ b/packages/livestock/lib/data/repository/livestock/livestock_repository.dart @@ -10,6 +10,6 @@ abstract class LivestockRepository { Future createTaggingLiveStock({required LivestockData data}); -/* Future> getLocations(); - Future addLocations(List latList);*/ + Future> getLocations(); + Future addLocations(List latList); } diff --git a/packages/livestock/lib/data/repository/livestock/livestock_repository_imp.dart b/packages/livestock/lib/data/repository/livestock/livestock_repository_imp.dart index 53d75d1..80fb768 100644 --- a/packages/livestock/lib/data/repository/livestock/livestock_repository_imp.dart +++ b/packages/livestock/lib/data/repository/livestock/livestock_repository_imp.dart @@ -1,4 +1,3 @@ -import 'package:latlong2/latlong.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/data/services/network_status.dart'; import 'package:rasadyar_livestock/data/data_source/local/tmp/tmp_local_data-source.dart'; @@ -11,8 +10,9 @@ import 'livestock_repository.dart'; class LivestockRepositoryImp implements LivestockRepository { final LivestockRemoteDataSource livestockRemote; + final TmpLocalDataSource tmpLocalDataSource; - LivestockRepositoryImp({required this.livestockRemote}); + LivestockRepositoryImp({required this.livestockRemote,required this.tmpLocalDataSource}); @override Future getLocationDetails({ @@ -29,7 +29,7 @@ class LivestockRepositoryImp implements LivestockRepository { Future createTaggingLiveStock({required LivestockData data}) async { return await livestockRemote.createTaggingLiveStock(data: data); } -/* + @override Future> getLocations() async { if (NetworkStatus().isConnected.value) { @@ -47,17 +47,17 @@ class LivestockRepositoryImp implements LivestockRepository { LatLng(35.832000, 50.956055), ]; } else { - *//*var res = await tmpLocalDataSource.getLocations(); + var res = await tmpLocalDataSource.getLocations(); - return res.map((e) => LatLng(e.lat ?? 0.0, e.long ?? 0.0)).toList();*//* + return res.map((e) => LatLng(e.lat ?? 0.0, e.long ?? 0.0)).toList(); } } @override Future addLocations(List latList) async { - *//* await tmpLocalDataSource.addLocations( + await tmpLocalDataSource.addLocations( latList.map((e) => TmpLocations(lat: e.latitude, long: e.longitude)).toList(), - );*//* + ); iLog("it is done"); - }*/ + } } diff --git a/packages/livestock/lib/injection/live_stock_di.dart b/packages/livestock/lib/injection/live_stock_di.dart index fad3b19..31481c7 100644 --- a/packages/livestock/lib/injection/live_stock_di.dart +++ b/packages/livestock/lib/injection/live_stock_di.dart @@ -8,21 +8,19 @@ import 'package:rasadyar_livestock/data/repository/auth/auth_repository.dart'; import 'package:rasadyar_livestock/data/repository/auth/auth_repository_imp.dart'; import 'package:rasadyar_livestock/data/repository/livestock/livestock_repository.dart'; import 'package:rasadyar_livestock/data/repository/livestock/livestock_repository_imp.dart'; -import 'package:rasadyar_livestock/data/service/live_stock_storage_service.dart'; import 'package:rasadyar_livestock/hive_registrar.g.dart'; import 'package:rasadyar_livestock/presentation/routes/app_pages.dart'; +import '../data/data_source/local/tmp/tmp_local_data-source.dart'; + GetIt get diLiveStock => GetIt.instance; Future setupLiveStockDI() async { diLiveStock.registerSingleton(DioErrorHandler()); await IsolatedHive.initFlutter(); IsolatedHive.registerAdapters(); - iLog("Sssssssssssssssssssss"); final tokenService = Get.find(); - - if (tokenService.baseurl.value == null) { await tokenService.saveBaseUrl('https://api.dam.rasadyar.net/'); } @@ -31,7 +29,7 @@ Future setupLiveStockDI() async { diLiveStock.registerLazySingleton( () => AppInterceptor( refreshTokenCallback: () async { - /* // Use lazy access to avoid circular dependency + /* // Use lazy access to avoid circular dependency final authRepository = diLiveStock.get(); final hasAuthenticated = await authRepository.hasAuthenticated(); if (hasAuthenticated) { @@ -80,8 +78,14 @@ Future setupLiveStockDI() async { diLiveStock.registerLazySingleton( () => LivestockRemoteDataSourceImp(), ); + + diLiveStock.registerLazySingleton(() => TmpLocalDataSource()); + diLiveStock.registerLazySingleton( - () => LivestockRepositoryImp(livestockRemote: diLiveStock.get()), + () => LivestockRepositoryImp( + livestockRemote: diLiveStock.get(), + tmpLocalDataSource: diLiveStock.get(), + ), ); //endregion diff --git a/packages/livestock/lib/presentation/page/map/widget/map_widget/logic.dart b/packages/livestock/lib/presentation/page/map/widget/map_widget/logic.dart index 4638752..dbd0788 100644 --- a/packages/livestock/lib/presentation/page/map/widget/map_widget/logic.dart +++ b/packages/livestock/lib/presentation/page/map/widget/map_widget/logic.dart @@ -23,7 +23,7 @@ class MapWidgetLogic extends GetxController with GetTickerProviderStateMixin { RxList markerLocations = RxList(); RootLogic rootLogic = Get.find(); - late LivestockRepository repository ; + LivestockRepository repository = diLiveStock.get(); @override void onInit() { @@ -59,7 +59,7 @@ class MapWidgetLogic extends GetxController with GetTickerProviderStateMixin { void onReady() { super.onReady(); determineCurrentPosition(); - // getLoc(); + getLoc(); } @override @@ -151,7 +151,7 @@ class MapWidgetLogic extends GetxController with GetTickerProviderStateMixin { return rawMarkers.where((marker) => distance(center, marker) <= radiusInMeters).toList(); } -/* Future getLoc() async { + Future getLoc() async { await Future.delayed(Duration(seconds: 3)); await safeCall( call: () async => repository.getLocations(), @@ -160,5 +160,5 @@ class MapWidgetLogic extends GetxController with GetTickerProviderStateMixin { }, onError: (error, stackTrace) {}, ); - }*/ + } }