Add dialog to nav to story or profile photo.
This commit is contained in:
parent
c081193373
commit
e22560a794
4 changed files with 74 additions and 8 deletions
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/view_story"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48sp"
|
||||
android:background="?selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingHorizontal="@dimen/dsl_settings_gutter"
|
||||
android:text="@string/StoryDialogs__view_story"
|
||||
android:textAppearance="@style/Signal.Text.Body" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/view_profile_photo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48sp"
|
||||
android:background="?selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingHorizontal="@dimen/dsl_settings_gutter"
|
||||
android:text="@string/StoryDialogs__view_profile_photo"
|
||||
android:textAppearance="@style/Signal.Text.Body" />
|
||||
|
||||
</LinearLayout>
|
|
@ -4662,6 +4662,10 @@
|
|||
<string name="TextStoryPostCreationFragment__sent_story">Sent story</string>
|
||||
<!-- Toasted when the user external share to a text story fails -->
|
||||
<string name="TextStoryPostCreationFragment__failed_to_send_story">Failed to send story</string>
|
||||
<!-- Displayed in a dialog to let the user select a given users story -->
|
||||
<string name="StoryDialogs__view_story">View story</string>
|
||||
<!-- Displayed in a dialog to let the user select a given users profile photo -->
|
||||
<string name="StoryDialogs__view_profile_photo">View profile photo</string>
|
||||
|
||||
<!-- Title for a notification at the bottom of the chat list suggesting that the user disable censorship circumvention because the service has become reachable -->
|
||||
<string name="TurnOffCircumventionMegaphone_turn_off_censorship_circumvention">Turn off censorship circumvention?</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue