diff --git a/mobile/lib/pages/common/headers_settings.page.dart b/mobile/lib/pages/common/headers_settings.page.dart index c7c34b9cd2ef7..59f16b3b5dde0 100644 --- a/mobile/lib/pages/common/headers_settings.page.dart +++ b/mobile/lib/pages/common/headers_settings.page.dart @@ -8,6 +8,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/store.entity.dart'; import 'package:immich_mobile/generated/translations.g.dart'; +import 'package:immich_mobile/services/widget.service.dart'; class SettingsHeader { String key = ""; @@ -59,6 +60,26 @@ class HeaderSettingsPage extends HookConsumerWidget { }), ]; + Future saveHeaders(List headers) async { + final headersMap = {}; + for (var header in headers) { + final key = header.key.trim(); + final value = header.value.trim(); + + if (key.isEmpty || value.isEmpty) continue; + headersMap[key] = value; + } + + var encoded = jsonEncode(headersMap); + await Store.put(StoreKey.customHeaders, encoded); + + final serverEndpoint = Store.tryGet(StoreKey.serverEndpoint); + final accessToken = Store.tryGet(StoreKey.accessToken); + if (serverEndpoint != null && accessToken != null) { + await ref.read(widgetServiceProvider).writeCredentials(serverEndpoint, accessToken, encoded); + } + } + return Scaffold( appBar: AppBar( title: Text(context.t.headers_settings_tile_title), @@ -86,20 +107,6 @@ class HeaderSettingsPage extends HookConsumerWidget { ), ); } - - saveHeaders(List headers) { - final headersMap = {}; - for (var header in headers) { - final key = header.key.trim(); - final value = header.value.trim(); - - if (key.isEmpty || value.isEmpty) continue; - headersMap[key] = value; - } - - var encoded = jsonEncode(headersMap); - Store.put(StoreKey.customHeaders, encoded); - } } class HeaderKeyValueSettings extends StatelessWidget { diff --git a/mobile/lib/services/widget.service.dart b/mobile/lib/services/widget.service.dart index 23ec0aa770e76..f14b852fe7ad5 100644 --- a/mobile/lib/services/widget.service.dart +++ b/mobile/lib/services/widget.service.dart @@ -16,9 +16,7 @@ class WidgetService { await _repository.saveData(kWidgetServerEndpoint, serverURL); await _repository.saveData(kWidgetAuthToken, sessionKey); - if (customHeaders != null && customHeaders.isNotEmpty) { - await _repository.saveData(kWidgetCustomHeaders, customHeaders); - } + await _repository.saveData(kWidgetCustomHeaders, customHeaders ?? "{}"); // wait 3 seconds to ensure the widget is updated, dont block Future.delayed(const Duration(seconds: 3), refreshWidgets);