summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Boehm <hboehm@google.com>2015-06-30 01:47:00 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-30 01:47:00 +0000
commit3d0758aacdccccca374a1d0b39a245d548f184e6 (patch)
tree293c8c68dd7f608eaf87c4b181e46070353dfe57
parent4b82029a1295251b8b520343ecc4bac211a3da71 (diff)
parenta3723849baeec57260a83e01131e6db612a4ec44 (diff)
downloadandroid_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.xml27
-rw-r--r--src/com/android/calculator2/AlertDialogFragment.java61
-rw-r--r--src/com/android/calculator2/Calculator.java6
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() {