mirror of
https://github.com/immich-app/immich.git
synced 2025-07-31 15:08:44 -04:00
chore: code review changes from @shenlong-tanwen
This commit is contained in:
parent
c6cd4dce78
commit
97329d488b
@ -4,45 +4,44 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|||||||
import 'package:immich_mobile/constants/constants.dart';
|
import 'package:immich_mobile/constants/constants.dart';
|
||||||
import 'package:immich_mobile/domain/models/store.model.dart';
|
import 'package:immich_mobile/domain/models/store.model.dart';
|
||||||
import 'package:immich_mobile/entities/store.entity.dart';
|
import 'package:immich_mobile/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/models/auth/auxilary_endpoint.model.dart';
|
import 'package:immich_mobile/repositories/auth.repository.dart';
|
||||||
import 'package:immich_mobile/repositories/widget.repository.dart';
|
import 'package:immich_mobile/repositories/widget.repository.dart';
|
||||||
|
|
||||||
final widgetServiceProvider = Provider((ref) {
|
final widgetServiceProvider = Provider((ref) {
|
||||||
return WidgetService(
|
return WidgetService(
|
||||||
ref.watch(widgetRepositoryProvider),
|
ref.watch(widgetRepositoryProvider),
|
||||||
|
ref.watch(authRepositoryProvider),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
class WidgetService {
|
class WidgetService {
|
||||||
final WidgetRepository _repository;
|
final WidgetRepository _widgetRepository;
|
||||||
|
final AuthRepository _authRepository;
|
||||||
|
|
||||||
WidgetService(this._repository);
|
WidgetService(this._widgetRepository, this._authRepository);
|
||||||
|
|
||||||
Future<void> writeSessionKey(
|
Future<void> writeSessionKey(
|
||||||
String sessionKey,
|
String sessionKey,
|
||||||
) async {
|
) async {
|
||||||
await _repository.setAppGroupId(appShareGroupId);
|
await _widgetRepository.setAppGroupId(appShareGroupId);
|
||||||
await _repository.saveData(kWidgetAuthToken, sessionKey);
|
await _widgetRepository.saveData(kWidgetAuthToken, sessionKey);
|
||||||
|
|
||||||
// wait 3 seconds to ensure the widget is updated, dont block
|
// wait 3 seconds to ensure the widget is updated, dont block
|
||||||
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> writeServerList() async {
|
Future<void> writeServerList() async {
|
||||||
await _repository.setAppGroupId(appShareGroupId);
|
await _widgetRepository.setAppGroupId(appShareGroupId);
|
||||||
|
|
||||||
// create json string from serverURLS
|
// create json string from serverURLS
|
||||||
final serverURLSString = jsonEncode(_buildServerList());
|
final serverURLSString = jsonEncode(_buildServerList());
|
||||||
|
|
||||||
await _repository.saveData(kWidgetServerEndpoint, serverURLSString);
|
await _widgetRepository.saveData(kWidgetServerEndpoint, serverURLSString);
|
||||||
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> _buildServerList() {
|
List<String> _buildServerList() {
|
||||||
final List<dynamic> jsonList =
|
final endpointList = _authRepository.getExternalEndpointList();
|
||||||
jsonDecode(Store.tryGet(StoreKey.externalEndpointList) ?? "[]");
|
|
||||||
final endpointList =
|
|
||||||
jsonList.map((e) => AuxilaryEndpoint.fromJson(e)).toList();
|
|
||||||
|
|
||||||
final String? localEndpoint = Store.tryGet(StoreKey.localEndpoint);
|
final String? localEndpoint = Store.tryGet(StoreKey.localEndpoint);
|
||||||
final String? serverUrl = Store.tryGet(StoreKey.serverUrl);
|
final String? serverUrl = Store.tryGet(StoreKey.serverUrl);
|
||||||
@ -53,20 +52,17 @@ class WidgetService {
|
|||||||
serverUrlList.insert(0, localEndpoint);
|
serverUrlList.insert(0, localEndpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverUrl != null && serverUrl != localEndpoint) {
|
if (serverUrl != null) {
|
||||||
serverUrlList.insert(0, serverUrl);
|
serverUrlList.insert(0, serverUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove duplicates
|
return serverUrlList.toSet().toList();
|
||||||
final Set<String> uniqueServerUrls = serverUrlList.toSet();
|
|
||||||
|
|
||||||
return uniqueServerUrls.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> clearCredentials() async {
|
Future<void> clearCredentials() async {
|
||||||
await _repository.setAppGroupId(appShareGroupId);
|
await _widgetRepository.setAppGroupId(appShareGroupId);
|
||||||
await _repository.saveData(kWidgetServerEndpoint, "");
|
await _widgetRepository.saveData(kWidgetServerEndpoint, "");
|
||||||
await _repository.saveData(kWidgetAuthToken, "");
|
await _widgetRepository.saveData(kWidgetAuthToken, "");
|
||||||
|
|
||||||
// wait 3 seconds to ensure the widget is updated, dont block
|
// wait 3 seconds to ensure the widget is updated, dont block
|
||||||
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
Future.delayed(const Duration(seconds: 3), refreshWidgets);
|
||||||
@ -74,7 +70,7 @@ class WidgetService {
|
|||||||
|
|
||||||
Future<void> refreshWidgets() async {
|
Future<void> refreshWidgets() async {
|
||||||
for (final name in kWidgetNames) {
|
for (final name in kWidgetNames) {
|
||||||
await _repository.refresh(name);
|
await _widgetRepository.refresh(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user