diff options
Diffstat (limited to 'src/com/android/settings/DeviceInfoSettings.java')
-rw-r--r-- | src/com/android/settings/DeviceInfoSettings.java | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 949eaab..39eaa5a 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -17,6 +17,8 @@ package com.android.settings; import android.app.Activity; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; @@ -43,6 +45,7 @@ import android.text.format.DateFormat; import android.util.Log; import android.widget.Toast; +import cyanogenmod.hardware.CMHardwareManager; import com.android.internal.logging.MetricsLogger; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Index; @@ -91,10 +94,13 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In private static final String KEY_CM_UPDATES = "cm_updates"; static final int TAPS_TO_BE_A_DEVELOPER = 7; + static final int TAPS_TO_SHOW_DEVICEID = 7; long[] mHits = new long[3]; int mDevHitCountdown; + int mDevIdCountdown; Toast mDevHitToast; + Toast mDevIdToast; @Override protected int getMetricsCategory() { @@ -134,8 +140,12 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In setStringSummary(KEY_DEVICE_MODEL, Build.MODEL); setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY); findPreference(KEY_BUILD_NUMBER).setEnabled(true); - findPreference(KEY_KERNEL_VERSION).setSummary(getFormattedKernelVersion()); - setValueSummary(KEY_MOD_VERSION, cyanogenmod.os.Build.CYANOGENMOD_DISPLAY_VERSION); + + final Preference kernelPref = findPreference(KEY_KERNEL_VERSION); + kernelPref.setEnabled(true); + kernelPref.setSummary(getFormattedKernelVersion()); + findPreference(KEY_MOD_VERSION).setSummary( + cyanogenmod.os.Build.CYANOGENMOD_DISPLAY_VERSION); findPreference(KEY_MOD_VERSION).setEnabled(true); setValueSummary(KEY_MOD_BUILD_DATE, "ro.build.date"); setExplicitValueSummary(KEY_MOD_API_LEVEL, constructApiLevelString()); @@ -226,6 +236,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In Context.MODE_PRIVATE).getBoolean(DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals("eng")) ? -1 : TAPS_TO_BE_A_DEVELOPER; mDevHitToast = null; + mDevIdCountdown = TAPS_TO_SHOW_DEVICEID; + mDevIdToast = null; } @Override @@ -262,6 +274,42 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In Log.e(LOG_TAG, "Unable to start activity " + intent.toString()); } } + } else if (preference.getKey().equals(KEY_KERNEL_VERSION)) { + + mDevIdCountdown --; + if (mDevIdCountdown == 0) { + final CMHardwareManager hwMgr = CMHardwareManager.getInstance(getActivity().getApplicationContext()); + final String deviceID = hwMgr.getUniqueDeviceId(); + CharSequence msg; + if (deviceID == null) { + msg = getText(R.string.show_device_id_failed_cm); + } + else { + final ClipboardManager clipboardMgr = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); + clipboardMgr.setPrimaryClip(ClipData.newPlainText(getResources(). + getString(R.string.show_device_id_clipboard_label), + deviceID)); + msg = getResources().getString( + R.string.show_device_id_copied_cm, deviceID); + } + + mDevIdToast = Toast.makeText(getActivity(), msg, + Toast.LENGTH_LONG); + mDevIdToast.show(); + mDevIdCountdown = TAPS_TO_SHOW_DEVICEID; + } + else if (mDevIdCountdown > 0 + && mDevIdCountdown < (TAPS_TO_SHOW_DEVICEID-2)) { + + if (mDevIdToast != null) { + mDevIdToast.cancel(); + } + mDevIdToast = Toast.makeText(getActivity(), getResources().getQuantityString( + R.plurals.show_device_id_countdown_cm, mDevIdCountdown, mDevIdCountdown), + Toast.LENGTH_SHORT); + mDevIdToast.show(); + } + } else if (preference.getKey().equals(KEY_BUILD_NUMBER)) { // Don't enable developer options for secondary users. if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true; |