diff options
author | Chumva <faiver.unknown@gmail.com> | 2019-07-18 10:28:04 +0300 |
---|---|---|
committer | Chumva <faiver.unknown@gmail.com> | 2019-07-18 10:28:04 +0300 |
commit | 267693d25e527382504dd3f019920353c8a27860 (patch) | |
tree | 0fccebb5d44d645c6de803593962b9cc506f1f67 /OsmAnd-telegram | |
parent | 8d58d772b86809ccccccb31042faee427af34b45 (diff) | |
download | Osmand-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.kt | 4 | ||||
-rw-r--r-- | OsmAnd-telegram/src/net/osmand/telegram/ui/SearchDialogFragment.kt | 36 |
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) } |