Commit 5c252a28 authored by Mygod's avatar Mygod

Fix incorrect back button color

parent 8ee93312
...@@ -38,6 +38,7 @@ import android.support.v7.widget.DefaultItemAnimator ...@@ -38,6 +38,7 @@ import android.support.v7.widget.DefaultItemAnimator
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
import android.support.v7.widget.Toolbar import android.support.v7.widget.Toolbar
import android.util.TypedValue
import android.view.* import android.view.*
import android.widget.ImageView import android.widget.ImageView
import android.widget.Switch import android.widget.Switch
...@@ -49,6 +50,7 @@ import com.github.shadowsocks.database.ProfileManager ...@@ -49,6 +50,7 @@ import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.preference.DataStore import com.github.shadowsocks.preference.DataStore
import com.github.shadowsocks.utils.DirectBoot import com.github.shadowsocks.utils.DirectBoot
import com.github.shadowsocks.utils.Key import com.github.shadowsocks.utils.Key
import com.github.shadowsocks.utils.resolveResourceId
import com.github.shadowsocks.utils.thread import com.github.shadowsocks.utils.thread
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
...@@ -181,9 +183,7 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener { ...@@ -181,9 +183,7 @@ class AppManager : AppCompatActivity(), Toolbar.OnMenuItemClickListener {
setContentView(R.layout.layout_apps) setContentView(R.layout.layout_apps)
toolbar = findViewById(R.id.toolbar) toolbar = findViewById(R.id.toolbar)
toolbar.setTitle(R.string.proxied_apps) toolbar.setTitle(R.string.proxied_apps)
val arr = obtainStyledAttributes(intArrayOf(R.attr.homeAsUpIndicator)) toolbar.setNavigationIcon(theme.resolveResourceId(R.attr.homeAsUpIndicator))
toolbar.navigationIcon = arr.getDrawable(0)
arr.recycle()
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
val intent = parentActivityIntent val intent = parentActivityIntent
if (shouldUpRecreateTask(intent) || isTaskRoot) if (shouldUpRecreateTask(intent) || isTaskRoot)
......
...@@ -32,6 +32,7 @@ import android.support.v7.widget.Toolbar ...@@ -32,6 +32,7 @@ import android.support.v7.widget.Toolbar
import android.widget.Toast import android.widget.Toast
import com.github.shadowsocks.database.Profile import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.database.ProfileManager import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.utils.resolveResourceId
import com.google.zxing.Result import com.google.zxing.Result
import me.dm7.barcodescanner.zxing.ZXingScannerView import me.dm7.barcodescanner.zxing.ZXingScannerView
...@@ -54,9 +55,7 @@ class ScannerActivity : AppCompatActivity(), ZXingScannerView.ResultHandler { ...@@ -54,9 +55,7 @@ class ScannerActivity : AppCompatActivity(), ZXingScannerView.ResultHandler {
setContentView(R.layout.layout_scanner) setContentView(R.layout.layout_scanner)
val toolbar = findViewById<Toolbar>(R.id.toolbar) val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.title = title toolbar.title = title
val arr = obtainStyledAttributes(intArrayOf(R.attr.homeAsUpIndicator)) toolbar.setNavigationIcon(theme.resolveResourceId(R.attr.homeAsUpIndicator))
toolbar.navigationIcon = arr.getDrawable(0)
arr.recycle()
toolbar.setNavigationOnClickListener { navigateUp() } toolbar.setNavigationOnClickListener { navigateUp() }
scannerView = findViewById(R.id.scanner) scannerView = findViewById(R.id.scanner)
if (Build.VERSION.SDK_INT >= 25) getSystemService(ShortcutManager::class.java).reportShortcutUsed("scan") if (Build.VERSION.SDK_INT >= 25) getSystemService(ShortcutManager::class.java).reportShortcutUsed("scan")
......
...@@ -37,6 +37,7 @@ import android.widget.Switch ...@@ -37,6 +37,7 @@ import android.widget.Switch
import com.github.shadowsocks.R import com.github.shadowsocks.R
import com.github.shadowsocks.database.Profile import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.database.ProfileManager import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.utils.resolveResourceId
class ConfigActivity : AppCompatActivity() { class ConfigActivity : AppCompatActivity() {
inner class ProfileViewHolder(view: View) : RecyclerView.ViewHolder(view), View.OnClickListener { inner class ProfileViewHolder(view: View) : RecyclerView.ViewHolder(view), View.OnClickListener {
...@@ -44,9 +45,7 @@ class ConfigActivity : AppCompatActivity() { ...@@ -44,9 +45,7 @@ class ConfigActivity : AppCompatActivity() {
private val text = itemView.findViewById<CheckedTextView>(android.R.id.text1) private val text = itemView.findViewById<CheckedTextView>(android.R.id.text1)
init { init {
val typedArray = obtainStyledAttributes(intArrayOf(android.R.attr.selectableItemBackground)) view.setBackgroundResource(theme.resolveResourceId(android.R.attr.selectableItemBackground))
view.setBackgroundResource(typedArray.getResourceId(0, 0))
typedArray.recycle()
itemView.setOnClickListener(this) itemView.setOnClickListener(this)
} }
......
...@@ -3,10 +3,13 @@ package com.github.shadowsocks.utils ...@@ -3,10 +3,13 @@ package com.github.shadowsocks.utils
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Resources
import android.os.Build import android.os.Build
import android.support.annotation.AttrRes
import android.support.v4.app.Fragment import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager import android.support.v4.app.FragmentManager
import android.support.v7.util.SortedList import android.support.v7.util.SortedList
import android.util.TypedValue
import com.github.shadowsocks.App.Companion.app import com.github.shadowsocks.App.Companion.app
import java.lang.reflect.InvocationTargetException import java.lang.reflect.InvocationTargetException
import java.net.InetAddress import java.net.InetAddress
...@@ -64,6 +67,15 @@ var Fragment.childFragManager: FragmentManager? ...@@ -64,6 +67,15 @@ var Fragment.childFragManager: FragmentManager?
get() = childFragmentManager get() = childFragmentManager
set(value) = fieldChildFragmentManager.set(this, value) 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> { private class SortedListIterable<out T>(private val list: SortedList<T>) : Iterable<T> {
override fun iterator(): Iterator<T> = SortedListIterator(list) override fun iterator(): Iterator<T> = SortedListIterator(list)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment