Start viewer when clicking on story ring.

fork-5.53.8
Alex Hart 2022-03-30 14:44:13 -03:00 zatwierdzone przez Cody Henthorne
rodzic 0ef215dfc5
commit 267efb0763
9 zmienionych plików z 41 dodań i 8 usunięć

Wyświetl plik

@ -51,6 +51,10 @@ class AvatarView @JvmOverloads constructor(
avatar.scaleY = 1f
}
fun hasStory(): Boolean {
return storyRing.visible
}
fun setStoryRingFromState(storyViewState: StoryViewState) {
when (storyViewState) {
StoryViewState.NONE -> hideStoryRing()

Wyświetl plik

@ -75,6 +75,7 @@ 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.viewer.StoryViewerActivity
import org.thoughtcrime.securesms.util.CommunicationActions
import org.thoughtcrime.securesms.util.ContextUtil
import org.thoughtcrime.securesms.util.ExpirationUtil
@ -268,10 +269,9 @@ class ConversationSettingsFragment : DSLSettingsFragment(
recipient = state.recipient,
storyViewState = state.storyViewState,
onAvatarClick = { avatar ->
if (!state.recipient.isSelf) {
// startActivity(StoryViewerActivity.createIntent(requireContext(), state.recipient.id))
// TODO [stories] -- If recipient has a story, go to story viewer.
if (avatar.hasStory()) {
startActivity(StoryViewerActivity.createIntent(requireContext(), state.recipient.id))
} else if (!state.recipient.isSelf) {
requireActivity().apply {
startActivity(
AvatarPreviewActivity.intentFromRecipientId(this, state.recipient.id),

Wyświetl plik

@ -28,7 +28,7 @@ object AvatarPreference {
class Model(
val recipient: Recipient,
val storyViewState: StoryViewState,
val onAvatarClick: (View) -> Unit,
val onAvatarClick: (AvatarView) -> Unit,
val onBadgeClick: (Badge) -> Unit
) : PreferenceModel<Model>() {
override fun areItemsTheSame(newItem: Model): Boolean {

Wyświetl plik

@ -112,6 +112,7 @@ import org.thoughtcrime.securesms.ShortcutLauncherActivity;
import org.thoughtcrime.securesms.TransportOption;
import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel;
import org.thoughtcrime.securesms.contacts.sync.ContactDiscovery;
import org.thoughtcrime.securesms.stories.viewer.StoryViewerActivity;
import org.thoughtcrime.securesms.util.Debouncer;
import org.thoughtcrime.securesms.util.LifecycleDisposable;
import org.thoughtcrime.securesms.verify.VerifyIdentityActivity;
@ -1246,6 +1247,10 @@ public class ConversationParentFragment extends Fragment
});
}
private void handleStoryRingClick() {
startActivity(StoryViewerActivity.createIntent(requireContext(), recipient.getId(), -1L));
}
private void handleConversationSettings() {
if (isGroupConversation()) {
handleManageGroup();
@ -2121,6 +2126,7 @@ public class ConversationParentFragment extends Fragment
if (manuallySelected) recordTransportPreference(newTransport);
});
titleView.setOnStoryRingClickListener(v -> handleStoryRingClick());
titleView.setOnClickListener(v -> handleConversationSettings());
titleView.setOnLongClickListener(v -> handleDisplayQuickContact());
unblockButton.setOnClickListener(v -> handleUnblock());

Wyświetl plik

@ -128,6 +128,16 @@ public class ConversationTitleView extends RelativeLayout {
avatar.setStoryRingFromState(storyViewState);
}
public void setOnStoryRingClickListener(@NonNull OnClickListener onStoryRingClickListener) {
avatar.setOnClickListener(v -> {
if (avatar.hasStory()) {
onStoryRingClickListener.onClick(v);
} else {
performClick();
}
});
}
public void setVerified(boolean verified) {
this.verified.setVisibility(verified ? View.VISIBLE : View.GONE);

Wyświetl plik

@ -169,7 +169,7 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
if (recipient.isSelf()) {
avatar.setOnClickListener(v -> {
dismiss();
viewModel.onMessageClicked(requireActivity());
viewModel.onNoteToSelfClicked(requireActivity());
});
}

Wyświetl plik

@ -32,6 +32,7 @@ import org.thoughtcrime.securesms.groups.ui.addtogroup.AddToGroupsActivity;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.recipients.RecipientUtil;
import org.thoughtcrime.securesms.stories.viewer.StoryViewerActivity;
import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
import org.thoughtcrime.securesms.verify.VerifyIdentityActivity;
@ -135,6 +136,14 @@ final class RecipientDialogViewModel extends ViewModel {
return adminActionBusy;
}
void onNoteToSelfClicked(@NonNull Activity activity) {
if (storyViewState.getValue() == null || storyViewState.getValue() == StoryViewState.NONE) {
onMessageClicked(activity);
} else {
activity.startActivity(StoryViewerActivity.createIntent(activity, recipientDialogRepository.getRecipientId(), -1L));
}
}
void onMessageClicked(@NonNull Activity activity) {
recipientDialogRepository.getRecipient(recipient -> CommunicationActions.startConversation(activity, recipient, null));
}
@ -164,7 +173,11 @@ final class RecipientDialogViewModel extends ViewModel {
}
void onAvatarClicked(@NonNull Activity activity) {
activity.startActivity(ConversationSettingsActivity.forRecipient(activity, recipientDialogRepository.getRecipientId()));
if (storyViewState.getValue() == null || storyViewState.getValue() == StoryViewState.NONE) {
activity.startActivity(ConversationSettingsActivity.forRecipient(activity, recipientDialogRepository.getRecipientId()));
} else {
activity.startActivity(StoryViewerActivity.createIntent(activity, recipientDialogRepository.getRecipientId(), -1L));
}
}
void onMakeGroupAdminClicked(@NonNull Activity activity) {

Wyświetl plik

@ -38,6 +38,7 @@ class StoryViewerActivity : PassphraseRequiredActivity() {
private const val ARG_START_RECIPIENT_ID = "start.recipient.id"
private const val ARG_START_STORY_ID = "start.story.id"
@JvmStatic
fun createIntent(context: Context, recipientId: RecipientId, storyId: Long = -1L): Intent {
return Intent(context, StoryViewerActivity::class.java)
.putExtra(ARG_START_RECIPIENT_ID, recipientId)

Wyświetl plik

@ -59,7 +59,6 @@ import org.thoughtcrime.securesms.util.DateUtils
import org.thoughtcrime.securesms.util.LifecycleDisposable
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.fragments.requireListener
import org.thoughtcrime.securesms.util.hasThumbnail
import org.thoughtcrime.securesms.util.views.TouchInterceptingFrameLayout
import org.thoughtcrime.securesms.util.visible
import java.util.Locale