Skip to content

Commit

Permalink
feat: search bar
Browse files Browse the repository at this point in the history
  • Loading branch information
std-microblock committed Feb 5, 2024
1 parent 0a8661f commit 8fb8b8f
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.core.widget.doOnTextChanged
import androidx.lifecycle.MutableLiveData
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
Expand Down Expand Up @@ -227,6 +228,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {

}

var filter = ""
@SuppressLint("NotifyDataSetChanged")
override fun onCreate() {
refreshModuleStatus()
Expand Down Expand Up @@ -276,12 +278,25 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
}

binding.searchBar.doOnTextChanged() { text, _, _, _ ->
filter = text.toString()
(binding.stickerManageView.adapter as RecyclerAdapterStickerList).stickerList =
stickerList.value?.filter {
it.name.contains(filter, ignoreCase = true) || it.id.contains(filter, ignoreCase = true)
|| it.type.contains(filter, ignoreCase = true)
} ?: listOf()
binding.stickerManageView.adapter?.notifyDataSetChanged()
}

binding.stickerManageView.layoutManager = LinearLayoutManager(this)
binding.stickerManageView.adapter = RecyclerAdapterStickerList(this)

stickerList.observe(this) {
runOnUiThread {
(binding.stickerManageView.adapter as RecyclerAdapterStickerList).stickerList = it
(binding.stickerManageView.adapter as RecyclerAdapterStickerList).stickerList = it.filter {
it.name.contains(filter, ignoreCase = true) || it.id.contains(filter, ignoreCase = true)
|| it.type.contains(filter, ignoreCase = true)
}
binding.stickerManageView.adapter?.notifyDataSetChanged()
}
}
Expand Down
172 changes: 90 additions & 82 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,112 +21,109 @@
android:textStyle="bold" />

<LinearLayout
android:id="@+id/main_lin_status"
android:id="@+id/tips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="5dp"
android:background="@drawable/bg_dark_round"
android:elevation="0dp"
android:gravity="center">

<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/main_img_status"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="25dp"
android:layout_marginEnd="5dp"
android:src="@mipmap/ic_warn"
android:tint="@color/white" />
android:layout_marginHorizontal="20dp"
android:layout_marginVertical="20dp"
android:orientation="vertical">

<LinearLayout
android:id="@+id/main_lin_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp">

<TextView
android:id="@+id/main_text_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/module_not_activated"
android:textColor="@color/white"
android:textSize="18sp" />
android:layout_marginBottom="5dp"
android:background="@drawable/bg_dark_round"
android:elevation="0dp"
android:gravity="center">

<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/main_img_status"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="25dp"
android:layout_marginEnd="5dp"
android:src="@mipmap/ic_warn"
android:tint="@color/white" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center|start"
android:orientation="horizontal">
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp">

<TextView
android:id="@+id/main_text_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/module_not_activated"
android:textColor="@color/white"
android:textSize="18sp" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center|start"
android:orientation="horizontal">

<TextView
android:id="@+id/main_text_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.8"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/module_version"
android:textColor="@color/white"
android:textSize="13sp" />

<TextView
android:id="@+id/main_text_release_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:background="@drawable/bg_orange_round"
android:ellipsize="end"
android:paddingLeft="5dp"
android:paddingTop="2dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="11sp"
android:visibility="gone" />
</LinearLayout>

<TextView
android:id="@+id/main_text_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.8"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/module_version"
android:text="@string/info"
android:textColor="@color/white"
android:textSize="13sp" />

<TextView
android:id="@+id/main_text_release_version"
android:id="@+id/main_text_api_way"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:background="@drawable/bg_orange_round"
android:layout_marginTop="5dp"
android:alpha="0.6"
android:ellipsize="end"
android:paddingLeft="5dp"
android:paddingTop="2dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="11sp"
android:visibility="gone" />
</LinearLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.8"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/info"
android:textColor="@color/white"
android:textSize="13sp" />

<TextView
android:id="@+id/main_text_api_way"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:alpha="0.6"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="11sp"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:id="@+id/tips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginVertical="20dp"
android:orientation="vertical">

<TextView
android:id="@+id/textView4"
Expand All @@ -143,13 +140,13 @@

<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginTop="10dp"
android:layout_marginRight="50dp"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#656565"
android:backgroundTint="#0091EA"
android:text="@string/ok"
android:textColor="#fff"
android:textSize="20sp"
Expand All @@ -166,6 +163,17 @@
android:paddingVertical="20dp"
android:visibility="invisible">

<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/searchBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search" />
</com.google.android.material.textfield.TextInputLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Expand All @@ -180,7 +188,7 @@

<View
android:layout_width="10dp"
android:layout_height="1dp"/>
android:layout_height="1dp" />

<Button
android:id="@+id/refreshBtn"
Expand All @@ -192,9 +200,9 @@

<TextView
android:id="@+id/textView"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/sticker_list" />

<androidx.recyclerview.widget.RecyclerView
Expand Down

0 comments on commit 8fb8b8f

Please sign in to comment.