From 95d63b78f45d752ba9b12b9d269d20884823603f Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Thu, 18 Jun 2020 13:23:46 -0300 Subject: [PATCH] Add call and message buttons to recipient bottom sheet. And insecure call button for non-registered contacts. --- .../RecipientBottomSheetDialogFragment.java | 13 ++-- .../bottomsheet/RecipientDialogViewModel.java | 8 +++ .../res/layout/recipient_bottom_sheet.xml | 62 +++++++++++++------ app/src/main/res/values/strings.xml | 6 +- 4 files changed, 65 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java index dd3619bb99..ad90c9d0ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java @@ -52,6 +52,8 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF private TextView usernameNumber; private Button messageButton; private Button secureCallButton; + private Button insecureCallButton; + private Button secureVideoCallButton; private Button blockButton; private Button unblockButton; private Button addContactButton; @@ -96,6 +98,8 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF usernameNumber = view.findViewById(R.id.rbs_username_number); messageButton = view.findViewById(R.id.rbs_message_button); secureCallButton = view.findViewById(R.id.rbs_secure_call_button); + insecureCallButton = view.findViewById(R.id.rbs_insecure_call_button); + secureVideoCallButton = view.findViewById(R.id.rbs_video_call_button); blockButton = view.findViewById(R.id.rbs_block_button); unblockButton = view.findViewById(R.id.rbs_unblock_button); addContactButton = view.findViewById(R.id.rbs_add_contact_button); @@ -152,6 +156,8 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF unblockButton.setVisibility(recipient.isLocalNumber() || !blocked ? View.GONE : View.VISIBLE); secureCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); + insecureCallButton.setVisibility(!recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); + secureVideoCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); if (recipient.isSystemContact() || recipient.isGroup() || recipient.isLocalNumber()) { addContactButton.setVisibility(View.GONE); @@ -193,10 +199,9 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF viewModel.onMessageClicked(requireActivity()); }); - secureCallButton.setOnClickListener(view -> { - dismiss(); - viewModel.onSecureCallClicked(requireActivity()); - }); + secureCallButton.setOnClickListener(view -> viewModel.onSecureCallClicked(requireActivity())); + insecureCallButton.setOnClickListener(view -> viewModel.onInsecureCallClicked(requireActivity())); + secureVideoCallButton.setOnClickListener(view -> viewModel.onSecureVideoCallClicked(requireActivity())); blockButton.setOnClickListener(view -> viewModel.onBlockClicked(requireActivity())); unblockButton.setOnClickListener(view -> viewModel.onUnblockClicked(requireActivity())); diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java index c325f10535..3b99be7234 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java @@ -99,6 +99,14 @@ final class RecipientDialogViewModel extends ViewModel { recipientDialogRepository.getRecipient(recipient -> CommunicationActions.startVoiceCall(activity, recipient)); } + void onInsecureCallClicked(@NonNull FragmentActivity activity) { + recipientDialogRepository.getRecipient(recipient -> CommunicationActions.startInsecureCall(activity, recipient)); + } + + void onSecureVideoCallClicked(@NonNull FragmentActivity activity) { + recipientDialogRepository.getRecipient(recipient -> CommunicationActions.startVideoCall(activity, recipient)); + } + void onBlockClicked(@NonNull FragmentActivity activity) { recipientDialogRepository.getRecipient(recipient -> BlockUnblockDialog.showBlockFor(activity, activity.getLifecycle(), recipient, () -> RecipientUtil.block(context, recipient))); } diff --git a/app/src/main/res/layout/recipient_bottom_sheet.xml b/app/src/main/res/layout/recipient_bottom_sheet.xml index f9f1e6773f..53e35389bd 100644 --- a/app/src/main/res/layout/recipient_bottom_sheet.xml +++ b/app/src/main/res/layout/recipient_bottom_sheet.xml @@ -63,25 +63,51 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/rbs_username_number"> -