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