From d86c772443ce535b400a137795f5752e19763b19 Mon Sep 17 00:00:00 2001
From: "Teeranai.P"
Date: Sun, 22 Mar 2020 22:43:42 +0700
Subject: [PATCH 1/6] Add screen shot
---
screenshot/ss_1.png | Bin 0 -> 29036 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 screenshot/ss_1.png
diff --git a/screenshot/ss_1.png b/screenshot/ss_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a910576475e70224eeb037c6fc63c011a0c2c08
GIT binary patch
literal 29036
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
T`R;)H?UJikv{gzjn+N|NpA3QR
literal 0
HcmV?d00001
From b6d3115a7c7522dc959b3fdde494c43ea8747fbf Mon Sep 17 00:00:00 2001
From: "Teeranai.P"
Date: Sun, 22 Mar 2020 22:46:46 +0700
Subject: [PATCH 2/6] Update README.md
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 73f8692..d999fbd 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
# Sheet Selection
-[](https://jitpack.io/#minibugdev/SheetSelection)
+[](https://jitpack.io/#minibugdev/SheetSelection)
+[](https://android-arsenal.com/details/1/8051)
[](https://raw.githubusercontent.com/minibugdev/DrawableBadge/master/LICENSE)
`SheetSelection` is an Android library for display list and be able to select the item as a [BottomSheet](https://developer.android.com/reference/com/google/android/material/bottomsheet/BottomSheetDialogFragment).
From 095cc169d8e3244108df08a38a694f0582e74660 Mon Sep 17 00:00:00 2001
From: Pop
Date: Tue, 7 Jul 2020 11:35:36 +0700
Subject: [PATCH 3/6] Upgrade gradle version to 6.1.1
---
build.gradle | 4 ++--
gradle/wrapper/gradle-wrapper.properties | 4 ++--
sheetselection/build.gradle | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/build.gradle b/build.gradle
index fa30fa6..d583f8a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,14 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.3.61'
+ ext.kotlin_version = '1.3.72'
repositories {
google()
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.1'
+ classpath 'com.android.tools.build:gradle:4.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7118542..d2c37e6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Feb 28 14:19:21 ICT 2020
+#Tue Jul 07 10:49:00 ICT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
diff --git a/sheetselection/build.gradle b/sheetselection/build.gradle
index 86eb736..8618c33 100644
--- a/sheetselection/build.gradle
+++ b/sheetselection/build.gradle
@@ -7,7 +7,7 @@ group='com.minibugdev.sheetselection'
android {
compileSdkVersion 29
- buildToolsVersion "29.0.3"
+ buildToolsVersion "30.0.0"
defaultConfig {
minSdkVersion 17
From 9feeca909d194fabea9bf8d6d08c9bbdfc42fc33 Mon Sep 17 00:00:00 2001
From: Pop
Date: Thu, 9 Jul 2020 15:41:10 +0700
Subject: [PATCH 4/6] Fix can selected item when search not found
---
.../sheetselection/SheetSelection.kt | 15 ++++-
.../sheetselection/SheetSelectionAdapter.kt | 63 +++++++++++++------
.../src/main/res/layout/row_empty_item.xml | 9 +++
3 files changed, 68 insertions(+), 19 deletions(-)
create mode 100644 sheetselection/src/main/res/layout/row_empty_item.xml
diff --git a/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelection.kt b/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelection.kt
index 9a0c638..3a87f83 100644
--- a/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelection.kt
+++ b/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelection.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.annotation.StringRes
import androidx.annotation.StyleRes
import androidx.appcompat.widget.SearchView
import androidx.fragment.app.Fragment
@@ -23,6 +24,7 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
SheetSelectionAdapter(
source = arguments?.getParcelableArrayList(ARGS_ITEMS) ?: emptyList(),
selectedPosition = arguments?.getInt(ARGS_SELECTED_POSITION, NO_SELECT) ?: NO_SELECT,
+ searchNotFoundText = arguments?.getString(ARGS_SEARCH_NOT_FOUND_TEXT) ?: "Search not found.",
onItemSelectedListener = onItemSelectedListener
)
}
@@ -112,7 +114,7 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
}
}
- class Builder(context: Context) {
+ class Builder(private val context: Context) {
private val manager: FragmentManager? = when (context) {
is FragmentActivity -> context.supportFragmentManager
is Fragment -> context.requireFragmentManager()
@@ -126,6 +128,7 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
private var selectedPosition: Int = NO_SELECT
private var showDraggedIndicator: Boolean = false
private var searchEnabled: Boolean = false
+ private var searchNotFoundText: String? = null
private var listener: OnItemSelectedListener? = null
fun theme(@StyleRes themeId: Int) = apply {
@@ -157,6 +160,14 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
this.searchEnabled = enabled
}
+ fun searchNotFoundText(text: String) = apply {
+ this.searchNotFoundText = text
+ }
+
+ fun searchNotFoundText(@StringRes textResId: Int) = apply {
+ this.searchNotFoundText = context.getString(textResId)
+ }
+
fun onItemClickListener(listener: OnItemSelectedListener) = apply {
this.listener = listener
}
@@ -170,6 +181,7 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
putInt(ARGS_SELECTED_POSITION, selectedPosition)
putBoolean(ARGS_SHOW_DRAGGED_INDICATOR, showDraggedIndicator)
putBoolean(ARGS_SEARCH_ENABLED, searchEnabled)
+ putString(ARGS_SEARCH_NOT_FOUND_TEXT, searchNotFoundText)
}
onItemClickListener = listener
}
@@ -187,6 +199,7 @@ class SheetSelection private constructor() : BottomSheetDialogFragment() {
private const val ARGS_THEME = "SheetSelection:ARGS_THEME"
private const val ARGS_TITLE = "SheetSelection:ARGS_TITLE"
private const val ARGS_ITEMS = "SheetSelection:ARGS_ITEMS"
+ private const val ARGS_SEARCH_NOT_FOUND_TEXT = "SheetSelection:ARGS_SEARCH_NOT_FOUND_TEXT"
private const val ARGS_SELECTED_POSITION = "SheetSelection:ARGS_SELECTED_POSITION"
private const val ARGS_SHOW_DRAGGED_INDICATOR = "SheetSelection:ARGS_SHOW_DRAGGED_INDICATOR"
private const val ARGS_SEARCH_ENABLED = "SheetSelection:ARGS_SEARCH_ENABLED"
diff --git a/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelectionAdapter.kt b/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelectionAdapter.kt
index f654519..a9d2cd0 100644
--- a/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelectionAdapter.kt
+++ b/sheetselection/src/main/java/com/minibugdev/sheetselection/SheetSelectionAdapter.kt
@@ -12,28 +12,38 @@ typealias OnItemSelectedListener = (item: SheetSelectionItem, position: Int) ->
class SheetSelectionAdapter(
private val source: List,
private val selectedPosition: Int,
+ private val searchNotFoundText: String,
private val onItemSelectedListener: OnItemSelectedListener?
-) : RecyclerView.Adapter() {
+) : RecyclerView.Adapter() {
private var items: List = source
override fun getItemCount() = items.size
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- return LayoutInflater.from(parent.context)
- .inflate(R.layout.row_selection_item, parent, false)
- .run {
- ViewHolder(this)
- }
+ override fun getItemViewType(position: Int): Int =
+ when (items[position].key) {
+ KEY_SEARCH_NOT_FOUND -> R.layout.row_empty_item
+ else -> R.layout.row_selection_item
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ val view = LayoutInflater.from(parent.context).inflate(viewType, parent, false)
+ return when (viewType) {
+ R.layout.row_selection_item -> ItemViewHolder(view)
+ R.layout.row_empty_item -> EmptyViewHolder(view, searchNotFoundText)
+ else -> throw IllegalAccessException("Item view type doesn't match.")
+ }
}
- override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- holder.onBindView(
- item = items[position],
- position = position,
- selected = position == selectedPosition,
- onItemSelectedListener = onItemSelectedListener
- )
+ override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+ if (holder is ItemViewHolder) {
+ holder.onBindView(
+ item = items[position],
+ position = position,
+ selected = position == selectedPosition,
+ onItemSelectedListener = onItemSelectedListener
+ )
+ }
}
fun search(keyword: String?) {
@@ -42,7 +52,11 @@ class SheetSelectionAdapter(
} else {
val searchResult = source.filter { it.value.contains(keyword, true) }
if (searchResult.isEmpty()) {
- updateItems(listOf(SheetSelectionItem("search_not_found", "Search not found.")))
+ updateItems(
+ listOf(
+ SheetSelectionItem(KEY_SEARCH_NOT_FOUND, searchNotFoundText)
+ )
+ )
} else {
updateItems(searchResult)
}
@@ -54,11 +68,12 @@ class SheetSelectionAdapter(
notifyDataSetChanged()
}
- class ViewHolder(override val containerView: View) : RecyclerView.ViewHolder(containerView),
- LayoutContainer {
+ class ItemViewHolder(override val containerView: View) : RecyclerView.ViewHolder(containerView), LayoutContainer {
fun onBindView(
- item: SheetSelectionItem, position: Int, selected: Boolean,
+ item: SheetSelectionItem,
+ position: Int,
+ selected: Boolean,
onItemSelectedListener: OnItemSelectedListener?
) {
val selectedIcon = if (selected) R.drawable.ic_check else 0
@@ -70,4 +85,16 @@ class SheetSelectionAdapter(
}
}
}
+
+ class EmptyViewHolder(override val containerView: View, emptyText: String) : RecyclerView.ViewHolder(containerView),
+ LayoutContainer {
+
+ init {
+ textViewItem.text = emptyText
+ }
+ }
+
+ companion object {
+ private const val KEY_SEARCH_NOT_FOUND = "SheetSelectionAdapter:search_not_found"
+ }
}
\ No newline at end of file
diff --git a/sheetselection/src/main/res/layout/row_empty_item.xml b/sheetselection/src/main/res/layout/row_empty_item.xml
new file mode 100644
index 0000000..4cbdd19
--- /dev/null
+++ b/sheetselection/src/main/res/layout/row_empty_item.xml
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
From c9c25518d8ca8911e16352817079e998ed0b5333 Mon Sep 17 00:00:00 2001
From: Pop
Date: Thu, 9 Jul 2020 15:41:48 +0700
Subject: [PATCH 5/6] Update README.md
---
README.md | 2 ++
.../java/com/minibugdev/sheetselection/demo/MainActivity.kt | 1 +
2 files changed, 3 insertions(+)
diff --git a/README.md b/README.md
index d999fbd..6dd4668 100644
--- a/README.md
+++ b/README.md
@@ -39,6 +39,7 @@ SheetSelection.Builder(context)
.selectedPosition(2)
.showDraggedIndicator(true)
.searchEnabled(true)
+ .searchNotFoundText("Nothing!!")
.onItemClickListener { item, position ->
// DO SOMETHING
}
@@ -50,6 +51,7 @@ SheetSelection.Builder(context)
- Set selected item by `Builder.selectedPosition(Int)`. default is `SheetSelection.NO_SELECT`
- Show dragged indicator by `Builder.showDraggedIndicator(Boolean)`. default is `false`
- Set search enabled by `Builder.searchEnabled(Boolean)`. default is `false`
+- Set search not found text by `Builder.searchNotFoundText(String)`. default is `Search not found.`
- Set custom theme by `Builder.theme(@StyleRes)`.
- To handle the item click listener by `Builder.onItemClickListener()`.
diff --git a/app/src/main/java/com/minibugdev/sheetselection/demo/MainActivity.kt b/app/src/main/java/com/minibugdev/sheetselection/demo/MainActivity.kt
index 5dee714..e0ac98a 100644
--- a/app/src/main/java/com/minibugdev/sheetselection/demo/MainActivity.kt
+++ b/app/src/main/java/com/minibugdev/sheetselection/demo/MainActivity.kt
@@ -50,6 +50,7 @@ class MainActivity : AppCompatActivity() {
.selectedPosition(2)
.showDraggedIndicator(true)
.searchEnabled(true)
+ .searchNotFoundText("Nothing!!")
.theme(R.style.Theme_Custom_SheetSelection)
.onItemClickListener { item, position ->
textview.text = "You selected `${item.value}`, At position [$position]."
From ca458368c557647b79ce7b31f59df87881d84f50 Mon Sep 17 00:00:00 2001
From: Pop
Date: Thu, 9 Jul 2020 15:42:57 +0700
Subject: [PATCH 6/6] Pump up version to 0.0.3
---
README.md | 2 +-
sheetselection/build.gradle | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 6dd4668..ac983b9 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ repositories {
Add the dependency
``` groovy
dependencies {
- implementation 'com.github.minibugdev:sheetselection:0.0.2'
+ implementation 'com.github.minibugdev:sheetselection:0.0.3'
}
```
diff --git a/sheetselection/build.gradle b/sheetselection/build.gradle
index 8618c33..5a389b8 100644
--- a/sheetselection/build.gradle
+++ b/sheetselection/build.gradle
@@ -12,8 +12,8 @@ android {
defaultConfig {
minSdkVersion 17
targetSdkVersion 29
- versionCode 1
- versionName "0.0.2"
+ versionCode 2
+ versionName "0.0.3"
}
buildTypes {