/*
ErrorDialogFragment
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.hitoe.fragment.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.text.InputType;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import org.deviceconnect.android.deviceplugin.hitoe.R;
/**
* This fragment displays a dialog of Pincode input.
* @author NTT DOCOMO, INC.
*/
public class PinCodeDialogFragment extends DialogFragment {
/** Dialog. */
private AlertDialog mDialog;
/** Dialog's listener. */
private OnPinCodeListener mListener;
/**
* Pin Code listener interface.
*/
public interface OnPinCodeListener {
/**
* Notify pin code listener.
* @param pin pin code
*/
void onPinCode(final String pin);
}
/**
* Initialize Pin code dialog.
* @return pin code dialog
*/
public static PinCodeDialogFragment newInstance() {
return new PinCodeDialogFragment();
}
@NonNull
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
if (mDialog != null) {
return mDialog;
}
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.dialog_hitoe_pin, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getString(R.string.dialog_title_pin_input));
final EditText pinEdit = (EditText) layout.findViewById(R.id.input_pin);
pinEdit.setInputType(InputType.TYPE_CLASS_NUMBER);
builder.setView(layout);
builder.setPositiveButton(R.string.hitoe_setting_dialog_positive,
new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialogInterface, final int i) {
String pinString = pinEdit.getText().toString();
if (mListener != null) {
mListener.onPinCode(pinString);
}
}
});
builder.setNegativeButton("Cancel", null);
mDialog = builder.create();
return mDialog;
}
@Override
public Dialog getDialog() {
return mDialog;
}
@Override
public void onDestroy() {
super.onDestroy();
mDialog = null;
}
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
}
/**
* Set Pin Code listener.
* @param listener listener
*/
public void setOnPinCodeListener(final OnPinCodeListener listener) {
mListener = listener;
}
}