summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java
diff options
context:
space:
mode:
authorweijiaxu <weijiaxu@google.com>2017-12-14 15:10:31 -0800
committerCopybara-Service <copybara-piper@google.com>2017-12-14 15:54:19 -0800
commit6b91ad301da6c00db56457aa899cb0768d6f2c83 (patch)
tree44c179cc8623e2e05b0349f6e3792c10cc1a877a /java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java
parent02507c0e76d1e03c442f24005ba3e86ae52ffb6d (diff)
Add input dialog for simulator to use customized number.
Add dialog for user to input whatever numbers with whatever types they want. With this functionality, users can use simulator to test payphone number, private number and etc.. This is a part of feature request in b/70244000. Bug: 70244000 Test: On a local device. PiperOrigin-RevId: 179105057 Change-Id: Ibb386e209d0907d23773cd2c55939b500de4d8f6
Diffstat (limited to 'java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java')
-rw-r--r--java/com/android/dialer/simulator/impl/SimulatorVoiceCall.java81
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);
+ }
}