diff options
author | DvTonder <david.vantonder@gmail.com> | 2012-11-25 07:44:13 -0500 |
---|---|---|
committer | DvTonder <david.vantonder@gmail.com> | 2012-11-25 07:44:13 -0500 |
commit | 31d93bf306ceb46b4f6cfdc86c0497a4a2565123 (patch) | |
tree | 83a9c566205f58ac1a6c843666344ee88bae46bd /src/com/android/settings/DeviceInfoSettings.java | |
parent | b77783f08693b1ff588f53738d88f4464bf54019 (diff) | |
download | packages_apps_Settings-31d93bf306ceb46b4f6cfdc86c0497a4a2565123.zip packages_apps_Settings-31d93bf306ceb46b4f6cfdc86c0497a4a2565123.tar.gz packages_apps_Settings-31d93bf306ceb46b4f6cfdc86c0497a4a2565123.tar.bz2 |
Settings: Add Updater and Changelog
Change-Id: I8cf09962d9ba667bcdba78d7214fd6b5bb0feedc
Diffstat (limited to 'src/com/android/settings/DeviceInfoSettings.java')
-rw-r--r-- | src/com/android/settings/DeviceInfoSettings.java | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 4d2ad17..76235ba 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -19,6 +19,7 @@ package com.android.settings; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager.NameNotFoundException; import android.os.Build; import android.os.Bundle; import android.os.SELinux; @@ -32,10 +33,8 @@ import android.util.Log; import android.widget.Toast; import java.io.BufferedReader; -import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; -import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -71,9 +70,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String KEY_MOD_BUILD_DATE = "build_date"; private static final String KEY_DEVICE_CPU = "device_cpu"; private static final String KEY_DEVICE_MEMORY = "device_memory"; + private static final String KEY_CM_UPDATES = "cm_updates"; static final int TAPS_TO_BE_A_DEVELOPER = 7; - long[] mHits = new long[3]; int mDevHitCountdown; Toast mDevHitToast; @@ -94,6 +93,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { findPreference(KEY_BUILD_NUMBER).setEnabled(true); findPreference(KEY_KERNEL_VERSION).setSummary(getFormattedKernelVersion()); setValueSummary(KEY_MOD_VERSION, "ro.cm.version"); + findPreference(KEY_MOD_VERSION).setEnabled(true); setValueSummary(KEY_MOD_BUILD_DATE, "ro.build.date"); if (!SELinux.isSELinuxEnabled()) { @@ -111,6 +111,13 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { String cpuInfo = getCPUInfo(); String memInfo = getMemInfo(); + // Only the owner should see the Updater settings, if it exists + if (UserHandle.myUserId() == UserHandle.USER_OWNER) { + removePreferenceIfPackageNotInstalled(findPreference(KEY_CM_UPDATES)); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_CM_UPDATES)); + } + if (cpuInfo != null) { setStringSummary(KEY_DEVICE_CPU, cpuInfo); } else { @@ -390,4 +397,22 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { return result; } + + private boolean removePreferenceIfPackageNotInstalled(Preference preference) { + String intentUri=((PreferenceScreen) preference).getIntent().toUri(1); + Pattern pattern = Pattern.compile("component=([^/]+)/"); + Matcher matcher = pattern.matcher(intentUri); + + String packageName=matcher.find()?matcher.group(1):null; + if(packageName != null) { + try { + getPackageManager().getPackageInfo(packageName, 0); + } catch (NameNotFoundException e) { + Log.e(LOG_TAG,"package "+packageName+" not installed, hiding preference."); + getPreferenceScreen().removePreference(preference); + return true; + } + } + return false; + } } |