summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java')
-rw-r--r--java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java91
1 files changed, 91 insertions, 0 deletions
diff --git a/java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java b/java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java
new file mode 100644
index 000000000..f8403c7fe
--- /dev/null
+++ b/java/com/android/dialer/simulator/impl/SimulatorDialogFragment.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.simulator.impl;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.telecom.TelecomManager;
+import android.widget.EditText;
+
+/** Holds dialog logic for creating different types of voice calls. */
+public final class SimulatorDialogFragment extends DialogFragment {
+
+ private final String[] callerIdPresentationItems = {
+ "ALLOWED", "PAYPHONE", "RESTRICTED", "UNKNOWN"
+ };
+ private int callerIdPresentationChoice;
+
+ private DialogCallback dialogCallback;
+
+ static SimulatorDialogFragment newInstance(DialogCallback dialogCallback) {
+ SimulatorDialogFragment fragment = new SimulatorDialogFragment();
+ fragment.setCallBack(dialogCallback);
+ return fragment;
+ }
+
+ public void setCallBack(DialogCallback dialogCallback) {
+ this.dialogCallback = dialogCallback;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle bundle) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ final EditText input = new EditText(getActivity());
+ builder
+ .setTitle("Phone Number:")
+ .setView(input)
+ .setSingleChoiceItems(
+ callerIdPresentationItems,
+ 0,
+ (dialog, id) -> {
+ switch (id) {
+ case 0:
+ callerIdPresentationChoice = TelecomManager.PRESENTATION_ALLOWED;
+ break;
+ case 1:
+ callerIdPresentationChoice = TelecomManager.PRESENTATION_PAYPHONE;
+ break;
+ case 2:
+ callerIdPresentationChoice = TelecomManager.PRESENTATION_RESTRICTED;
+ break;
+ case 3:
+ callerIdPresentationChoice = TelecomManager.PRESENTATION_UNKNOWN;
+ break;
+ default:
+ throw new IllegalStateException("Unknown presentation choice selected!");
+ }
+ })
+ .setPositiveButton(
+ R.string.call,
+ (dialog, id) -> {
+ dialogCallback.createCustomizedCall(
+ input.getText().toString(), callerIdPresentationChoice);
+ dialog.cancel();
+ SimulatorDialogFragment.this.dismiss();
+ });
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ return dialog;
+ }
+
+ /** Callback for after clicking enter button on dialog. */
+ public interface DialogCallback {
+ void createCustomizedCall(String callerId, int callerIdPresentation);
+ }
+}