aboutsummaryrefslogtreecommitdiffstats
path: root/OsmAnd-telegram
diff options
context:
space:
mode:
authorChumva <faiver.unknown@gmail.com>2019-07-18 10:28:04 +0300
committerChumva <faiver.unknown@gmail.com>2019-07-18 10:28:04 +0300
commit267693d25e527382504dd3f019920353c8a27860 (patch)
tree0fccebb5d44d645c6de803593962b9cc506f1f67 /OsmAnd-telegram
parent8d58d772b86809ccccccb31042faee427af34b45 (diff)
downloadOsmand-267693d25e527382504dd3f019920353c8a27860.tar.gz
Show selected items in search screen
Diffstat (limited to 'OsmAnd-telegram')
-rw-r--r--OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt4
-rw-r--r--OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt36
2 files changed, 36 insertions, 4 deletions
diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt
index 774809d0c0..54ea779619 100644
--- a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt
+++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt
@@ -184,7 +184,9 @@ class MyLocationTabFragment : Fragment(), TelegramListener {
setBackgroundDrawable(searchBoxBg)
}
findViewById<View>(R.id.search_button).setOnClickListener {
- activity.supportFragmentManager?.also { SearchDialogFragment.showInstance(it, this@MyLocationTabFragment) }
+ activity.supportFragmentManager?.also {
+ SearchDialogFragment.showInstance(it, this@MyLocationTabFragment, selectedChats, selectedUsers)
+ }
}
findViewById<ImageView>(R.id.search_icon)
.setImageDrawable(app.uiUtils.getThemedIcon(R.drawable.ic_action_search_dark))
diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt
index 96be94938c..c5aefb7a55 100644
--- a/OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt
+++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt
@@ -64,6 +64,8 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
parent: ViewGroup?,
savedInstanceState: Bundle?
): View {
+ readFromBundle(savedInstanceState ?: arguments)
+
val mainView = inflater.inflate(R.layout.fragment_search_dialog, parent)
mainView.findViewById<Toolbar>(R.id.toolbar).apply {
@@ -168,6 +170,8 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
startLocationUpdate()
searchEditText.requestFocus()
AndroidUtils.softKeyboardDelayed(searchEditText)
+ updateList()
+ switchButtonsVisibility(selectedChats.isNotEmpty() || selectedUsers.isNotEmpty())
}
override fun onPause() {
@@ -334,6 +338,12 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
}
}
+ override fun onSaveInstanceState(outState: Bundle) {
+ super.onSaveInstanceState(outState)
+ outState.putLongArray(SELECTED_CHATS_KEY, selectedChats.toLongArray())
+ outState.putLongArray(SELECTED_USERS_KEY, selectedUsers.toLongArray())
+ }
+
inner class SearchAdapter : RecyclerView.Adapter<SearchAdapter.ChatViewHolder>() {
var items = mutableListOf<TdApi.Object>()
@@ -500,6 +510,17 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
}
}
+ private fun readFromBundle(bundle: Bundle?) {
+ selectedChats.clear()
+ selectedUsers.clear()
+ bundle?.getLongArray(SELECTED_CHATS_KEY)?.also {
+ selectedChats.addAll(it.toHashSet())
+ }
+ bundle?.getLongArray(SELECTED_USERS_KEY)?.also {
+ selectedUsers.addAll(it.toHashSet())
+ }
+ }
+
private fun onPrimaryBtnClick() {
if (selectedChats.isNotEmpty() || selectedUsers.isNotEmpty()) {
fragmentManager?.also {
@@ -510,8 +531,7 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
private fun onSecondaryBtnClick() {
clearSelection()
- adapter.notifyDataSetChanged()
- adapter.notifyDataSetChanged()
+ updateList()
switchButtonsVisibility(false)
}
@@ -530,10 +550,20 @@ class SearchDialogFragment : BaseDialogFragment(), TelegramHelper.TelegramSearch
companion object {
const val TAG = "SearchDialogFragment"
+ private const val SELECTED_CHATS_KEY = "selected_chats_key"
+ private const val SELECTED_USERS_KEY = "selected_users_key"
- fun showInstance(fm: FragmentManager, target: Fragment?): Boolean {
+ fun showInstance(fm: FragmentManager, target: Fragment?, selectedChats: Set<Long>, selectedUsers: Set<Long>): Boolean {
return try {
SearchDialogFragment().apply {
+ arguments = Bundle().apply {
+ if (selectedChats.isNotEmpty()) {
+ putLongArray(SELECTED_CHATS_KEY, selectedChats.toLongArray())
+ }
+ if (selectedUsers.isNotEmpty()) {
+ putLongArray(SELECTED_USERS_KEY, selectedUsers.toLongArray())
+ }
+ }
if (target != null) {
setTargetFragment(target, SetTimeDialogFragment.LOCATION_SHARED_REQUEST_CODE)
}