diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
index d23533d22..a7bfbaab1 100644
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/SettingsTest.kt
@@ -1508,7 +1508,7 @@ class SettingsTest : BaseUiTest() {
@Test
fun csvExportSettings() {
NavUtils.openSettingsScreen()
- NavUtils.openSettingsBackup()
+ NavUtils.openSettingsExportImport()
onView(withId(settingsR.id.layoutSettingsExportCsv)).perform(nestedScrollTo(), click())
// View is set up
diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
index 487f010ed..19300e6ed 100644
--- a/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
+++ b/app/src/androidTest/java/com/example/util/simpletimetracker/utils/NavUtils.kt
@@ -69,6 +69,10 @@ object NavUtils {
onView(withText(coreR.string.settings_backup_title)).perform(nestedScrollTo(), click())
}
+ fun openSettingsExportImport() {
+ onView(withText(coreR.string.settings_export_title)).perform(nestedScrollTo(), click())
+ }
+
fun openCategoriesScreen() {
onView(withText(coreR.string.settings_edit_categories)).perform(nestedScrollTo(), click())
}
diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml
index e143f2022..5b33054ae 100644
--- a/core/src/main/res/values-ar/strings.xml
+++ b/core/src/main/res/values-ar/strings.xml
@@ -198,6 +198,7 @@
إعدادات إضافية
إعدادات الإشعار
إعدادات النسخ الاحتياطي
+ التصدير والاستيراد
فرز الأنشطة
الاسم
اللون
diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml
index 291bf9979..df29f9847 100644
--- a/core/src/main/res/values-ca/strings.xml
+++ b/core/src/main/res/values-ca/strings.xml
@@ -198,6 +198,7 @@
Configuració addicional
Configuració de notificacions
Configuració de còpia de seguretat
+ Exportació i importació
Endreçar activitats
Nom
Color
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index e3b7dd1bf..57d60e176 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -198,6 +198,7 @@
Zusätzliche Einstellungen
Benachrichtigungseinstellungen
Backup-Einstellungen
+ Export und Import
Aktivitäten sortieren
Name
Farbe
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
index e89b996d1..1e26263d7 100644
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -198,6 +198,7 @@
Ajustes adicionales
Configuración de las notificaciones
Configuración de copia de seguridad
+ Exportar e importar
Ordenar actividades
Nombre
Color
diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml
index 9755edd7c..4ed61aa2a 100644
--- a/core/src/main/res/values-fa/strings.xml
+++ b/core/src/main/res/values-fa/strings.xml
@@ -198,6 +198,7 @@
تنظیمت اضافه
تنظیمات اعلان
تنظیمات پشتیبان گیری
+ صادرات و واردات
مرتب سازی فعالیت ها
نام
رنگ
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
index 6e52b21be..c12009233 100644
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -198,6 +198,7 @@
Paramètres additionnels
Paramètres de notification
Paramètres de sauvegarde
+ Exporter et importer
Trier les activités
Par nom
Par couleur
diff --git a/core/src/main/res/values-hi/strings.xml b/core/src/main/res/values-hi/strings.xml
index 304914914..85eb93004 100644
--- a/core/src/main/res/values-hi/strings.xml
+++ b/core/src/main/res/values-hi/strings.xml
@@ -198,6 +198,7 @@
अतिरिक्त सेटिंग्स
अधिसूचना सेटिंग्स
बैकअप सेटिंग्स
+ निर्यात और आयात
क्रमबद्ध गतिविधियाँ
नाम
रंग
diff --git a/core/src/main/res/values-in/strings.xml b/core/src/main/res/values-in/strings.xml
index bbbce68e4..accbb148f 100644
--- a/core/src/main/res/values-in/strings.xml
+++ b/core/src/main/res/values-in/strings.xml
@@ -198,6 +198,7 @@
Pengaturan tambahan
Pengaturan pemberitahuan
Pengaturan cadangan
+ Ekspor dan impor
Urutkan kegiatan
Nama
Warna
diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml
index ac26c186b..dd73e6775 100644
--- a/core/src/main/res/values-it/strings.xml
+++ b/core/src/main/res/values-it/strings.xml
@@ -198,6 +198,7 @@
Altre impostazioni
Impostazioni di notifica
Impostazioni di backup
+ Esportare e importare
Ordina attività
Nome
Colore
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
index b2c3f2492..c7490a9f5 100644
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -198,6 +198,7 @@
追加設定
通知設定
バックアップ設定
+ エクスポートとインポート
アクティビティをソート
名前
色
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
index 2e0a26711..7b11a790e 100644
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -198,6 +198,7 @@
Extra instellingen
Notificatie instellingen
Back-up instellingen
+ Export en import
Activiteiten sorteren
Naam
Kleur
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
index ae94fa1f4..ee903ded3 100644
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -198,6 +198,7 @@
Configurações adicionais
Configurações de notificação
Configurações de backup
+ Exportar e importar
Ordenar atividades
Nome
Cor
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
index 1aa3f4a35..453b86c03 100644
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -198,6 +198,7 @@
Дополнительные настройки
Настройки уведомлений
Настройки резервного копирования
+ Экспорт и импорт
Сортировать активности
Имя
Цвет
diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml
index 712e74f6a..62b06e015 100644
--- a/core/src/main/res/values-sv/strings.xml
+++ b/core/src/main/res/values-sv/strings.xml
@@ -198,6 +198,7 @@
Ytterligare inställningar
Aviseringsinställningar
Säkerhetskopieringsinställningar
+ Exportera och importera
Sortera aktiviteter efter
Namn
Färg
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
index c72bc377a..23524dc80 100644
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -198,6 +198,7 @@
Ek ayarlar
Bildirim ayarları
Yedekleme ayarları
+ Ihracat ve ithalat
Aktiviteleri sırala
İsim
Renk
diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml
index ff852e2e6..98f1ebca2 100644
--- a/core/src/main/res/values-uk/strings.xml
+++ b/core/src/main/res/values-uk/strings.xml
@@ -198,6 +198,7 @@
Додаткові налаштування
Налаштування сповіщень
Налаштування резервного копіювання
+ Експорт та імпорт
Сортувати активності
Ім\'я
Колір
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
index b07936459..efeb5e44f 100644
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -198,6 +198,7 @@
附加設定
通知設置
備份設置
+ 導出和導入
排序活動
名稱
顏色
diff --git a/core/src/main/res/values-zh/strings.xml b/core/src/main/res/values-zh/strings.xml
index 6ff62ec01..d368910e9 100644
--- a/core/src/main/res/values-zh/strings.xml
+++ b/core/src/main/res/values-zh/strings.xml
@@ -198,6 +198,7 @@
其他设置
通知设置
备份设置
+ 导出和导入
活动排序
名称
颜色
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index a846bf0d9..ad6bbd855 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -198,6 +198,7 @@
Additional settings
Notification settings
Backup settings
+ Export and import
Sort activities
Name
Color
diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt
index 1db41c0d4..fdc91000e 100644
--- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt
+++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt
@@ -152,11 +152,15 @@ class SettingsFragment :
layoutSettingsBackupTitle.setOnClick(viewModel::onSettingsBackupClick)
layoutSettingsSaveBackup.setOnClick(backupViewModel::onSaveClick)
layoutSettingsRestoreBackup.setOnClick(backupViewModel::onRestoreClick)
+ checkboxSettingsAutomaticBackup.setOnClick(backupViewModel::onAutomaticBackupClick)
+ }
+
+ with(layoutSettingsExportImport) {
+ layoutSettingsExportImportTitle.setOnClick(viewModel::onSettingsExportImportClick)
layoutSettingsExportCsv.setOnClick(backupViewModel::onExportCsvClick)
layoutSettingsImportCsv.setOnClick(backupViewModel::onImportCsvClick)
btnSettingsImportCsvHelp.setOnClick(backupViewModel::onImportCsvHelpClick)
layoutSettingsExportIcs.setOnClick(backupViewModel::onExportIcsClick)
- checkboxSettingsAutomaticBackup.setOnClick(backupViewModel::onAutomaticBackupClick)
checkboxSettingsAutomaticExport.setOnClick(backupViewModel::onAutomaticExportClick)
}
}
@@ -183,6 +187,11 @@ class SettingsFragment :
layoutSettingsBackup.arrowSettingsBackup
.apply { if (opened) rotateDown() else rotateUp() }
}
+ viewModel.settingsExportImportVisibility.observe { opened ->
+ layoutSettingsExportImport.layoutSettingsExportImportContent.visible = opened
+ layoutSettingsExportImport.arrowSettingsExportImport
+ .apply { if (opened) rotateDown() else rotateUp() }
+ }
resetScreen.observe {
containerSettings.smoothScrollTo(0, 0)
mainTabsViewModel.onHandled()
@@ -268,6 +277,8 @@ class SettingsFragment :
tvSettingsAutomaticBackupLastSaveTime.visible = it.isNotEmpty()
tvSettingsAutomaticBackupLastSaveTime.text = it
}
+ }
+ with(layoutSettingsExportImport) {
automaticExportCheckbox.observe(checkboxSettingsAutomaticExport::setChecked)
automaticExportLastSaveTime.observe {
tvSettingsAutomaticExportLastSaveTime.visible = it.isNotEmpty()
@@ -321,6 +332,8 @@ class SettingsFragment :
}
with(layoutSettingsBackup) {
checkboxSettingsAutomaticBackup.jumpDrawablesToCurrentState()
+ }
+ with(layoutSettingsExportImport) {
checkboxSettingsAutomaticExport.jumpDrawablesToCurrentState()
}
viewModel.onVisible()
diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
index 98d51d404..1f3767d19 100644
--- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
+++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt
@@ -40,6 +40,7 @@ class SettingsViewModel @Inject constructor(
val settingsDisplayVisibility: LiveData = MutableLiveData(false)
val settingsAdditionalVisibility: LiveData = MutableLiveData(false)
val settingsBackupVisibility: LiveData = MutableLiveData(false)
+ val settingsExportImportVisibility: LiveData = MutableLiveData(false)
val resetScreen: SingleLiveEvent = SingleLiveEvent()
init {
@@ -89,6 +90,11 @@ class SettingsViewModel @Inject constructor(
settingsBackupVisibility.set(newValue)
}
+ fun onSettingsExportImportClick() {
+ val newValue = settingsExportImportVisibility.value?.flip().orFalse()
+ settingsExportImportVisibility.set(newValue)
+ }
+
fun onDurationSet(tag: String?, duration: Long) {
when (tag) {
INACTIVITY_DURATION_DIALOG_TAG,
diff --git a/features/feature_settings/src/main/res/layout/settings_backup_layout.xml b/features/feature_settings/src/main/res/layout/settings_backup_layout.xml
index ea3f6529b..4a578a747 100644
--- a/features/feature_settings/src/main/res/layout/settings_backup_layout.xml
+++ b/features/feature_settings/src/main/res/layout/settings_backup_layout.xml
@@ -165,198 +165,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/features/feature_settings/src/main/res/layout/settings_export_import_layout.xml b/features/feature_settings/src/main/res/layout/settings_export_import_layout.xml
new file mode 100644
index 000000000..9882f60d7
--- /dev/null
+++ b/features/feature_settings/src/main/res/layout/settings_export_import_layout.xml
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/features/feature_settings/src/main/res/layout/settings_fragment.xml b/features/feature_settings/src/main/res/layout/settings_fragment.xml
index 63d6f7ee8..d91f9906d 100644
--- a/features/feature_settings/src/main/res/layout/settings_fragment.xml
+++ b/features/feature_settings/src/main/res/layout/settings_fragment.xml
@@ -35,6 +35,10 @@
android:id="@+id/layoutSettingsBackup"
layout="@layout/settings_backup_layout" />
+
+