Add icons for settings

This commit is contained in:
len
2016-07-02 22:14:04 +02:00
parent 5fe1799dab
commit e198f7e671
8 changed files with 85 additions and 0 deletions

View File

@ -229,6 +229,7 @@ class CataloguePresenter : BasePresenter<CatalogueFragment>() {
source.fetchSearchManga(nextMangasPage, query)
return observable.subscribeOn(Schedulers.io())
.doOnNext { if (it.mangas.isEmpty()) throw Exception("Empty page") }
.doOnNext { lastMangasPage = it }
.flatMap { Observable.from(it.mangas) }
.map { networkToLocalManga(it) }

View File

@ -2,10 +2,14 @@ package eu.kanade.tachiyomi.ui.setting
import android.os.Bundle
import android.support.annotation.CallSuper
import android.support.graphics.drawable.VectorDrawableCompat
import android.support.v4.content.ContextCompat
import android.support.v7.preference.XpPreferenceFragment
import android.view.View
import eu.kanade.tachiyomi.R
import net.xpece.android.support.preference.PreferenceIconHelper
import net.xpece.android.support.preference.PreferenceScreenNavigationStrategy
import net.xpece.android.support.preference.Util
import rx.subscriptions.CompositeSubscription
open class SettingsFragment : XpPreferenceFragment() {
@ -20,6 +24,10 @@ open class SettingsFragment : XpPreferenceFragment() {
lateinit var subscriptions: CompositeSubscription
private val iconTint by lazy { ContextCompat.getColorStateList(
context, Util.resolveResourceId(context, R.attr.colorAccent, 0))
}
override final fun onCreatePreferences2(savedState: Bundle?, rootKey: String?) {
subscriptions = CompositeSubscription()
@ -31,6 +39,18 @@ open class SettingsFragment : XpPreferenceFragment() {
addPreferencesFromResource(R.xml.pref_advanced)
addPreferencesFromResource(R.xml.pref_about)
// Add an icon to each subscreen
for ((screen, drawable) in getSubscreenIcons()) {
val icon = VectorDrawableCompat.create(resources, drawable, context.theme) ?: continue
PreferenceIconHelper(findPreference(screen)).apply {
isIconPaddingEnabled = true
setIcon(icon)
tintList = iconTint
isIconTintEnabled = true
}
}
// Setup root preference title.
preferenceScreen.title = activity.title
@ -52,4 +72,14 @@ open class SettingsFragment : XpPreferenceFragment() {
super.onDestroyView()
}
private fun getSubscreenIcons() = listOf(
"general_screen" to R.drawable.ic_tune_black_24dp,
"reader_screen" to R.drawable.ic_chrome_reader_mode_black_24dp,
"downloads_screen" to R.drawable.ic_file_download_black_24dp,
"sources_screen" to R.drawable.ic_language_black_24dp,
"sync_screen" to R.drawable.ic_sync_black_24dp,
"advanced_screen" to R.drawable.ic_code_black_24dp,
"about_screen" to R.drawable.ic_help_black_24dp
)
}