From ef9295674f6e219a332f54b4ccbd25608ef063d9 Mon Sep 17 00:00:00 2001 From: Hossain Khan Date: Sat, 6 Dec 2025 16:25:32 -0500 Subject: [PATCH 1/2] [ADDED] Preview for BYOD and BYOS --- .../android/ui/settings/AppSettingsScreen.kt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt index a3ae247..cd9767c 100644 --- a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt @@ -1431,3 +1431,49 @@ private fun PreviewFakeApiInfoBanner() { FakeApiInfoBanner() } } + +@Preview(name = "App Settings Content - BYOD Selected") +@Composable +private fun PreviewAppSettingsContentByod() { + TrmnlDisplayAppTheme { + AppSettingsContent( + state = + AppSettingsScreen.State( + deviceType = TrmnlDeviceType.BYOD, + serverBaseUrl = "https://usetrmnl.com", + accessToken = "byod-access-token-here", + deviceMacId = "", + isByodMasterDevice = false, + usesFakeApiData = false, + isLoading = false, + validationResult = null, + nextRefreshJobInfo = null, + savedDeviceModel = null, + eventSink = {}, + ), + ) + } +} + +@Preview(name = "App Settings Content - BYOS Selected") +@Composable +private fun PreviewAppSettingsContentByos() { + TrmnlDisplayAppTheme { + AppSettingsContent( + state = + AppSettingsScreen.State( + deviceType = TrmnlDeviceType.BYOS, + serverBaseUrl = "https://my-custom-server.com", + accessToken = "byos-access-token-here", + deviceMacId = "AA:BB:CC:DD:EE:FF", + isByodMasterDevice = true, + usesFakeApiData = false, + isLoading = false, + validationResult = null, + nextRefreshJobInfo = null, + savedDeviceModel = null, + eventSink = {}, + ), + ) + } +} From 8e37022683813f08e92706054b029be7538f1298 Mon Sep 17 00:00:00 2001 From: Hossain Khan Date: Sat, 6 Dec 2025 16:32:41 -0500 Subject: [PATCH 2/2] [DISABLED] Device model chooser UI --- .../devicemodel/DeviceModelSelectorScreen.kt | 12 +++++++++ .../android/ui/settings/AppSettingsScreen.kt | 27 ++++++++++++++----- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt b/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt index be02876..45fdc49 100644 --- a/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/devicemodel/DeviceModelSelectorScreen.kt @@ -64,6 +64,18 @@ import kotlinx.parcelize.Parcelize * - Select a device model * - Return the selected model to the previous screen via PopResult * + * ---- + * + * ⚠️ NOTE: Device model choosing is disabled for now as it is not supported yet. + * + * See following references: + * - https://github.com/usetrmnl/trmnl-android/issues/229 + * - https://github.com/usetrmnl/trmnl-android/issues/163 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446953346278625433 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446954432007766140 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446959843507306678 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446959897571889182 + * * @property deviceType The device type this model selection is for (e.g., BYOD, BYOS) */ @Parcelize diff --git a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt index cd9767c..4d1516a 100644 --- a/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt +++ b/app/src/main/java/ink/trmnl/android/ui/settings/AppSettingsScreen.kt @@ -913,6 +913,19 @@ private fun DeviceTypeSelectorConfig( // Control device ID visibility var deviceIdVisible by remember { mutableStateOf(false) } + /** + * Device model choosing is disabled for now as it is not supported yet. + * + * See following references: + * - https://github.com/usetrmnl/trmnl-android/issues/229 + * - https://github.com/usetrmnl/trmnl-android/issues/163 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446953346278625433 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446954432007766140 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446959843507306678 + * - https://discord.com/channels/1281055965508141100/1331360842809348106/1446959897571889182 + */ + val shouldDisableDeviceModel = true + Column(modifier = modifier.fillMaxWidth()) { SingleChoiceSegmentedButtonRow(modifier = Modifier.fillMaxWidth()) { TrmnlDeviceType.entries.forEachIndexed { index, deviceType -> @@ -1047,7 +1060,7 @@ private fun DeviceTypeSelectorConfig( } // Show saved device model if available - if (savedDeviceModel != null) { + if (!shouldDisableDeviceModel && savedDeviceModel != null) { Card( modifier = Modifier @@ -1076,11 +1089,13 @@ private fun DeviceTypeSelectorConfig( } } - OutlinedButton( - onClick = onOverrideDisplayModelPressed, - modifier = Modifier.fillMaxWidth(), - ) { - Text("Override Display Model") + if (!shouldDisableDeviceModel) { + OutlinedButton( + onClick = onOverrideDisplayModelPressed, + modifier = Modifier.fillMaxWidth(), + ) { + Text("Override Display Model") + } } } }