mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 13:38:33 +00:00
Make message button navigate back if launched from the conversation.
This commit is contained in:
parent
95d63b78f4
commit
555104aff0
@ -1042,7 +1042,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
|
|
||||||
if (isInMessageRequest()) return;
|
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");
|
startActivitySceneTransition(intent, titleView.findViewById(R.id.contact_photo_image), "avatar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,8 @@ import org.thoughtcrime.securesms.util.DynamicTheme;
|
|||||||
|
|
||||||
public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity {
|
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();
|
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
|
||||||
|
|
||||||
@ -28,6 +29,16 @@ public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity
|
|||||||
return intent;
|
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) {
|
public static @Nullable Bundle createTransitionBundle(@NonNull Context activityContext, @NonNull View from) {
|
||||||
if (activityContext instanceof Activity) {
|
if (activityContext instanceof Activity) {
|
||||||
return ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) activityContext, from, "avatar").toBundle();
|
return ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) activityContext, from, "avatar").toBundle();
|
||||||
@ -47,7 +58,7 @@ public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity
|
|||||||
setContentView(R.layout.recipient_manage_activity);
|
setContentView(R.layout.recipient_manage_activity);
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
getSupportFragmentManager().beginTransaction()
|
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();
|
.commitNow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,8 @@ import java.util.Locale;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ManageRecipientFragment extends Fragment {
|
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;
|
private static final int RETURN_FROM_MEDIA = 405;
|
||||||
|
|
||||||
@ -93,11 +94,12 @@ public class ManageRecipientFragment extends Fragment {
|
|||||||
private View insecureCallButton;
|
private View insecureCallButton;
|
||||||
private View secureVideoCallButton;
|
private View secureVideoCallButton;
|
||||||
|
|
||||||
static ManageRecipientFragment newInstance(@NonNull RecipientId recipientId) {
|
static ManageRecipientFragment newInstance(@NonNull RecipientId recipientId, boolean fromConversation) {
|
||||||
ManageRecipientFragment fragment = new ManageRecipientFragment();
|
ManageRecipientFragment fragment = new ManageRecipientFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
args.putParcelable(RECIPIENT_ID, recipientId);
|
args.putParcelable(RECIPIENT_ID, recipientId);
|
||||||
|
args.putBoolean(FROM_CONVERSATION, fromConversation);
|
||||||
fragment.setArguments(args);
|
fragment.setArguments(args);
|
||||||
|
|
||||||
return fragment;
|
return fragment;
|
||||||
@ -149,8 +151,9 @@ public class ManageRecipientFragment extends Fragment {
|
|||||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
RecipientId recipientId = Objects.requireNonNull(requireArguments().getParcelable(RECIPIENT_ID));
|
RecipientId recipientId = Objects.requireNonNull(requireArguments().getParcelable(RECIPIENT_ID));
|
||||||
ManageRecipientViewModel.Factory factory = new ManageRecipientViewModel.Factory(recipientId);
|
boolean fromConversation = requireArguments().getBoolean(FROM_CONVERSATION, false);
|
||||||
|
ManageRecipientViewModel.Factory factory = new ManageRecipientViewModel.Factory(recipientId);
|
||||||
|
|
||||||
viewModel = ViewModelProviders.of(requireActivity(), factory).get(ManageRecipientViewModel.class);
|
viewModel = ViewModelProviders.of(requireActivity(), factory).get(ManageRecipientViewModel.class);
|
||||||
|
|
||||||
@ -227,7 +230,13 @@ public class ManageRecipientFragment extends Fragment {
|
|||||||
unblock.setVisibility(canBlock ? View.GONE : View.VISIBLE);
|
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()));
|
secureCallButton.setOnClickListener(v -> viewModel.onSecureCall(requireActivity()));
|
||||||
insecureCallButton.setOnClickListener(v -> viewModel.onInsecureCall(requireActivity()));
|
insecureCallButton.setOnClickListener(v -> viewModel.onInsecureCall(requireActivity()));
|
||||||
secureVideoCallButton.setOnClickListener(v -> viewModel.onSecureVideoCall(requireActivity()));
|
secureVideoCallButton.setOnClickListener(v -> viewModel.onSecureVideoCall(requireActivity()));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user