Unverified Commit b61e3d3b authored by Mygod's avatar Mygod Committed by GitHub

Migrate to @zhanghai's AndroidFastScroll (#2382)

parent 09e2948d
...@@ -68,6 +68,7 @@ dependencies { ...@@ -68,6 +68,7 @@ dependencies {
implementation 'com.google.zxing:core:3.4.0' implementation 'com.google.zxing:core:3.4.0'
implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0' implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0'
implementation 'com.twofortyfouram:android-plugin-api-for-locale:1.0.4' implementation 'com.twofortyfouram:android-plugin-api-for-locale:1.0.4'
implementation 'me.zhanghai.android.fastscroll:library:1.1.0'
implementation 'xyz.belvi.mobilevision:barcodescanner:2.0.3' implementation 'xyz.belvi.mobilevision:barcodescanner:2.0.3'
testImplementation "junit:junit:$junitVersion" testImplementation "junit:junit:$junitVersion"
androidTestImplementation "androidx.test:runner:$androidTestVersion" androidTestImplementation "androidx.test:runner:$androidTestVersion"
......
...@@ -59,6 +59,8 @@ import com.google.android.material.snackbar.Snackbar ...@@ -59,6 +59,8 @@ import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.layout_apps.* import kotlinx.android.synthetic.main.layout_apps.*
import kotlinx.android.synthetic.main.layout_apps_item.view.* import kotlinx.android.synthetic.main.layout_apps_item.view.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
import me.zhanghai.android.fastscroll.FastScrollerBuilder
import me.zhanghai.android.fastscroll.PopupTextProvider
import kotlin.coroutines.coroutineContext import kotlin.coroutines.coroutineContext
class AppManager : AppCompatActivity() { class AppManager : AppCompatActivity() {
...@@ -128,7 +130,7 @@ class AppManager : AppCompatActivity() { ...@@ -128,7 +130,7 @@ class AppManager : AppCompatActivity() {
} }
} }
private inner class AppsAdapter : RecyclerView.Adapter<AppViewHolder>(), Filterable { private inner class AppsAdapter : RecyclerView.Adapter<AppViewHolder>(), Filterable, PopupTextProvider {
private var filteredApps = apps private var filteredApps = apps
suspend fun reload() { suspend fun reload() {
...@@ -170,6 +172,8 @@ class AppManager : AppCompatActivity() { ...@@ -170,6 +172,8 @@ class AppManager : AppCompatActivity() {
} }
} }
override fun getFilter(): Filter = filterImpl override fun getFilter(): Filter = filterImpl
override fun getPopupText(position: Int) = filteredApps[position].name.firstOrNull()?.toString() ?: ""
} }
private val proxiedUids = SparseBooleanArray() private val proxiedUids = SparseBooleanArray()
...@@ -244,6 +248,7 @@ class AppManager : AppCompatActivity() { ...@@ -244,6 +248,7 @@ class AppManager : AppCompatActivity() {
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()
search.setOnQueryTextListener(object : SearchView.OnQueryTextListener { search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?) = false override fun onQueryTextSubmit(query: String?) = false
......
...@@ -56,6 +56,7 @@ import com.github.shadowsocks.widget.MainListListener ...@@ -56,6 +56,7 @@ 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.android.parcel.Parcelize
import me.zhanghai.android.fastscroll.FastScrollerBuilder
import java.net.IDN import java.net.IDN
import java.net.MalformedURLException import java.net.MalformedURLException
import java.net.URL import java.net.URL
...@@ -396,6 +397,7 @@ class CustomRulesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener, ...@@ -396,6 +397,7 @@ class CustomRulesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener,
list.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false) list.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
list.itemAnimator = DefaultItemAnimator() list.itemAnimator = DefaultItemAnimator()
list.adapter = adapter list.adapter = adapter
FastScrollerBuilder(list).useMd2Style().build()
undoManager = UndoSnackbarManager(activity, adapter::undo) undoManager = UndoSnackbarManager(activity, adapter::undo)
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.START or ItemTouchHelper.END) { ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.START or ItemTouchHelper.END) {
override fun getSwipeDirs(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int = override fun getSwipeDirs(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int =
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners
android:topLeftRadius="44dp"
android:topRightRadius="44dp"
android:bottomLeftRadius="44dp" />
<padding
android:paddingLeft="22dp"
android:paddingRight="22dp" />
<solid android:color="@color/color_primary_dark" />
</shape>
</item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<shape/>
...@@ -96,11 +96,6 @@ ...@@ -96,11 +96,6 @@
android:id="@+id/list" android:id="@+id/list"
android:clipToPadding="false" android:clipToPadding="false"
android:visibility="gone" android:visibility="gone"
app:fastScrollEnabled="true"
app:fastScrollHorizontalThumbDrawable="@drawable/fastscroll_thumb"
app:fastScrollHorizontalTrackDrawable="@drawable/transparent"
app:fastScrollVerticalThumbDrawable="@drawable/fastscroll_thumb"
app:fastScrollVerticalTrackDrawable="@drawable/transparent"
tools:listitem="@layout/layout_apps_item" tools:listitem="@layout/layout_apps_item"
tools:visibility="visible"/> tools:visibility="visible"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
......
...@@ -15,11 +15,6 @@ ...@@ -15,11 +15,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false" android:clipToPadding="false"
app:fastScrollEnabled="true"
app:fastScrollHorizontalThumbDrawable="@drawable/fastscroll_thumb"
app:fastScrollHorizontalTrackDrawable="@drawable/transparent"
app:fastScrollVerticalThumbDrawable="@drawable/fastscroll_thumb"
app:fastScrollVerticalTrackDrawable="@drawable/transparent"
tools:listitem="@android:layout/simple_list_item_1"/> tools:listitem="@android:layout/simple_list_item_1"/>
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>
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