From d467dd643c9f202f60b87e93fd0b38dce6842e10 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Tue, 7 Apr 2026 03:55:31 -0500 Subject: [PATCH] Move core sources from jvmMain to commonMain for KMP migration --- .../isoron/uhabits/database/AutoBackupTest.kt | 2 +- .../habits/list/ListHabitsScreen.kt | 6 ++- .../habits/show/ShowHabitActivity.kt | 7 ++-- .../org/isoron/uhabits/database/AutoBackup.kt | 2 +- .../isoron/uhabits/intents/IntentScheduler.kt | 2 +- .../uhabits/receivers/ReminderController.kt | 2 +- .../org/isoron/uhabits/utils/DatabaseUtils.kt | 2 +- .../isoron/uhabits/utils/DateExtensions.kt | 2 +- .../isoron/uhabits/widgets/WidgetUpdater.kt | 2 +- .../kotlin/org/isoron/platform/time/Dates.kt | 2 + .../org/isoron/uhabits/core/AppScope.kt | 0 .../org/isoron/uhabits/core/Constants.kt | 0 .../core/commands/ArchiveHabitsCommand.kt | 0 .../core/commands/ChangeHabitColorCommand.kt | 0 .../isoron/uhabits/core/commands/Command.kt | 0 .../uhabits/core/commands/CommandRunner.kt | 0 .../core/commands/CreateHabitCommand.kt | 0 .../core/commands/CreateRepetitionCommand.kt | 0 .../core/commands/DeleteHabitsCommand.kt | 0 .../uhabits/core/commands/EditHabitCommand.kt | 0 .../core/commands/UnarchiveHabitsCommand.kt | 0 .../uhabits/core/io/AbstractImporter.kt | 0 .../isoron/uhabits/core/io/GenericImporter.kt | 0 .../uhabits/core/io/HabitBullCSVImporter.kt | 0 .../uhabits/core/io/HabitsCSVExporter.kt | 0 .../org/isoron/uhabits/core/io/Logging.kt | 0 .../isoron/uhabits/core/io/LoopDBImporter.kt | 0 .../uhabits/core/io/RewireDBImporter.kt | 0 .../uhabits/core/io/TickmateDBImporter.kt | 0 .../org/isoron/uhabits/core/models/Entry.kt | 0 .../isoron/uhabits/core/models/EntryList.kt | 0 .../isoron/uhabits/core/models/Frequency.kt | 0 .../org/isoron/uhabits/core/models/Habit.kt | 0 .../isoron/uhabits/core/models/HabitList.kt | 0 .../uhabits/core/models/HabitMatcher.kt | 0 .../core/models/HabitNotFoundException.kt | 0 .../isoron/uhabits/core/models/HabitType.kt | 0 .../uhabits/core/models/ModelFactory.kt | 0 .../uhabits/core/models/ModelObservable.kt | 0 .../uhabits/core/models/NumericalHabitType.kt | 0 .../uhabits/core/models/PaletteColor.kt | 0 .../isoron/uhabits/core/models/Reminder.kt | 0 .../org/isoron/uhabits/core/models/Score.kt | 0 .../isoron/uhabits/core/models/ScoreList.kt | 0 .../org/isoron/uhabits/core/models/Streak.kt | 0 .../isoron/uhabits/core/models/StreakList.kt | 0 .../isoron/uhabits/core/models/WeekdayList.kt | 0 .../core/models/memory/MemoryHabitList.kt | 0 .../core/models/memory/MemoryModelFactory.kt | 0 .../core/models/sqlite/SQLModelFactory.kt | 0 .../core/models/sqlite/SQLiteEntryList.kt | 0 .../core/models/sqlite/SQLiteHabitList.kt | 0 .../uhabits/core/preferences/MemoryStorage.kt | 0 .../uhabits/core/preferences/Preferences.kt | 0 .../core/preferences/WidgetPreferences.kt | 5 ++- .../uhabits/core/tasks/ExportCSVListener.kt} | 16 +------- .../core/tasks/SingleThreadTaskRunner.kt | 0 .../org/isoron/uhabits/core/tasks/Task.kt | 0 .../isoron/uhabits/core/tasks/TaskRunner.kt | 0 .../isoron/uhabits/core/test/HabitFixtures.kt | 0 .../uhabits/core/ui/NotificationTray.kt | 0 .../isoron/uhabits/core/ui/ThemeSwitcher.kt | 0 .../core/ui/callbacks/DialogCallbacks.kt} | 37 ++++++++----------- .../ui/callbacks/OnColorPickedCallback.kt | 0 .../core/ui/callbacks/OnConfirmedCallback.kt | 0 .../core/ui/callbacks/OnFinishedCallback.kt | 0 .../ui/callbacks/OnToggleCheckmarkListener.kt | 0 .../screens/habits/list/HabitCardListCache.kt | 0 .../core/ui/screens/habits/list/HintList.kt | 0 .../ui/screens/habits/list/HintListFactory.kt | 0 .../habits/list/ListHabitsMenuBehavior.kt | 0 .../list/ListHabitsSelectionMenuBehavior.kt | 0 .../core/ui/screens/habits/show/ShowHabit.kt | 0 .../ui/screens/habits/show/views/BarCard.kt | 0 .../habits/show/views/FrequencyCard.kt | 0 .../screens/habits/show/views/HistoryCard.kt | 7 ++-- .../ui/screens/habits/show/views/NotesCard.kt | 0 .../screens/habits/show/views/OverviewCard.kt | 0 .../ui/screens/habits/show/views/ScoreCard.kt | 0 .../screens/habits/show/views/StreakCart.kt | 0 .../screens/habits/show/views/SubtitleCard.kt | 0 .../screens/habits/show/views/TargetCard.kt | 0 .../isoron/uhabits/core/ui/views/BarChart.kt | 0 .../uhabits/core/ui/views/CheckmarkButton.kt | 0 .../uhabits/core/ui/views/HabitListHeader.kt | 0 .../uhabits/core/ui/views/HistoryChart.kt | 0 .../uhabits/core/ui/views/NumberButton.kt | 0 .../org/isoron/uhabits/core/ui/views/Ring.kt | 0 .../isoron/uhabits/core/ui/views/Themes.kt | 0 .../uhabits/core/ui/widgets/WidgetBehavior.kt | 0 .../uhabits/core/utils/FileExtensions.kt | 0 .../org/isoron/platform/time/DateFormats.kt | 23 ++++++++++++ .../core/utils => platform/time}/DateUtils.kt | 20 +--------- .../org/isoron/platform/time/JavaDates.kt | 2 +- .../core/reminders/ReminderScheduler.kt | 2 +- .../uhabits/core/tasks/ExportCSVTask.kt | 6 +-- .../screens/habits/list/ListHabitsBehavior.kt | 18 +-------- .../uhabits/core/utils/MidnightTimer.kt | 1 + .../core/reminders/ReminderSchedulerTest.kt | 8 ++-- .../habits/list/ListHabitsBehaviorTest.kt | 3 +- .../uhabits/core/utils/DateUtilsTest.kt | 1 + .../uhabits/core/utils/MidnightTimerTest.kt | 1 + 102 files changed, 79 insertions(+), 100 deletions(-) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/AppScope.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/Constants.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/ArchiveHabitsCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/ChangeHabitColorCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/Command.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/CommandRunner.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/CreateHabitCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/CreateRepetitionCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/DeleteHabitsCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/EditHabitCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/commands/UnarchiveHabitsCommand.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/AbstractImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/GenericImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/HabitBullCSVImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/HabitsCSVExporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/Logging.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/LoopDBImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/RewireDBImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/io/TickmateDBImporter.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Entry.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/EntryList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Frequency.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Habit.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/HabitList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/HabitMatcher.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/HabitNotFoundException.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/HabitType.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/ModelFactory.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/ModelObservable.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/NumericalHabitType.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/PaletteColor.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Reminder.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Score.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/ScoreList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/Streak.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/StreakList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/WeekdayList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/memory/MemoryHabitList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/memory/MemoryModelFactory.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/sqlite/SQLModelFactory.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/sqlite/SQLiteEntryList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/preferences/MemoryStorage.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/preferences/Preferences.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/preferences/WidgetPreferences.kt (94%) rename uhabits-core/src/{jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTaskFactory.kt => commonMain/kotlin/org/isoron/uhabits/core/tasks/ExportCSVListener.kt} (67%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/tasks/SingleThreadTaskRunner.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/tasks/Task.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/tasks/TaskRunner.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/test/HabitFixtures.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/NotificationTray.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/ThemeSwitcher.kt (100%) rename uhabits-core/src/{jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt => commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/DialogCallbacks.kt} (58%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/callbacks/OnColorPickedCallback.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/callbacks/OnConfirmedCallback.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/callbacks/OnFinishedCallback.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/callbacks/OnToggleCheckmarkListener.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/list/HintList.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/list/HintListFactory.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabit.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/BarCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt (96%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/NotesCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/OverviewCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/ScoreCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/StreakCart.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/SubtitleCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/screens/habits/show/views/TargetCard.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/BarChart.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/CheckmarkButton.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/HabitListHeader.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/HistoryChart.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/NumberButton.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/Ring.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/views/Themes.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.kt (100%) rename uhabits-core/src/{jvmMain/java => commonMain/kotlin}/org/isoron/uhabits/core/utils/FileExtensions.kt (100%) create mode 100644 uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateFormats.kt rename uhabits-core/src/jvmMain/java/org/isoron/{uhabits/core/utils => platform/time}/DateUtils.kt (77%) diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/database/AutoBackupTest.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/database/AutoBackupTest.kt index a0b78f2d..577ee621 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/database/AutoBackupTest.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/database/AutoBackupTest.kt @@ -19,9 +19,9 @@ package org.isoron.uhabits.database +import org.isoron.platform.time.DateUtils import org.isoron.uhabits.AndroidDirFinder import org.isoron.uhabits.BaseAndroidTest -import org.isoron.uhabits.core.utils.DateUtils import org.junit.Test import java.io.File import java.io.FileOutputStream diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt index 16891c9f..abcfdd51 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt @@ -51,6 +51,8 @@ import org.isoron.uhabits.core.models.PaletteColor import org.isoron.uhabits.core.preferences.Preferences import org.isoron.uhabits.core.tasks.TaskRunner import org.isoron.uhabits.core.ui.ThemeSwitcher +import org.isoron.uhabits.core.ui.callbacks.CheckMarkDialogCallback +import org.isoron.uhabits.core.ui.callbacks.NumberPickerCallback import org.isoron.uhabits.core.ui.callbacks.OnColorPickedCallback import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback import org.isoron.uhabits.core.ui.screens.habits.list.ListHabitsBehavior @@ -270,7 +272,7 @@ class ListHabitsScreen( override fun showNumberPopup( value: Double, notes: String, - callback: ListHabitsBehavior.NumberPickerCallback + callback: NumberPickerCallback ) { val fm = (context as AppCompatActivity).supportFragmentManager val dialog = NumberDialog() @@ -286,7 +288,7 @@ class ListHabitsScreen( selectedValue: Int, notes: String, color: PaletteColor, - callback: ListHabitsBehavior.CheckMarkDialogCallback + callback: CheckMarkDialogCallback ) { val theme = rootView.value.currentTheme() val fm = (context as AppCompatActivity).supportFragmentManager diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt index a5e8ab9f..f5e86e92 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt @@ -43,8 +43,9 @@ import org.isoron.uhabits.core.commands.CommandRunner import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.models.PaletteColor import org.isoron.uhabits.core.preferences.Preferences +import org.isoron.uhabits.core.ui.callbacks.CheckMarkDialogCallback +import org.isoron.uhabits.core.ui.callbacks.NumberPickerCallback import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback -import org.isoron.uhabits.core.ui.screens.habits.list.ListHabitsBehavior import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitMenuPresenter import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitPresenter import org.isoron.uhabits.core.ui.views.OnDateClickedListener @@ -174,7 +175,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener { override fun showNumberPopup( value: Double, notes: String, - callback: ListHabitsBehavior.NumberPickerCallback + callback: NumberPickerCallback ) { val dialog = NumberDialog() dialog.arguments = Bundle().apply { @@ -189,7 +190,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener { selectedValue: Int, notes: String, color: PaletteColor, - callback: ListHabitsBehavior.CheckMarkDialogCallback + callback: CheckMarkDialogCallback ) { val theme = view.currentTheme() val dialog = CheckmarkDialog() diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/database/AutoBackup.kt b/uhabits-android/src/main/java/org/isoron/uhabits/database/AutoBackup.kt index f78165a1..6552069d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/database/AutoBackup.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/database/AutoBackup.kt @@ -24,8 +24,8 @@ import android.net.Uri import android.util.Log import androidx.documentfile.provider.DocumentFile import androidx.preference.PreferenceManager +import org.isoron.platform.time.DateUtils import org.isoron.uhabits.AndroidDirFinder -import org.isoron.uhabits.core.utils.DateUtils import org.isoron.uhabits.utils.DatabaseUtils import java.io.File diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/intents/IntentScheduler.kt b/uhabits-android/src/main/java/org/isoron/uhabits/intents/IntentScheduler.kt index 98b329a4..4cdeef6e 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/intents/IntentScheduler.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/intents/IntentScheduler.kt @@ -28,11 +28,11 @@ import android.content.Context.ALARM_SERVICE import android.os.Build import android.util.Log import me.tatarka.inject.annotations.Inject +import org.isoron.platform.time.DateFormats import org.isoron.uhabits.core.AppScope import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.reminders.ReminderScheduler.SchedulerResult import org.isoron.uhabits.core.reminders.ReminderScheduler.SystemScheduler -import org.isoron.uhabits.core.utils.DateFormats import org.isoron.uhabits.inject.AppContext import java.util.Date import kotlin.math.min diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/ReminderController.kt b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/ReminderController.kt index 9485d0e9..bba06e8e 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/ReminderController.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/ReminderController.kt @@ -22,13 +22,13 @@ import android.content.Context import android.content.Intent import android.net.Uri import me.tatarka.inject.annotations.Inject +import org.isoron.platform.time.DateUtils import org.isoron.platform.time.LocalDate import org.isoron.uhabits.core.AppScope import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.preferences.Preferences import org.isoron.uhabits.core.reminders.ReminderScheduler import org.isoron.uhabits.core.ui.NotificationTray -import org.isoron.uhabits.core.utils.DateUtils import org.isoron.uhabits.notifications.SnoozeDelayPickerActivity @Inject diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/utils/DatabaseUtils.kt b/uhabits-android/src/main/java/org/isoron/uhabits/utils/DatabaseUtils.kt index c780a652..98cce84d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/utils/DatabaseUtils.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/utils/DatabaseUtils.kt @@ -22,11 +22,11 @@ import android.content.Context import android.database.sqlite.SQLiteDatabase import android.util.Log import androidx.documentfile.provider.DocumentFile +import org.isoron.platform.time.DateFormats.Companion.getBackupDateFormat import org.isoron.uhabits.HabitsApplication.Companion.isTestMode import org.isoron.uhabits.HabitsDatabaseOpener import org.isoron.uhabits.core.DATABASE_FILENAME import org.isoron.uhabits.core.DATABASE_VERSION -import org.isoron.uhabits.core.utils.DateFormats.Companion.getBackupDateFormat import java.io.File import java.io.FileInputStream import java.io.IOException diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/utils/DateExtensions.kt b/uhabits-android/src/main/java/org/isoron/uhabits/utils/DateExtensions.kt index aa49117d..9804c27d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/utils/DateExtensions.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/utils/DateExtensions.kt @@ -21,11 +21,11 @@ package org.isoron.uhabits.utils import android.content.Context import android.text.format.DateFormat +import org.isoron.platform.time.DateFormats import org.isoron.platform.time.DayOfWeek import org.isoron.platform.time.JavaLocalDateFormatter import org.isoron.uhabits.R import org.isoron.uhabits.core.models.WeekdayList -import org.isoron.uhabits.core.utils.DateFormats import java.text.SimpleDateFormat import java.util.Date import java.util.Locale diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt index 26208c6b..eb79adc1 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt @@ -24,13 +24,13 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import me.tatarka.inject.annotations.Inject +import org.isoron.platform.time.DateUtils import org.isoron.uhabits.core.commands.Command import org.isoron.uhabits.core.commands.CommandRunner import org.isoron.uhabits.core.commands.CreateRepetitionCommand import org.isoron.uhabits.core.preferences.Preferences import org.isoron.uhabits.core.preferences.WidgetPreferences import org.isoron.uhabits.core.tasks.TaskRunner -import org.isoron.uhabits.core.utils.DateUtils import org.isoron.uhabits.inject.AppContext import org.isoron.uhabits.intents.IntentScheduler diff --git a/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt index 049ccd41..c39cb3ae 100644 --- a/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt @@ -236,6 +236,8 @@ fun getWeekdaySequence(firstWeekday: DayOfWeek): List { } } +expect fun getFirstWeekdayNumberAccordingToLocale(): Int + fun countWeekdayOccurrencesInMonth(startOfMonth: LocalDate): Array { val weekday = (startOfMonth.dayOfWeek.daysSinceSunday + 1) % 7 val freq = Array(7) { 0 } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/AppScope.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/AppScope.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/AppScope.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/AppScope.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/Constants.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/Constants.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/Constants.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/Constants.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/ArchiveHabitsCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/ArchiveHabitsCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/ArchiveHabitsCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/ArchiveHabitsCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/ChangeHabitColorCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/ChangeHabitColorCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/ChangeHabitColorCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/ChangeHabitColorCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/Command.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/Command.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/Command.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/Command.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CommandRunner.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CommandRunner.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CommandRunner.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CommandRunner.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CreateHabitCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CreateHabitCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CreateHabitCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CreateHabitCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CreateRepetitionCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CreateRepetitionCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/CreateRepetitionCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/CreateRepetitionCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/DeleteHabitsCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/DeleteHabitsCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/DeleteHabitsCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/DeleteHabitsCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/EditHabitCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/EditHabitCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/EditHabitCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/EditHabitCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/UnarchiveHabitsCommand.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/UnarchiveHabitsCommand.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/commands/UnarchiveHabitsCommand.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/commands/UnarchiveHabitsCommand.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/AbstractImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/AbstractImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/AbstractImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/AbstractImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/GenericImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/GenericImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/GenericImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/GenericImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitBullCSVImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/HabitBullCSVImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitBullCSVImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/HabitBullCSVImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/HabitsCSVExporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/HabitsCSVExporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/Logging.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/Logging.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/Logging.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/Logging.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/LoopDBImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/LoopDBImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/LoopDBImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/LoopDBImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/RewireDBImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/RewireDBImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/RewireDBImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/RewireDBImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/TickmateDBImporter.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/TickmateDBImporter.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/TickmateDBImporter.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/io/TickmateDBImporter.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Entry.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Entry.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Entry.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Entry.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/EntryList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/EntryList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/EntryList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/EntryList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Frequency.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Frequency.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Frequency.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Frequency.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Habit.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Habit.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitMatcher.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitMatcher.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitMatcher.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitMatcher.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitNotFoundException.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitNotFoundException.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitNotFoundException.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitNotFoundException.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitType.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitType.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/HabitType.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/HabitType.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ModelFactory.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ModelFactory.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ModelFactory.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ModelFactory.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ModelObservable.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ModelObservable.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ModelObservable.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ModelObservable.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/NumericalHabitType.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/NumericalHabitType.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/NumericalHabitType.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/NumericalHabitType.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/PaletteColor.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/PaletteColor.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/PaletteColor.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/PaletteColor.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Reminder.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Reminder.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Reminder.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Reminder.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Score.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Score.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Score.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Score.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ScoreList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/ScoreList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Streak.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Streak.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Streak.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/Streak.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/StreakList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/StreakList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/StreakList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/StreakList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/WeekdayList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/WeekdayList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/memory/MemoryHabitList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/memory/MemoryHabitList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/memory/MemoryModelFactory.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/memory/MemoryModelFactory.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/memory/MemoryModelFactory.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/memory/MemoryModelFactory.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLModelFactory.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLModelFactory.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLModelFactory.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLModelFactory.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLiteEntryList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLiteEntryList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLiteEntryList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLiteEntryList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/MemoryStorage.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/MemoryStorage.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/MemoryStorage.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/MemoryStorage.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/Preferences.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/Preferences.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/Preferences.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/Preferences.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/WidgetPreferences.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/WidgetPreferences.kt similarity index 94% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/WidgetPreferences.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/WidgetPreferences.kt index 282c315a..e8754702 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/preferences/WidgetPreferences.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/preferences/WidgetPreferences.kt @@ -19,6 +19,7 @@ package org.isoron.uhabits.core.preferences import me.tatarka.inject.annotations.Inject +import org.isoron.platform.io.format import org.isoron.uhabits.core.AppScope @AppScope @@ -52,11 +53,11 @@ class WidgetPreferences(private val storage: Preferences.Storage) { } private fun getHabitIdKey(id: Int): String { - return String.format("widget-%06d-habit", id) + return format("widget-%06d-habit", id) } private fun getSnoozeKey(id: Long): String { - return String.format("snooze-%06d", id) + return format("snooze-%06d", id.toInt()) } fun removeSnoozeTime(id: Long) { diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTaskFactory.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/ExportCSVListener.kt similarity index 67% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTaskFactory.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/ExportCSVListener.kt index c34a03e1..68494fdd 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTaskFactory.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/ExportCSVListener.kt @@ -16,20 +16,8 @@ * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ - package org.isoron.uhabits.core.tasks -import me.tatarka.inject.annotations.Inject -import org.isoron.uhabits.core.models.Habit -import org.isoron.uhabits.core.models.HabitList - -@Inject -class ExportCSVTaskFactory( - val habitList: HabitList -) { - fun create( - selectedHabits: List, - outputDir: String, - listener: ExportCSVTask.Listener - ) = ExportCSVTask(habitList, selectedHabits, outputDir, listener) +fun interface ExportCSVListener { + fun onExportCSVFinished(archiveFilename: String?) } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/SingleThreadTaskRunner.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/SingleThreadTaskRunner.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/SingleThreadTaskRunner.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/SingleThreadTaskRunner.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/Task.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/Task.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/Task.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/Task.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/TaskRunner.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/TaskRunner.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/TaskRunner.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/tasks/TaskRunner.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/test/HabitFixtures.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/test/HabitFixtures.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/test/HabitFixtures.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/test/HabitFixtures.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/NotificationTray.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/NotificationTray.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/NotificationTray.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/NotificationTray.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/ThemeSwitcher.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/ThemeSwitcher.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/ThemeSwitcher.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/ThemeSwitcher.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/DialogCallbacks.kt similarity index 58% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/DialogCallbacks.kt index 348f0e34..e3715aa2 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/DialogCallbacks.kt @@ -16,27 +16,20 @@ * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ +package org.isoron.uhabits.core.ui.callbacks -package org.isoron.uhabits.core.utils - -import java.text.SimpleDateFormat -import java.util.Locale -import java.util.TimeZone - -class DateFormats { - - companion object { - - @JvmStatic fun fromSkeleton( - skeleton: String, - locale: Locale - ): SimpleDateFormat { - val df = SimpleDateFormat(skeleton, locale) - df.timeZone = TimeZone.getTimeZone("UTC") - return df - } - - @JvmStatic fun getBackupDateFormat(): SimpleDateFormat = - fromSkeleton("yyyy-MM-dd HHmmss", Locale.US) - } +fun interface NumberPickerCallback { + fun onNumberPicked( + newValue: Double, + notes: String + ) + fun onNumberPickerDismissed() {} +} + +fun interface CheckMarkDialogCallback { + fun onNotesSaved( + value: Int, + notes: String + ) + fun onNotesDismissed() {} } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnColorPickedCallback.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnColorPickedCallback.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnColorPickedCallback.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnColorPickedCallback.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnConfirmedCallback.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnConfirmedCallback.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnConfirmedCallback.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnConfirmedCallback.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnFinishedCallback.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnFinishedCallback.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnFinishedCallback.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnFinishedCallback.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnToggleCheckmarkListener.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnToggleCheckmarkListener.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/callbacks/OnToggleCheckmarkListener.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/callbacks/OnToggleCheckmarkListener.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HintList.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HintList.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HintList.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HintList.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HintListFactory.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HintListFactory.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/HintListFactory.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/HintListFactory.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabit.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabit.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabit.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabit.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/BarCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/BarCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/BarCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/BarCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt similarity index 96% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt index a3099f0a..1a67edd3 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt @@ -34,7 +34,8 @@ import org.isoron.uhabits.core.models.NumericalHabitType.AT_LEAST import org.isoron.uhabits.core.models.NumericalHabitType.AT_MOST import org.isoron.uhabits.core.models.PaletteColor import org.isoron.uhabits.core.preferences.Preferences -import org.isoron.uhabits.core.ui.screens.habits.list.ListHabitsBehavior +import org.isoron.uhabits.core.ui.callbacks.CheckMarkDialogCallback +import org.isoron.uhabits.core.ui.callbacks.NumberPickerCallback import org.isoron.uhabits.core.ui.views.HistoryChart import org.isoron.uhabits.core.ui.views.HistoryChart.Square.DIMMED import org.isoron.uhabits.core.ui.views.HistoryChart.Square.GREY @@ -204,13 +205,13 @@ class HistoryCardPresenter( fun showNumberPopup( value: Double, notes: String, - callback: ListHabitsBehavior.NumberPickerCallback + callback: NumberPickerCallback ) fun showCheckmarkPopup( selectedValue: Int, notes: String, color: PaletteColor, - callback: ListHabitsBehavior.CheckMarkDialogCallback + callback: CheckMarkDialogCallback ) } } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/NotesCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/NotesCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/NotesCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/NotesCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/OverviewCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/OverviewCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/OverviewCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/OverviewCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/ScoreCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/ScoreCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/ScoreCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/ScoreCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/StreakCart.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/StreakCart.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/StreakCart.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/StreakCart.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/SubtitleCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/SubtitleCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/SubtitleCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/SubtitleCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/TargetCard.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/TargetCard.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/TargetCard.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/screens/habits/show/views/TargetCard.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/BarChart.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/BarChart.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/BarChart.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/BarChart.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/CheckmarkButton.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/CheckmarkButton.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/CheckmarkButton.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/CheckmarkButton.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/HabitListHeader.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/HabitListHeader.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/HabitListHeader.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/HabitListHeader.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/HistoryChart.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/HistoryChart.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/HistoryChart.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/HistoryChart.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/NumberButton.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/NumberButton.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/NumberButton.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/NumberButton.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/Ring.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/Ring.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/Ring.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/Ring.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/Themes.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/Themes.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/views/Themes.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/views/Themes.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/FileExtensions.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/utils/FileExtensions.kt similarity index 100% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/FileExtensions.kt rename to uhabits-core/src/commonMain/kotlin/org/isoron/uhabits/core/utils/FileExtensions.kt diff --git a/uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateFormats.kt b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateFormats.kt new file mode 100644 index 00000000..8b7d5736 --- /dev/null +++ b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateFormats.kt @@ -0,0 +1,23 @@ +package org.isoron.platform.time + +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.TimeZone + +class DateFormats { + + companion object { + + @JvmStatic fun fromSkeleton( + skeleton: String, + locale: Locale + ): SimpleDateFormat { + val df = SimpleDateFormat(skeleton, locale) + df.timeZone = TimeZone.getTimeZone("UTC") + return df + } + + @JvmStatic fun getBackupDateFormat(): SimpleDateFormat = + fromSkeleton("yyyy-MM-dd HHmmss", Locale.US) + } +} diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateUtils.kt similarity index 77% rename from uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt rename to uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateUtils.kt index 1f039454..ed1702d1 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/DateUtils.kt @@ -1,22 +1,4 @@ -/* - * Copyright (C) 2016-2025 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ -package org.isoron.uhabits.core.utils +package org.isoron.platform.time import java.util.Calendar import java.util.Date diff --git a/uhabits-core/src/jvmMain/java/org/isoron/platform/time/JavaDates.kt b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/JavaDates.kt index b447b9fc..b24dd449 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/platform/time/JavaDates.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/platform/time/JavaDates.kt @@ -47,7 +47,7 @@ fun LocalDate.toGregorianCalendar(): GregorianCalendar { return cal } -fun getFirstWeekdayNumberAccordingToLocale(): Int { +actual fun getFirstWeekdayNumberAccordingToLocale(): Int { return GregorianCalendar(Locale.getDefault()).firstDayOfWeek } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/reminders/ReminderScheduler.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/reminders/ReminderScheduler.kt index de7d89f8..405d1cca 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/reminders/ReminderScheduler.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/reminders/ReminderScheduler.kt @@ -19,6 +19,7 @@ package org.isoron.uhabits.core.reminders import me.tatarka.inject.annotations.Inject +import org.isoron.platform.time.DateUtils import org.isoron.uhabits.core.AppScope import org.isoron.uhabits.core.commands.ChangeHabitColorCommand import org.isoron.uhabits.core.commands.Command @@ -28,7 +29,6 @@ import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.models.HabitList import org.isoron.uhabits.core.models.HabitMatcher import org.isoron.uhabits.core.preferences.WidgetPreferences -import org.isoron.uhabits.core.utils.DateUtils @AppScope @Inject diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTask.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTask.kt index 66b78af2..025fd17f 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTask.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/tasks/ExportCSVTask.kt @@ -29,7 +29,7 @@ class ExportCSVTask( private val habitList: HabitList, private val selectedHabits: List, private val outputDir: String, - private val listener: Listener + private val listener: ExportCSVListener ) : Task { private var archiveFilename: String? = null override fun doInBackground() { @@ -50,8 +50,4 @@ class ExportCSVTask( override fun onPostExecute() { listener.onExportCSVFinished(archiveFilename) } - - fun interface Listener { - fun onExportCSVFinished(archiveFilename: String?) - } } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt index 29bc901d..b4d460bb 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt @@ -33,6 +33,8 @@ import org.isoron.uhabits.core.models.PaletteColor import org.isoron.uhabits.core.preferences.Preferences import org.isoron.uhabits.core.tasks.ExportCSVTask import org.isoron.uhabits.core.tasks.TaskRunner +import org.isoron.uhabits.core.ui.callbacks.CheckMarkDialogCallback +import org.isoron.uhabits.core.ui.callbacks.NumberPickerCallback import kotlin.math.roundToInt @Inject @@ -152,22 +154,6 @@ open class ListHabitsBehavior( fun getCSVOutputDir(): String } - fun interface NumberPickerCallback { - fun onNumberPicked( - newValue: Double, - notes: String - ) - fun onNumberPickerDismissed() {} - } - - fun interface CheckMarkDialogCallback { - fun onNotesSaved( - value: Int, - notes: String - ) - fun onNotesDismissed() {} - } - interface Screen { fun showHabitScreen(h: Habit) fun showIntroScreen() diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/MidnightTimer.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/MidnightTimer.kt index a2096b48..c62133f9 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/MidnightTimer.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/MidnightTimer.kt @@ -19,6 +19,7 @@ package org.isoron.uhabits.core.utils import me.tatarka.inject.annotations.Inject +import org.isoron.platform.time.DateUtils import org.isoron.platform.time.computeToday import org.isoron.platform.time.setToday import org.isoron.uhabits.core.AppScope diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.kt index 4a0ba09b..2fcb3777 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.kt @@ -18,15 +18,15 @@ */ package org.isoron.uhabits.core.reminders +import org.isoron.platform.time.DateUtils +import org.isoron.platform.time.DateUtils.removeTimezone +import org.isoron.platform.time.DateUtils.setFixedLocalTime +import org.isoron.platform.time.DateUtils.setFixedTimeZone import org.isoron.uhabits.core.BaseUnitTest import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.models.Reminder import org.isoron.uhabits.core.models.WeekdayList import org.isoron.uhabits.core.preferences.WidgetPreferences -import org.isoron.uhabits.core.utils.DateUtils -import org.isoron.uhabits.core.utils.DateUtils.removeTimezone -import org.isoron.uhabits.core.utils.DateUtils.setFixedLocalTime -import org.isoron.uhabits.core.utils.DateUtils.setFixedTimeZone import org.junit.After import org.junit.Before import org.junit.Test diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt index 84e73ef3..858b0302 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt @@ -26,6 +26,7 @@ import org.isoron.uhabits.core.BaseUnitTest import org.isoron.uhabits.core.models.Entry import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.preferences.Preferences +import org.isoron.uhabits.core.ui.callbacks.NumberPickerCallback import org.junit.Before import org.junit.Test import org.mockito.kotlin.KArgumentCaptor @@ -50,7 +51,7 @@ class ListHabitsBehaviorTest : BaseUnitTest() { private lateinit var habit1: Habit private lateinit var habit2: Habit - var picker: KArgumentCaptor = argumentCaptor() + var picker: KArgumentCaptor = argumentCaptor() private val bugReporter: ListHabitsBehavior.BugReporter = mock() diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt index 0bf38e0b..a8700fcd 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt @@ -18,6 +18,7 @@ */ package org.isoron.uhabits.core.utils +import org.isoron.platform.time.DateUtils import org.junit.After import org.junit.Before import org.junit.Test diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/MidnightTimerTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/MidnightTimerTest.kt index 2a9df17d..30be0ba3 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/MidnightTimerTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/MidnightTimerTest.kt @@ -3,6 +3,7 @@ package org.isoron.uhabits.core.utils import kotlinx.coroutines.asCoroutineDispatcher import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext +import org.isoron.platform.time.DateUtils import org.isoron.uhabits.core.BaseUnitTest import org.isoron.uhabits.core.io.StandardLogging import org.isoron.uhabits.core.preferences.Preferences