diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index 50373656..d1878a0b 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -102,6 +102,8 @@
Schneidet den aktuellen Datensatz zum angegebenen Zeitpunkt in zwei Teile
Fortsetzen
Wird den aktuellen Datensatz entfernen und diese Aktivität weiter verfolgen
+ Duplikat
+ Erstellt eine Kopie dieses Datensatzes
Verschmelzen
Wird diese Zeit zum vorherigen Rekord hinzufügen
Ändern
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
index 1ff48380..a8fda218 100644
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -102,6 +102,8 @@
Cortará el registro actual en dos en el momento especificado
Continuar
Eliminará el registro actual y seguirá rastreando esta actividad
+ Duplicada
+ Creará una copia de este registro
Unir
Agregará esta vez al registro anterior
Cambio
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
index 97329e1f..a4820a24 100644
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -102,6 +102,8 @@
Coupera l\'enregistrement actuel en deux au moment spécifié
Continuer
Supprime l\'enregistrement actuel et continue de suivre cette activité
+ Dupliquer
+ Créera une copie de cet enregistrement
Fusionner
Ajoutera cette fois à l\'enregistrement précédent
Changement
diff --git a/core/src/main/res/values-hi/strings.xml b/core/src/main/res/values-hi/strings.xml
index 25114232..a69211fd 100644
--- a/core/src/main/res/values-hi/strings.xml
+++ b/core/src/main/res/values-hi/strings.xml
@@ -102,6 +102,8 @@
ये वर्तमान रिकॉर्ड को निर्धारित समय बिंदु पर दो भागो में काट देगा
जारी रखे
वर्तमान रिकॉर्ड को हटा देगा और इस गतिविधि को ट्रैक करना जारी रखेगा
+ डुप्लिकेट
+ इस रिकॉर्ड की एक कॉपी बनाएंगे
जोड़े
इस समय को पिछले रिकॉर्ड में जोड़ देगा
बदलना
diff --git a/core/src/main/res/values-in/strings.xml b/core/src/main/res/values-in/strings.xml
index 71cd99d7..8cf17ada 100644
--- a/core/src/main/res/values-in/strings.xml
+++ b/core/src/main/res/values-in/strings.xml
@@ -102,6 +102,8 @@
Akan memotong rekor saat ini menjadi dua pada titik waktu yang ditentukan
Melanjutkan
Akan menghapus catatan saat ini dan terus melacak aktivitas ini
+ Duplikat
+ Akan membuat salinan rekaman ini
Menggabungkan
Akan menambahkan waktu ini ke rekor sebelumnya
Mengubah
diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml
index 7da239ec..9dd3f787 100644
--- a/core/src/main/res/values-it/strings.xml
+++ b/core/src/main/res/values-it/strings.xml
@@ -102,6 +102,8 @@
Taglia in due il record corrente nel momento specificato
Continua
Rimuoverà il record corrente e continuerà a monitorare questa attività
+ Duplicare
+ Creerà una copia di questo record
Unisci
Aggiungerà questa volta al record precedente
Modificare
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
index 1b1efbd7..f71b6829 100644
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -102,6 +102,8 @@
指定された時点で現在のレコードを 2 つに分割します
継続する
現在の記録を削除し、このアクティビティの追跡を継続します
+ 複製
+ このレコードのコピーを作成します
マージ
現在の記録を前の記録に追加します
変更する
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
index 066ce94d..e92ebb34 100644
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -102,6 +102,8 @@
Zal het huidige record in tweeën knippen op het opgegeven tijdstip
Doorgaan
Verwijdert het huidige record en gaat door met het volgen van deze activiteit
+ Duplicaat
+ Zal een kopie van dit record maken
Samenvoegen
Zal deze tijd toevoegen aan het vorige record
Verandering
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
index 547a1a26..fe673f8b 100644
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -102,6 +102,8 @@
Cortará o registro atual em dois no ponto especificado no tempo
Continuar
Irá remover o registro atual e continuar rastreando esta atividade
+ Duplicada
+ Irá criar uma cópia deste registro
Mesclar
Irá adicionar este tempo ao recorde anterior
Mudar
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
index 1055ef2d..7433ed97 100644
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -102,6 +102,8 @@
Разрежет текущую запись на две в указанный момент времени
Продолжить
Удалит текущую запись и продолжит отслеживать эту активность
+ Дублировать
+ Создаст копию этой записи
Объединить
Добавит это время к предыдущей записи
Изменить
diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml
index 9ef1c89e..868bf68b 100644
--- a/core/src/main/res/values-sv/strings.xml
+++ b/core/src/main/res/values-sv/strings.xml
@@ -102,6 +102,8 @@
Delar upp den nuvarande händelsen i två vid den angivna tidpunkten
Fortsätt
Tar bort sluttid och återaktiverar denna aktivitet
+ Duplicera
+ Kommer att skapa en kopia av denna post
Sammanfoga
Lägger till denna tid till tidigare händelse
Förändra
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
index 89dcf959..604fbba7 100644
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -102,6 +102,8 @@
Geçerli kaydı belirtilen zamanda ikiye böler
Devam et
Geçerli kaydı kaldıracak ve bu etkinliği izlemeye devam edecek
+ Kopyalamak
+ Bu kaydın bir kopyasını oluşturacak
Birleştirmek
Bu sefer önceki rekora eklenecek
Değiştirmek
diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml
index 482f5b11..39290319 100644
--- a/core/src/main/res/values-uk/strings.xml
+++ b/core/src/main/res/values-uk/strings.xml
@@ -102,6 +102,8 @@
Розрізає поточний запис на два у вказаний момент часу
Продовжити
Буде видалено поточний запис і продовжено відстеження цієї діяльності
+ Дублікат
+ Буде створено копію цього запису
Об’єднати
Додасть цей час до попереднього запису
Зміна
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
index d0837141..904c8cf5 100644
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -102,6 +102,8 @@
現有紀錄將會切成兩個指定的時間點
繼續
現有紀錄將會移除與繼續追總此活動
+ 複製
+ 將創建此記錄的副本
合併
將會新增此時間到前一筆紀錄
改變
diff --git a/core/src/main/res/values-zh/strings.xml b/core/src/main/res/values-zh/strings.xml
index ffd2de83..76fbd285 100644
--- a/core/src/main/res/values-zh/strings.xml
+++ b/core/src/main/res/values-zh/strings.xml
@@ -102,6 +102,8 @@
会在指定时间点将当前记录一分为二
继续
将删除当前记录并继续跟踪此活动
+ 复制
+ 将创建此记录的副本
合并
将把这个时间添加到以前的记录中
改变
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 920d6e6f..981ee1f6 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -102,6 +102,8 @@
Will cut current record into two at the specified point in time
Continue
Will remove current record and continue tracking this activity
+ Duplicate
+ Will create a copy of this record
Merge
Will add this time to previous record
Change
diff --git a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordCore.kt b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordCore.kt
index 7e9f04b6..9123fa1d 100644
--- a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordCore.kt
+++ b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordCore.kt
@@ -122,6 +122,7 @@ class ChangeRecordCore(
btnChangeRecordSplit.setOnClick(viewModel::onSplitClick)
btnChangeRecordAdjust.setOnClick(viewModel::onAdjustClick)
btnChangeRecordContinue.setOnClick(viewModel::onContinueClick)
+ btnChangeRecordDuplicate.setOnClick(viewModel::onDuplicateClick)
btnChangeRecordMerge.setOnClick(viewModel::onMergeClick)
}
@@ -218,6 +219,7 @@ class ChangeRecordCore(
btnChangeRecordSplit.isEnabled = isEnabled
btnChangeRecordAdjust.isEnabled = isEnabled
btnChangeRecordContinue.isEnabled = isEnabled
+ btnChangeRecordDuplicate.isEnabled = isEnabled
btnChangeRecordMerge.isEnabled = isEnabled
}
diff --git a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordBaseViewModel.kt b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordBaseViewModel.kt
index b8ce57d0..ae3e14fd 100644
--- a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordBaseViewModel.kt
+++ b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordBaseViewModel.kt
@@ -101,6 +101,7 @@ abstract class ChangeRecordBaseViewModel(
protected abstract fun getChangeCategoryParams(data: ChangeTagData): ChangeRecordTagFromScreen
protected abstract suspend fun onSaveClickDelegate()
protected open suspend fun onContinueClickDelegate() {}
+ protected open suspend fun onDuplicateClickDelegate() {}
protected abstract val mergeAvailable: Boolean
protected abstract val splitPreviewTimeEnded: Long
protected abstract val showTimeEndedOnSplitPreview: Boolean
@@ -219,6 +220,12 @@ abstract class ChangeRecordBaseViewModel(
)
}
+ fun onDuplicateClick() {
+ onRecordChangeButtonClick(
+ onProceed = ::onDuplicateClickDelegate,
+ )
+ }
+
fun onMergeClick() {
onRecordChangeButtonClick(
onProceed = {
diff --git a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt
index 23eab4d3..9eca30ed 100644
--- a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt
+++ b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt
@@ -125,6 +125,19 @@ class ChangeRecordViewModel @Inject constructor(
router.back()
}
+ override suspend fun onDuplicateClickDelegate() {
+ Record(
+ typeId = newTypeId,
+ timeStarted = newTimeStarted,
+ timeEnded = newTimeEnded,
+ comment = newComment,
+ tagIds = newCategoryIds
+ ).let {
+ addRecordMediator.add(it)
+ }
+ onSaveClickDelegate()
+ }
+
override fun getChangeCategoryParams(data: ChangeTagData): ChangeRecordTagFromScreen {
return ChangeRecordTagFromChangeRecordParams(data)
}
diff --git a/features/feature_change_record/src/main/res/layout/change_record_core_layout.xml b/features/feature_change_record/src/main/res/layout/change_record_core_layout.xml
index e9c0c4da..c2a086c9 100644
--- a/features/feature_change_record/src/main/res/layout/change_record_core_layout.xml
+++ b/features/feature_change_record/src/main/res/layout/change_record_core_layout.xml
@@ -544,6 +544,39 @@
+
+
+
+
+
+
+
+
+
+