Fix incorrect back button color
This commit is contained in:
@@ -38,6 +38,7 @@ import android.support.v7.widget.DefaultItemAnimator
|
||||
import android.support.v7.widget.LinearLayoutManager
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import android.support.v7.widget.Toolbar
|
||||
import android.util.TypedValue
|
||||
import android.view.*
|
||||
import android.widget.ImageView
|
||||
import android.widget.Switch
|
||||
@@ -49,6 +50,7 @@ import com.github.shadowsocks.database.ProfileManager
|
||||
import com.github.shadowsocks.preference.DataStore
|
||||
import com.github.shadowsocks.utils.DirectBoot
|
||||
import com.github.shadowsocks.utils.Key
|
||||
import com.github.shadowsocks.utils.resolveResourceId
|
||||
import com.github.shadowsocks.utils.thread
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
||||
@@ -181,9 +183,7 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
|
||||
setContentView(R.layout.layout_apps)
|
||||
toolbar = findViewById(R.id.toolbar)
|
||||
toolbar.setTitle(R.string.proxied_apps)
|
||||
val arr = obtainStyledAttributes(intArrayOf(R.attr.homeAsUpIndicator))
|
||||
toolbar.navigationIcon = arr.getDrawable(0)
|
||||
arr.recycle()
|
||||
toolbar.setNavigationIcon(theme.resolveResourceId(R.attr.homeAsUpIndicator))
|
||||
toolbar.setNavigationOnClickListener {
|
||||
val intent = parentActivityIntent
|
||||
if (shouldUpRecreateTask(intent) || isTaskRoot)
|
||||
|
||||
@@ -32,6 +32,7 @@ import android.support.v7.widget.Toolbar
|
||||
import android.widget.Toast
|
||||
import com.github.shadowsocks.database.Profile
|
||||
import com.github.shadowsocks.database.ProfileManager
|
||||
import com.github.shadowsocks.utils.resolveResourceId
|
||||
import com.google.zxing.Result
|
||||
import me.dm7.barcodescanner.zxing.ZXingScannerView
|
||||
|
||||
@@ -54,9 +55,7 @@ class ScannerActivity : AppCompatActivity(), ZXingScannerView.ResultHandler {
|
||||
setContentView(R.layout.layout_scanner)
|
||||
val toolbar = findViewById<Toolbar>(R.id.toolbar)
|
||||
toolbar.title = title
|
||||
val arr = obtainStyledAttributes(intArrayOf(R.attr.homeAsUpIndicator))
|
||||
toolbar.navigationIcon = arr.getDrawable(0)
|
||||
arr.recycle()
|
||||
toolbar.setNavigationIcon(theme.resolveResourceId(R.attr.homeAsUpIndicator))
|
||||
toolbar.setNavigationOnClickListener { navigateUp() }
|
||||
scannerView = findViewById(R.id.scanner)
|
||||
if (Build.VERSION.SDK_INT >= 25) getSystemService(ShortcutManager::class.java).reportShortcutUsed("scan")
|
||||
|
||||
@@ -37,6 +37,7 @@ import android.widget.Switch
|
||||
import com.github.shadowsocks.R
|
||||
import com.github.shadowsocks.database.Profile
|
||||
import com.github.shadowsocks.database.ProfileManager
|
||||
import com.github.shadowsocks.utils.resolveResourceId
|
||||
|
||||
class ConfigActivity : AppCompatActivity() {
|
||||
inner class ProfileViewHolder(view: View) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||
@@ -44,9 +45,7 @@ class ConfigActivity : AppCompatActivity() {
|
||||
private val text = itemView.findViewById<CheckedTextView>(android.R.id.text1)
|
||||
|
||||
init {
|
||||
val typedArray = obtainStyledAttributes(intArrayOf(android.R.attr.selectableItemBackground))
|
||||
view.setBackgroundResource(typedArray.getResourceId(0, 0))
|
||||
typedArray.recycle()
|
||||
view.setBackgroundResource(theme.resolveResourceId(android.R.attr.selectableItemBackground))
|
||||
itemView.setOnClickListener(this)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,13 @@ package com.github.shadowsocks.utils
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.Resources
|
||||
import android.os.Build
|
||||
import android.support.annotation.AttrRes
|
||||
import android.support.v4.app.Fragment
|
||||
import android.support.v4.app.FragmentManager
|
||||
import android.support.v7.util.SortedList
|
||||
import android.util.TypedValue
|
||||
import com.github.shadowsocks.App.Companion.app
|
||||
import java.lang.reflect.InvocationTargetException
|
||||
import java.net.InetAddress
|
||||
@@ -64,6 +67,15 @@ var Fragment.childFragManager: FragmentManager?
|
||||
get() = childFragmentManager
|
||||
set(value) = fieldChildFragmentManager.set(this, value)
|
||||
|
||||
/**
|
||||
* Based on: https://stackoverflow.com/a/26348729/2245107
|
||||
*/
|
||||
fun Resources.Theme.resolveResourceId(@AttrRes resId: Int): Int {
|
||||
val typedValue = TypedValue()
|
||||
if (!resolveAttribute(resId, typedValue, true)) throw Resources.NotFoundException()
|
||||
return typedValue.resourceId
|
||||
}
|
||||
|
||||
private class SortedListIterable<out T>(private val list: SortedList<T>) : Iterable<T> {
|
||||
override fun iterator(): Iterator<T> = SortedListIterator(list)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user