From 28303b9276fc065d4e1799c1d2363a771d958622 Mon Sep 17 00:00:00 2001
From: MM20 <15646950+MM2-0@users.noreply.github.com>
Date: Sat, 11 Dec 2021 19:05:42 +0100
Subject: [PATCH] Re-add currency converter disclaimer
---
i18n/src/main/res/values-de/strings.xml | 2 +-
i18n/src/main/res/values/strings.xml | 2 +-
.../launcher2/ui/search/UnitConverterItem.kt | 55 +++++++++++++++++--
3 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/i18n/src/main/res/values-de/strings.xml b/i18n/src/main/res/values-de/strings.xml
index 840e4793..165ec4f4 100644
--- a/i18n/src/main/res/values-de/strings.xml
+++ b/i18n/src/main/res/values-de/strings.xml
@@ -378,7 +378,7 @@
Rahmenstärke
Deckkraft
Haftungsausschluss
- Wechselkurse so wie sie einmal täglich von der Europäischen Zentralbank herausgegeben werden. Alle Angaben sind ohne Gewähr. Es wird keine Haftung für die hier dargestellten Informationen übernommen.
+ Wechselkurse so wie sie einmal täglich von der Europäischen Zentralbank herausgegeben werden. Alle Angaben sind ohne Gewähr. Es wird keine Haftung für die hier dargestellten Informationen übernommen.\n\nLetzte Aktualisierung: %1$s
Alle anzeigen
Hintergrund
Standard
diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml
index 03911f30..77f7e27e 100644
--- a/i18n/src/main/res/values/strings.xml
+++ b/i18n/src/main/res/values/strings.xml
@@ -378,7 +378,7 @@
Stroke width
Opacity
Disclaimer
- "Exchange rates as published once per day by the European Central Bank. All information is provided \"as is\" without any kind of guarantee. No liability is assumed for these information."
+ "Exchange rates as published once per day by the European Central Bank. All information is provided \"as is\" without any kind of guarantee. No liability is assumed for these information.\n\nLast update: %1$s"
Show all
Background
Default
diff --git a/ui/src/main/java/de/mm20/launcher2/ui/search/UnitConverterItem.kt b/ui/src/main/java/de/mm20/launcher2/ui/search/UnitConverterItem.kt
index 2275f7f9..16afb610 100644
--- a/ui/src/main/java/de/mm20/launcher2/ui/search/UnitConverterItem.kt
+++ b/ui/src/main/java/de/mm20/launcher2/ui/search/UnitConverterItem.kt
@@ -1,5 +1,7 @@
package de.mm20.launcher2.ui.search
+import android.icu.text.DateFormat
+import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
@@ -14,9 +16,12 @@ import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
+import androidx.compose.ui.window.Dialog
+import de.mm20.launcher2.search.data.CurrencyUnitConverter
import de.mm20.launcher2.search.data.UnitConverter
import de.mm20.launcher2.ui.R
import de.mm20.launcher2.unitconverter.Dimension
+import java.util.*
@Composable
fun UnitConverterItem(
@@ -89,14 +94,52 @@ fun UnitConverterItem(
}
}
- if (!showAll && unitConverter.values.size > 5) {
- TextButton(
- onClick = { showAll = true },
+ Row(
+ horizontalArrangement = Arrangement.End,
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ Row(
modifier = Modifier
- .align(Alignment.End)
- .padding(horizontal = 12.dp)
+ .weight(1f)
+ .padding(horizontal = 16.dp, vertical = 8.dp)
) {
- Text(text = stringResource(id = R.string.unit_converter_show_all))
+ var showDisclaimer by remember { mutableStateOf(false) }
+ (unitConverter as? CurrencyUnitConverter)?.let {
+ val df = DateFormat.getDateInstance(DateFormat.SHORT)
+ Text(
+ text = "${df.format(Date(it.updateTimestamp))} • ",
+ style = MaterialTheme.typography.labelSmall,
+ )
+ Text(
+ text = stringResource(id = R.string.disclaimer),
+ style = MaterialTheme.typography.labelSmall,
+ color = MaterialTheme.colorScheme.primary,
+ modifier = Modifier.clickable {
+ showDisclaimer = true
+ }
+ )
+ if (showDisclaimer) {
+ AlertDialog(
+ onDismissRequest = { showDisclaimer = false },
+ confirmButton = {
+ TextButton(onClick = { showDisclaimer = false }) {
+ Text(text = stringResource(id = R.string.close))
+ }
+ },
+ title = { Text(stringResource(id = R.string.disclaimer)) },
+ text = { Text(stringResource(id = R.string.disclaimer_currency_converter, df.format(Date(it.updateTimestamp)))) }
+ )
+ }
+ }
+ }
+ if (!showAll && unitConverter.values.size > 5) {
+ TextButton(
+ onClick = { showAll = true },
+ modifier = Modifier
+ .padding(horizontal = 12.dp)
+ ) {
+ Text(text = stringResource(id = R.string.unit_converter_show_all))
+ }
}
}
}