mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-11-04 09:13:00 +00:00 
			
		
		
		
	Use view binding in FeedGroupDialog.
This commit is contained in:
		@@ -24,10 +24,10 @@ import com.xwray.groupie.Section
 | 
				
			|||||||
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
 | 
					import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
 | 
				
			||||||
import icepick.Icepick
 | 
					import icepick.Icepick
 | 
				
			||||||
import icepick.State
 | 
					import icepick.State
 | 
				
			||||||
import kotlinx.android.synthetic.main.dialog_feed_group_create.*
 | 
					 | 
				
			||||||
import kotlinx.android.synthetic.main.toolbar_search_layout.*
 | 
					 | 
				
			||||||
import org.schabi.newpipe.R
 | 
					import org.schabi.newpipe.R
 | 
				
			||||||
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
 | 
					import org.schabi.newpipe.database.feed.model.FeedGroupEntity
 | 
				
			||||||
 | 
					import org.schabi.newpipe.databinding.DialogFeedGroupCreateBinding
 | 
				
			||||||
 | 
					import org.schabi.newpipe.databinding.ToolbarSearchLayoutBinding
 | 
				
			||||||
import org.schabi.newpipe.fragments.BackPressable
 | 
					import org.schabi.newpipe.fragments.BackPressable
 | 
				
			||||||
import org.schabi.newpipe.local.subscription.FeedGroupIcon
 | 
					import org.schabi.newpipe.local.subscription.FeedGroupIcon
 | 
				
			||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog.ScreenState.DeleteScreen
 | 
					import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog.ScreenState.DeleteScreen
 | 
				
			||||||
@@ -45,6 +45,12 @@ import java.io.Serializable
 | 
				
			|||||||
import kotlin.collections.contains
 | 
					import kotlin.collections.contains
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
					class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			||||||
 | 
					    private var _feedGroupCreateBinding: DialogFeedGroupCreateBinding? = null
 | 
				
			||||||
 | 
					    private val feedGroupCreateBinding get() = _feedGroupCreateBinding!!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private var _searchLayoutBinding: ToolbarSearchLayoutBinding? = null
 | 
				
			||||||
 | 
					    private val searchLayoutBinding get() = _searchLayoutBinding!!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private lateinit var viewModel: FeedGroupDialogViewModel
 | 
					    private lateinit var viewModel: FeedGroupDialogViewModel
 | 
				
			||||||
    private var groupId: Long = NO_GROUP_SELECTED
 | 
					    private var groupId: Long = NO_GROUP_SELECTED
 | 
				
			||||||
    private var groupIcon: FeedGroupIcon? = null
 | 
					    private var groupIcon: FeedGroupIcon? = null
 | 
				
			||||||
@@ -107,14 +113,16 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    override fun onSaveInstanceState(outState: Bundle) {
 | 
					    override fun onSaveInstanceState(outState: Bundle) {
 | 
				
			||||||
        super.onSaveInstanceState(outState)
 | 
					        super.onSaveInstanceState(outState)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        iconsListState = icon_selector.layoutManager?.onSaveInstanceState()
 | 
					        iconsListState = feedGroupCreateBinding.iconSelector.layoutManager?.onSaveInstanceState()
 | 
				
			||||||
        subscriptionsListState = subscriptions_selector_list.layoutManager?.onSaveInstanceState()
 | 
					        subscriptionsListState = feedGroupCreateBinding.subscriptionsSelectorList.layoutManager?.onSaveInstanceState()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Icepick.saveInstanceState(this, outState)
 | 
					        Icepick.saveInstanceState(this, outState)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
 | 
					    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
 | 
				
			||||||
        super.onViewCreated(view, savedInstanceState)
 | 
					        super.onViewCreated(view, savedInstanceState)
 | 
				
			||||||
 | 
					        _feedGroupCreateBinding = DialogFeedGroupCreateBinding.bind(view)
 | 
				
			||||||
 | 
					        _searchLayoutBinding = feedGroupCreateBinding.subscriptionsHeaderSearchContainer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        viewModel = ViewModelProvider(
 | 
					        viewModel = ViewModelProvider(
 | 
				
			||||||
            this,
 | 
					            this,
 | 
				
			||||||
@@ -146,7 +154,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
            add(subscriptionEmptyFooter)
 | 
					            add(subscriptionEmptyFooter)
 | 
				
			||||||
            spanCount = 4
 | 
					            spanCount = 4
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        subscriptions_selector_list.apply {
 | 
					        feedGroupCreateBinding.subscriptionsSelectorList.apply {
 | 
				
			||||||
            // Disable animations, too distracting.
 | 
					            // Disable animations, too distracting.
 | 
				
			||||||
            itemAnimator = null
 | 
					            itemAnimator = null
 | 
				
			||||||
            adapter = subscriptionGroupAdapter
 | 
					            adapter = subscriptionGroupAdapter
 | 
				
			||||||
@@ -172,8 +180,11 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    override fun onDestroyView() {
 | 
					    override fun onDestroyView() {
 | 
				
			||||||
        super.onDestroyView()
 | 
					        super.onDestroyView()
 | 
				
			||||||
        subscriptions_selector_list?.adapter = null
 | 
					        feedGroupCreateBinding.subscriptionsSelectorList.adapter = null
 | 
				
			||||||
        icon_selector?.adapter = null
 | 
					        feedGroupCreateBinding.iconSelector.adapter = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _feedGroupCreateBinding = null
 | 
				
			||||||
 | 
					        _searchLayoutBinding = null
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*///////////////////////////////////////////////////////////////////////////
 | 
					    /*///////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
@@ -193,30 +204,30 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun setupListeners() {
 | 
					    private fun setupListeners() {
 | 
				
			||||||
        delete_button.setOnClickListener { showScreen(DeleteScreen) }
 | 
					        feedGroupCreateBinding.deleteButton.setOnClickListener { showScreen(DeleteScreen) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cancel_button.setOnClickListener {
 | 
					        feedGroupCreateBinding.cancelButton.setOnClickListener {
 | 
				
			||||||
            when (currentScreen) {
 | 
					            when (currentScreen) {
 | 
				
			||||||
                InitialScreen -> dismiss()
 | 
					                InitialScreen -> dismiss()
 | 
				
			||||||
                else -> showScreen(InitialScreen)
 | 
					                else -> showScreen(InitialScreen)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        group_name_input_container.error = null
 | 
					        feedGroupCreateBinding.groupNameInputContainer.error = null
 | 
				
			||||||
        group_name_input.doOnTextChanged { text, _, _, _ ->
 | 
					        feedGroupCreateBinding.groupNameInput.doOnTextChanged { text, _, _, _ ->
 | 
				
			||||||
            if (group_name_input_container.isErrorEnabled && !text.isNullOrBlank()) {
 | 
					            if (feedGroupCreateBinding.groupNameInputContainer.isErrorEnabled && !text.isNullOrBlank()) {
 | 
				
			||||||
                group_name_input_container.error = null
 | 
					                feedGroupCreateBinding.groupNameInputContainer.error = null
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        confirm_button.setOnClickListener { handlePositiveButton() }
 | 
					        feedGroupCreateBinding.confirmButton.setOnClickListener { handlePositiveButton() }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        select_channel_button.setOnClickListener {
 | 
					        feedGroupCreateBinding.selectChannelButton.setOnClickListener {
 | 
				
			||||||
            subscriptions_selector_list.scrollToPosition(0)
 | 
					            feedGroupCreateBinding.subscriptionsSelectorList.scrollToPosition(0)
 | 
				
			||||||
            showScreen(SubscriptionsPickerScreen)
 | 
					            showScreen(SubscriptionsPickerScreen)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val headerMenu = subscriptions_header_toolbar.menu
 | 
					        val headerMenu = feedGroupCreateBinding.subscriptionsHeaderToolbar.menu
 | 
				
			||||||
        requireActivity().menuInflater.inflate(R.menu.menu_feed_group_dialog, headerMenu)
 | 
					        requireActivity().menuInflater.inflate(R.menu.menu_feed_group_dialog, headerMenu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        headerMenu.findItem(R.id.action_search).setOnMenuItemClickListener {
 | 
					        headerMenu.findItem(R.id.action_search).setOnMenuItemClickListener {
 | 
				
			||||||
@@ -234,8 +245,8 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        toolbar_search_clear.setOnClickListener {
 | 
					        searchLayoutBinding.toolbarSearchClear.setOnClickListener {
 | 
				
			||||||
            if (toolbar_search_edit_text.text.isEmpty()) {
 | 
					            if (searchLayoutBinding.toolbarSearchEditText.text.isNullOrEmpty()) {
 | 
				
			||||||
                hideSearch()
 | 
					                hideSearch()
 | 
				
			||||||
                return@setOnClickListener
 | 
					                return@setOnClickListener
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -243,14 +254,14 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
            showKeyboardSearch()
 | 
					            showKeyboardSearch()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        toolbar_search_edit_text.setOnClickListener {
 | 
					        searchLayoutBinding.toolbarSearchEditText.setOnClickListener {
 | 
				
			||||||
            if (DeviceUtils.isTv(context)) {
 | 
					            if (DeviceUtils.isTv(context)) {
 | 
				
			||||||
                showKeyboardSearch()
 | 
					                showKeyboardSearch()
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        toolbar_search_edit_text.doOnTextChanged { _, _, _, _ ->
 | 
					        searchLayoutBinding.toolbarSearchEditText.doOnTextChanged { _, _, _, _ ->
 | 
				
			||||||
            val newQuery: String = toolbar_search_edit_text.text.toString()
 | 
					            val newQuery: String = searchLayoutBinding.toolbarSearchEditText.text.toString()
 | 
				
			||||||
            subscriptionsCurrentSearchQuery = newQuery
 | 
					            subscriptionsCurrentSearchQuery = newQuery
 | 
				
			||||||
            viewModel.filterSubscriptionsBy(newQuery)
 | 
					            viewModel.filterSubscriptionsBy(newQuery)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -266,16 +277,16 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun handlePositiveButtonInitialScreen() {
 | 
					    private fun handlePositiveButtonInitialScreen() {
 | 
				
			||||||
        val name = group_name_input.text.toString().trim()
 | 
					        val name = feedGroupCreateBinding.groupNameInput.text.toString().trim()
 | 
				
			||||||
        val icon = selectedIcon ?: groupIcon ?: FeedGroupIcon.ALL
 | 
					        val icon = selectedIcon ?: groupIcon ?: FeedGroupIcon.ALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (name.isBlank()) {
 | 
					        if (name.isBlank()) {
 | 
				
			||||||
            group_name_input_container.error = getString(R.string.feed_group_dialog_empty_name)
 | 
					            feedGroupCreateBinding.groupNameInputContainer.error = getString(R.string.feed_group_dialog_empty_name)
 | 
				
			||||||
            group_name_input.text = null
 | 
					            feedGroupCreateBinding.groupNameInput.text = null
 | 
				
			||||||
            group_name_input.requestFocus()
 | 
					            feedGroupCreateBinding.groupNameInput.requestFocus()
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            group_name_input_container.error = null
 | 
					            feedGroupCreateBinding.groupNameInputContainer.error = null
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (selectedSubscriptions.isEmpty()) {
 | 
					        if (selectedSubscriptions.isEmpty()) {
 | 
				
			||||||
@@ -296,10 +307,10 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
        groupSortOrder = feedGroupEntity?.sortOrder ?: -1
 | 
					        groupSortOrder = feedGroupEntity?.sortOrder ?: -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val feedGroupIcon = if (selectedIcon == null) icon else selectedIcon!!
 | 
					        val feedGroupIcon = if (selectedIcon == null) icon else selectedIcon!!
 | 
				
			||||||
        icon_preview.setImageResource(feedGroupIcon.getDrawableRes(requireContext()))
 | 
					        feedGroupCreateBinding.iconPreview.setImageResource(feedGroupIcon.getDrawableRes(requireContext()))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (group_name_input.text.isNullOrBlank()) {
 | 
					        if (feedGroupCreateBinding.groupNameInput.text.isNullOrBlank()) {
 | 
				
			||||||
            group_name_input.setText(name)
 | 
					            feedGroupCreateBinding.groupNameInput.setText(name)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -346,10 +357,10 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
        subscriptionMainSection.update(subscriptions, false)
 | 
					        subscriptionMainSection.update(subscriptions, false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (subscriptionsListState != null) {
 | 
					        if (subscriptionsListState != null) {
 | 
				
			||||||
            subscriptions_selector_list.layoutManager?.onRestoreInstanceState(subscriptionsListState)
 | 
					            feedGroupCreateBinding.subscriptionsSelectorList.layoutManager?.onRestoreInstanceState(subscriptionsListState)
 | 
				
			||||||
            subscriptionsListState = null
 | 
					            subscriptionsListState = null
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            subscriptions_selector_list.scrollToPosition(0)
 | 
					            feedGroupCreateBinding.subscriptionsSelectorList.scrollToPosition(0)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -357,17 +368,16 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
        val selectedCount = this.selectedSubscriptions.size
 | 
					        val selectedCount = this.selectedSubscriptions.size
 | 
				
			||||||
        val selectedCountText = resources.getQuantityString(
 | 
					        val selectedCountText = resources.getQuantityString(
 | 
				
			||||||
            R.plurals.feed_group_dialog_selection_count,
 | 
					            R.plurals.feed_group_dialog_selection_count,
 | 
				
			||||||
            selectedCount, selectedCount
 | 
					            selectedCount, selectedCount)
 | 
				
			||||||
        )
 | 
					        feedGroupCreateBinding.selectedSubscriptionCountView.text = selectedCountText
 | 
				
			||||||
        selected_subscription_count_view.text = selectedCountText
 | 
					        feedGroupCreateBinding.subscriptionsHeaderInfo.text = selectedCountText
 | 
				
			||||||
        subscriptions_header_info.text = selectedCountText
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun setupIconPicker() {
 | 
					    private fun setupIconPicker() {
 | 
				
			||||||
        val groupAdapter = GroupAdapter<GroupieViewHolder>()
 | 
					        val groupAdapter = GroupAdapter<GroupieViewHolder>()
 | 
				
			||||||
        groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) })
 | 
					        groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        icon_selector.apply {
 | 
					        feedGroupCreateBinding.iconSelector.apply {
 | 
				
			||||||
            layoutManager = GridLayoutManager(requireContext(), 7, RecyclerView.VERTICAL, false)
 | 
					            layoutManager = GridLayoutManager(requireContext(), 7, RecyclerView.VERTICAL, false)
 | 
				
			||||||
            adapter = groupAdapter
 | 
					            adapter = groupAdapter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -381,20 +391,20 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
            when (item) {
 | 
					            when (item) {
 | 
				
			||||||
                is PickerIconItem -> {
 | 
					                is PickerIconItem -> {
 | 
				
			||||||
                    selectedIcon = item.icon
 | 
					                    selectedIcon = item.icon
 | 
				
			||||||
                    icon_preview.setImageResource(item.iconRes)
 | 
					                    feedGroupCreateBinding.iconPreview.setImageResource(item.iconRes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    showScreen(InitialScreen)
 | 
					                    showScreen(InitialScreen)
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        icon_preview.setOnClickListener {
 | 
					        feedGroupCreateBinding.iconPreview.setOnClickListener {
 | 
				
			||||||
            icon_selector.scrollToPosition(0)
 | 
					            feedGroupCreateBinding.iconSelector.scrollToPosition(0)
 | 
				
			||||||
            showScreen(IconPickerScreen)
 | 
					            showScreen(IconPickerScreen)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (groupId == NO_GROUP_SELECTED) {
 | 
					        if (groupId == NO_GROUP_SELECTED) {
 | 
				
			||||||
            val icon = selectedIcon ?: FeedGroupIcon.ALL
 | 
					            val icon = selectedIcon ?: FeedGroupIcon.ALL
 | 
				
			||||||
            icon_preview.setImageResource(icon.getDrawableRes(requireContext()))
 | 
					            feedGroupCreateBinding.iconPreview.setImageResource(icon.getDrawableRes(requireContext()))
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -405,22 +415,20 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    private fun showScreen(screen: ScreenState) {
 | 
					    private fun showScreen(screen: ScreenState) {
 | 
				
			||||||
        currentScreen = screen
 | 
					        currentScreen = screen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        options_root.onlyVisibleIn(InitialScreen)
 | 
					        feedGroupCreateBinding.optionsRoot.onlyVisibleIn(InitialScreen)
 | 
				
			||||||
        icon_selector.onlyVisibleIn(IconPickerScreen)
 | 
					        feedGroupCreateBinding.iconSelector.onlyVisibleIn(IconPickerScreen)
 | 
				
			||||||
        subscriptions_selector.onlyVisibleIn(SubscriptionsPickerScreen)
 | 
					        feedGroupCreateBinding.subscriptionsSelector.onlyVisibleIn(SubscriptionsPickerScreen)
 | 
				
			||||||
        delete_screen_message.onlyVisibleIn(DeleteScreen)
 | 
					        feedGroupCreateBinding.deleteScreenMessage.onlyVisibleIn(DeleteScreen)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        separator.onlyVisibleIn(SubscriptionsPickerScreen, IconPickerScreen)
 | 
					        feedGroupCreateBinding.separator.onlyVisibleIn(SubscriptionsPickerScreen, IconPickerScreen)
 | 
				
			||||||
        cancel_button.onlyVisibleIn(InitialScreen, DeleteScreen)
 | 
					        feedGroupCreateBinding.cancelButton.onlyVisibleIn(InitialScreen, DeleteScreen)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        confirm_button.setText(
 | 
					        feedGroupCreateBinding.confirmButton.setText(when {
 | 
				
			||||||
            when {
 | 
					            currentScreen == InitialScreen && groupId == NO_GROUP_SELECTED -> R.string.create
 | 
				
			||||||
                currentScreen == InitialScreen && groupId == NO_GROUP_SELECTED -> R.string.create
 | 
					            else -> android.R.string.ok
 | 
				
			||||||
                else -> android.R.string.ok
 | 
					        })
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        delete_button.isGone = currentScreen != InitialScreen || groupId == NO_GROUP_SELECTED
 | 
					        feedGroupCreateBinding.deleteButton.isGone = currentScreen != InitialScreen || groupId == NO_GROUP_SELECTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hideKeyboard()
 | 
					        hideKeyboard()
 | 
				
			||||||
        hideSearch()
 | 
					        hideSearch()
 | 
				
			||||||
@@ -434,26 +442,26 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    // Utils
 | 
					    // Utils
 | 
				
			||||||
    ////////////////////////////////////////////////////////////////////////// */
 | 
					    ////////////////////////////////////////////////////////////////////////// */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun isSearchVisible() = subscriptions_header_search_container?.visibility == View.VISIBLE
 | 
					    private fun isSearchVisible() = _searchLayoutBinding?.root?.visibility == View.VISIBLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun resetSearch() {
 | 
					    private fun resetSearch() {
 | 
				
			||||||
        toolbar_search_edit_text.setText("")
 | 
					        searchLayoutBinding.toolbarSearchEditText.setText("")
 | 
				
			||||||
        subscriptionsCurrentSearchQuery = ""
 | 
					        subscriptionsCurrentSearchQuery = ""
 | 
				
			||||||
        viewModel.clearSubscriptionsFilter()
 | 
					        viewModel.clearSubscriptionsFilter()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun hideSearch() {
 | 
					    private fun hideSearch() {
 | 
				
			||||||
        resetSearch()
 | 
					        resetSearch()
 | 
				
			||||||
        subscriptions_header_search_container.visibility = View.GONE
 | 
					        searchLayoutBinding.root.visibility = View.GONE
 | 
				
			||||||
        subscriptions_header_info_container.visibility = View.VISIBLE
 | 
					        feedGroupCreateBinding.subscriptionsHeaderInfoContainer.visibility = View.VISIBLE
 | 
				
			||||||
        subscriptions_header_toolbar.menu.findItem(R.id.action_search).isVisible = true
 | 
					        feedGroupCreateBinding.subscriptionsHeaderToolbar.menu.findItem(R.id.action_search).isVisible = true
 | 
				
			||||||
        hideKeyboardSearch()
 | 
					        hideKeyboardSearch()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun showSearch() {
 | 
					    private fun showSearch() {
 | 
				
			||||||
        subscriptions_header_search_container.visibility = View.VISIBLE
 | 
					        searchLayoutBinding.root.visibility = View.VISIBLE
 | 
				
			||||||
        subscriptions_header_info_container.visibility = View.GONE
 | 
					        feedGroupCreateBinding.subscriptionsHeaderInfoContainer.visibility = View.GONE
 | 
				
			||||||
        subscriptions_header_toolbar.menu.findItem(R.id.action_search).isVisible = false
 | 
					        feedGroupCreateBinding.subscriptionsHeaderToolbar.menu.findItem(R.id.action_search).isVisible = false
 | 
				
			||||||
        showKeyboardSearch()
 | 
					        showKeyboardSearch()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -462,37 +470,35 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun showKeyboardSearch() {
 | 
					    private fun showKeyboardSearch() {
 | 
				
			||||||
        if (toolbar_search_edit_text.requestFocus()) {
 | 
					        if (searchLayoutBinding.toolbarSearchEditText.requestFocus()) {
 | 
				
			||||||
            inputMethodManager.showSoftInput(toolbar_search_edit_text, InputMethodManager.SHOW_IMPLICIT)
 | 
					            inputMethodManager.showSoftInput(searchLayoutBinding.toolbarSearchEditText,
 | 
				
			||||||
 | 
					                    InputMethodManager.SHOW_IMPLICIT)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun hideKeyboardSearch() {
 | 
					    private fun hideKeyboardSearch() {
 | 
				
			||||||
        inputMethodManager.hideSoftInputFromWindow(
 | 
					        inputMethodManager.hideSoftInputFromWindow(searchLayoutBinding.toolbarSearchEditText.windowToken,
 | 
				
			||||||
            toolbar_search_edit_text.windowToken,
 | 
					            InputMethodManager.RESULT_UNCHANGED_SHOWN)
 | 
				
			||||||
            InputMethodManager.RESULT_UNCHANGED_SHOWN
 | 
					        searchLayoutBinding.toolbarSearchEditText.clearFocus()
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
        toolbar_search_edit_text.clearFocus()
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun showKeyboard() {
 | 
					    private fun showKeyboard() {
 | 
				
			||||||
        if (group_name_input.requestFocus()) {
 | 
					        if (feedGroupCreateBinding.groupNameInput.requestFocus()) {
 | 
				
			||||||
            inputMethodManager.showSoftInput(group_name_input, InputMethodManager.SHOW_IMPLICIT)
 | 
					            inputMethodManager.showSoftInput(feedGroupCreateBinding.groupNameInput,
 | 
				
			||||||
 | 
					                    InputMethodManager.SHOW_IMPLICIT)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun hideKeyboard() {
 | 
					    private fun hideKeyboard() {
 | 
				
			||||||
        inputMethodManager.hideSoftInputFromWindow(
 | 
					        inputMethodManager.hideSoftInputFromWindow(feedGroupCreateBinding.groupNameInput.windowToken,
 | 
				
			||||||
            group_name_input.windowToken,
 | 
					            InputMethodManager.RESULT_UNCHANGED_SHOWN)
 | 
				
			||||||
            InputMethodManager.RESULT_UNCHANGED_SHOWN
 | 
					        feedGroupCreateBinding.groupNameInput.clearFocus()
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
        group_name_input.clearFocus()
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun disableInput() {
 | 
					    private fun disableInput() {
 | 
				
			||||||
        delete_button?.isEnabled = false
 | 
					        _feedGroupCreateBinding?.deleteButton?.isEnabled = false
 | 
				
			||||||
        confirm_button?.isEnabled = false
 | 
					        _feedGroupCreateBinding?.confirmButton?.isEnabled = false
 | 
				
			||||||
        cancel_button?.isEnabled = false
 | 
					        _feedGroupCreateBinding?.cancelButton?.isEnabled = false
 | 
				
			||||||
        isCancelable = false
 | 
					        isCancelable = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hideKeyboard()
 | 
					        hideKeyboard()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user