summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DeviceInfoSettings.java
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2012-11-25 07:44:13 -0500
committerDvTonder <david.vantonder@gmail.com>2012-11-25 07:44:13 -0500
commit31d93bf306ceb46b4f6cfdc86c0497a4a2565123 (patch)
tree83a9c566205f58ac1a6c843666344ee88bae46bd /src/com/android/settings/DeviceInfoSettings.java
parentb77783f08693b1ff588f53738d88f4464bf54019 (diff)
downloadpackages_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.java31
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;
+ }
}