From 3d611dbcff92c7cf32d30fde67c9ac94eb5c8405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Mon, 21 Mar 2022 15:45:27 +0100 Subject: [PATCH] Modify DFU button --- .../android/nrftoolbox/view/FeatureButton.kt | 27 ++++++++++++++----- .../android/nrftoolbox/view/HomeView.kt | 13 +++++++-- app/src/main/res/values/strings.xml | 3 ++- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/FeatureButton.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/FeatureButton.kt index 0dfdbd22..278d1159 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/FeatureButton.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/FeatureButton.kt @@ -29,6 +29,7 @@ fun FeatureButton( @StringRes nameCode: Int, @StringRes name: Int, isRunning: Boolean? = null, + @StringRes description: Int? = null, onClick: () -> Unit ) { ScreenSection(onClick = onClick) { @@ -57,12 +58,26 @@ fun FeatureButton( Spacer(modifier = Modifier.size(16.dp)) - Text( - text = stringResource(id = name), - style = MaterialTheme.typography.bodyLarge, - modifier = Modifier.weight(1f), - textAlign = TextAlign.Center - ) + Column(modifier = Modifier.weight(1f)) { + Text( + modifier = Modifier.fillMaxWidth(), + text = stringResource(id = name), + style = MaterialTheme.typography.bodyLarge, + textAlign = TextAlign.Center + ) + + description?.let { + Spacer(modifier = Modifier.size(4.dp)) + + Text( + modifier = Modifier.fillMaxWidth(), + text = stringResource(id = it), + style = MaterialTheme.typography.labelMedium, + textAlign = TextAlign.Center, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + } } } } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt index dd238d0b..151800dc 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt @@ -8,6 +8,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -19,6 +20,7 @@ import no.nordicsemi.android.nrftoolbox.R import no.nordicsemi.android.nrftoolbox.viewmodel.HomeViewModel import no.nordicsemi.android.theme.view.TitleAppBar +private const val DFU_PACKAGE_NAME = "no.nordicsemi.android.dfu" private const val DFU_LINK = "https://play.google.com/store/apps/details?id=no.nordicsemi.android.dfu" @Composable @@ -120,8 +122,15 @@ fun HomeScreen() { Spacer(modifier = Modifier.height(16.dp)) val uriHandler = LocalUriHandler.current - FeatureButton(R.drawable.ic_dfu, R.string.dfu_module, R.string.dfu_module_full) { - uriHandler.openUri(DFU_LINK) + val context = LocalContext.current + val packageManger = context.packageManager + FeatureButton(R.drawable.ic_dfu, R.string.dfu_module, R.string.dfu_module_full, null, R.string.dfu_module_info) { + val intent = packageManger.getLaunchIntentForPackage(DFU_PACKAGE_NAME) + if (intent != null) { + context.startActivity(intent) + } else { + uriHandler.openUri(DFU_LINK) + } } Spacer(modifier = Modifier.height(16.dp)) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b531a5a2..ddfb0591 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,7 +18,8 @@ UART Serial port over BLE DFU - Available in separate application. + Device Firmware Update + Available in separate application. ViewModel profiles Service profiles