Skip call dialog if signal call is already active.

This commit is contained in:
Alex Hart 2019-12-04 10:43:30 -04:00 committed by Greyson Parrelli
parent e90705b459
commit a079e479ec

View File

@ -11,6 +11,11 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.core.app.TaskStackBuilder; import androidx.core.app.TaskStackBuilder;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.ResultReceiver;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.Toast; import android.widget.Toast;
@ -21,6 +26,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.service.WebRtcCallService; import org.thoughtcrime.securesms.service.WebRtcCallService;
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
public class CommunicationActions { public class CommunicationActions {
@ -33,12 +39,21 @@ public class CommunicationActions {
return; return;
} }
new AlertDialog.Builder(activity) WebRtcCallService.isCallActive(activity, new ResultReceiver(new Handler(Looper.getMainLooper())) {
.setMessage(R.string.CommunicationActions_start_voice_call) @Override
.setPositiveButton(R.string.CommunicationActions_call, (d, w) -> startCallInternal(activity, recipient, false)) protected void onReceiveResult(int resultCode, Bundle resultData) {
.setNegativeButton(R.string.CommunicationActions_cancel, (d, w) -> d.dismiss()) if (resultCode == 1) {
.setCancelable(true) startCallInternal(activity, recipient, false);
.show(); } else {
new AlertDialog.Builder(activity)
.setMessage(R.string.CommunicationActions_start_voice_call)
.setPositiveButton(R.string.CommunicationActions_call, (d, w) -> startCallInternal(activity, recipient, false))
.setNegativeButton(R.string.CommunicationActions_cancel, (d, w) -> d.dismiss())
.setCancelable(true)
.show();
}
}
});
} }
public static void startVideoCall(@NonNull Activity activity, @NonNull Recipient recipient) { public static void startVideoCall(@NonNull Activity activity, @NonNull Recipient recipient) {
@ -50,12 +65,21 @@ public class CommunicationActions {
return; return;
} }
new AlertDialog.Builder(activity) WebRtcCallService.isCallActive(activity, new ResultReceiver(new Handler(Looper.getMainLooper())) {
.setMessage(R.string.CommunicationActions_start_video_call) @Override
.setPositiveButton(R.string.CommunicationActions_call, (d, w) -> startCallInternal(activity, recipient, true)) protected void onReceiveResult(int resultCode, Bundle resultData) {
.setNegativeButton(R.string.CommunicationActions_cancel, (d, w) -> d.dismiss()) if (resultCode == 1) {
.setCancelable(true) startCallInternal(activity, recipient, false);
.show(); } else {
new AlertDialog.Builder(activity)
.setMessage(R.string.CommunicationActions_start_video_call)
.setPositiveButton(R.string.CommunicationActions_call, (d, w) -> startCallInternal(activity, recipient, true))
.setNegativeButton(R.string.CommunicationActions_cancel, (d, w) -> d.dismiss())
.setCancelable(true)
.show();
}
}
});
} }
public static void startConversation(@NonNull Context context, @NonNull Recipient recipient, @Nullable String text) { public static void startConversation(@NonNull Context context, @NonNull Recipient recipient, @Nullable String text) {