Only display stories if you entered through stories.

This commit is contained in:
Alex Hart
2022-03-10 16:44:21 -04:00
committed by Cody Henthorne
parent 4dca554967
commit 9281bcdd7d
6 changed files with 63 additions and 19 deletions

View File

@@ -18,6 +18,9 @@ import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.TransportOption
import org.thoughtcrime.securesms.TransportOptions
import org.thoughtcrime.securesms.components.emoji.EmojiEventListener
import org.thoughtcrime.securesms.contacts.paged.ContactSearchConfiguration
import org.thoughtcrime.securesms.contacts.paged.ContactSearchState
import org.thoughtcrime.securesms.conversation.mutiselect.forward.SearchConfigurationProvider
import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageFragment
import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchFragment
import org.thoughtcrime.securesms.mediasend.Media
@@ -35,7 +38,8 @@ class MediaSelectionActivity :
MediaReviewFragment.Callback,
EmojiKeyboardPageFragment.Callback,
EmojiEventListener,
EmojiSearchFragment.Callback {
EmojiSearchFragment.Callback,
SearchConfigurationProvider {
lateinit var viewModel: MediaSelectionViewModel
@@ -44,6 +48,9 @@ class MediaSelectionActivity :
private val destination: MediaSelectionDestination
get() = MediaSelectionDestination.fromBundle(requireNotNull(intent.getBundleExtra(DESTINATION)))
private val isStory: Boolean
get() = intent.getBooleanExtra(IS_STORY, false)
override fun attachBaseContext(newBase: Context) {
delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES
super.attachBaseContext(newBase)
@@ -201,6 +208,24 @@ class MediaSelectionActivity :
viewModel.sendCommand(HudCommand.CloseEmojiSearch)
}
override fun getSearchConfiguration(contactSearchState: ContactSearchState): ContactSearchConfiguration? {
return if (isStory) {
ContactSearchConfiguration.build {
query = contactSearchState.query
addSection(
ContactSearchConfiguration.Section.Stories(
groupStories = contactSearchState.groupStories,
includeHeader = true,
headerAction = Stories.getHeaderAction(supportFragmentManager)
)
)
}
} else {
null
}
}
private inner class OnBackPressed : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
val navController = Navigation.findNavController(this@MediaSelectionActivity, R.id.fragment_container)
@@ -221,12 +246,19 @@ class MediaSelectionActivity :
private const val MESSAGE = "message"
private const val DESTINATION = "destination"
private const val IS_REPLY = "is_reply"
private const val IS_STORY = "is_story"
@JvmStatic
fun camera(context: Context): Intent {
return camera(context, false)
}
@JvmStatic
fun camera(context: Context, isStory: Boolean): Intent {
return buildIntent(
context = context,
startAction = R.id.action_directly_to_mediaCaptureFragment
startAction = R.id.action_directly_to_mediaCaptureFragment,
isStory = isStory
)
}
@@ -307,7 +339,8 @@ class MediaSelectionActivity :
media: List<Media> = listOf(),
destination: MediaSelectionDestination = MediaSelectionDestination.ChooseAfterMediaSelection,
message: CharSequence? = null,
isReply: Boolean = false
isReply: Boolean = false,
isStory: Boolean = false
): Intent {
return Intent(context, MediaSelectionActivity::class.java).apply {
putExtra(START_ACTION, startAction)
@@ -316,6 +349,7 @@ class MediaSelectionActivity :
putExtra(MESSAGE, message)
putExtra(DESTINATION, destination.toBundle())
putExtra(IS_REPLY, isReply)
putExtra(IS_STORY, isStory)
}
}
}

View File

@@ -13,7 +13,6 @@ import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.RecyclerView
import org.signal.core.util.DimensionUnit
import org.thoughtcrime.securesms.R
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
@@ -25,6 +24,7 @@ import org.thoughtcrime.securesms.mediasend.v2.text.TextStoryPostCreationViewMod
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.sharing.ShareSelectionAdapter
import org.thoughtcrime.securesms.sharing.ShareSelectionMappingModel
import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.stories.dialogs.StoryDialogs
import org.thoughtcrime.securesms.stories.settings.create.CreateStoryWithViewersFragment
import org.thoughtcrime.securesms.stories.settings.hide.HideStoryFromDialogFragment
@@ -131,10 +131,7 @@ class TextStoryPostSendFragment : Fragment(R.layout.stories_send_text_post_fragm
ContactSearchConfiguration.Section.Stories(
groupStories = contactSearchState.groupStories,
includeHeader = true,
headerAction = getHeaderAction(),
expandConfig = ContactSearchConfiguration.ExpandConfig(
isExpanded = contactSearchState.expandedSections.contains(ContactSearchConfiguration.SectionKey.STORIES)
)
headerAction = Stories.getHeaderAction(childFragmentManager)
)
)
}
@@ -183,15 +180,6 @@ class TextStoryPostSendFragment : Fragment(R.layout.stories_send_text_post_fragm
.alpha(0f)
}
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)
}
}
override fun onNewStoryClicked() {
findNavController().navigate(R.id.action_textStoryPostSendFragment_to_newStory)
}