diff --git a/mobile/src/main/java/ru/omni_devel/cards/BackupActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/BackupActivity.kt
index 957f109..3edeae7 100644
--- a/mobile/src/main/java/ru/omni_devel/cards/BackupActivity.kt
+++ b/mobile/src/main/java/ru/omni_devel/cards/BackupActivity.kt
@@ -11,7 +11,6 @@ import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
@@ -134,7 +133,6 @@ fun BackupPage(innerPadding: PaddingValues, getDbFun: () -> DbHelper) {
Page(stringResource(R.string.backup), innerPadding) {
AdaptiveButton(
- modifier = Modifier.fillMaxWidth(),
onClick = {
createBackupLauncher.launch("omnicards-backup.json")
}
@@ -142,7 +140,6 @@ fun BackupPage(innerPadding: PaddingValues, getDbFun: () -> DbHelper) {
Text(stringResource(R.string.do_backup))
}
AdaptiveButton(
- modifier = Modifier.fillMaxWidth(),
onClick = {
restoreFromBackupLauncher.launch("application/json")
}
diff --git a/mobile/src/main/java/ru/omni_devel/cards/FillTemplateActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/FillTemplateActivity.kt
index 9d8278a..1b178f8 100644
--- a/mobile/src/main/java/ru/omni_devel/cards/FillTemplateActivity.kt
+++ b/mobile/src/main/java/ru/omni_devel/cards/FillTemplateActivity.kt
@@ -88,7 +88,7 @@ fun FillTemplatePage(template: Template, innerPadding: PaddingValues) {
}
},
modifier = fieldModifier,
- label = { Text((if (field.maybeEmpty) "" else "* ") + field.name) }
+ label = { Text((if (field.maybeEmpty) "" else "*") + field.name) }
)
}
diff --git a/mobile/src/main/java/ru/omni_devel/cards/MainActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/MainActivity.kt
index eb69469..96c9ef2 100644
--- a/mobile/src/main/java/ru/omni_devel/cards/MainActivity.kt
+++ b/mobile/src/main/java/ru/omni_devel/cards/MainActivity.kt
@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Scaffold
@@ -99,17 +100,20 @@ fun MainPage(
},
)
) {
- Column(
- modifier = Modifier.verticalScroll(rememberScrollState()).padding(bottom = 64.dp).background(Color.Transparent),
+ LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
if (cards.isEmpty()) {
- Text(
- stringResource(R.string.add_card_to_get_started)
- )
+ item {
+ Text(
+ stringResource(R.string.add_card_to_get_started)
+ )
+ }
} else {
for (card in cards) {
- CardButton(card, onDeleteCard)
+ item {
+ CardButton(card, onDeleteCard)
+ }
}
}
}
diff --git a/mobile/src/main/java/ru/omni_devel/cards/SelectTemplateActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/SelectTemplateActivity.kt
index f2e4925..529dce7 100644
--- a/mobile/src/main/java/ru/omni_devel/cards/SelectTemplateActivity.kt
+++ b/mobile/src/main/java/ru/omni_devel/cards/SelectTemplateActivity.kt
@@ -10,11 +10,13 @@ import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Button
@@ -96,30 +98,45 @@ fun SelectTemplatePage(innerPadding: PaddingValues) {
stringResource(R.string.choosing_template),
innerPadding
) {
- Column(
- modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()),
+ LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally
) {
if (loadingError != null) {
- Text(loadingError!!)
+ item {
+ Text(loadingError!!)
+ }
} else if (templates == null) {
- CircularProgressIndicator(
- modifier = Modifier.size(48.dp),
- color = MaterialTheme.colorScheme.primary
- )
- } else {
- for (template in templates) {
- AdaptiveButton(
+ item {
+ Column(
modifier = Modifier.fillMaxWidth(),
- onClick = {
- val intent = Intent(context, FillTemplateActivity::class.java)
-
- intent.putExtra("templateJson", Json.encodeToString(template))
-
- fillTemplateLauncher.launch(intent)
- }
+ horizontalAlignment = Alignment.CenterHorizontally
) {
- Text(template.name)
+ CircularProgressIndicator(
+ modifier = Modifier.size(48.dp),
+ color = MaterialTheme.colorScheme.primary
+ )
+ }
+ }
+ } else if (templates!!.isEmpty()) {
+ item {
+ Text(stringResource(R.string.templates_not_found))
+ }
+ } else {
+ for (template in templates) {
+ item {
+ AdaptiveButton(
+ modifier = Modifier.fillMaxWidth(),
+ onClick = {
+ val intent = Intent(context, FillTemplateActivity::class.java)
+
+ intent.putExtra("templateJson", Json.encodeToString(template))
+
+ fillTemplateLauncher.launch(intent)
+ }
+ ) {
+ Text(template.name)
+ }
+ }
}
}
}
diff --git a/mobile/src/main/res/values-ru/strings.xml b/mobile/src/main/res/values-ru/strings.xml
index 149a4fb..c204dbf 100644
--- a/mobile/src/main/res/values-ru/strings.xml
+++ b/mobile/src/main/res/values-ru/strings.xml
@@ -38,6 +38,7 @@
Выбор цвета
Выбор шаблона
Ошибка в данных. Пожалуйста, заполните все необходимые (*) поля
+ Шаблоны не найдены
Имя карты не должно быть пустым
Значение карты не должно быть пустым
Имя карты должно быть короче 32 символов
diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml
index c5ae562..77254b8 100644
--- a/mobile/src/main/res/values/strings.xml
+++ b/mobile/src/main/res/values/strings.xml
@@ -43,6 +43,7 @@
Choosing color
Choosing template
Error in data. Please, fill all required (*) fields
+ Templates not found
Card name must not be empty
Card value must not be empty
Card name must be shorter than 32 characters