diff --git a/Habitica/res/layout/preference_group_footer.xml b/Habitica/res/layout/preference_group_footer.xml new file mode 100644 index 000000000..894bda6b9 --- /dev/null +++ b/Habitica/res/layout/preference_group_footer.xml @@ -0,0 +1,13 @@ + + \ No newline at end of file diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 188ed85a3..d1f8f5528 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1254,4 +1254,5 @@ Time Management + Accountability Show assigned and open tasks on your personal task lists Copy shared tasks + Group Plan Settings diff --git a/Habitica/res/xml/preferences_fragment.xml b/Habitica/res/xml/preferences_fragment.xml index fc1e89013..790a81c03 100644 --- a/Habitica/res/xml/preferences_fragment.xml +++ b/Habitica/res/xml/preferences_fragment.xml @@ -193,9 +193,13 @@ + android:title="@string/group_plan_settings" + android:layout="@layout/preference_category" + app:isPreferenceVisible="false"> + + ("groups_category") + val footer = groupCategory?.findPreference("groups_footer") + footer?.order = 9999 groupCategory?.removeAll() if (teams.isEmpty()) { groupCategory?.isVisible = false @@ -372,7 +374,9 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare groupCategory?.isVisible = true for (team in teams) { val newPreference = CheckBoxPreference(context) - newPreference.title = team.summary + newPreference.layoutResource = R.layout.preference_child_summary + newPreference.title = getString(R.string.copy_shared_tasks) + newPreference.summary = team.summary newPreference.key = "copy_tasks-${team.id}" newPreference.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue -> val currentIds = user?.preferences?.tasks?.mirrorGroupTasks?.toMutableList() ?: mutableListOf() @@ -388,6 +392,9 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare newPreference.isChecked = user?.preferences?.tasks?.mirrorGroupTasks?.contains(team.id) == true } } + if (footer != null) { + groupCategory.addPreference(footer) + } } if (configManager.testingLevel() == AppTestingLevel.STAFF || BuildConfig.DEBUG) { diff --git a/fastlane/changelog.txt b/fastlane/changelog.txt index c2ebf9a44..3eb9c4730 100644 --- a/fastlane/changelog.txt +++ b/fastlane/changelog.txt @@ -1,12 +1,11 @@ -New in 4.0.1: +New in 4.0.2: -Habitica has a brand new WearOS app for smart watches! --Some pesky bug fixes +-Group Plan subscribers can switch on displaying shared tasks from Settings +-Past To Do reminders will not constantly show anymore +-Pet category labels show again -Newly designed Backgrounds section -Ability to filter, preview, and pin Backgrounds -New bottom sheet designs in Items, Pets & Mounts, and Filters -New Day Start Adjustment interface --Improvements to task reminder reliability -Improvements to payment and subscription handling --Fixes account deletion confirmation prompt --Fixes task reorder bug for new accounts --Fixes sprite size in Quest Details preview + diff --git a/version.properties b/version.properties index 105b261d0..91578a429 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ -NAME=4.0.1 -CODE=4470 \ No newline at end of file +NAME=4.0.2 +CODE=4510 diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt index cbf784a37..5dcb394b6 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt @@ -36,7 +36,7 @@ class TaskRepository @Inject constructor( val result = apiClient.scoreTask(id, direction.text).responseData if (result != null) { task.completed = direction == TaskDirection.UP - task.value += result.delta + task.value = (task.value ?: 0.0) + result.delta if (task.type == TaskType.HABIT) { if (direction == TaskDirection.UP) { task.counterUp = task.counterUp?.plus(1) ?: 1