1a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm/*
2a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * Copyright (C) 2015 The Android Open Source Project
3a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm *
4a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * Licensed under the Apache License, Version 2.0 (the "License");
5a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * you may not use this file except in compliance with the License.
6a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * You may obtain a copy of the License at
7a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm *
8a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm *   http://www.apache.org/licenses/LICENSE-2.0
9a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm *
10a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * Unless required by applicable law or agreed to in writing, software
11a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * distributed under the License is distributed on an "AS IS" BASIS,
12a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * See the License for the specific language governing permissions and
14a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm * limitations under the License.
15a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm */
16a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
17a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmpackage com.android.calculator2;
18a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
19a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.app.Activity;
20a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.app.AlertDialog;
21a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.app.Dialog;
22a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.app.DialogFragment;
23a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.content.Context;
24a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.os.Bundle;
25a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.view.LayoutInflater;
26a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmimport android.widget.TextView;
27a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
28a3723849baeec57260a83e01131e6db612a4ec44Hans Boehmpublic class AlertDialogFragment extends DialogFragment {
29a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
30a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    private static final String NAME = AlertDialogFragment.class.getName();
31a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    private static final String KEY_MESSAGE = NAME + "_message";
32a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    private static final String KEY_BUTTON_NEGATIVE = NAME + "_button_negative";
33a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
34a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    public static void showMessageDialog(Activity activity, CharSequence message) {
35a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final Bundle args = new Bundle();
36a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        args.putCharSequence(KEY_MESSAGE, message);
37a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        args.putCharSequence(KEY_BUTTON_NEGATIVE, activity.getString(R.string.dismiss));
38a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
39a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final AlertDialogFragment dialogFragment = new AlertDialogFragment();
40a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        dialogFragment.setArguments(args);
41a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        dialogFragment.show(activity.getFragmentManager(), null /* tag */);
42a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    }
43a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
44a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    public AlertDialogFragment() {
45a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        setStyle(STYLE_NO_TITLE, android.R.attr.alertDialogTheme);
46a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    }
47a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm
48a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    @Override
49a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    public Dialog onCreateDialog(Bundle savedInstanceState) {
50a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final Bundle args = getArguments() == null ? Bundle.EMPTY : getArguments();
51a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final Context context = getContext();
52a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final LayoutInflater inflater = LayoutInflater.from(context);
53a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        final TextView textView = (TextView) inflater.inflate(R.layout.dialog_message,
54a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm                null /* root */);
55a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        textView.setText(args.getCharSequence(KEY_MESSAGE));
56a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm        return new AlertDialog.Builder(context)
57a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm                .setView(textView)
58a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm                .setNegativeButton(args.getCharSequence(KEY_BUTTON_NEGATIVE), null /* listener */)
59a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm                .create();
60a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm    }
61a3723849baeec57260a83e01131e6db612a4ec44Hans Boehm}
62