From d783ea6010bc148471924785701a6a1cfdd7c0b5 Mon Sep 17 00:00:00 2001 From: iTaysonLab Date: Sun, 31 Jan 2021 01:13:32 +0200 Subject: [PATCH] calls: implement a "Ask to Call" dialog when dialing a user --- .../src/main/java/org/telegram/ui/CallLogActivity.java | 6 +++--- .../src/main/java/org/telegram/ui/ChatActivity.java | 8 ++++---- .../java/org/telegram/ui/Components/voip/VoIPHelper.java | 6 ++++++ .../src/main/java/org/telegram/ui/LaunchActivity.java | 2 +- .../src/main/java/org/telegram/ui/ProfileActivity.java | 6 +++--- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java index 0b73977664e..7fa034e48aa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CallLogActivity.java @@ -219,7 +219,7 @@ public void setChecked(boolean checked, boolean animated) { public void onClick(View v) { CallLogRow row = (CallLogRow) v.getTag(); TLRPC.UserFull userFull = getMessagesController().getUserFull(row.user.id); - VoIPHelper.startCall(lastCallUser = row.user, row.video, row.video || userFull != null && userFull.video_calls_available, getParentActivity(), null); + VoIPHelper.startCall(lastCallUser = row.user, row.video, row.video || userFull != null && userFull.video_calls_available, getParentActivity(), null, CallLogActivity.this); } }; @@ -405,7 +405,7 @@ public void getOutline(View view, Outline outline) { ContactsActivity contactsFragment = new ContactsActivity(args); contactsFragment.setDelegate((user, param, activity) -> { TLRPC.UserFull userFull = getMessagesController().getUserFull(user.id); - VoIPHelper.startCall(lastCallUser = user, false, userFull != null && userFull.video_calls_available, getParentActivity(), null); + VoIPHelper.startCall(lastCallUser = user, false, userFull != null && userFull.video_calls_available, getParentActivity(), null, CallLogActivity.this); }); presentFragment(contactsFragment); }); @@ -670,7 +670,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss } if (grantResults.length > 0 && allGranted) { TLRPC.UserFull userFull = lastCallUser != null ? getMessagesController().getUserFull(lastCallUser.id) : null; - VoIPHelper.startCall(lastCallUser, requestCode == 102, requestCode == 102 || userFull != null && userFull.video_calls_available, getParentActivity(), null); + VoIPHelper.startCall(lastCallUser, requestCode == 102, requestCode == 102 || userFull != null && userFull.video_calls_available, getParentActivity(), null, CallLogActivity.this); } else { VoIPHelper.permissionDenied(getParentActivity(), null, requestCode); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index e5c34816526..c7623a9ca47 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -1870,7 +1870,7 @@ public void onItemClick(final int id) { openSearchWithText(null); } else if (id == call || id == video_call) { if (currentUser != null && getParentActivity() != null) { - VoIPHelper.startCall(currentUser, id == video_call, userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id)); + VoIPHelper.startCall(currentUser, id == video_call, userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id), ChatActivity.this); } } else if (id == text_bold) { if (chatActivityEnterView != null) { @@ -10808,7 +10808,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss if (requestCode == 103) { VoIPHelper.startCall(currentChat, createGroupCall, getParentActivity()); } else { - VoIPHelper.startCall(currentUser, requestCode == 102, userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id)); + VoIPHelper.startCall(currentUser, requestCode == 102, userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id), ChatActivity.this); } } else { VoIPHelper.permissionDenied(getParentActivity(), null, requestCode); @@ -19122,7 +19122,7 @@ private void processSelectedOption(int option) { } case 18: { if (currentUser != null) { - VoIPHelper.startCall(currentUser, selectedObject.isVideoCall(), userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id)); + VoIPHelper.startCall(currentUser, selectedObject.isVideoCall(), userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id), ChatActivity.this); } break; } @@ -20709,7 +20709,7 @@ public void didPressOther(ChatMessageCell cell, float otherX, float otherY) { MessageObject messageObject = cell.getMessageObject(); if (messageObject.type == 16) { if (currentUser != null) { - VoIPHelper.startCall(currentUser, messageObject.isVideoCall(), userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id)); + VoIPHelper.startCall(currentUser, messageObject.isVideoCall(), userInfo != null && userInfo.video_calls_available, getParentActivity(), getMessagesController().getUserFull(currentUser.id), ChatActivity.this); } } else { createMenu(cell, true, false, otherX, otherY, messageObject.isMusic()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java index efb3d8ea504..cfe86d2d740 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/voip/VoIPHelper.java @@ -43,6 +43,7 @@ import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.Cells.CheckBoxCell; import org.telegram.ui.Cells.TextCheckCell; +import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.BetterRatingView; import org.telegram.ui.Components.EditTextBoldCursor; import org.telegram.ui.Components.LayoutHelper; @@ -63,6 +64,11 @@ public class VoIPHelper { private static final int VOIP_SUPPORT_ID = 4244000; + // Stubs + public static void startCall(TLRPC.User user, boolean videoCall, boolean canVideoCall, final Activity activity, TLRPC.UserFull userFull, BaseFragment frag) { + AlertsCreator.createCallDialogAlert(frag, user, videoCall); + } + public static void startCall(TLRPC.User user, boolean videoCall, boolean canVideoCall, final Activity activity, TLRPC.UserFull userFull) { if (userFull != null && userFull.phone_calls_private) { new AlertDialog.Builder(activity) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 910f0653383..ed42ac394e5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -2184,7 +2184,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool final boolean videoCall = videoCallUser; contactsFragment.setDelegate((user, param, activity) -> { final TLRPC.UserFull userFull = MessagesController.getInstance(currentAccount).getUserFull(user.id); - VoIPHelper.startCall(user, videoCall, userFull != null && userFull.video_calls_available, LaunchActivity.this, userFull); + VoIPHelper.startCall(user, videoCall, userFull != null && userFull.video_calls_available, LaunchActivity.this, userFull, contactsFragment); }); actionBarLayout.presentFragment(contactsFragment, actionBarLayout.getLastFragment() instanceof ContactsActivity, true, true, false); if (AndroidUtilities.isTablet()) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 4d90fd5c4d8..17f4e09e9fa 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -1638,7 +1638,7 @@ public void onItemClick(final int id) { if (user_id != 0) { TLRPC.User user = getMessagesController().getUser(user_id); if (user != null) { - VoIPHelper.startCall(user, id == video_call_item, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo); + VoIPHelper.startCall(user, id == video_call_item, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo, ProfileActivity.this); } } else if (chat_id != 0) { ChatObject.Call call = getMessagesController().getGroupCall(chat_id, false); @@ -3561,7 +3561,7 @@ private boolean processOnClickOrPress(final int position) { FileLog.e(e); } } else if (i == 2 || i == 3) { - VoIPHelper.startCall(user, i == 3, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo); + VoIPHelper.startCall(user, i == 3, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo, ProfileActivity.this); } }); showDialog(builder.create()); @@ -5831,7 +5831,7 @@ public void onRequestPermissionsResultFragment(int requestCode, String[] permiss } } if (grantResults.length > 0 && allGranted) { - VoIPHelper.startCall(user, requestCode == 102, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo); + VoIPHelper.startCall(user, requestCode == 102, userInfo != null && userInfo.video_calls_available, getParentActivity(), userInfo, ProfileActivity.this); } else { VoIPHelper.permissionDenied(getParentActivity(), null, requestCode); }