Fix issue where user could not select a group story.

fork-5.53.8
Alex Hart 2022-03-14 11:05:42 -03:00 zatwierdzone przez Cody Henthorne
rodzic 78de70881f
commit 87ad4be117
4 zmienionych plików z 20 dodań i 18 usunięć

Wyświetl plik

@ -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)
)

Wyświetl plik

@ -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
}

Wyświetl plik

@ -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)
)
)
}

Wyświetl plik

@ -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()
}
)
)