Fix issue where user could not select a group story.

This commit is contained in:
Alex Hart
2022-03-14 11:05:42 -03:00
committed by Cody Henthorne
parent 78de70881f
commit 87ad4be117
4 changed files with 20 additions and 18 deletions

View File

@@ -20,7 +20,6 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.ContactFilterView
import org.thoughtcrime.securesms.contacts.HeaderAction
import org.thoughtcrime.securesms.contacts.paged.ContactSearchConfiguration
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
import org.thoughtcrime.securesms.contacts.paged.ContactSearchMediator
@@ -35,6 +34,7 @@ import org.thoughtcrime.securesms.sharing.MultiShareArgs
import org.thoughtcrime.securesms.sharing.ShareSelectionAdapter
import org.thoughtcrime.securesms.sharing.ShareSelectionMappingModel
import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.stories.Stories.getHeaderAction
import org.thoughtcrime.securesms.stories.settings.create.CreateStoryFlowDialogFragment
import org.thoughtcrime.securesms.stories.settings.create.CreateStoryWithViewersFragment
import org.thoughtcrime.securesms.util.BottomSheetUtil
@@ -257,17 +257,8 @@ class MultiselectForwardFragment :
viewModel.cancelSend()
}
private fun getHeaderAction(): HeaderAction {
return HeaderAction(
R.string.ContactsCursorLoader_new_story,
R.drawable.ic_plus_20
) {
ChooseStoryTypeBottomSheet().show(childFragmentManager, BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG)
}
}
private fun getConfiguration(contactSearchState: ContactSearchState): ContactSearchConfiguration {
return findListener<SearchConfigurationProvider>()?.getSearchConfiguration(contactSearchState) ?: ContactSearchConfiguration.build {
return findListener<SearchConfigurationProvider>()?.getSearchConfiguration(childFragmentManager, contactSearchState) ?: ContactSearchConfiguration.build {
query = contactSearchState.query
if (Stories.isFeatureEnabled() && isSelectedMediaValidForStories()) {
@@ -275,7 +266,7 @@ class MultiselectForwardFragment :
ContactSearchConfiguration.Section.Stories(
groupStories = contactSearchState.groupStories,
includeHeader = true,
headerAction = getHeaderAction(),
headerAction = getHeaderAction(childFragmentManager),
expandConfig = ContactSearchConfiguration.ExpandConfig(
isExpanded = contactSearchState.expandedSections.contains(ContactSearchConfiguration.SectionKey.STORIES)
)

View File

@@ -1,8 +1,18 @@
package org.thoughtcrime.securesms.conversation.mutiselect.forward
import androidx.fragment.app.FragmentManager
import org.thoughtcrime.securesms.contacts.paged.ContactSearchConfiguration
import org.thoughtcrime.securesms.contacts.paged.ContactSearchState
/**
* Allows a parent of MultiselectForwardFragment to provide a custom search page configuration.
*/
interface SearchConfigurationProvider {
fun getSearchConfiguration(contactSearchState: ContactSearchState): ContactSearchConfiguration? = null
/**
* @param fragmentManager The child fragment manager of the MultiselectForwardFragment, to launch actions in to.
* @param contactSearchState The search state, to build the configuration from.
*
* @return A configuration or null. Returning null will result in MultiselectForwardFragment using it's default configuration.
*/
fun getSearchConfiguration(fragmentManager: FragmentManager, contactSearchState: ContactSearchState): ContactSearchConfiguration? = null
}