migrating to ViewBinding part 1: Dialogs + Views (#2091)
This commit is contained in:
parent
e7c514c28e
commit
5167b8578e
6 changed files with 43 additions and 47 deletions
|
|
@ -23,8 +23,8 @@ import android.view.WindowManager
|
|||
import androidx.appcompat.app.AlertDialog
|
||||
import com.keylesspalace.tusky.R
|
||||
import com.keylesspalace.tusky.adapter.AddPollOptionsAdapter
|
||||
import com.keylesspalace.tusky.databinding.DialogAddPollBinding
|
||||
import com.keylesspalace.tusky.entity.NewPoll
|
||||
import kotlinx.android.synthetic.main.dialog_add_poll.view.*
|
||||
|
||||
fun showAddPollDialog(
|
||||
context: Context,
|
||||
|
|
@ -34,12 +34,12 @@ fun showAddPollDialog(
|
|||
onUpdatePoll: (NewPoll) -> Unit
|
||||
) {
|
||||
|
||||
val view = LayoutInflater.from(context).inflate(R.layout.dialog_add_poll, null)
|
||||
val binding = DialogAddPollBinding.inflate(LayoutInflater.from(context))
|
||||
|
||||
val dialog = AlertDialog.Builder(context)
|
||||
.setIcon(R.drawable.ic_poll_24dp)
|
||||
.setTitle(R.string.create_poll_title)
|
||||
.setView(view)
|
||||
.setView(binding.root)
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.create()
|
||||
|
|
@ -48,7 +48,7 @@ fun showAddPollDialog(
|
|||
options = poll?.options?.toMutableList() ?: mutableListOf("", ""),
|
||||
maxOptionLength = maxOptionLength,
|
||||
onOptionRemoved = { valid ->
|
||||
view.addChoiceButton.isEnabled = true
|
||||
binding.addChoiceButton.isEnabled = true
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = valid
|
||||
},
|
||||
onOptionChanged = { valid ->
|
||||
|
|
@ -56,9 +56,9 @@ fun showAddPollDialog(
|
|||
}
|
||||
)
|
||||
|
||||
view.pollChoices.adapter = adapter
|
||||
binding.pollChoices.adapter = adapter
|
||||
|
||||
view.addChoiceButton.setOnClickListener {
|
||||
binding.addChoiceButton.setOnClickListener {
|
||||
if (adapter.itemCount < maxOptionCount) {
|
||||
adapter.addChoice()
|
||||
}
|
||||
|
|
@ -71,14 +71,14 @@ fun showAddPollDialog(
|
|||
it <= poll?.expiresIn ?: 0
|
||||
}
|
||||
|
||||
view.pollDurationSpinner.setSelection(pollDurationId)
|
||||
binding.pollDurationSpinner.setSelection(pollDurationId)
|
||||
|
||||
view.multipleChoicesCheckBox.isChecked = poll?.multiple ?: false
|
||||
binding.multipleChoicesCheckBox.isChecked = poll?.multiple ?: false
|
||||
|
||||
dialog.setOnShowListener {
|
||||
val button = dialog.getButton(AlertDialog.BUTTON_POSITIVE)
|
||||
button.setOnClickListener {
|
||||
val selectedPollDurationId = view.pollDurationSpinner.selectedItemPosition
|
||||
val selectedPollDurationId = binding.pollDurationSpinner.selectedItemPosition
|
||||
|
||||
val pollDuration = context.resources
|
||||
.getIntArray(R.array.poll_duration_values)[selectedPollDurationId]
|
||||
|
|
@ -86,7 +86,7 @@ fun showAddPollDialog(
|
|||
onUpdatePoll(NewPoll(
|
||||
options = adapter.pollOptions,
|
||||
expiresIn = pollDuration,
|
||||
multiple = view.multipleChoicesCheckBox.isChecked
|
||||
multiple = binding.multipleChoicesCheckBox.isChecked
|
||||
))
|
||||
|
||||
dialog.dismiss()
|
||||
|
|
@ -97,5 +97,4 @@ fun showAddPollDialog(
|
|||
|
||||
// make the dialog focusable so the keyboard does not stay behind it
|
||||
dialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)
|
||||
|
||||
}
|
||||
|
|
@ -17,11 +17,12 @@ package com.keylesspalace.tusky.components.compose.view
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.LinearLayout
|
||||
import com.keylesspalace.tusky.R
|
||||
import com.keylesspalace.tusky.adapter.PreviewPollOptionsAdapter
|
||||
import com.keylesspalace.tusky.databinding.ViewPollPreviewBinding
|
||||
import com.keylesspalace.tusky.entity.NewPoll
|
||||
import kotlinx.android.synthetic.main.view_poll_preview.view.*
|
||||
|
||||
class PollPreviewView @JvmOverloads constructor(
|
||||
context: Context?,
|
||||
|
|
@ -29,11 +30,11 @@ class PollPreviewView @JvmOverloads constructor(
|
|||
defStyleAttr: Int = 0)
|
||||
: LinearLayout(context, attrs, defStyleAttr) {
|
||||
|
||||
val adapter = PreviewPollOptionsAdapter()
|
||||
private val adapter = PreviewPollOptionsAdapter()
|
||||
|
||||
private val binding = ViewPollPreviewBinding.inflate(LayoutInflater.from(context), this)
|
||||
|
||||
init {
|
||||
inflate(context, R.layout.view_poll_preview, this)
|
||||
|
||||
orientation = VERTICAL
|
||||
|
||||
setBackgroundResource(R.drawable.card_frame)
|
||||
|
|
@ -42,8 +43,7 @@ class PollPreviewView @JvmOverloads constructor(
|
|||
|
||||
setPadding(padding, padding, padding, padding)
|
||||
|
||||
pollPreviewOptions.adapter = adapter
|
||||
|
||||
binding.pollPreviewOptions.adapter = adapter
|
||||
}
|
||||
|
||||
fun setPoll(poll: NewPoll){
|
||||
|
|
@ -52,13 +52,11 @@ class PollPreviewView @JvmOverloads constructor(
|
|||
val pollDurationId = resources.getIntArray(R.array.poll_duration_values).indexOfLast {
|
||||
it <= poll.expiresIn
|
||||
}
|
||||
pollDurationPreview.text = resources.getStringArray(R.array.poll_duration_names)[pollDurationId]
|
||||
|
||||
binding.pollDurationPreview.text = resources.getStringArray(R.array.poll_duration_names)[pollDurationId]
|
||||
}
|
||||
|
||||
override fun setOnClickListener(l: OnClickListener?) {
|
||||
super.setOnClickListener(l)
|
||||
adapter.setOnClickListener(l)
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue