From 5e9bd86bc6f89b1a743b04d69e793638ffb8cb41 Mon Sep 17 00:00:00 2001 From: Jake Hamby Date: Tue, 9 Apr 2013 15:48:25 -0700 Subject: [PATCH] Add support to display regulatory info from *#07#. Add a new action and Activity so the phone dialer can display regulatory info via "*#07#". Regulatory info is supplied per device by a Settings app resource overlay. This overlay must set the boolean resource "config_show_regulatory_info" to true, and provide either a drawable named "regulatory_info.png" with the info in graphical form, or a string resource named "regulatory_info_text" containing the required information in HTML format. Bug: 8259869 Change-Id: I73c1431a1a6d1736f9d3e4bd5be7e3771c85cbcb --- AndroidManifest.xml | 11 +++ res/layout/regulatory_info.xml | 4 +- res/values/strings.xml | 2 + res/xml/device_info_settings.xml | 7 +- .../RegulatoryInfoDisplayActivity.java | 87 +++++++++++++++++++ .../settings/RegulatoryInfoPreference.java | 34 -------- 6 files changed, 107 insertions(+), 38 deletions(-) create mode 100644 src/com/android/settings/RegulatoryInfoDisplayActivity.java delete mode 100644 src/com/android/settings/RegulatoryInfoPreference.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4e8ef578826..59b562d9341 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1579,6 +1579,17 @@ android:resource="@id/security_settings" /> + + + + + + + + + android:layout_width="match_parent" + android:layout_height="match_parent"> Choose photo from Gallery + + diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml index 03f1e7857b2..07abe41a6ac 100644 --- a/res/xml/device_info_settings.xml +++ b/res/xml/device_info_settings.xml @@ -89,8 +89,11 @@ --> - + + + 2 + && d.getIntrinsicHeight() > 2); + } catch (Resources.NotFoundException ignored) { + regulatoryInfoDrawableExists = false; + } + + CharSequence regulatoryText = resources.getText(R.string.regulatory_info_text); + + if (regulatoryInfoDrawableExists) { + builder.setView(getLayoutInflater().inflate(R.layout.regulatory_info, null)); + builder.show(); + } else if (regulatoryText.length() > 0) { + builder.setMessage(regulatoryText); + AlertDialog dialog = builder.show(); + // we have to show the dialog first, or the setGravity() call will throw a NPE + TextView messageText = (TextView) dialog.findViewById(android.R.id.message); + messageText.setGravity(Gravity.CENTER); + } else { + // neither drawable nor text resource exists, finish activity + finish(); + } + } + + @Override + public void onDismiss(DialogInterface dialog) { + finish(); // close the activity + } +} diff --git a/src/com/android/settings/RegulatoryInfoPreference.java b/src/com/android/settings/RegulatoryInfoPreference.java deleted file mode 100644 index f1a6b77e1b9..00000000000 --- a/src/com/android/settings/RegulatoryInfoPreference.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2012 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.settings; - -import android.content.Context; -import android.preference.DialogPreference; -import android.util.AttributeSet; - -/** - * {@link DialogPreference} that displays regulatory information. "About phone" - * will show a "Regulatory information" preference if - * R.bool.config_show_regulatory_info is true. - */ -public class RegulatoryInfoPreference extends DialogPreference { - - public RegulatoryInfoPreference(Context context, AttributeSet attrs) { - super(context, attrs, com.android.internal.R.attr.preferenceStyle); - setDialogLayoutResource(R.layout.regulatory_info); - } -}