Disable changes for tasks in challenges (#1667)

* added resources to run project

* disable editing for fields which cannot be edited when found in a task belonging to a challenge
This commit is contained in:
pauliancu97 2021-11-10 15:36:47 +02:00 committed by GitHub
parent ed39758118
commit 476f23d1a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 0 deletions

View file

@ -208,6 +208,7 @@ class TaskFormActivity : BaseActivity() {
this.challenge = challenge
binding.challengeNameView.text = getString(R.string.challenge_task_name, challenge.name)
binding.challengeNameView.visibility = View.VISIBLE
disableEditingForUneditableFieldsInChallengeTask()
},
RxErrorHandler.handleEmptyError()
)
@ -621,6 +622,13 @@ class TaskFormActivity : BaseActivity() {
)
}
private fun disableEditingForUneditableFieldsInChallengeTask() {
binding.textEditText.isEnabled = false
binding.taskDifficultyButtons.isEnabled = false
binding.taskSchedulingControls.isEnabled = false
binding.habitScoringButtons.isEnabled = false
}
override fun finish() {
dismissKeyboard()
super.finish()

View file

@ -23,6 +23,12 @@ class HabitScoringButtonsView @JvmOverloads constructor(
var tintColor: Int = ContextCompat.getColor(context, R.color.brand_300)
var textTintColor: Int? = null
override fun setEnabled(isEnabled: Boolean) {
super.setEnabled(isEnabled)
binding.positiveView.isEnabled = isEnabled
binding.negativeView.isEnabled = isEnabled
}
var isPositive = true
set(value) {
field = value

View file

@ -10,6 +10,7 @@ import android.widget.LinearLayout
import android.widget.Space
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.view.children
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.asDrawable
import com.habitrpg.android.habitica.extensions.inflate
@ -33,6 +34,13 @@ class TaskDifficultyButtons @JvmOverloads constructor(
}
private lateinit var selectedButton: View
override fun setEnabled(isEnabled: Boolean) {
super.setEnabled(isEnabled)
for (child in this.children) {
child.isEnabled = isEnabled
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
removeAllViews()

View file

@ -11,6 +11,7 @@ import android.view.View
import android.view.accessibility.AccessibilityEvent
import android.widget.*
import androidx.core.content.ContextCompat
import androidx.core.view.children
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.TaskFormTaskSchedulingBinding
import com.habitrpg.android.habitica.extensions.dpToPx
@ -178,6 +179,16 @@ class TaskSchedulingControls @JvmOverloads constructor(
configureViewsForFrequency()
}
override fun setEnabled(isEnabled: Boolean) {
super.setEnabled(isEnabled)
for (button in binding.weeklyRepeatWrapper.children) {
button.isEnabled = isEnabled
}
binding.startDateWrapper.isEnabled = isEnabled
binding.monthlyRepeatDays.isEnabled = isEnabled
binding.monthlyRepeatWeeks.isEnabled = isEnabled
}
private fun configureViewsForType() {
binding.startDateTitle.text = context.getString(if (taskType == Task.TYPE_DAILY) R.string.start_date else R.string.due_date)
binding.repeatsEveryWrapper.visibility = if (taskType == Task.TYPE_DAILY) View.VISIBLE else View.GONE