diff options
author | Hans Boehm <hboehm@google.com> | 2015-06-30 01:47:00 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-06-30 01:47:00 +0000 |
commit | 3d0758aacdccccca374a1d0b39a245d548f184e6 (patch) | |
tree | 293c8c68dd7f608eaf87c4b181e46070353dfe57 | |
parent | 4b82029a1295251b8b520343ecc4bac211a3da71 (diff) | |
parent | a3723849baeec57260a83e01131e6db612a4ec44 (diff) | |
download | android_packages_apps_ExactCalculator-3d0758aacdccccca374a1d0b39a245d548f184e6.tar.gz android_packages_apps_ExactCalculator-3d0758aacdccccca374a1d0b39a245d548f184e6.tar.bz2 android_packages_apps_ExactCalculator-3d0758aacdccccca374a1d0b39a245d548f184e6.zip |
am a3723849: Reimplement overflow menu messages as DialogFragments
* commit 'a3723849baeec57260a83e01131e6db612a4ec44':
Reimplement overflow menu messages as DialogFragments
-rw-r--r-- | res/layout/dialog_message.xml | 27 | ||||
-rw-r--r-- | src/com/android/calculator2/AlertDialogFragment.java | 61 | ||||
-rw-r--r-- | src/com/android/calculator2/Calculator.java | 6 |
3 files changed, 89 insertions, 5 deletions
diff --git a/res/layout/dialog_message.xml b/res/layout/dialog_message.xml new file mode 100644 index 0000000..67e6089 --- /dev/null +++ b/res/layout/dialog_message.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/message" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingBottom="20dip" + android:paddingEnd="16dip" + android:paddingStart="20dip" + android:paddingTop="20dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textIsSelectable="true" /> diff --git a/src/com/android/calculator2/AlertDialogFragment.java b/src/com/android/calculator2/AlertDialogFragment.java new file mode 100644 index 0000000..bb7a50b --- /dev/null +++ b/src/com/android/calculator2/AlertDialogFragment.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.calculator2; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.widget.TextView; + +public class AlertDialogFragment extends DialogFragment { + + private static final String NAME = AlertDialogFragment.class.getName(); + private static final String KEY_MESSAGE = NAME + "_message"; + private static final String KEY_BUTTON_NEGATIVE = NAME + "_button_negative"; + + public static void showMessageDialog(Activity activity, CharSequence message) { + final Bundle args = new Bundle(); + args.putCharSequence(KEY_MESSAGE, message); + args.putCharSequence(KEY_BUTTON_NEGATIVE, activity.getString(R.string.dismiss)); + + final AlertDialogFragment dialogFragment = new AlertDialogFragment(); + dialogFragment.setArguments(args); + dialogFragment.show(activity.getFragmentManager(), null /* tag */); + } + + public AlertDialogFragment() { + setStyle(STYLE_NO_TITLE, android.R.attr.alertDialogTheme); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final Bundle args = getArguments() == null ? Bundle.EMPTY : getArguments(); + final Context context = getContext(); + final LayoutInflater inflater = LayoutInflater.from(context); + final TextView textView = (TextView) inflater.inflate(R.layout.dialog_message, + null /* root */); + textView.setText(args.getCharSequence(KEY_MESSAGE)); + return new AlertDialog.Builder(context) + .setView(textView) + .setNegativeButton(args.getCharSequence(KEY_BUTTON_NEGATIVE), null /* listener */) + .create(); + } +} diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index 65c668b..28d3312 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -34,7 +34,6 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.app.Activity; -import android.app.AlertDialog; import android.content.ClipData; import android.content.Intent; import android.content.res.Resources; @@ -870,10 +869,7 @@ public class Calculator extends Activity } private void displayMessage(String s) { - new AlertDialog.Builder(this) - .setMessage(s) - .setNegativeButton(R.string.dismiss, null /* listener */) - .show(); + AlertDialogFragment.showMessageDialog(this, s); } private void displayFraction() { |