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. 20
      src/android/app/src/main/java/org/yuzu/yuzu_emu/dialogs/LobbyBrowser.kt
  2. 95
      src/android/app/src/main/res/layout/dialog_lobby_browser.xml
  3. 2
      src/android/app/src/main/res/values/strings.xml

20
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,9 +85,24 @@ class LobbyBrowser(context: Context) : BottomSheetDialog(context) {
} else {
binding.clearButton.visibility = View.INVISIBLE
}
adapter.filterAndSearch()
}
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("")
adapter.updateRooms(NetPlayManager.getPublicRooms())

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

@ -62,54 +62,71 @@
</FrameLayout>
</LinearLayout>
<com.google.android.material.card.MaterialCardView
android:id="@+id/search_background"
style="?attr/materialCardViewFilledStyle"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
app:cardCornerRadius="24dp">
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/search_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
<com.google.android.material.card.MaterialCardView
android:id="@+id/search_background"
style="?attr/materialCardViewFilledStyle"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="48dp"
android:orientation="horizontal">
android:layout_marginTop="12dp"
app:cardCornerRadius="24dp">
<LinearLayout
android:id="@+id/search_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginEnd="48dp"
android:orientation="horizontal">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:src="@drawable/ic_search"
app:tint="?attr/colorOnSurfaceVariant" />
<EditText
android:id="@+id/search_text"
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
android:id="@+id/clear_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:src="@drawable/ic_search"
app:tint="?attr/colorOnSurfaceVariant" />
<EditText
android:id="@+id/search_text"
android:layout_width="match_parent"
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>
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_clear"
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>
<ImageView
android:id="@+id/clear_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_clear"
android:visibility="invisible"
app:tint="?attr/colorOnSurfaceVariant"
tools:visibility="visible" />
</com.google.android.material.card.MaterialCardView>
<HorizontalScrollView
android:id="@+id/horizontalScrollView"

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