From 2d8b2e7fb06d55fe983226dbb1374c86e59324b2 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Sun, 7 Jun 2020 14:44:30 -0300 Subject: [PATCH] Transitions for group settings. --- .../securesms/components/AvatarImageView.java | 3 ++- .../securesms/conversation/ConversationActivity.java | 8 ++++---- .../groups/ui/managegroup/ManageGroupActivity.java | 12 ++++++++++++ .../groups/ui/managegroup/ManageGroupFragment.java | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java index d2ab6ec52b..5b4ae785a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java @@ -163,7 +163,8 @@ public final class AvatarImageView extends AppCompatImageView { if (quickContactEnabled) { super.setOnClickListener(v -> { if (FeatureFlags.newGroupUI() && recipient.isPushGroup()) { - getContext().startActivity(ManageGroupActivity.newIntent(getContext(), recipient.requireGroupId().requirePush())); + getContext().startActivity(ManageGroupActivity.newIntent(getContext(), recipient.requireGroupId().requirePush()), + ManageGroupActivity.createTransitionBundle(getContext(), this)); } else { getContext().startActivity(RecipientPreferenceActivity.getLaunchIntent(getContext(), recipient.getId())); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index ad90af1559..0dcd324fab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -1036,9 +1036,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void handleConversationSettings() { if (FeatureFlags.newGroupUI() && isPushGroupConversation()) { - startActivitySceneTransition(ManageGroupActivity.newIntent(this, getRecipient().requireGroupId().requirePush()), - titleView.findViewById(R.id.contact_photo_image), - "avatar"); + handleManagePushGroup(); return; } @@ -1206,7 +1204,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } private void handleManagePushGroup() { - startActivityForResult(ManageGroupActivity.newIntent(ConversationActivity.this, recipient.get().requireGroupId().requirePush()), GROUP_EDIT); + startActivityForResult(ManageGroupActivity.newIntent(ConversationActivity.this, recipient.get().requireGroupId().requirePush()), + GROUP_EDIT, + ManageGroupActivity.createTransitionBundle(this, titleView.findViewById(R.id.contact_photo_image))); } private void handleDistributionBroadcastEnabled(MenuItem item) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupActivity.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupActivity.java index 0d25a79f6d..8815b525ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupActivity.java @@ -1,10 +1,14 @@ package org.thoughtcrime.securesms.groups.ui.managegroup; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.view.View; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityOptionsCompat; import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity; import org.thoughtcrime.securesms.R; @@ -24,6 +28,14 @@ public class ManageGroupActivity extends PassphraseRequiredActionBarActivity { return intent; } + public static @Nullable Bundle createTransitionBundle(@NonNull Context activityContext, @NonNull View from) { + if (activityContext instanceof Activity) { + return ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) activityContext, from, "avatar").toBundle(); + } else { + return null; + } + } + @Override protected void onPreCreate() { dynamicTheme.onCreate(this); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java index f5e8c78fa5..c5c7ff302b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java @@ -206,7 +206,7 @@ public class ManageGroupFragment extends Fragment { avatar.setFallbackPhotoProvider(fallbackPhotoProvider); - toolbar.setNavigationOnClickListener(v -> requireActivity().finish()); + toolbar.setNavigationOnClickListener(v -> requireActivity().onBackPressed()); toolbar.setOnMenuItemClickListener(this::onMenuItemSelected); toolbar.inflateMenu(R.menu.manage_group_fragment);