]> Pileus Git - ~andy/freeotp/blob - src/org/fedorahosted/freeotp/BaseAlertDialogFragment.java
Migrate About dialog to use a DialogFragment
[~andy/freeotp] / src / org / fedorahosted / freeotp / BaseAlertDialogFragment.java
1 /*
2  * FreeOTP
3  *
4  * Authors: Nathaniel McCallum <npmccallum@redhat.com>
5  *
6  * Copyright (C) 2013  Nathaniel McCallum, Red Hat
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 package org.fedorahosted.freeotp;
22
23 import android.app.AlertDialog;
24 import android.app.DialogFragment;
25 import android.content.DialogInterface;
26 import android.view.View;
27
28 public abstract class BaseAlertDialogFragment extends DialogFragment implements DialogInterface.OnClickListener {
29         private final int mTitle;
30         private final int mLayout;
31         private final int mNegative;
32         private final int mNeutral;
33         private final int mPositive;
34
35         public BaseAlertDialogFragment(int title, int layout, int negative, int neutral, int positive) {
36                 mTitle = title;
37                 mLayout = layout;
38                 mNegative = negative;
39                 mNeutral = neutral;
40                 mPositive = positive;
41         }
42
43         @Override
44         public android.app.Dialog onCreateDialog(android.os.Bundle savedInstanceState) {
45                 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
46                 builder.setTitle(mTitle);
47
48                 if (mNegative != 0)
49                         builder.setNegativeButton(mNegative, this);
50
51                 if (mNeutral != 0)
52                         builder.setNeutralButton(mNeutral, this);
53
54                 if (mPositive != 0)
55                         builder.setPositiveButton(mPositive, this);
56
57                 View view = getActivity().getLayoutInflater().inflate(mLayout, null, false);
58                 onViewInflated(view);
59                 builder.setView(view);
60
61                 return builder.create();
62         };
63
64         protected abstract void onViewInflated(View view);
65 }