diff --git a/Habitica/res/drawable/teams_title_bg.xml b/Habitica/res/drawable/teams_title_bg.xml index 2d732c31a..40d3a2a57 100644 --- a/Habitica/res/drawable/teams_title_bg.xml +++ b/Habitica/res/drawable/teams_title_bg.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 8a6ddfd35..edcf42eea 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1268,7 +1268,7 @@ Completed at %s Assign Edit assignees - Assign to... + Assign to… Promote to Manager Manager Member List @@ -1278,7 +1278,7 @@ You, %d others - %d Person - %d People + %d person + %d people diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmBaseLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmBaseLocalRepository.kt index f5d477a4c..705aac13d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmBaseLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmBaseLocalRepository.kt @@ -57,7 +57,7 @@ abstract class RealmBaseLocalRepository internal constructor(override var realm: private fun process() { if (isClosed) { return } - realm.executeTransactionAsync { + realm.executeTransaction { while (pendingSaves.isNotEmpty()) { val pending = pendingSaves.removeFirst() @Suppress("UNCHECKED_CAST") diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt index 239cfee26..587597adb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt @@ -97,7 +97,7 @@ class RealmTaskLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), private fun removeOldChecklists(onlineItems: List) { val localItems = realm.where(ChecklistItem::class.java).findAll().createSnapshot() val itemsToDelete = localItems.filterNot { onlineItems.contains(it) } - executeTransaction { + realm.executeTransaction { for (item in itemsToDelete) { item.deleteFromRealm() } @@ -107,7 +107,7 @@ class RealmTaskLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), private fun removeOldReminders(onlineReminders: List) { val localReminders = realm.where(RemindersItem::class.java).findAll().createSnapshot() val itemsToDelete = localReminders.filterNot { onlineReminders.contains(it) } - executeTransaction { + realm.executeTransaction { for (item in itemsToDelete) { item.deleteFromRealm() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt index 9b54c937a..46622d089 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.res.colorResource import androidx.core.os.bundleOf import androidx.core.view.children import androidx.core.view.forEachIndexed +import androidx.core.view.isVisible import androidx.core.widget.NestedScrollView import androidx.lifecycle.lifecycleScope import com.habitrpg.android.habitica.R @@ -241,6 +242,9 @@ class TaskFormActivity : BaseActivity() { groupMembers = it } } + + binding.tagsTitleView.isVisible = false + binding.tagsWrapper.isVisible = false } else { binding.assignTitleView.visibility = View.GONE binding.assignView.visibility = View.GONE diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt index 88441ed20..7957e3f65 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt @@ -192,7 +192,7 @@ class TasksFragment : BaseMainFragment(), SearchView.O private fun showFilterDialog() { context?.let { - val dialog = TaskFilterDialog(it, HabiticaBaseApplication.userComponent) + val dialog = TaskFilterDialog(it, HabiticaBaseApplication.userComponent, viewModel.isPersonalBoard) dialog.viewModel = viewModel // There are some cases where these things might not be correctly set after the app resumes. This is just to catch that as best as possible diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt index d9cf2886d..0ff78a2a8 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt @@ -75,7 +75,7 @@ class DailyViewHolder( override fun configureSpecialTaskTextView(task: Task) { super.configureSpecialTaskTextView(task) - if ((task.streak ?: 0) > 0) { + if ((task.streak ?: 0) > 0 && !task.isGroupTask) { this.streakTextView.text = task.streak.toString() this.streakTextView.visibility = View.VISIBLE this.streakIconView.visibility = View.VISIBLE diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt index b56939f23..a5fcc9ebb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/HabitViewHolder.kt @@ -118,7 +118,7 @@ class HabitViewHolder( } val streakString = task?.streakString - if (streakString?.isNotEmpty() == true) { + if (streakString?.isNotEmpty() == true && task?.isGroupTask != true) { streakTextView.text = streakString streakTextView.visibility = View.VISIBLE streakIconView.visibility = View.VISIBLE diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt index 71b6d276a..0999d83ed 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt @@ -153,7 +153,7 @@ fun AppHeaderView( .clickable { MainNavigationController.navigate( R.id.guildFragment, - bundleOf("groupID" to teamPlan?.id) + bundleOf("groupID" to teamPlan?.id, "tabToOpen" to 1) ) } ) { @@ -168,11 +168,11 @@ fun AppHeaderView( enter = slideInVertically { animHeight } + fadeIn(), exit = slideOutVertically { animHeight } + fadeOut()) { Row( - horizontalArrangement = Arrangement.spacedBy(14.dp, Alignment.CenterHorizontally), + horizontalArrangement = Arrangement.spacedBy(12.dp, Alignment.CenterHorizontally), verticalAlignment = Alignment.CenterVertically, modifier = Modifier .fillMaxWidth() - .padding(top = 12.dp) + .padding(top = 12.dp, start = 12.dp, end = 12.dp) .height(40.dp) .width(72.dp) .clip(MaterialTheme.shapes.medium) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt index eab805918..785c1d1df 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt @@ -12,6 +12,7 @@ import android.widget.RadioGroup import androidx.annotation.IdRes import androidx.appcompat.widget.AppCompatCheckBox import androidx.core.content.ContextCompat +import androidx.core.view.isVisible import androidx.core.widget.CompoundButtonCompat import androidx.core.widget.TextViewCompat import androidx.lifecycle.lifecycleScope @@ -31,7 +32,7 @@ import com.habitrpg.shared.habitica.models.tasks.TaskType import java.util.UUID import javax.inject.Inject -class TaskFilterDialog(context: Context, component: UserComponent?) : HabiticaBottomSheetDialog(context), RadioGroup.OnCheckedChangeListener { +class TaskFilterDialog(context: Context, component: UserComponent?, private val showTags: Boolean) : HabiticaBottomSheetDialog(context), RadioGroup.OnCheckedChangeListener { lateinit var viewModel: TasksViewModel private val binding = DialogTaskFilterBinding.inflate(layoutInflater) @@ -92,17 +93,21 @@ class TaskFilterDialog(context: Context, component: UserComponent?) : HabiticaBo setActiveTags(null) } - binding.tagEditButton.setOnClickListener { editButtonClicked() } - } - - override fun dismiss() { - super.dismiss() + if (showTags) { + binding.tagEditButton.setOnClickListener { editButtonClicked() } + } else { + binding.tagsList.isVisible = false + binding.tagsTitle.isVisible = false + binding.tagEditButton.isVisible = false + } } override fun show() { - lifecycleScope.launchCatching { - viewModel.tagRepository.getTags().collect { - setTags(it) + if (showTags) { + lifecycleScope.launchCatching { + viewModel.tagRepository.getTags().collect { + setTags(it) + } } } super.show()