Merge "Add an extra parameter to identify the caller application. Fix the handling of 'suspend' - the callback will not be visible."
diff --git a/res/drawable-hdpi/ic_settings_call.png b/res/drawable-hdpi/ic_settings_call.png
deleted file mode 100755
index f065807..0000000
--- a/res/drawable-hdpi/ic_settings_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-large-mdpi/setups_bg_account.png b/res/drawable-large-mdpi/setups_bg_account.png
deleted file mode 100644
index 42901f7..0000000
--- a/res/drawable-large-mdpi/setups_bg_account.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-large-mdpi/setups_bg_activating.png b/res/drawable-large-mdpi/setups_bg_activating.png
deleted file mode 100644
index 9b797c1..0000000
--- a/res/drawable-large-mdpi/setups_bg_activating.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-large-mdpi/setups_bg_welcome.png b/res/drawable-large-mdpi/setups_bg_welcome.png
deleted file mode 100644
index 8fcb8bf..0000000
--- a/res/drawable-large-mdpi/setups_bg_welcome.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_call.png b/res/drawable-mdpi/ic_settings_call.png
deleted file mode 100755
index b4cf0db..0000000
--- a/res/drawable-mdpi/ic_settings_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/setups_bg_account.png b/res/drawable-xlarge-mdpi/setups_bg_account.png
deleted file mode 100644
index 3c95c53..0000000
--- a/res/drawable-xlarge-mdpi/setups_bg_account.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/setups_bg_activating.png b/res/drawable-xlarge-mdpi/setups_bg_activating.png
deleted file mode 100644
index f1cb815..0000000
--- a/res/drawable-xlarge-mdpi/setups_bg_activating.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/setups_bg_welcome.png b/res/drawable-xlarge-mdpi/setups_bg_welcome.png
deleted file mode 100644
index 5daa1c6..0000000
--- a/res/drawable-xlarge-mdpi/setups_bg_welcome.png
+++ /dev/null
Binary files differ
diff --git a/res/layout/zeroclick.xml b/res/layout/zeroclick.xml
new file mode 100644
index 0000000..99558f3
--- /dev/null
+++ b/res/layout/zeroclick.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:paddingLeft="6dip"
+ android:paddingRight="6dip"
+ android:layout_width="match_parent" android:layout_height="wrap_content"
+ android:scrollbars="vertical" >
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <View
+ android:paddingTop="53dip"
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="#ff404040"
+ />
+
+ <CheckBox android:id="@+id/zeroclick_checkbox"
+ android:layout_width="match_parent"
+ android:layout_height="64dip"
+ android:gravity="center_vertical"
+ android:text="@string/zeroclick_label"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?android:attr/textColorSecondary"
+ />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="#ff404040"
+ />
+
+ <TextView android:id="@+id/zeroclick_explained"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dip"
+ android:gravity="top"
+ android:text="@string/zeroclick_explained"
+ />
+
+
+ </LinearLayout>
+
+ </ScrollView>
+
+</LinearLayout>
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c45cdf1..78a8069 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1087,6 +1087,12 @@
<!-- NFC settings -->
<!-- Used in the 1st-level settings screen to turn on NFC -->
<string name="nfc_quick_toggle_title">NFC</string>
+ <!-- Used to enter the Zero-click sharing preferences screen -->
+ <string name="zeroclick_settings_title">Zero-click sharing</string>
+ <string name="zeroclick_settings_summary"></string>
+ <!-- Used in the zero-click sharing preferences screen -->
+ <string name="zeroclick_label">Zero-click sharing</string>
+ <string name="zeroclick_explained">Lorem ipsum dolor sit amet.</string>
<!-- Wi-Fi Settings --> <skip />
<!-- Used in the 1st-level settings screen to turn on Wi-Fi -->
@@ -1761,6 +1767,12 @@
<string name="usb_label_installer_cd">Install Android File Transfer application for Mac</string>
<!-- Storage setting. Label for installer CD [CHAR LIMIT=30]-->
<string name="usb_label_installer_cd_done">Done installing Android File Transfer application for Mac</string>
+ <!-- Installer CD dialog title [CHAR LIMIT=30] -->
+ <string name="dlg_installer_cd_title">Android File Transfer app for Mac</string>
+ <!-- Installer CD dialog text [CHAR LIMIT=NONE] -->
+ <string name="dlg_installer_cd_text">Step 1:\nOn your Mac, double-click androidfiletransfer.msg\n\nStep 2:\nIn the Installer window, drag Android File Transfer to Applications.</string>
+ <!-- Installer CD dialog OK button text [CHAR LIMIT=NONE] -->
+ <string name="dlg_installer_cd_ok">Done following these steps</string>
<!-- Phone info screen, section titles: -->
<string name="battery_status_title">Battery status</string>
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
index 605ddb9..c0e4a5a 100644
--- a/res/xml/wireless_settings.xml
+++ b/res/xml/wireless_settings.xml
@@ -39,6 +39,14 @@
android:persistent="false" />
<PreferenceScreen
+ android:fragment="com.android.settings.nfc.ZeroClick"
+ android:key="zeroclick_settings"
+ android:title="@string/zeroclick_settings_title"
+ android:summary="@string/zeroclick_settings_summary" >
+ </PreferenceScreen>
+
+
+ <PreferenceScreen
android:key="mobile_network_settings"
android:title="@string/network_settings_title"
android:dependency="toggle_airplane">
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index a2d7d8c..578268d 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -295,7 +295,7 @@
try {
mCurConfig.fontScale = mToggleLargeTextCheckBox.isChecked()
? LARGE_FONT_SCALE : 1;
- ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
+ ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig);
} catch (RemoteException e) {
}
} else if (POWER_BUTTON_ENDS_CALL_CHECKBOX.equals(key)) {
diff --git a/src/com/android/settings/Display.java b/src/com/android/settings/Display.java
index f90e0f0..fa29318 100644
--- a/src/com/android/settings/Display.java
+++ b/src/com/android/settings/Display.java
@@ -105,7 +105,7 @@
public void onClick(View v) {
try {
- ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
+ ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig);
} catch (RemoteException e) {
}
finish();
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 6ab88d0..ae7a4ef 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -203,7 +203,7 @@
public void writeFontSizePreference(Object objValue) {
try {
mCurConfig.fontScale = Float.parseFloat(objValue.toString());
- ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
+ ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig);
} catch (RemoteException e) {
Log.w(TAG, "Unable to save font size");
}
diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java
index b546265..f850b08 100644
--- a/src/com/android/settings/RingerVolumePreference.java
+++ b/src/com/android/settings/RingerVolumePreference.java
@@ -171,12 +171,15 @@
mNotificationsUseRingVolumeCheckbox =
(CheckBox) view.findViewById(R.id.same_notification_volume);
mNotificationsUseRingVolumeCheckbox.setOnCheckedChangeListener(this);
- mNotificationsUseRingVolumeCheckbox.setChecked(
- Utils.isVoiceCapable(getContext())
- && Settings.System.getInt(
+ mNotificationsUseRingVolumeCheckbox.setChecked(Settings.System.getInt(
getContext().getContentResolver(),
Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1) == 1);
- setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked());
+ // Notification volume always visible for non voice capable devices
+ if (Utils.isVoiceCapable(getContext())) {
+ setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked());
+ } else {
+ setNotificationVolumeVisibility(true);
+ }
disableSettingsThatNeedVoice(view);
// Register callbacks for mute/unmute buttons
@@ -240,16 +243,19 @@
}
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- setNotificationVolumeVisibility(!isChecked);
+ // ignore R.id.same_notification_volume checkbox for non voice capable devices
+ if (Utils.isVoiceCapable(getContext())) {
+ setNotificationVolumeVisibility(!isChecked);
- Settings.System.putInt(getContext().getContentResolver(),
- Settings.System.NOTIFICATIONS_USE_RING_VOLUME, isChecked ? 1 : 0);
+ Settings.System.putInt(getContext().getContentResolver(),
+ Settings.System.NOTIFICATIONS_USE_RING_VOLUME, isChecked ? 1 : 0);
- if (isChecked) {
- // The user wants the notification to be same as ring, so do a
- // one-time sync right now
- mAudioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,
- mAudioManager.getStreamVolume(AudioManager.STREAM_RING), 0);
+ if (isChecked) {
+ // The user wants the notification to be same as ring, so do a
+ // one-time sync right now
+ mAudioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,
+ mAudioManager.getStreamVolume(AudioManager.STREAM_RING), 0);
+ }
}
}
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index e5002c9..3b61064 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -223,6 +223,7 @@
}
private String getWord(int position) {
+ if (null == mCursor) return null;
mCursor.moveToPosition(position);
// Handle a possible race-condition
if (mCursor.isAfterLast()) return null;
@@ -298,7 +299,7 @@
FREQUENCY_FOR_USER_DICTIONARY_ADDS, UserDictionary.Words.LOCALE_TYPE_CURRENT);
Locale.setDefault(prevLocale);
}
- if (!mCursor.requery()) {
+ if (null != mCursor && !mCursor.requery()) {
throw new IllegalStateException("can't requery on already-closed cursor.");
}
mAddedWordAlready = true;
@@ -333,23 +334,25 @@
super(context, layout, c, from, to);
mSettings = settings;
- int wordColIndex = c.getColumnIndexOrThrow(UserDictionary.Words.WORD);
- String alphabet = context.getString(
- com.android.internal.R.string.fast_scroll_alphabet);
- mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet);
+ if (null != c) {
+ final String alphabet = context.getString(
+ com.android.internal.R.string.fast_scroll_alphabet);
+ final int wordColIndex = c.getColumnIndexOrThrow(UserDictionary.Words.WORD);
+ mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet);
+ }
setViewBinder(mViewBinder);
}
public int getPositionForSection(int section) {
- return mIndexer.getPositionForSection(section);
+ return null == mIndexer ? 0 : mIndexer.getPositionForSection(section);
}
public int getSectionForPosition(int position) {
- return mIndexer.getSectionForPosition(position);
+ return null == mIndexer ? 0 : mIndexer.getSectionForPosition(position);
}
public Object[] getSections() {
- return mIndexer.getSections();
+ return null == mIndexer ? null : mIndexer.getSections();
}
public void onClick(View v) {
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 5560a03..c07388e 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -37,6 +37,7 @@
private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
private static final String KEY_TOGGLE_NFC = "toggle_nfc";
+ private static final String KEY_ZEROCLICK_SETTINGS = "zeroclick_settings";
private static final String KEY_VPN_SETTINGS = "vpn_settings";
private static final String KEY_TETHER_SETTINGS = "tether_settings";
private static final String KEY_PROXY_SETTINGS = "proxy_settings";
@@ -87,9 +88,11 @@
final Activity activity = getActivity();
mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC);
+ PreferenceScreen zeroclick = (PreferenceScreen)
+ findPreference(KEY_ZEROCLICK_SETTINGS);
mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference);
- mNfcEnabler = new NfcEnabler(activity, nfc);
+ mNfcEnabler = new NfcEnabler(activity, nfc, zeroclick);
String toggleable = Settings.System.getString(activity.getContentResolver(),
Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
@@ -107,6 +110,7 @@
// Remove NFC if its not available
if (NfcAdapter.getDefaultAdapter(activity) == null) {
getPreferenceScreen().removePreference(nfc);
+ getPreferenceScreen().removePreference(zeroclick);
}
// Remove Mobile Network Settings if it's a wifi-only device.
diff --git a/src/com/android/settings/deviceinfo/UsbSettings.java b/src/com/android/settings/deviceinfo/UsbSettings.java
index ca6a0cc..4820234 100644
--- a/src/com/android/settings/deviceinfo/UsbSettings.java
+++ b/src/com/android/settings/deviceinfo/UsbSettings.java
@@ -16,10 +16,13 @@
package com.android.settings.deviceinfo;
+import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.ContentQueryMap;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbManager;
@@ -52,6 +55,8 @@
private static final String KEY_INSTALLER_CD = "usb_installer_cd";
private static final int MENU_ID_INSTALLER_CD = Menu.FIRST;
+ private static final int DLG_INSTALLER_CD = 1;
+
private UsbManager mUsbManager;
private String mInstallerImagePath;
private CheckBoxPreference mMtp;
@@ -60,6 +65,9 @@
private final BroadcastReceiver mStateReceiver = new BroadcastReceiver() {
public void onReceive(Context content, Intent intent) {
+ if (!intent.getBooleanExtra(UsbManager.USB_CONNECTED, false)) {
+ removeDialog(DLG_INSTALLER_CD);
+ }
updateToggles();
}
};
@@ -108,6 +116,24 @@
new IntentFilter(UsbManager.ACTION_USB_STATE));
}
+ @Override
+ public Dialog onCreateDialog(int id) {
+ switch (id) {
+ case DLG_INSTALLER_CD:
+ return new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.dlg_installer_cd_title)
+ .setMessage(R.string.dlg_installer_cd_text)
+ .setPositiveButton(R.string.dlg_installer_cd_ok,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ // Disable installer CD, return to default function.
+ mUsbManager.setCurrentFunction(null, false);
+ }})
+ .create();
+ }
+ return null;
+ }
+
private void updateToggles() {
if (mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_MTP)) {
mMtp.setChecked(true);
@@ -164,10 +190,12 @@
if (mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_MASS_STORAGE)) {
// Disable installer CD, return to default function.
mUsbManager.setCurrentFunction(null, false);
+ removeDialog(DLG_INSTALLER_CD);
} else {
// Enable installer CD. Don't set as default function.
mUsbManager.setCurrentFunction(UsbManager.USB_FUNCTION_MASS_STORAGE, false);
mUsbManager.setMassStorageBackingFile(mInstallerImagePath);
+ showDialog(DLG_INSTALLER_CD);
}
updateToggles();
return true;
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index 4ccebf0..e966ec7 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -126,7 +126,12 @@
private void updateUserDictionaryPreference(Preference userDictionaryPreference) {
final Activity activity = getActivity();
final Set<String> localeList = UserDictionaryList.getUserDictionaryLocalesList(activity);
- if (localeList.size() <= 1) {
+ if (null == localeList) {
+ // The locale list is null if and only if the user dictionary service is
+ // not present or disabled. In this case we need to remove the preference.
+ ((PreferenceGroup)findPreference("language_settings_category")).removePreference(
+ userDictionaryPreference);
+ } else if (localeList.size() <= 1) {
userDictionaryPreference.setTitle(R.string.user_dict_single_settings_title);
userDictionaryPreference.setFragment(UserDictionarySettings.class.getName());
// If the size of localeList is 0, we don't set the locale parameter in the
diff --git a/src/com/android/settings/inputmethod/UserDictionaryList.java b/src/com/android/settings/inputmethod/UserDictionaryList.java
index 5db2841..e0afe48 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryList.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryList.java
@@ -49,7 +49,10 @@
new String[] { UserDictionary.Words.LOCALE },
null, null, null);
final Set<String> localeList = new TreeSet<String>();
- if (cursor.moveToFirst()) {
+ if (null == cursor) {
+ // The user dictionary service is not present or disabled. Return null.
+ return null;
+ } else if (cursor.moveToFirst()) {
final int columnIndex = cursor.getColumnIndex(UserDictionary.Words.LOCALE);
do {
String locale = cursor.getString(columnIndex);
diff --git a/src/com/android/settings/nfc/NfcEnabler.java b/src/com/android/settings/nfc/NfcEnabler.java
index dba1329..99cf8f0 100644
--- a/src/com/android/settings/nfc/NfcEnabler.java
+++ b/src/com/android/settings/nfc/NfcEnabler.java
@@ -24,6 +24,7 @@
import android.os.Handler;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
+import android.preference.PreferenceScreen;
import android.util.Log;
/**
@@ -36,6 +37,7 @@
private final Context mContext;
private final CheckBoxPreference mCheckbox;
+ private final PreferenceScreen mZeroClick;
private final NfcAdapter mNfcAdapter;
private final IntentFilter mIntentFilter;
private final Handler mHandler = new Handler();
@@ -54,9 +56,11 @@
private boolean mNfcState;
- public NfcEnabler(Context context, CheckBoxPreference checkBoxPreference) {
+ public NfcEnabler(Context context, CheckBoxPreference checkBoxPreference,
+ PreferenceScreen zeroclick) {
mContext = context;
mCheckbox = checkBoxPreference;
+ mZeroClick = zeroclick;
mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
if (mNfcAdapter == null) {
@@ -127,5 +131,6 @@
private void handleNfcStateChanged(boolean newState) {
mCheckbox.setChecked(newState);
mCheckbox.setEnabled(true);
+ mZeroClick.setEnabled(newState);
}
}
diff --git a/src/com/android/settings/nfc/ZeroClick.java b/src/com/android/settings/nfc/ZeroClick.java
new file mode 100644
index 0000000..7868662
--- /dev/null
+++ b/src/com/android/settings/nfc/ZeroClick.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2011 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.nfc;
+
+import android.app.Fragment;
+import android.content.ContentResolver;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.provider.Settings;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.util.Log;
+import com.android.settings.R;
+
+public class ZeroClick extends Fragment
+ implements CompoundButton.OnCheckedChangeListener {
+ private View mView;
+ private CheckBox mCheckbox;
+ private NfcAdapter mNfcAdapter;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ mView = inflater.inflate(R.layout.zeroclick, container, false);
+ initView(mView);
+ return mView;
+ }
+
+ private void initView(View view) {
+ mCheckbox = (CheckBox) mView.findViewById(R.id.zeroclick_checkbox);
+ mCheckbox.setOnCheckedChangeListener(this);
+ mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity());
+ mCheckbox.setChecked(mNfcAdapter.zeroClickEnabled());
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ }
+
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean desiredState) {
+ boolean success = false;
+ mCheckbox.setEnabled(false);
+ if (desiredState) {
+ success = mNfcAdapter.enableZeroClick();
+ } else {
+ success = mNfcAdapter.disableZeroClick();
+ }
+ if (success) {
+ mCheckbox.setChecked(desiredState);
+ }
+ mCheckbox.setEnabled(true);
+ }
+}
diff --git a/tests/res/drawable/ic_settings_applications.png b/tests/res/drawable-hdpi/ic_settings_applications.png
similarity index 100%
rename from tests/res/drawable/ic_settings_applications.png
rename to tests/res/drawable-hdpi/ic_settings_applications.png
Binary files differ
diff --git a/tests/res/drawable-mdpi/ic_settings_applications.png b/tests/res/drawable-mdpi/ic_settings_applications.png
new file mode 100755
index 0000000..745ff2a
--- /dev/null
+++ b/tests/res/drawable-mdpi/ic_settings_applications.png
Binary files differ