blob: 96ea62739edbb5f376bb3252b99026bbcf071c3b [file] [log] [blame]
/*
* 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 = 1;
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());
input.setHint("Please input phone number");
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);
}
}