Merge "Show appropriate empty state if not printers are found." into klp-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f0722a8..ab31b8c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,6 +15,7 @@
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+ <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.HARDWARE_TEST" />
<uses-permission android:name="android.permission.CALL_PHONE" />
diff --git a/res/menu/nfc_payment_settings.xml b/res/menu/nfc_payment_settings.xml
deleted file mode 100644
index f35374e..0000000
--- a/res/menu/nfc_payment_settings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/nfc_payment_menu_item_add_service"
- android:title="@string/nfc_payment_menu_item_add_service"
- android:showAsAction="ifRoom">
- </item>
-</menu>
diff --git a/res/menu/print_settings.xml b/res/menu/print_settings.xml
deleted file mode 100644
index 9df1181..0000000
--- a/res/menu/print_settings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/print_menu_item_add_service"
- android:title="@string/print_menu_item_add_service"
- android:showAsAction="ifRoom">
- </item>
-</menu>
diff --git a/res/values/donottranslate.xml b/res/values/donottranslate.xml
index f290f38..e6bd9a6 100644
--- a/res/values/donottranslate.xml
+++ b/res/values/donottranslate.xml
@@ -33,8 +33,4 @@
<item>@string/input_method_selector_always_show_value</item>
<item>@string/input_method_selector_always_hide_value</item>
</string-array>
- <!-- Default query string to search for a print service. -->
- <string name="download_print_service_query">market://search?q=print service</string>
- <!-- Default query string to search for a NFC payment service. -->
- <string name="download_nfc_payment_service_query">market://search?q=nfc payment</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e82354d..83f7c32 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2408,8 +2408,8 @@
<string name="location_mode_high_accuracy_title">High accuracy</string>
<!-- [CHAR LIMIT=30] Location settings screen, battery saving location mode -->
<string name="location_mode_battery_saving_title">Battery saving</string>
- <!-- [CHAR LIMIT=30] Location settings screen, device sensors only location mode -->
- <string name="location_mode_sensors_only_title">Device sensors</string>
+ <!-- [CHAR LIMIT=30] Location settings screen, device only location mode -->
+ <string name="location_mode_sensors_only_title">Device only</string>
<!-- [CHAR LIMIT=30] Location settings screen, location off mode -->
<string name="location_mode_location_off_title">Location off</string>
<!-- [CHAR LIMIT=30] Location settings screen, sub category for recent location requests -->
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index f365403..e002264 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -20,6 +20,7 @@
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import android.app.Activity;
+import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
@@ -244,15 +245,25 @@
// Enable or disable keyguard widget checkbox based on DPM state
mEnableKeyguardWidgets = (CheckBoxPreference) root.findPreference(KEY_ENABLE_WIDGETS);
if (mEnableKeyguardWidgets != null) {
- final boolean disabled = (0 != (mDPM.getKeyguardDisabledFeatures(null)
- & DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL));
- if (disabled) {
- mEnableKeyguardWidgets.setSummary(
- R.string.security_enable_widgets_disabled_summary);
+ if (ActivityManager.isLowRamDeviceStatic()) {
+ // Widgets take a lot of RAM, so disable them on low-memory devices
+ PreferenceGroup securityCategory
+ = (PreferenceGroup) root.findPreference(KEY_SECURITY_CATEGORY);
+ if (securityCategory != null) {
+ securityCategory.removePreference(root.findPreference(KEY_ENABLE_WIDGETS));
+ mEnableKeyguardWidgets = null;
+ }
} else {
- mEnableKeyguardWidgets.setSummary("");
+ final boolean disabled = (0 != (mDPM.getKeyguardDisabledFeatures(null)
+ & DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL));
+ if (disabled) {
+ mEnableKeyguardWidgets.setSummary(
+ R.string.security_enable_widgets_disabled_summary);
+ } else {
+ mEnableKeyguardWidgets.setSummary("");
+ }
+ mEnableKeyguardWidgets.setEnabled(!disabled);
}
- mEnableKeyguardWidgets.setEnabled(!disabled);
}
// Show password
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index ac67a38..13f7166 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -32,6 +32,7 @@
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
+import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.os.INetworkManagementService;
import android.os.RemoteException;
@@ -574,8 +575,15 @@
target.remove(i);
}
} else if (id == R.id.nfc_payment_settings) {
- if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC_HCE)) {
+ if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)) {
target.remove(i);
+ } else {
+ // Only show if NFC is on and we have the HCE feature
+ NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this);
+ if (!adapter.isEnabled() || !getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)) {
+ target.remove(i);
+ }
}
} else if (id == R.id.development_settings) {
if (!showDev) {
diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java
index 06697a4..7548c50 100644
--- a/src/com/android/settings/nfc/PaymentSettings.java
+++ b/src/com/android/settings/nfc/PaymentSettings.java
@@ -25,6 +25,7 @@
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
+import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -152,10 +153,13 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.nfc_payment_settings, menu);
- MenuItem menuItem = menu.findItem(R.id.nfc_payment_menu_item_add_service);
- menuItem.setIntent(new Intent(Intent.ACTION_VIEW,
- Uri.parse(getString(R.string.download_nfc_payment_service_query))));
+ String searchUri = Settings.Secure.getString(getContentResolver(),
+ Settings.Secure.PAYMENT_SERVICE_SEARCH_URI);
+ if (!TextUtils.isEmpty(searchUri)) {
+ MenuItem menuItem = menu.add(R.string.nfc_payment_menu_item_add_service);
+ menuItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ menuItem.setIntent(new Intent(Intent.ACTION_VIEW,Uri.parse(searchUri)));
+ }
}
private final Handler mHandler = new Handler() {
diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java
index 84865c3..8d080ce 100644
--- a/src/com/android/settings/print/PrintSettingsFragment.java
+++ b/src/com/android/settings/print/PrintSettingsFragment.java
@@ -150,10 +150,13 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.print_settings, menu);
- MenuItem menuItem = menu.findItem(R.id.print_menu_item_add_service);
- menuItem.setIntent(new Intent(Intent.ACTION_VIEW,
- Uri.parse(getString(R.string.download_print_service_query))));
+ String searchUri = Settings.Secure.getString(getContentResolver(),
+ Settings.Secure.PRINT_SERVICE_SEARCH_URI);
+ if (!TextUtils.isEmpty(searchUri)) {
+ MenuItem menuItem = menu.add(R.string.print_menu_item_add_service);
+ menuItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ menuItem.setIntent(new Intent(Intent.ACTION_VIEW,Uri.parse(searchUri)));
+ }
}
@Override