feat(channelGroups): disable confirm button if creation is not possible

This commit is contained in:
FineFindus 2023-08-19 13:47:57 +02:00
parent ab9e543291
commit 7f72a3eaeb
No known key found for this signature in database
GPG Key ID: 64873EE210FF8E6B
2 changed files with 22 additions and 0 deletions

View File

@ -9,6 +9,7 @@ import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.github.libretube.R
import com.github.libretube.api.SubscriptionHelper
import com.github.libretube.api.obj.Subscription
import com.github.libretube.databinding.DialogEditChannelGroupBinding
@ -38,6 +39,10 @@ class EditChannelGroupSheet(
binding.channelsRV.layoutManager = LinearLayoutManager(context)
fetchSubscriptions()
binding.groupName.addTextChangedListener {
updateConfirmStatus()
}
binding.searchInput.addTextChangedListener {
showChannels(channels, it?.toString())
}
@ -46,6 +51,7 @@ class EditChannelGroupSheet(
dismiss()
}
updateConfirmStatus()
binding.confirm.setOnClickListener {
group.name = binding.groupName.text.toString()
if (group.name.isBlank()) return@setOnClickListener
@ -78,8 +84,23 @@ class EditChannelGroupSheet(
group
) {
group = it
updateConfirmStatus()
}
binding.subscriptionsContainer.isVisible = true
binding.progress.isVisible = false
}
private fun updateConfirmStatus() {
with(binding) {
val isGroupNameBlank = groupName.text?.isBlank() == true
groupName.error = if (isGroupNameBlank) {
requireContext().getString(R.string.group_name_error)
} else {
null
}
confirm.isEnabled = !isGroupNameBlank && group.channels.isNotEmpty()
}
}
}

View File

@ -406,6 +406,7 @@
<string name="channel_groups">Channel groups</string>
<string name="new_group">New</string>
<string name="group_name">Group name</string>
<string name="group_name_error">Please enter a name</string>
<string name="edit_group">Edit group</string>
<string name="play_automatically">Play automatically</string>
<string name="play_automatically_summary">Start playing video automatically when selecting</string>