From 97d31c2e733a0bb44c2b5a7829fb8e2842ac21ac Mon Sep 17 00:00:00 2001 From: Evgenii Kozlov Date: Mon, 12 Jun 2023 17:31:13 +0200 Subject: [PATCH] DROID-1380 Settings | Enhancement | Add device id to the tech info output (#54) --- .../com/anytypeio/anytype/ui/settings/AboutAppFragment.kt | 6 +++++- .../main/java/com/anytypeio/anytype/core_models/Config.kt | 3 ++- .../com/anytypeio/anytype/middleware/auth/AuthMappers.kt | 6 ++++-- .../src/main/java/com/anytypeio/anytype/core_models/Auth.kt | 6 ++++-- .../anytypeio/anytype/ui_settings/about/AboutAppScreen.kt | 3 +++ .../anytype/ui_settings/about/AboutAppViewModel.kt | 2 ++ ui-settings/src/main/res/values/strings.xml | 2 +- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt index 397cf3577e..39f5c957d7 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/settings/AboutAppFragment.kt @@ -58,6 +58,7 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() { libraryVersion = vm.libraryVersion.collectAsState().value, accountId = vm.accountId.collectAsState().value, analyticsId = vm.analyticsId.collectAsState().value, + deviceId = vm.deviceId.collectAsState().value, onMetaClicked = { copyMetaToClipboard() }, onContactUsClicked = { proceedWithAction( @@ -68,7 +69,8 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() { version = getVersionText(), library = vm.libraryVersion.value, os = getOsVersion(), - device = getDevice() + device = getDevice(), + deviceId = vm.deviceId.value, ) ) ) @@ -168,6 +170,7 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() { version: String, library: String, analytics: Id, + deviceId: Id, os: String ) : String { return "mailto:support@anytype.io" + @@ -178,6 +181,7 @@ class AboutAppFragment : BaseBottomSheetComposeFragment() { "%0D%0AApp%20version%3A%20$version" + "%0D%0ALibrary%20version%3A%20$library" + "%0D%0AAccount%20ID%3A%20$account" + + "%0D%0ADevice%20ID%3A%20$deviceId" + "%0D%0AAnalytics%20ID%3A%20$analytics" } diff --git a/core-models/src/main/java/com/anytypeio/anytype/core_models/Config.kt b/core-models/src/main/java/com/anytypeio/anytype/core_models/Config.kt index d1b48a9297..5bcbd60e10 100644 --- a/core-models/src/main/java/com/anytypeio/anytype/core_models/Config.kt +++ b/core-models/src/main/java/com/anytypeio/anytype/core_models/Config.kt @@ -13,5 +13,6 @@ data class Config( val gateway: Url, val workspace: Id, val widgets: Id, - val analytics: Id + val analytics: Id, + val device: Id ) \ No newline at end of file diff --git a/middleware/src/main/java/com/anytypeio/anytype/middleware/auth/AuthMappers.kt b/middleware/src/main/java/com/anytypeio/anytype/middleware/auth/AuthMappers.kt index f247ec5f59..20bb4801f8 100644 --- a/middleware/src/main/java/com/anytypeio/anytype/middleware/auth/AuthMappers.kt +++ b/middleware/src/main/java/com/anytypeio/anytype/middleware/auth/AuthMappers.kt @@ -29,7 +29,8 @@ fun Rpc.Account.Create.Response.toAccountSetup() : AccountSetup { gateway = info.gatewayUrl, workspace = info.accountSpaceId, widgets = info.widgetsId, - analytics = info.analyticsId + analytics = info.analyticsId, + device = info.deviceId ), status = status?.core() ?: AccountStatus.Unknown ) @@ -56,7 +57,8 @@ fun Rpc.Account.Select.Response.toAccountSetup(): AccountSetup { gateway = info.gatewayUrl, workspace = info.accountSpaceId, widgets = info.widgetsId, - analytics = info.analyticsId + analytics = info.analyticsId, + device = info.deviceId ), status = status?.core() ?: AccountStatus.Unknown ) diff --git a/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Auth.kt b/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Auth.kt index 5329a8c77e..d0518fa3df 100644 --- a/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Auth.kt +++ b/test/core-models-stub/src/main/java/com/anytypeio/anytype/core_models/Auth.kt @@ -32,14 +32,16 @@ fun StubConfig( gateway: Url = MockDataFactory.randomUuid(), workspace: Id = MockDataFactory.randomUuid(), widgets: Id = MockDataFactory.randomUuid(), - analytics: Id = MockDataFactory.randomUuid() + analytics: Id = MockDataFactory.randomUuid(), + device: Id = MockDataFactory.randomUuid() ) : Config = Config( home = home, profile = profile, gateway = gateway, workspace = workspace, widgets = widgets, - analytics = analytics + analytics = analytics, + device = device ) fun StubFeatureConfig( diff --git a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppScreen.kt b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppScreen.kt index a44d452c16..9f3960cb68 100644 --- a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppScreen.kt +++ b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppScreen.kt @@ -28,6 +28,7 @@ fun AboutAppScreen( libraryVersion: String, accountId: String, analyticsId: String, + deviceId: String, version: String, buildNumber: Int, onMetaClicked: () -> Unit, @@ -110,6 +111,7 @@ fun AboutAppScreen( buildNumber, libraryVersion, accountId, + deviceId, analyticsId ), style = Caption2Regular.copy( @@ -164,6 +166,7 @@ fun PreviewAboutAppScreen() { libraryVersion = "1.0.0", accountId = "1234567890", analyticsId = "1234567890", + deviceId = "123132323", version = "1.0.0", buildNumber = 1, onMetaClicked = {}, diff --git a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt index 7c80678b1f..7c73ab5309 100644 --- a/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt +++ b/ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/about/AboutAppViewModel.kt @@ -45,6 +45,7 @@ class AboutAppViewModel( val libraryVersion = MutableStateFlow("") val accountId = MutableStateFlow("") val analyticsId = MutableStateFlow("") + val deviceId = MutableStateFlow("") init { viewModelScope.launch { @@ -58,6 +59,7 @@ class AboutAppViewModel( viewModelScope.launch { val config = configStorage.get() analyticsId.value = config.analytics + deviceId.value = config.device } viewModelScope.launch { getLibraryVersion(BaseUseCase.None).process( diff --git a/ui-settings/src/main/res/values/strings.xml b/ui-settings/src/main/res/values/strings.xml index e8d481cf58..ffa196c936 100644 --- a/ui-settings/src/main/res/values/strings.xml +++ b/ui-settings/src/main/res/values/strings.xml @@ -52,7 +52,7 @@ https://anytype.io/terms.pdf https://anytype.io/privacy_policy.html - App version: %1$s\nBuild number: %2$d\nLibrary version: %3$s\nAccount\u00A0ID:\u00A0%4$s\nAnalytics\u00A0ID:\u00A0%5$s + App version: %1$s\nBuild number: %2$d\nLibrary version: %3$s\nAccount\u00A0ID:\u00A0%4$s\nDevice\u00A0ID:\u00A0%5$s\nAnalytics\u00A0ID:\u00A0%6$s Device: %1$s\nAndroid version: %2$d\nApp version: %3$s\nBuild number: %4$d\nLibrary version: %5$s\nAccount\u00A0ID:\u00A0%6$s\nAnalytics\u00A0ID:\u00A0%7$s Space name Personal Space