Skip to content

Commit c61ea48

Browse files
authored
fix: mobile user agent set to immich_platform_version (#18478)
* fix: mobile user agent * refactor: typo in MapService
1 parent c278bb0 commit c61ea48

File tree

7 files changed

+39
-8
lines changed

7 files changed

+39
-8
lines changed

mobile/.fvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
22
"flutter": "3.29.3"
3-
}
3+
}

mobile/.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"dart.flutterSdkPath": ".fvm/versions/3.24.3",
2+
"dart.flutterSdkPath": ".fvm/versions/3.29.3",
33
"search.exclude": {
44
"**/.fvm": true
55
},

mobile/lib/providers/map/map_service.provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
66
part 'map_service.provider.g.dart';
77

88
@riverpod
9-
MapSerivce mapService(Ref ref) => MapSerivce(ref.watch(apiServiceProvider));
9+
MapService mapService(Ref ref) => MapService(ref.watch(apiServiceProvider));

mobile/lib/providers/map/map_service.provider.g.dart

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobile/lib/services/api.service.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:immich_mobile/entities/store.entity.dart';
1010
import 'package:immich_mobile/utils/url_helper.dart';
1111
import 'package:logging/logging.dart';
1212
import 'package:openapi/api.dart';
13+
import 'package:immich_mobile/utils/user_agent.dart';
1314

1415
class ApiService implements Authentication {
1516
late ApiClient _apiClient;
@@ -48,6 +49,7 @@ class ApiService implements Authentication {
4849

4950
setEndpoint(String endpoint) {
5051
_apiClient = ApiClient(basePath: endpoint, authentication: this);
52+
_setUserAgentHeader();
5153
if (_accessToken != null) {
5254
setAccessToken(_accessToken!);
5355
}
@@ -72,6 +74,11 @@ class ApiService implements Authentication {
7274
memoriesApi = MemoriesApi(_apiClient);
7375
}
7476

77+
Future<void> _setUserAgentHeader() async {
78+
final userAgent = await getUserAgentString();
79+
_apiClient.addDefaultHeader('User-Agent', userAgent);
80+
}
81+
7582
Future<String> resolveAndSetEndpoint(String serverUrl) async {
7683
final endpoint = await resolveEndpoint(serverUrl);
7784
setEndpoint(endpoint);

mobile/lib/services/map.service.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@ import 'package:immich_mobile/mixins/error_logger.mixin.dart';
22
import 'package:immich_mobile/models/map/map_marker.model.dart';
33
import 'package:immich_mobile/services/api.service.dart';
44
import 'package:logging/logging.dart';
5+
import 'package:maplibre_gl/maplibre_gl.dart';
6+
import 'package:immich_mobile/utils/user_agent.dart';
57

6-
class MapSerivce with ErrorLoggerMixin {
8+
class MapService with ErrorLoggerMixin {
79
final ApiService _apiService;
810
@override
911
final logger = Logger("MapService");
1012

11-
MapSerivce(this._apiService);
13+
MapService(this._apiService) {
14+
_setMapUserAgentHeader();
15+
}
16+
17+
Future<void> _setMapUserAgentHeader() async {
18+
final userAgent = await getUserAgentString();
19+
setHttpHeaders({'User-Agent': userAgent});
20+
}
1221

1322
Future<Iterable<MapMarker>> getMapMarkers({
1423
bool? isFavorite,

mobile/lib/utils/user_agent.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'dart:io' show Platform;
2+
import 'package:package_info_plus/package_info_plus.dart';
3+
4+
Future<String> getUserAgentString() async {
5+
final packageInfo = await PackageInfo.fromPlatform();
6+
String platform;
7+
if (Platform.isAndroid) {
8+
platform = 'Android';
9+
} else if (Platform.isIOS) {
10+
platform = 'iOS';
11+
} else {
12+
platform = 'Unknown';
13+
}
14+
return 'Immich_${platform}_${packageInfo.version}';
15+
}

0 commit comments

Comments
 (0)