Fix issue where user could not select a group story.
This commit is contained in:
parent
78de70881f
commit
87ad4be117
4 changed files with 20 additions and 18 deletions
|
@ -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)
|
||||
)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.view.ViewGroup
|
|||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.Navigation
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
|
@ -208,7 +209,7 @@ class MediaSelectionActivity :
|
|||
viewModel.sendCommand(HudCommand.CloseEmojiSearch)
|
||||
}
|
||||
|
||||
override fun getSearchConfiguration(contactSearchState: ContactSearchState): ContactSearchConfiguration? {
|
||||
override fun getSearchConfiguration(fragmentManager: FragmentManager, contactSearchState: ContactSearchState): ContactSearchConfiguration? {
|
||||
return if (isStory) {
|
||||
ContactSearchConfiguration.build {
|
||||
query = contactSearchState.query
|
||||
|
@ -217,7 +218,7 @@ class MediaSelectionActivity :
|
|||
ContactSearchConfiguration.Section.Stories(
|
||||
groupStories = contactSearchState.groupStories,
|
||||
includeHeader = true,
|
||||
headerAction = Stories.getHeaderAction(supportFragmentManager)
|
||||
headerAction = Stories.getHeaderAction(fragmentManager)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsIcon
|
|||
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
|
||||
import org.thoughtcrime.securesms.components.settings.configure
|
||||
import org.thoughtcrime.securesms.components.settings.conversation.preferences.LargeIconClickPreference
|
||||
import org.thoughtcrime.securesms.util.fragments.findListener
|
||||
import org.thoughtcrime.securesms.util.fragments.requireListener
|
||||
|
||||
class ChooseStoryTypeBottomSheet : DSLSettingsBottomSheetFragment(
|
||||
layoutId = R.layout.dsl_settings_bottom_sheet_no_handle
|
||||
|
@ -45,7 +45,7 @@ class ChooseStoryTypeBottomSheet : DSLSettingsBottomSheetFragment(
|
|||
),
|
||||
onClick = {
|
||||
dismissAllowingStateLoss()
|
||||
findListener<Callback>()?.onNewStoryClicked()
|
||||
requireListener<Callback>().onNewStoryClicked()
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -67,7 +67,7 @@ class ChooseStoryTypeBottomSheet : DSLSettingsBottomSheetFragment(
|
|||
),
|
||||
onClick = {
|
||||
dismissAllowingStateLoss()
|
||||
findListener<Callback>()?.onGroupStoryClicked()
|
||||
requireListener<Callback>().onGroupStoryClicked()
|
||||
}
|
||||
)
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue