kopia lustrzana https://github.com/ryukoposting/Signal-Android
Make message button navigate back if launched from the conversation.
rodzic
95d63b78f4
commit
555104aff0
|
@ -1042,7 +1042,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
|
||||
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");
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@ import org.thoughtcrime.securesms.util.DynamicTheme;
|
|||
|
||||
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();
|
||||
|
||||
|
@ -28,6 +29,16 @@ public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity
|
|||
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();
|
||||
|
@ -47,7 +58,7 @@ public class ManageRecipientActivity extends PassphraseRequiredActionBarActivity
|
|||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,8 @@ import java.util.Locale;
|
|||
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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -149,8 +151,9 @@ public class ManageRecipientFragment extends Fragment {
|
|||
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);
|
||||
|
||||
|
@ -227,7 +230,13 @@ public class ManageRecipientFragment extends Fragment {
|
|||
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()));
|
||||
|
|
Ładowanie…
Reference in New Issue