Browse Source

improved search/filter performance

It applied every time you typed before lmao

Signed-off-by: swurl <swurl@swurl.xyz>
pull/125/head
swurl 10 months ago
committed by AlekPop
parent
commit
c4a1d97c85
  1. 18
      src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/LobbyBrowser.kt
  2. 23
      src/android/app/src/main/res/layout/dialog_lobby_browser.xml
  3. 2
      src/android/app/src/main/res/values/strings.xml

18
src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/LobbyBrowser.kt

@ -12,6 +12,9 @@ import android.os.Looper
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import androidx.core.content.getSystemService
import androidx.core.widget.doOnTextChanged
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
@ -82,8 +85,23 @@ class LobbyBrowser(context: Context) : BottomSheetDialog(context) {
} else {
binding.clearButton.visibility = View.INVISIBLE
}
}
binding.searchText.setOnEditorActionListener { v, action, _ ->
if (action == EditorInfo.IME_ACTION_DONE) {
v.clearFocus()
val imm = context.getSystemService<InputMethodManager>()
imm?.hideSoftInputFromWindow(v.windowToken, 0)
adapter.filterAndSearch()
true
} else {
false
}
}
binding.btnSubmit.setOnClickListener { adapter.filterAndSearch() }
binding.clearButton.setOnClickListener {
binding.searchText.setText("")

23
src/android/app/src/main/res/layout/dialog_lobby_browser.xml

@ -62,12 +62,17 @@
</FrameLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<com.google.android.material.card.MaterialCardView
android:id="@+id/search_background"
style="?attr/materialCardViewFilledStyle"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginHorizontal="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="12dp"
app:cardCornerRadius="24dp">
@ -89,13 +94,14 @@
<EditText
android:id="@+id/search_text"
android:layout_width="match_parent"
android:layout_width="180dp"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="@string/multiplayer_search_public_lobbies"
android:imeOptions="flagNoFullscreen"
android:inputType="text"
android:maxLines="1" />
</LinearLayout>
<ImageView
@ -109,8 +115,19 @@
android:visibility="invisible"
app:tint="?attr/colorOnSurfaceVariant"
tools:visibility="visible" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_submit"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="110dp"
android:layout_height="48dp"
android:layout_marginTop="12dp"
android:text="@string/submit" />
</LinearLayout>
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="match_parent"

2
src/android/app/src/main/res/values/strings.xml

@ -178,7 +178,7 @@
<string name="multiplayer_hide_full_rooms">Hide Full Rooms</string>
<string name="multiplayer_hide_empty_rooms">Hide Empty Rooms</string>
<string name="multiplayer_tap_refresh_to_check_again">Tap refresh to check again</string>
<string name="multiplayer_search_public_lobbies">Search Public Lobbies…</string>
<string name="multiplayer_search_public_lobbies">Search Lobbies…</string>
<string name="emulation_multiplayer">Multiplayer</string>
<string name="multiplayer_game_name">Preferred Games</string>
<string name="multiplayer_preferred_game_name">Preferred Game</string>

Loading…
Cancel
Save