Make source options dialog into a controller to retain state
(cherry picked from commit 01a837fde62ba7d738b703ffde3e12fb79fa6bc4) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt
This commit is contained in:
parent
3920a5a73b
commit
987e5bcf33
@ -1,6 +1,7 @@
|
|||||||
package eu.kanade.tachiyomi.ui.browse.source
|
package eu.kanade.tachiyomi.ui.browse.source
|
||||||
|
|
||||||
import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
@ -25,6 +26,7 @@ import eu.kanade.tachiyomi.databinding.SourceMainControllerBinding
|
|||||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||||
import eu.kanade.tachiyomi.source.LocalSource
|
import eu.kanade.tachiyomi.source.LocalSource
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe
|
import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||||
@ -176,7 +178,12 @@ class SourceController(bundle: Bundle? = null) :
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
if (item.source !is LocalSource) {
|
if (item.source !is LocalSource) {
|
||||||
items.add(Pair(activity.getString(R.string.action_disable), { disableSource(item.source) }))
|
items.add(
|
||||||
|
Pair(
|
||||||
|
activity.getString(R.string.action_disable),
|
||||||
|
{ disableSource(item.source) }
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
@ -199,16 +206,7 @@ class SourceController(bundle: Bundle? = null) :
|
|||||||
)
|
)
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
MaterialDialog(activity)
|
SourceOptionsDialog(item, items).showDialog(router)
|
||||||
.title(text = item.source.toString())
|
|
||||||
.listItems(
|
|
||||||
items = items.map { it.first },
|
|
||||||
waitForPositiveButton = false
|
|
||||||
) { dialog, which, _ ->
|
|
||||||
items[which].second()
|
|
||||||
dialog.dismiss()
|
|
||||||
}
|
|
||||||
.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun disableSource(source: Source) {
|
private fun disableSource(source: Source) {
|
||||||
@ -395,6 +393,29 @@ class SourceController(bundle: Bundle? = null) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SourceOptionsDialog(bundle: Bundle? = null) : DialogController(bundle) {
|
||||||
|
|
||||||
|
private lateinit var item: SourceItem
|
||||||
|
private lateinit var items: List<Pair<String, () -> Unit>>
|
||||||
|
|
||||||
|
constructor(item: SourceItem, items: List<Pair<String, () -> Unit>>) : this() {
|
||||||
|
this.item = item
|
||||||
|
this.items = items
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||||
|
return MaterialDialog(activity!!)
|
||||||
|
.title(text = item.source.toString())
|
||||||
|
.listItems(
|
||||||
|
items = items.map { it.first },
|
||||||
|
waitForPositiveButton = false
|
||||||
|
) { dialog, which, _ ->
|
||||||
|
items[which].second()
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class SmartSearchConfig(val origTitle: String, val origMangaId: Long? = null) : Parcelable
|
data class SmartSearchConfig(val origTitle: String, val origMangaId: Long? = null) : Parcelable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user