Add shared calling intent system.

This commit is contained in:
Alex Hart
2024-09-03 15:22:44 -03:00
committed by Cody Henthorne
parent e5b482c7ad
commit 4d23f11f6e
12 changed files with 277 additions and 90 deletions

View File

@@ -32,6 +32,7 @@ import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.WebRtcCallActivity;
import org.thoughtcrime.securesms.calls.links.CallLinks;
import org.thoughtcrime.securesms.components.webrtc.v2.CallActivity;
import org.thoughtcrime.securesms.components.webrtc.v2.CallIntent;
import org.thoughtcrime.securesms.contacts.sync.ContactDiscovery;
import org.thoughtcrime.securesms.conversation.ConversationIntents;
import org.thoughtcrime.securesms.database.CallLinkTable;
@@ -397,11 +398,11 @@ public class CommunicationActions {
MessageSender.onMessageSent();
Intent activityIntent = new Intent(callContext.getContext(), getCallActivityClass());
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callContext.startActivity(activityIntent);
callContext.startActivity(
new CallIntent.Builder(callContext.getContext())
.withIntentFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.build()
);
})
.execute();
}
@@ -409,13 +410,13 @@ public class CommunicationActions {
private static void startVideoCallInternal(@NonNull CallContext callContext, @NonNull Recipient recipient, boolean fromCallLink) {
AppDependencies.getSignalCallManager().startPreJoinCall(recipient);
Intent activityIntent = new Intent(callContext.getContext(), getCallActivityClass());
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(WebRtcCallActivity.EXTRA_ENABLE_VIDEO_IF_AVAILABLE, true)
.putExtra(WebRtcCallActivity.EXTRA_STARTED_FROM_CALL_LINK, fromCallLink);
callContext.startActivity(activityIntent);
callContext.startActivity(
new CallIntent.Builder(callContext.getContext())
.withIntentFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.withEnableVideoIfAvailable(true)
.withStartedFromCallLink(fromCallLink)
.build()
);
}
private static void handleE164Link(Activity activity, String e164) {
@@ -479,10 +480,6 @@ public class CommunicationActions {
});
}
private static Class<? extends Activity> getCallActivityClass() {
return RemoteConfig.newCallUi() ? CallActivity.class : WebRtcCallActivity.class;
}
private interface CallContext {
@NonNull Permissions.PermissionsBuilder getPermissionsBuilder();
void startActivity(@NonNull Intent intent);