|
|
|
@ -146,6 +146,8 @@ class RssSourceActivity : VMBaseActivity<ActivityRssSourceBinding, RssSourceView |
|
|
|
|
when (item?.itemId) { |
|
|
|
|
R.id.menu_enable_selection -> viewModel.enableSelection(adapter.selection) |
|
|
|
|
R.id.menu_disable_selection -> viewModel.disableSelection(adapter.selection) |
|
|
|
|
R.id.menu_add_group -> selectionAddToGroups() |
|
|
|
|
R.id.menu_remove_group -> selectionRemoveFromGroups() |
|
|
|
|
R.id.menu_top_sel -> viewModel.topSource(*adapter.selection.toTypedArray()) |
|
|
|
|
R.id.menu_bottom_sel -> viewModel.bottomSource(*adapter.selection.toTypedArray()) |
|
|
|
|
R.id.menu_export_selection -> viewModel.saveToFile(adapter.selection) { file -> |
|
|
|
@ -154,6 +156,7 @@ class RssSourceActivity : VMBaseActivity<ActivityRssSourceBinding, RssSourceView |
|
|
|
|
fileData = Triple("exportRssSource.json", file, "application/json") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
R.id.menu_share_source -> viewModel.saveToFile(adapter.selection) { |
|
|
|
|
share(it) |
|
|
|
|
} |
|
|
|
@ -213,6 +216,46 @@ class RssSourceActivity : VMBaseActivity<ActivityRssSourceBinding, RssSourceView |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressLint("InflateParams") |
|
|
|
|
private fun selectionAddToGroups() { |
|
|
|
|
alert(titleResource = R.string.add_group) { |
|
|
|
|
val alertBinding = DialogEditTextBinding.inflate(layoutInflater).apply { |
|
|
|
|
editView.setHint(R.string.group_name) |
|
|
|
|
editView.setFilterValues(groups.toList()) |
|
|
|
|
editView.dropDownHeight = 180.dpToPx() |
|
|
|
|
} |
|
|
|
|
customView { alertBinding.root } |
|
|
|
|
okButton { |
|
|
|
|
alertBinding.editView.text?.toString()?.let { |
|
|
|
|
if (it.isNotEmpty()) { |
|
|
|
|
viewModel.selectionAddToGroups(adapter.selection, it) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
cancelButton() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressLint("InflateParams") |
|
|
|
|
private fun selectionRemoveFromGroups() { |
|
|
|
|
alert(titleResource = R.string.remove_group) { |
|
|
|
|
val alertBinding = DialogEditTextBinding.inflate(layoutInflater).apply { |
|
|
|
|
editView.setHint(R.string.group_name) |
|
|
|
|
editView.setFilterValues(groups.toList()) |
|
|
|
|
editView.dropDownHeight = 180.dpToPx() |
|
|
|
|
} |
|
|
|
|
customView { alertBinding.root } |
|
|
|
|
okButton { |
|
|
|
|
alertBinding.editView.text?.toString()?.let { |
|
|
|
|
if (it.isNotEmpty()) { |
|
|
|
|
viewModel.selectionRemoveFromGroups(adapter.selection, it) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
cancelButton() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun selectAll(selectAll: Boolean) { |
|
|
|
|
if (selectAll) { |
|
|
|
|
adapter.selectAll() |
|
|
|
|