Misc refinements

* Refine Kotlin codes;
* Support RTL;
* Use VectorDrawable for notification;
* Remove redundant resources;
* Better IDE integration.
This commit is contained in:
Mygod
2017-12-06 19:46:26 -08:00
parent f49d3cb443
commit c124e1e8ef
34 changed files with 151 additions and 132 deletions
@@ -28,6 +28,7 @@ import com.github.shadowsocks.utils.Key
import com.github.shadowsocks.utils.parsePort
import java.util.*
@Suppress("MemberVisibilityCanPrivate", "unused")
object DataStore : PreferenceDataStore() {
fun getBoolean(key: String?) = DBHelper.kvPairDao.queryForId(key)?.boolean
fun getFloat(key: String?) = DBHelper.kvPairDao.queryForId(key)?.float
@@ -22,7 +22,6 @@ package com.github.shadowsocks.preference
import android.content.Context
import android.graphics.drawable.Drawable
import android.preference.Preference.OnPreferenceChangeListener
import android.support.v7.preference.ListPreference
import android.util.AttributeSet
@@ -43,19 +42,19 @@ class IconListPreference(context: Context, attrs: AttributeSet? = null) : ListPr
var unknownValueSummary: String? = null
var entryPackageNames: Array<String>? = null
var listener: OnPreferenceChangeListener? = null
private var listener: OnPreferenceChangeListener? = null
override fun getOnPreferenceChangeListener(): OnPreferenceChangeListener? = listener
override fun setOnPreferenceChangeListener(listener: OnPreferenceChangeListener?) {
this.listener = listener
}
init {
super.setOnPreferenceChangeListener(OnPreferenceChangeListener { preference, newValue ->
super.setOnPreferenceChangeListener({ preference, newValue ->
val listener = listener
if (listener == null || listener.onPreferenceChange(preference, newValue)) {
setValue(newValue.toString())
value = newValue.toString()
checkSummary()
if (entryIcons != null) setIcon(entryIcon)
if (entryIcons != null) icon = entryIcon
true
} else false
})
@@ -70,7 +69,9 @@ class IconListPreference(context: Context, attrs: AttributeSet? = null) : ListPr
if (unknownValueSummary != null) summary = if (selectedEntry < 0) unknownValueSummary.format(value) else "%s"
}
fun init() = setIcon(entryIcon)
fun init() {
icon = entryIcon
}
override fun onSetInitialValue(restoreValue: Boolean, defaultValue: Any?) {
super.onSetInitialValue(restoreValue, defaultValue)
init()