OSDN Git Service

initial commit.
[gokigen/BLEControl.git] / app / src / main / java / net / osdn / gokigen / blecontrol / lib / ui / ConfirmationDialog.java
1 package net.osdn.gokigen.blecontrol.lib.ui;
2
3 import android.content.Context;
4 import android.content.DialogInterface;
5
6 import androidx.appcompat.app.AlertDialog;
7 import androidx.fragment.app.DialogFragment;
8
9 import net.osdn.gokigen.blecontrol.lib.ble.R;
10
11 public class ConfirmationDialog extends DialogFragment
12 {
13     private Context context = null;
14
15     public static ConfirmationDialog newInstance(Context context)
16     {
17         ConfirmationDialog instance = new ConfirmationDialog();
18         instance.prepare(context);
19
20         return (instance);
21     }
22
23     private void prepare(Context context)
24     {
25         this.context = context;
26     }
27
28     public void show(int titleResId, int messageResId, final Callback callback)
29     {
30         String title = "";
31         String message = "";
32
33         // タイトルとメッセージをのダイアログを表示する
34         if (context != null)
35         {
36             title = context.getString(titleResId);
37             message = context.getString(messageResId);
38         }
39         show(title, message, callback);
40     }
41
42     public void show(String title, String message, final Callback callback)
43     {
44         // 確認ダイアログの生成
45         final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
46         alertDialog.setTitle(title);
47         alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
48         alertDialog.setMessage(message);
49         alertDialog.setCancelable(true);
50
51         // ボタンを設定する(実行ボタン)
52         alertDialog.setPositiveButton(context.getString(R.string.dialog_positive_execute),
53                 new DialogInterface.OnClickListener() {
54                     public void onClick(DialogInterface dialog, int which)
55                     {
56                         callback.confirm();
57                         dialog.dismiss();
58                     }
59                 });
60
61         // ボタンを設定する (キャンセルボタン)
62         alertDialog.setNegativeButton(context.getString(R.string.dialog_negative_cancel),
63                 new DialogInterface.OnClickListener() {
64                     public void onClick(DialogInterface dialog, int which)
65                     {
66                         dialog.cancel();
67                     }
68                 });
69
70         // 確認ダイアログを表示する
71         alertDialog.show();
72     }
73
74     public void show(int iconResId, String title, String message)
75     {
76         // 表示イアログの生成
77         final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
78         alertDialog.setTitle(title);
79         alertDialog.setIcon(iconResId);
80         alertDialog.setMessage(message);
81         alertDialog.setCancelable(true);
82
83         // ボタンを設定する(実行ボタン)
84         alertDialog.setPositiveButton(context.getString(R.string.dialog_positive_execute),
85                 new DialogInterface.OnClickListener() {
86                     public void onClick(DialogInterface dialog, int which)
87                     {
88                         dialog.dismiss();
89                     }
90                 });
91
92         // 確認ダイアログを表示する
93         alertDialog.show();
94     }
95
96     // コールバックインタフェース
97     public interface Callback
98     {
99         void confirm();
100     }
101 }