Skip to content

Commit

Permalink
Make message button navigate back if launched from the conversation.
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-signal committed Jun 18, 2020
1 parent 95d63b7 commit 555104a
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 8 deletions.
Expand Up @@ -1042,7 +1042,7 @@ private void handleConversationSettings() {

if (isInMessageRequest()) return;

Intent intent = ManageRecipientActivity.newIntent(this, recipient.getId());
Intent intent = ManageRecipientActivity.newIntentFromConversation(this, recipient.getId());
startActivitySceneTransition(intent, titleView.findViewById(R.id.contact_photo_image), "avatar");
}

Expand Down
Expand Up @@ -18,7 +18,8 @@

public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity {

private static final String RECIPIENT_ID = "RECIPIENT_ID";
private static final String RECIPIENT_ID = "RECIPIENT_ID";
private static final String FROM_CONVERSATION = "FROM_CONVERSATION";

private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();

Expand All @@ -28,6 +29,16 @@ public static Intent newIntent(@NonNull Context context, @NonNull RecipientId re
return intent;
}

/**
* Makes the message button behave like back.
*/
public static Intent newIntentFromConversation(@NonNull Context context, @NonNull RecipientId recipientId) {
Intent intent = new Intent(context, ManageRecipientActivity.class);
intent.putExtra(RECIPIENT_ID, recipientId);
intent.putExtra(FROM_CONVERSATION, true);
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();
Expand All @@ -47,7 +58,7 @@ protected void onCreate(Bundle savedInstanceState, boolean ready) {
setContentView(R.layout.recipient_manage_activity);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, ManageRecipientFragment.newInstance(getIntent().getParcelableExtra(RECIPIENT_ID)))
.replace(R.id.container, ManageRecipientFragment.newInstance(getIntent().getParcelableExtra(RECIPIENT_ID), getIntent().getBooleanExtra(FROM_CONVERSATION, false)))
.commitNow();
}
}
Expand Down
Expand Up @@ -55,7 +55,8 @@
import java.util.Objects;

public class ManageRecipientFragment extends Fragment {
private static final String RECIPIENT_ID = "RECIPIENT_ID";
private static final String RECIPIENT_ID = "RECIPIENT_ID";
private static final String FROM_CONVERSATION = "FROM_CONVERSATION";

private static final int RETURN_FROM_MEDIA = 405;

Expand Down Expand Up @@ -93,11 +94,12 @@ public class ManageRecipientFragment extends Fragment {
private View insecureCallButton;
private View secureVideoCallButton;

static ManageRecipientFragment newInstance(@NonNull RecipientId recipientId) {
static ManageRecipientFragment newInstance(@NonNull RecipientId recipientId, boolean fromConversation) {
ManageRecipientFragment fragment = new ManageRecipientFragment();
Bundle args = new Bundle();

args.putParcelable(RECIPIENT_ID, recipientId);
args.putBoolean(FROM_CONVERSATION, fromConversation);
fragment.setArguments(args);

return fragment;
Expand Down Expand Up @@ -149,8 +151,9 @@ static ManageRecipientFragment newInstance(@NonNull RecipientId recipientId) {
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

RecipientId recipientId = Objects.requireNonNull(requireArguments().getParcelable(RECIPIENT_ID));
ManageRecipientViewModel.Factory factory = new ManageRecipientViewModel.Factory(recipientId);
RecipientId recipientId = Objects.requireNonNull(requireArguments().getParcelable(RECIPIENT_ID));
boolean fromConversation = requireArguments().getBoolean(FROM_CONVERSATION, false);
ManageRecipientViewModel.Factory factory = new ManageRecipientViewModel.Factory(recipientId);

viewModel = ViewModelProviders.of(requireActivity(), factory).get(ManageRecipientViewModel.class);

Expand Down Expand Up @@ -227,7 +230,13 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
unblock.setVisibility(canBlock ? View.GONE : View.VISIBLE);
});

messageButton.setOnClickListener(v -> viewModel.onMessage(requireActivity()));
messageButton.setOnClickListener(v -> {
if (fromConversation) {
requireActivity().onBackPressed();
} else {
viewModel.onMessage(requireActivity());
}
});
secureCallButton.setOnClickListener(v -> viewModel.onSecureCall(requireActivity()));
insecureCallButton.setOnClickListener(v -> viewModel.onInsecureCall(requireActivity()));
secureVideoCallButton.setOnClickListener(v -> viewModel.onSecureVideoCall(requireActivity()));
Expand Down

0 comments on commit 555104a

Please sign in to comment.