Skip to content

Commit

Permalink
Add no feed found message in RSS downloader
Browse files Browse the repository at this point in the history
  • Loading branch information
Bartuzen committed Jan 23, 2025
1 parent 1f19e2c commit b9f45d0
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,26 @@ import android.view.View
import androidx.core.os.bundleOf
import androidx.core.view.MenuProvider
import androidx.core.view.children
import androidx.core.view.setPadding
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import by.kirich1409.viewbindingdelegate.viewBinding
import com.google.android.material.checkbox.MaterialCheckBox
import com.google.android.material.textview.MaterialTextView
import dagger.hilt.android.AndroidEntryPoint
import dev.bartuzen.qbitcontroller.R
import dev.bartuzen.qbitcontroller.databinding.FragmentEditRssRuleBinding
import dev.bartuzen.qbitcontroller.model.RssRule
import dev.bartuzen.qbitcontroller.utils.applySystemBarInsets
import dev.bartuzen.qbitcontroller.utils.getColorCompat
import dev.bartuzen.qbitcontroller.utils.getErrorMessage
import dev.bartuzen.qbitcontroller.utils.launchAndCollectIn
import dev.bartuzen.qbitcontroller.utils.launchAndCollectLatestIn
import dev.bartuzen.qbitcontroller.utils.requireAppCompatActivity
import dev.bartuzen.qbitcontroller.utils.showSnackbar
import dev.bartuzen.qbitcontroller.utils.text
import dev.bartuzen.qbitcontroller.utils.toPx
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.filterNotNull
Expand Down Expand Up @@ -163,12 +167,21 @@ class EditRssRuleFragment() : Fragment(R.layout.fragment_edit_rss_rule) {
binding.dropdownCategory.setPosition(categoryOptions.indexOf(rssRule.assignedCategory))

binding.layoutFeeds.removeAllViews()
feeds.forEach { (name, url) ->
val checkbox = MaterialCheckBox(requireContext()).apply {
isChecked = rssRule.affectedFeeds.contains(url)
text = name
if (feeds.isNotEmpty()) {
feeds.forEach { (name, url) ->
val checkbox = MaterialCheckBox(requireContext()).apply {
isChecked = rssRule.affectedFeeds.contains(url)
text = name
}
binding.layoutFeeds.addView(checkbox)
}
} else {
val textView = MaterialTextView(requireContext()).apply {
setText(R.string.rss_rule_no_feed_found)
setTextColor(requireContext().getColorCompat(R.color.md_theme_error))
setPadding(8.toPx(requireContext()))
}
binding.layoutFeeds.addView(checkbox)
binding.layoutFeeds.addView(textView)
}

job?.cancel()
Expand All @@ -177,12 +190,22 @@ class EditRssRuleFragment() : Fragment(R.layout.fragment_edit_rss_rule) {
val selectedFeeds = savedInstanceState?.getStringArrayList("selectedFeeds")
if (selectedFeeds != null) {
binding.layoutFeeds.removeAllViews()
viewModel.feeds.value?.forEach { (name, url) ->
val checkbox = MaterialCheckBox(requireContext()).apply {
isChecked = selectedFeeds.contains(url)
text = name
val feeds = viewModel.feeds.value
if (feeds?.isNotEmpty() == true) {
feeds.forEach { (name, url) ->
val checkbox = MaterialCheckBox(requireContext()).apply {
isChecked = selectedFeeds.contains(url)
text = name
}
binding.layoutFeeds.addView(checkbox)
}
} else {
val textView = MaterialTextView(requireContext()).apply {
setText(R.string.rss_rule_no_feed_found)
setTextColor(requireContext().getColorCompat(R.color.md_theme_error))
setPadding(8.toPx(requireContext()))
}
binding.layoutFeeds.addView(checkbox)
binding.layoutFeeds.addView(textView)
}
}

Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,7 @@
<string name="rss_rule_add_paused_never">Never</string>
<string name="rss_rule_torrent_content_layout">Torrent Content Layout</string>
<string name="rss_rule_apply_rule_to_feeds">Apply Rule to Feeds</string>
<string name="rss_rule_no_feed_found">No feed found</string>
<string name="rss_rule_use_global_settings">Use Global Settings</string>
<string name="rss_rule_action_save">Save Rule</string>
<string name="rss_rule_saved_successfully">Rule saved successfully.</string>
Expand Down

0 comments on commit b9f45d0

Please sign in to comment.