Fix challenge issues

This commit is contained in:
Phillip Thelen 2024-04-22 12:09:16 +02:00
parent 68c46757ec
commit eb999fb32b
13 changed files with 36 additions and 35 deletions

View file

@ -134,7 +134,7 @@ class ChallengeFormActivity : BaseActivity() {
val dialog = HabiticaProgressDialog.show(this, R.string.saving)
lifecycleScope.launchCatching({
dialog?.dismiss()
dialog.dismiss()
savingInProgress = false
ExceptionHandler.reportError(it)
}) {
@ -147,7 +147,7 @@ class ChallengeFormActivity : BaseActivity() {
challengeId = challenge?.id
challengeRepository.retrieveChallenges(0, true)
dialog?.dismiss()
dialog.dismiss()
savingInProgress = false
finish()
if (!editMode) {
@ -250,6 +250,8 @@ class ChallengeFormActivity : BaseActivity() {
if (challengeId != null) {
fillControlsByChallenge()
} else {
binding.createChallengePrize.setText("0")
}
userViewModel.user.observe(this) { user = it }
@ -381,7 +383,6 @@ class ChallengeFormActivity : BaseActivity() {
}
binding.createChallengePrize.setOnKeyListener { _, _, _ ->
checkPrizeAndMinimumForTavern()
false
}

View file

@ -55,18 +55,18 @@ class ChallengeTasksRecyclerViewAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindableViewHolder<Task> {
val viewHolder: BindableViewHolder<Task> = when (viewType) {
TYPE_HABIT -> HabitViewHolder(getContentView(parent, R.layout.habit_item_card), { _, _ -> }, { }, { task ->
TYPE_HABIT -> HabitViewHolder(getContentView(parent, R.layout.habit_item_card), { _, _ -> }, { task, _ ->
onTaskOpen?.invoke(task)
}, null)
TYPE_DAILY -> DailyViewHolder(getContentView(parent, R.layout.daily_item_card), { _, _ -> }, { _, _ -> }, { }, { task ->
}, {}, null)
TYPE_DAILY -> DailyViewHolder(getContentView(parent, R.layout.daily_item_card), { _, _ -> }, { _, _ -> }, { task, _ ->
onTaskOpen?.invoke(task)
}, null)
TYPE_TODO -> TodoViewHolder(getContentView(parent, R.layout.todo_item_card), { _, _ -> }, { _, _ -> }, { }, { task ->
}, { }, null)
TYPE_TODO -> TodoViewHolder(getContentView(parent, R.layout.todo_item_card), { _, _ -> }, { _, _ -> }, { task, _ ->
onTaskOpen?.invoke(task)
}, null)
TYPE_REWARD -> RewardViewHolder(getContentView(parent, R.layout.reward_item_card), { _, _ -> }, { }, { task ->
}, {}, null)
TYPE_REWARD -> RewardViewHolder(getContentView(parent, R.layout.reward_item_card), { _, _ -> }, { task, _ ->
onTaskOpen?.invoke(task)
}, null)
}, { }, null)
TYPE_ADD_ITEM -> AddItemViewHolder(getContentView(parent, R.layout.challenge_add_task_item), onAddItem)
else -> DividerViewHolder(getContentView(parent, R.layout.challenge_task_divider))
}

View file

@ -14,8 +14,8 @@ class DailiesRecyclerViewHolder(layoutResource: Int, viewModel: TasksViewModel)
{ task, direction -> taskScoreEvents?.invoke(task, direction) },
{ task, item -> checklistItemScoreEvents?.invoke(task, item) },
{
task ->
taskOpenEvents?.invoke(task.first, task.second)
task, view ->
taskOpenEvents?.invoke(task, view)
},
{
task ->

View file

@ -12,12 +12,10 @@ class HabitsRecyclerViewAdapter(layoutResource: Int, viewModel: TasksViewModel)
HabitViewHolder(
getContentView(parent),
{ task, direction -> taskScoreEvents?.invoke(task, direction) },
{
task ->
taskOpenEvents?.invoke(task.first, task.second)
{ task, view ->
taskOpenEvents?.invoke(task, view)
},
{
task ->
{ task ->
brokenTaskEvents?.invoke(task)
},
viewModel

View file

@ -74,7 +74,9 @@ class RewardsRecyclerViewAdapter(
taskScoreEvents?.invoke(task, direction)
}
},
{ task -> taskOpenEvents?.invoke(task.first, task.second) },
{ task, view ->
taskOpenEvents?.invoke(task, view)
},
{
task ->
brokenTaskEvents?.invoke(task)

View file

@ -13,12 +13,10 @@ class TodosRecyclerViewAdapter(layoutResource: Int, viewModel: TasksViewModel) :
getContentView(parent),
{ task, direction -> taskScoreEvents?.invoke(task, direction) },
{ task, item -> checklistItemScoreEvents?.invoke(task, item) },
{
task ->
taskOpenEvents?.invoke(task.first, task.second)
{ task, view ->
taskOpenEvents?.invoke(task, view)
},
{
task ->
{ task ->
brokenTaskEvents?.invoke(task)
},
viewModel

View file

@ -282,7 +282,7 @@ class ChallengeDetailFragment : BaseMainFragment<FragmentChallengeDetailBinding>
for (i in 0 until habits.size) {
val task = habits[i]
val entry = groupBinding.tasksLayout.inflate(R.layout.habit_item_card)
val viewHolder = HabitViewHolder(entry, { _, _ -> }, {}, {}, null)
val viewHolder = HabitViewHolder(entry, { _, _ -> }, { _, _ -> }, {}, null)
viewHolder.isLocked = true
viewHolder.bind(task, i, "normal")
groupBinding.tasksLayout.addView(entry)
@ -297,7 +297,7 @@ class ChallengeDetailFragment : BaseMainFragment<FragmentChallengeDetailBinding>
for (i in 0 until dailies.size) {
val task = dailies[i]
val entry = groupBinding.tasksLayout.inflate(R.layout.daily_item_card)
val viewHolder = DailyViewHolder(entry, { _, _ -> }, { _, _ -> }, {}, {}, null)
val viewHolder = DailyViewHolder(entry, { _, _ -> }, { _, _ -> }, { _, _ -> }, {}, null)
viewHolder.isLocked = true
viewHolder.bind(task, i, "normal")
groupBinding.tasksLayout.addView(entry)
@ -312,7 +312,7 @@ class ChallengeDetailFragment : BaseMainFragment<FragmentChallengeDetailBinding>
for (i in 0 until todos.size) {
val task = todos[i]
val entry = groupBinding.tasksLayout.inflate(R.layout.todo_item_card)
val viewHolder = TodoViewHolder(entry, { _, _ -> }, { _, _ -> }, {}, {}, null)
val viewHolder = TodoViewHolder(entry, { _, _ -> }, { _, _ -> }, { _, _ -> }, {}, null)
viewHolder.isLocked = true
viewHolder.bind(task, i, "normal")
groupBinding.tasksLayout.addView(entry)
@ -327,7 +327,7 @@ class ChallengeDetailFragment : BaseMainFragment<FragmentChallengeDetailBinding>
for (i in 0 until rewards.size) {
val task = rewards[i]
val entry = groupBinding.tasksLayout.inflate(R.layout.reward_item_card)
val viewHolder = RewardViewHolder(entry, { _, _ -> }, {}, {}, null)
val viewHolder = RewardViewHolder(entry, { _, _ -> }, { _, _ -> }, {}, null)
viewHolder.isLocked = true
viewHolder.bind(task, i, true, "normal", null)
groupBinding.tasksLayout.addView(entry)

View file

@ -30,7 +30,7 @@ import kotlinx.coroutines.withContext
abstract class BaseTaskViewHolder(
itemView: View,
var scoreTaskFunc: ((Task, TaskDirection) -> Unit),
var openTaskFunc: ((Pair<Task, View>) -> Unit),
var openTaskFunc: ((Task, View) -> Unit),
var brokenTaskFunc: ((Task) -> Unit),
var assignedTextProvider: GroupPlanInfoProvider?
) : BindableViewHolder<Task>(itemView), View.OnTouchListener {
@ -292,7 +292,9 @@ abstract class BaseTaskViewHolder(
}
}
}
task?.let { openTaskFunc(Pair(it, mainTaskWrapper)) }
task?.let {
openTaskFunc(it, mainTaskWrapper)
}
return true
}

View file

@ -31,7 +31,7 @@ abstract class ChecklistedViewHolder(
itemView: View,
scoreTaskFunc: ((Task, TaskDirection) -> Unit),
var scoreChecklistItemFunc: ((Task, ChecklistItem) -> Unit),
openTaskFunc: ((Pair<Task, View>) -> Unit),
openTaskFunc: ((Task, View) -> Unit),
brokenTaskFunc: ((Task) -> Unit),
assignedTextProvider: GroupPlanInfoProvider?
) : BaseTaskViewHolder(itemView, scoreTaskFunc, openTaskFunc, brokenTaskFunc, assignedTextProvider) {

View file

@ -13,7 +13,7 @@ class DailyViewHolder(
itemView: View,
scoreTaskFunc: ((Task, TaskDirection) -> Unit),
scoreChecklistItemFunc: ((Task, ChecklistItem) -> Unit),
openTaskFunc: ((Pair<Task, View>) -> Unit),
openTaskFunc: ((Task, View) -> Unit),
brokenTaskFunc: ((Task) -> Unit),
assignedTextProvider: GroupPlanInfoProvider?
) : ChecklistedViewHolder(itemView, scoreTaskFunc, scoreChecklistItemFunc, openTaskFunc, brokenTaskFunc, assignedTextProvider) {

View file

@ -14,7 +14,7 @@ import com.habitrpg.shared.habitica.models.responses.TaskDirection
class HabitViewHolder(
itemView: View,
scoreTaskFunc: ((Task, TaskDirection) -> Unit),
openTaskFunc: ((Pair<Task, View>) -> Unit),
openTaskFunc: ((Task, View) -> Unit),
brokenTaskFunc: ((Task) -> Unit),
assignedTextProvider: GroupPlanInfoProvider?
) : BaseTaskViewHolder(itemView, scoreTaskFunc, openTaskFunc, brokenTaskFunc, assignedTextProvider) {

View file

@ -16,7 +16,7 @@ import com.habitrpg.shared.habitica.models.responses.TaskDirection
class RewardViewHolder(
itemView: View,
scoreTaskFunc: ((Task, TaskDirection) -> Unit),
openTaskFunc: ((Pair<Task, View>) -> Unit),
openTaskFunc: ((Task, View) -> Unit),
brokenTaskFunc: ((Task) -> Unit),
assignedTextProvider: GroupPlanInfoProvider?
) : BaseTaskViewHolder(

View file

@ -13,7 +13,7 @@ class TodoViewHolder(
itemView: View,
scoreTaskFunc: ((Task, TaskDirection) -> Unit),
scoreChecklistItemFunc: ((Task, ChecklistItem) -> Unit),
openTaskFunc: ((Pair<Task, View>) -> Unit),
openTaskFunc: ((Task, View) -> Unit),
brokenTaskFunc: ((Task) -> Unit),
assignedTextProvider: GroupPlanInfoProvider?
) : ChecklistedViewHolder(itemView, scoreTaskFunc, scoreChecklistItemFunc, openTaskFunc, brokenTaskFunc, assignedTextProvider) {