feat(mobile): Auto switching server URLs (#14437)

This commit is contained in:
Alex 2024-12-05 09:11:48 -06:00 committed by GitHub
parent 3c38851d50
commit 055f1fc72f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
38 changed files with 1828 additions and 108 deletions

View file

@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/providers/album/album.provider.dart';
import 'package:immich_mobile/services/background.service.dart';
@ -35,7 +36,7 @@ class AppLifeCycleNotifier extends StateNotifier<AppLifeCycleEnum> {
return state;
}
void handleAppResume() {
void handleAppResume() async {
state = AppLifeCycleEnum.resumed;
// no need to resume because app was never really paused
@ -46,32 +47,49 @@ class AppLifeCycleNotifier extends StateNotifier<AppLifeCycleEnum> {
// Needs to be logged in
if (isAuthenticated) {
// switch endpoint if needed
final endpoint =
await _ref.read(authProvider.notifier).setOpenApiServiceEndpoint();
if (kDebugMode) {
debugPrint("Using server URL: $endpoint");
}
final permission = _ref.watch(galleryPermissionNotifier);
if (permission.isGranted || permission.isLimited) {
_ref.read(backupProvider.notifier).resumeBackup();
_ref.read(backgroundServiceProvider).resumeServiceIfEnabled();
await _ref.read(backupProvider.notifier).resumeBackup();
await _ref.read(backgroundServiceProvider).resumeServiceIfEnabled();
}
_ref.read(serverInfoProvider.notifier).getServerVersion();
await _ref.read(serverInfoProvider.notifier).getServerVersion();
switch (_ref.read(tabProvider)) {
case TabEnum.home:
_ref.read(assetProvider.notifier).getAllAsset();
await _ref.read(assetProvider.notifier).getAllAsset();
break;
case TabEnum.search:
// nothing to do
// nothing to do
break;
case TabEnum.albums:
_ref.read(albumProvider.notifier).refreshRemoteAlbums();
await _ref.read(albumProvider.notifier).refreshRemoteAlbums();
break;
case TabEnum.library:
// nothing to do
// nothing to do
break;
}
}
_ref.read(websocketProvider.notifier).connect();
_ref
await _ref
.read(notificationPermissionProvider.notifier)
.getNotificationPermission();
_ref.read(galleryPermissionNotifier.notifier).getGalleryPermissionStatus();
_ref.read(iOSBackgroundSettingsProvider.notifier).refresh();
await _ref
.read(galleryPermissionNotifier.notifier)
.getGalleryPermissionStatus();
await _ref.read(iOSBackgroundSettingsProvider.notifier).refresh();
_ref.invalidate(memoryFutureProvider);
}