diff options
Diffstat (limited to 'java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java')
-rw-r--r-- | java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java | 81 |
1 files changed, 68 insertions, 13 deletions
diff --git a/java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java b/java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java index 9ffcfc8a8..89c5d2f14 100644 --- a/java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java +++ b/java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java @@ -17,8 +17,10 @@ package com.android.dialer.simulator.impl; import android.content.Context; +import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; import android.telecom.Connection; import android.telecom.DisconnectCause; import android.view.ActionProvider; @@ -34,20 +36,43 @@ final class SimulatorVoiceCall @NonNull private final Context context; @Nullable private String connectionTag; - static ActionProvider getActionProvider(@NonNull Context context) { - return new SimulatorSubMenu(context) - .addItem("Incoming call", () -> new SimulatorVoiceCall(context).addNewIncomingCall(false)) - .addItem("Outgoing call", () -> new SimulatorVoiceCall(context).addNewOutgoingCall()) - .addItem("Spam call", () -> new SimulatorVoiceCall(context).addNewIncomingCall(true)) + static ActionProvider getActionProvider(@NonNull AppCompatActivity activity) { + return new SimulatorSubMenu(activity.getApplicationContext()) .addItem( - "Emergency call back", () -> new SimulatorVoiceCall(context).addNewEmergencyCallBack()) + "Incoming call", + () -> new SimulatorVoiceCall(activity.getApplicationContext()).addNewIncomingCall()) + .addItem( + "Outgoing call", + () -> new SimulatorVoiceCall(activity.getApplicationContext()).addNewOutgoingCall()) + .addItem( + "Customized incoming call", + () -> + new SimulatorVoiceCall(activity.getApplicationContext()) + .addNewIncomingCall(activity)) + .addItem( + "Customized outgoing call", + () -> + new SimulatorVoiceCall(activity.getApplicationContext()) + .addNewOutgoingCall(activity)) + .addItem( + "Spam incoming call", + () -> new SimulatorVoiceCall(activity.getApplicationContext()).addSpamIncomingCall()) + .addItem( + "Emergency call back", + () -> + new SimulatorVoiceCall(activity.getApplicationContext()).addNewEmergencyCallBack()) .addItem( "GSM conference", - () -> new SimulatorConferenceCreator(context, Simulator.CONFERENCE_TYPE_GSM).start(5)) + () -> + new SimulatorConferenceCreator( + activity.getApplicationContext(), Simulator.CONFERENCE_TYPE_GSM) + .start(5)) .addItem( "VoLTE conference", () -> - new SimulatorConferenceCreator(context, Simulator.CONFERENCE_TYPE_VOLTE).start(5)); + new SimulatorConferenceCreator( + activity.getApplicationContext(), Simulator.CONFERENCE_TYPE_VOLTE) + .start(5)); } private SimulatorVoiceCall(@NonNull Context context) { @@ -57,11 +82,8 @@ final class SimulatorVoiceCall new SimulatorConferenceCreator(context, Simulator.CONFERENCE_TYPE_GSM)); } - private void addNewIncomingCall(boolean isSpam) { - String callerId = - isSpam - ? "+1-661-778-3020" /* Blacklisted custom spam number */ - : "+44 (0) 20 7031 3000" /* Google London office */; + private void addNewIncomingCall() { + String callerId = "+44 (0) 20 7031 3000" /* Google London office */; connectionTag = SimulatorSimCallManager.addNewIncomingCall(context, callerId, false /* isVideo */); } @@ -72,6 +94,35 @@ final class SimulatorVoiceCall SimulatorSimCallManager.addNewOutgoingCall(context, callerId, false /* isVideo */); } + private void addNewIncomingCall(AppCompatActivity activity) { + SimulatorDialogFragment.newInstance( + (callerId, callerIdPresentation) -> { + Bundle extras = new Bundle(); + extras.putInt(Simulator.PRESENTATION_CHOICE, callerIdPresentation); + connectionTag = + SimulatorSimCallManager.addNewIncomingCall( + context, callerId, false /* isVideo */, extras); + }) + .show(activity.getSupportFragmentManager(), "SimulatorDialog"); + } + + private void addNewOutgoingCall(AppCompatActivity activity) { + SimulatorDialogFragment.newInstance( + (callerId, callerIdPresentation) -> { + Bundle extras = new Bundle(); + extras.putInt(Simulator.PRESENTATION_CHOICE, callerIdPresentation); + connectionTag = + SimulatorSimCallManager.addNewOutgoingCall( + context, callerId, false /* isVideo */, extras); + }) + .show(activity.getSupportFragmentManager(), "SimulatorDialog"); + } + + private void addSpamIncomingCall() { + String callerId = "+1-661-778-3020"; /* Blacklisted custom spam number */ + SimulatorSimCallManager.addNewIncomingCall(context, callerId, false /* isVideo */); + } + private void addNewEmergencyCallBack() { String callerId = "911"; connectionTag = SimulatorSimCallManager.addNewIncomingCall(context, callerId, false); @@ -141,4 +192,8 @@ final class SimulatorVoiceCall break; } } + + private interface DialogCallback { + void callback(String callerId, int callerIdPresentation); + } } |