diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 1a28ecb..319085e 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -23,8 +23,8 @@ android {
applicationId = "fr.benju.tasks"
minSdk = 26
targetSdk = 36
- versionCode = 1
- versionName = "1.0.0"
+ versionCode = 2
+ versionName = "1.0.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
diff --git a/feature/settings/src/main/java/fr/benju/tasks/feature/settings/SettingsScreen.kt b/feature/settings/src/main/java/fr/benju/tasks/feature/settings/SettingsScreen.kt
index aae1f4b..3af4e43 100644
--- a/feature/settings/src/main/java/fr/benju/tasks/feature/settings/SettingsScreen.kt
+++ b/feature/settings/src/main/java/fr/benju/tasks/feature/settings/SettingsScreen.kt
@@ -2,6 +2,9 @@
package fr.benju.tasks.feature.settings
+import android.content.Intent
+import android.net.Uri
+import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -22,6 +25,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
@@ -34,6 +38,7 @@ fun SettingsScreen(
onBack: () -> Unit = {}
) {
val isDarkMode by viewModel.darkModeFlow.collectAsStateWithLifecycle()
+ val context = LocalContext.current
Scaffold(
topBar = {
@@ -77,10 +82,91 @@ fun SettingsScreen(
)
Text(
- text = stringResource(R.string.settings_version),
- style = MaterialTheme.typography.bodySmall,
- color = MaterialTheme.colorScheme.onSurfaceVariant
+ text = stringResource(R.string.settings_about),
+ style = MaterialTheme.typography.titleMedium,
+ modifier = Modifier.padding(bottom = 8.dp)
)
+
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .clickable {
+ val intent = Intent(Intent.ACTION_SENDTO).apply {
+ data = Uri.parse("mailto:begonin@gmail.com")
+ }
+ runCatching { context.startActivity(intent) }
+ }
+ .padding(vertical = 12.dp),
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ Text(
+ text = stringResource(R.string.settings_contact_support),
+ style = MaterialTheme.typography.bodyMedium
+ )
+ }
+
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .clickable {
+ val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://benju.fr/support.html"))
+ runCatching { context.startActivity(intent) }
+ }
+ .padding(vertical = 12.dp),
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ Text(
+ text = stringResource(R.string.settings_support_me),
+ style = MaterialTheme.typography.bodyMedium
+ )
+ }
+
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .clickable {
+ val intent = Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("market://details?id=${context.packageName}")
+ ).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_NEW_DOCUMENT or Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
+ }
+ val fallback = Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("https://play.google.com/store/apps/details?id=${context.packageName}")
+ )
+ runCatching { context.startActivity(intent) }
+ .onFailure { runCatching { context.startActivity(fallback) } }
+ }
+ .padding(vertical = 12.dp),
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ Text(
+ text = stringResource(R.string.settings_rate_app),
+ style = MaterialTheme.typography.bodyMedium
+ )
+ }
+
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(vertical = 12.dp),
+ horizontalArrangement = Arrangement.SpaceBetween,
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ Text(
+ text = stringResource(R.string.settings_version),
+ style = MaterialTheme.typography.bodyMedium
+ )
+ val versionName = runCatching {
+ context.packageManager.getPackageInfo(context.packageName, 0).versionName.orEmpty()
+ }.getOrDefault("")
+ Text(
+ text = versionName,
+ style = MaterialTheme.typography.bodyMedium,
+ color = MaterialTheme.colorScheme.onSurfaceVariant
+ )
+ }
}
}
}
diff --git a/feature/settings/src/main/res/values-de/strings.xml b/feature/settings/src/main/res/values-de/strings.xml
index f06be5e..4ea9b0a 100644
--- a/feature/settings/src/main/res/values-de/strings.xml
+++ b/feature/settings/src/main/res/values-de/strings.xml
@@ -2,7 +2,11 @@
Einstellungen
Dunkelmodus
- Version 1.0.0
+ Über
+ Support kontaktieren
+ Unterstütze mich
+ App bewerten
+ Version
Zurück
diff --git a/feature/settings/src/main/res/values-es/strings.xml b/feature/settings/src/main/res/values-es/strings.xml
index 4ea8125..1ec7ffd 100644
--- a/feature/settings/src/main/res/values-es/strings.xml
+++ b/feature/settings/src/main/res/values-es/strings.xml
@@ -2,7 +2,11 @@
Ajustes
Modo oscuro
- Versión 1.0.0
+ Acerca de
+ Contactar soporte
+ Apóyame
+ Valorar la aplicación
+ Versión
Atrás
diff --git a/feature/settings/src/main/res/values-fr/strings.xml b/feature/settings/src/main/res/values-fr/strings.xml
index af24c3f..836346d 100644
--- a/feature/settings/src/main/res/values-fr/strings.xml
+++ b/feature/settings/src/main/res/values-fr/strings.xml
@@ -2,7 +2,11 @@
Paramètres
Mode sombre
- Version 1.0.0
+ À propos
+ Contacter le support
+ Me soutenir
+ Noter l\'application
+ Version
Retour
diff --git a/feature/settings/src/main/res/values-it/strings.xml b/feature/settings/src/main/res/values-it/strings.xml
index aca6372..f38dbd5 100644
--- a/feature/settings/src/main/res/values-it/strings.xml
+++ b/feature/settings/src/main/res/values-it/strings.xml
@@ -2,7 +2,11 @@
Impostazioni
Modalità scura
- Versione 1.0.0
+ Informazioni
+ Contatta supporto
+ Supportami
+ Valuta l\'app
+ Versione
Indietro
diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml
index cb79452..ea284cc 100644
--- a/feature/settings/src/main/res/values/strings.xml
+++ b/feature/settings/src/main/res/values/strings.xml
@@ -3,7 +3,13 @@
Settings
Dark Mode
- Version 1.0.0
+
+
+ About
+ Contact Support
+ Support me
+ Rate the app
+ Version
Back