check cache locals in update locals
This commit is contained in:
parent
bc0ef37a60
commit
ab19c7f231
|
@ -18,11 +18,12 @@ import 'package:hub/shared/utils/dialog_util.dart';
|
|||
import 'package:hub/shared/utils/snackbar_util.dart';
|
||||
|
||||
abstract class LocalsRemoteDataSource {
|
||||
Future<void> checkLocals(BuildContext context);
|
||||
Future<void> linkLocal(BuildContext context);
|
||||
Future<bool> checkLocals(BuildContext context);
|
||||
Future<bool> processLocals(BuildContext context) ;
|
||||
Future<bool> processData(BuildContext context);
|
||||
Future<bool> selectLocal(BuildContext context, ApiCallResponse? response) ;
|
||||
Future<void> detachLocal(BuildContext context) ;
|
||||
Future<void> detachLocal(BuildContext context);
|
||||
}
|
||||
|
||||
class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
|
||||
|
@ -31,7 +32,7 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
|
|||
LocalsRemoteDataSourceImpl._internal();
|
||||
|
||||
@override
|
||||
Future<void> checkLocals(BuildContext context) async {
|
||||
Future<void> linkLocal(BuildContext context) async {
|
||||
try {
|
||||
final GetLocalsCall callback = PhpGroup.getLocalsCall;
|
||||
var response = await callback.call();
|
||||
|
@ -142,6 +143,13 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
|
|||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> checkLocals(BuildContext context) async {
|
||||
String cliUUID = (await StorageHelper().get(KeychainStorageKey.clientUUID.value)) ?? '';
|
||||
String cliName = (await StorageHelper().get(KeychainStorageKey.clientName.value)) ?? '';
|
||||
return cliUUID.isEmpty && cliName.isEmpty;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> processData(BuildContext context) async {
|
||||
try {
|
||||
|
|
|
@ -20,7 +20,7 @@ class LocalsRepositoryImpl implements LocalsRepository {
|
|||
|
||||
@override
|
||||
Future<void> validateLocal(BuildContext context) async {
|
||||
return await remoteDataSource.checkLocals(context);
|
||||
return await remoteDataSource.linkLocal(context);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -49,17 +49,22 @@ class LocalsRepositoryImpl implements LocalsRepository {
|
|||
|
||||
Future<bool> _handleReponse(BuildContext context) async {
|
||||
bool response = false;
|
||||
final bool isUnselected = await remoteDataSource.checkLocals(context);
|
||||
if (isUnselected) {
|
||||
while (!response) {
|
||||
try {
|
||||
response = await remoteDataSource.processLocals(context);
|
||||
if (!response) {
|
||||
await _handleUpdateError(context);
|
||||
}
|
||||
} catch (e , s) {
|
||||
} catch (e, s) {
|
||||
log('Error updating locals: $e', stackTrace: s);
|
||||
await _handleUpdateError(context);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue