Commit b3f25710 authored by Mygod's avatar Mygod

Fix deprecation of kotlin extensions

parent 76008532
...@@ -4,8 +4,8 @@ plugins { ...@@ -4,8 +4,8 @@ plugins {
id("com.android.library") id("com.android.library")
id("org.mozilla.rust-android-gradle.rust-android") id("org.mozilla.rust-android-gradle.rust-android")
kotlin("android") kotlin("android")
kotlin("android.extensions")
kotlin("kapt") kotlin("kapt")
id("kotlin-parcelize")
} }
setupCore() setupCore()
......
...@@ -32,7 +32,7 @@ import com.github.shadowsocks.database.ProfileManager ...@@ -32,7 +32,7 @@ import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.plugin.AlertDialogFragment import com.github.shadowsocks.plugin.AlertDialogFragment
import com.github.shadowsocks.plugin.Empty import com.github.shadowsocks.plugin.Empty
import com.github.shadowsocks.plugin.showAllowingStateLoss import com.github.shadowsocks.plugin.showAllowingStateLoss
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
class UrlImportActivity : AppCompatActivity() { class UrlImportActivity : AppCompatActivity() {
@Parcelize @Parcelize
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
package com.github.shadowsocks.aidl package com.github.shadowsocks.aidl
import android.os.Parcelable import android.os.Parcelable
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
@Parcelize @Parcelize
data class TrafficStats( data class TrafficStats(
......
...@@ -36,7 +36,7 @@ import com.google.gson.JsonArray ...@@ -36,7 +36,7 @@ import com.google.gson.JsonArray
import com.google.gson.JsonElement import com.google.gson.JsonElement
import com.google.gson.JsonObject import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive import com.google.gson.JsonPrimitive
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import timber.log.Timber import timber.log.Timber
......
...@@ -4,7 +4,7 @@ plugins { ...@@ -4,7 +4,7 @@ plugins {
id("com.google.gms.google-services") id("com.google.gms.google-services")
id("com.google.firebase.crashlytics") id("com.google.firebase.crashlytics")
kotlin("android") kotlin("android")
kotlin("android.extensions") id("kotlin-parcelize")
} }
setupApp() setupApp()
......
...@@ -33,11 +33,10 @@ import android.graphics.drawable.Drawable ...@@ -33,11 +33,10 @@ import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.util.SparseBooleanArray import android.util.SparseBooleanArray
import android.view.* import android.view.*
import android.widget.Filter import android.widget.*
import android.widget.Filterable
import android.widget.SearchView
import androidx.annotation.UiThread import androidx.annotation.UiThread
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.util.set import androidx.core.util.set
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
...@@ -52,8 +51,6 @@ import com.github.shadowsocks.utils.listenForPackageChanges ...@@ -52,8 +51,6 @@ import com.github.shadowsocks.utils.listenForPackageChanges
import com.github.shadowsocks.widget.ListHolderListener import com.github.shadowsocks.widget.ListHolderListener
import com.github.shadowsocks.widget.ListListener import com.github.shadowsocks.widget.ListListener
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.layout_apps.*
import kotlinx.android.synthetic.main.layout_apps_item.view.*
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.ensureActive import kotlinx.coroutines.ensureActive
...@@ -110,14 +107,14 @@ class AppManager : AppCompatActivity() { ...@@ -110,14 +107,14 @@ class AppManager : AppCompatActivity() {
fun bind(app: ProxiedApp) { fun bind(app: ProxiedApp) {
item = app item = app
itemView.itemicon.setImageDrawable(app.icon) itemView.findViewById<ImageView>(R.id.itemicon).setImageDrawable(app.icon)
itemView.title.text = app.name itemView.findViewById<TextView>(R.id.title).text = app.name
itemView.desc.text = "${app.packageName} (${app.uid})" itemView.findViewById<TextView>(R.id.desc).text = "${app.packageName} (${app.uid})"
itemView.itemcheck.isChecked = isProxiedApp(app) itemView.findViewById<Switch>(R.id.itemcheck).isChecked = isProxiedApp(app)
} }
fun handlePayload(payloads: List<String>) { fun handlePayload(payloads: List<String>) {
if (payloads.contains(SWITCH)) itemView.itemcheck.isChecked = isProxiedApp(item) if (payloads.contains(SWITCH)) itemView.findViewById<Switch>(R.id.itemcheck).isChecked = isProxiedApp(item)
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {
...@@ -175,6 +172,11 @@ class AppManager : AppCompatActivity() { ...@@ -175,6 +172,11 @@ class AppManager : AppCompatActivity() {
override fun getPopupText(position: Int) = filteredApps[position].name.firstOrNull()?.toString() ?: "" override fun getPopupText(position: Int) = filteredApps[position].name.firstOrNull()?.toString() ?: ""
} }
private val loading by lazy { findViewById<View>(R.id.loading) }
private lateinit var toolbar: Toolbar
private lateinit var bypassGroup: RadioGroup
private lateinit var list: RecyclerView
private lateinit var search: SearchView
private val proxiedUids = SparseBooleanArray() private val proxiedUids = SparseBooleanArray()
private var loader: Job? = null private var loader: Job? = null
private var apps = emptyList<ProxiedApp>() private var apps = emptyList<ProxiedApp>()
...@@ -219,6 +221,7 @@ class AppManager : AppCompatActivity() { ...@@ -219,6 +221,7 @@ class AppManager : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.layout_apps) setContentView(R.layout.layout_apps)
ListHolderListener.setup(this) ListHolderListener.setup(this)
toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true) supportActionBar!!.setDisplayHomeAsUpEnabled(true)
...@@ -227,6 +230,7 @@ class AppManager : AppCompatActivity() { ...@@ -227,6 +230,7 @@ class AppManager : AppCompatActivity() {
DataStore.dirty = true DataStore.dirty = true
} }
bypassGroup = findViewById(R.id.bypassGroup)
bypassGroup.check(if (DataStore.bypass) R.id.btn_bypass else R.id.btn_on) bypassGroup.check(if (DataStore.bypass) R.id.btn_bypass else R.id.btn_on)
bypassGroup.setOnCheckedChangeListener { _, checkedId -> bypassGroup.setOnCheckedChangeListener { _, checkedId ->
DataStore.dirty = true DataStore.dirty = true
...@@ -241,12 +245,14 @@ class AppManager : AppCompatActivity() { ...@@ -241,12 +245,14 @@ class AppManager : AppCompatActivity() {
} }
initProxiedUids() initProxiedUids()
list = findViewById(R.id.list)
ViewCompat.setOnApplyWindowInsetsListener(list, ListListener) ViewCompat.setOnApplyWindowInsetsListener(list, ListListener)
list.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) list.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false)
list.itemAnimator = DefaultItemAnimator() list.itemAnimator = DefaultItemAnimator()
list.adapter = appsAdapter list.adapter = appsAdapter
FastScrollerBuilder(list).useMd2Style().build() FastScrollerBuilder(list).useMd2Style().build()
search = findViewById(R.id.search)
search.setOnQueryTextListener(object : SearchView.OnQueryTextListener { search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?) = false override fun onQueryTextSubmit(query: String?) = false
override fun onQueryTextChange(newText: String?) = true.also { appsAdapter.filter.filter(newText) } override fun onQueryTextChange(newText: String?) = true.also { appsAdapter.filter.filter(newText) }
......
...@@ -45,9 +45,9 @@ import com.github.shadowsocks.preference.* ...@@ -45,9 +45,9 @@ import com.github.shadowsocks.preference.*
import com.github.shadowsocks.utils.* import com.github.shadowsocks.utils.*
import com.github.shadowsocks.widget.ListListener import com.github.shadowsocks.widget.ListListener
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import kotlinx.android.parcel.Parcelize
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.parcelize.Parcelize
class ProfileConfigFragment : PreferenceFragmentCompat(), class ProfileConfigFragment : PreferenceFragmentCompat(),
Preference.OnPreferenceChangeListener, OnPreferenceDataStoreChangeListener { Preference.OnPreferenceChangeListener, OnPreferenceDataStoreChangeListener {
......
...@@ -54,7 +54,7 @@ import com.github.shadowsocks.widget.ListHolderListener ...@@ -54,7 +54,7 @@ import com.github.shadowsocks.widget.ListHolderListener
import com.github.shadowsocks.widget.MainListListener import com.github.shadowsocks.widget.MainListListener
import com.github.shadowsocks.widget.UndoSnackbarManager import com.github.shadowsocks.widget.UndoSnackbarManager
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
import timber.log.Timber import timber.log.Timber
import java.net.IDN import java.net.IDN
......
...@@ -47,7 +47,7 @@ import com.github.shadowsocks.widget.ListHolderListener ...@@ -47,7 +47,7 @@ import com.github.shadowsocks.widget.ListHolderListener
import com.github.shadowsocks.widget.MainListListener import com.github.shadowsocks.widget.MainListListener
import com.github.shadowsocks.widget.UndoSnackbarManager import com.github.shadowsocks.widget.UndoSnackbarManager
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
import me.zhanghai.android.fastscroll.FastScrollerBuilder import me.zhanghai.android.fastscroll.FastScrollerBuilder
import java.net.MalformedURLException import java.net.MalformedURLException
import java.net.URL import java.net.URL
......
...@@ -2,7 +2,7 @@ plugins { ...@@ -2,7 +2,7 @@ plugins {
id("com.android.library") id("com.android.library")
id("com.vanniktech.maven.publish") id("com.vanniktech.maven.publish")
kotlin("android") kotlin("android")
kotlin("android.extensions") id("kotlin-parcelize")
} }
setupCommon() setupCommon()
......
...@@ -25,7 +25,7 @@ package com.github.shadowsocks.plugin ...@@ -25,7 +25,7 @@ package com.github.shadowsocks.plugin
import android.os.Parcelable import android.os.Parcelable
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import kotlinx.android.parcel.Parcelize import kotlinx.parcelize.Parcelize
@Parcelize @Parcelize
class Empty : Parcelable class Empty : Parcelable
......
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