mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-24 19:56:00 +00:00
Add dialog to nav to story or profile photo.
This commit is contained in:
committed by
Cody Henthorne
parent
c081193373
commit
e22560a794
@@ -75,6 +75,8 @@ import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.recipients.RecipientExporter
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment
|
||||
import org.thoughtcrime.securesms.stories.Stories
|
||||
import org.thoughtcrime.securesms.stories.dialogs.StoryDialogs
|
||||
import org.thoughtcrime.securesms.stories.viewer.StoryViewerActivity
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions
|
||||
import org.thoughtcrime.securesms.util.ContextUtil
|
||||
@@ -269,15 +271,18 @@ class ConversationSettingsFragment : DSLSettingsFragment(
|
||||
recipient = state.recipient,
|
||||
storyViewState = state.storyViewState,
|
||||
onAvatarClick = { avatar ->
|
||||
if (avatar.hasStory()) {
|
||||
startActivity(StoryViewerActivity.createIntent(requireContext(), state.recipient.id))
|
||||
val viewAvatarIntent = AvatarPreviewActivity.intentFromRecipientId(requireContext(), state.recipient.id)
|
||||
val viewAvatarTransitionBundle = AvatarPreviewActivity.createTransitionBundle(requireActivity(), avatar)
|
||||
|
||||
if (Stories.isFeatureEnabled() && avatar.hasStory()) {
|
||||
val viewStoryIntent = StoryViewerActivity.createIntent(requireContext(), state.recipient.id)
|
||||
StoryDialogs.displayStoryOrProfileImage(
|
||||
context = requireContext(),
|
||||
onViewStory = { startActivity(viewStoryIntent) },
|
||||
onViewAvatar = { startActivity(viewAvatarIntent, viewAvatarTransitionBundle) }
|
||||
)
|
||||
} else if (!state.recipient.isSelf) {
|
||||
requireActivity().apply {
|
||||
startActivity(
|
||||
AvatarPreviewActivity.intentFromRecipientId(this, state.recipient.id),
|
||||
AvatarPreviewActivity.createTransitionBundle(this, avatar)
|
||||
)
|
||||
}
|
||||
startActivity(viewAvatarIntent, viewAvatarTransitionBundle)
|
||||
}
|
||||
},
|
||||
onBadgeClick = { badge ->
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package org.thoughtcrime.securesms.stories.dialogs
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
import com.google.android.material.shape.ShapeAppearanceModel
|
||||
import org.signal.core.util.DimensionUnit
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
@@ -51,4 +55,28 @@ object StoryDialogs {
|
||||
.setPositiveButton(R.string.StoryDialogs__send) { _, _ -> resend() }
|
||||
.show()
|
||||
}
|
||||
|
||||
fun displayStoryOrProfileImage(
|
||||
context: Context,
|
||||
onViewStory: () -> Unit,
|
||||
onViewAvatar: () -> Unit
|
||||
) {
|
||||
MaterialAlertDialogBuilder(context)
|
||||
.setView(R.layout.display_story_or_profile_image_dialog)
|
||||
.setBackground(MaterialShapeDrawable(ShapeAppearanceModel.builder().setAllCornerSizes(DimensionUnit.DP.toPixels(28f)).build()))
|
||||
.create()
|
||||
.apply {
|
||||
setOnShowListener { dialog ->
|
||||
findViewById<View>(R.id.view_story)!!.setOnClickListener {
|
||||
dialog.dismiss()
|
||||
onViewStory()
|
||||
}
|
||||
findViewById<View>(R.id.view_profile_photo)!!.setOnClickListener {
|
||||
dialog.dismiss()
|
||||
onViewAvatar()
|
||||
}
|
||||
}
|
||||
}
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user