diff options
-rw-r--r-- | res/values/strings.xml | 5 | ||||
-rw-r--r-- | res/xml/device_info_settings.xml | 12 | ||||
-rw-r--r-- | src/com/android/settings/DeviceInfoSettings.java | 61 |
3 files changed, 78 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index cb6eb36..5a61b3d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4415,6 +4415,11 @@ <!-- About phone screen, build date of ROM --> <string name="build_date">Build date</string> <string name="build_date_default">2012-01-01-0000</string> + <!-- About device screen, Cpu info. --> + <string name="cpu_info">CPU</string> + <!-- About phone screen, Free memory info --> + <string name="mem_info">Memory</string> + <!-- About phone screen, status item label --> <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml index 6322ec4..0666034 100644 --- a/res/xml/device_info_settings.xml +++ b/res/xml/device_info_settings.xml @@ -122,6 +122,18 @@ android:title="@string/kernel_version" android:summary="@string/device_info_default"/> + <!-- Device cpu info --> + <Preference android:key="device_cpu" + style="?android:preferenceInformationStyle" + android:title="@string/cpu_info" + android:summary="@string/device_info_default"/> + + <!-- Device mem info --> + <Preference android:key="device_memory" + style="?android:preferenceInformationStyle" + android:title="@string/mem_info" + android:summary="@string/device_info_default"/> + <!-- Mod version --> <Preference android:key="mod_version" style="?android:preferenceInformationStyle" diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 491c41e..4d2ad17 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -32,8 +32,10 @@ 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; @@ -43,6 +45,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String FILENAME_PROC_VERSION = "/proc/version"; private static final String FILENAME_MSV = "/sys/board_properties/soc/msv"; + private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo"; + private static final String FILENAME_PROC_CPUINFO = "/proc/cpuinfo"; private static final String KEY_CONTAINER = "container"; private static final String KEY_TEAM = "team"; @@ -65,6 +69,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private static final String PROPERTY_EQUIPMENT_ID = "ro.ril.fccid"; private static final String KEY_MOD_VERSION = "mod_version"; 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"; static final int TAPS_TO_BE_A_DEVELOPER = 7; @@ -102,6 +108,21 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS, PROPERTY_SELINUX_STATUS); + String cpuInfo = getCPUInfo(); + String memInfo = getMemInfo(); + + if (cpuInfo != null) { + setStringSummary(KEY_DEVICE_CPU, cpuInfo); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_CPU)); + } + + if (memInfo != null) { + setStringSummary(KEY_DEVICE_MEMORY, memInfo); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_MEMORY)); + } + // Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal", PROPERTY_URL_SAFETYLEGAL); @@ -329,4 +350,44 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { } return ""; } + + private String getMemInfo() { + String result = null; + BufferedReader reader = null; + + try { + /* /proc/meminfo entries follow this format: + * MemTotal: 362096 kB + * MemFree: 29144 kB + * Buffers: 5236 kB + * Cached: 81652 kB + */ + String firstLine = readLine(FILENAME_PROC_MEMINFO); + if (firstLine != null) { + String parts[] = firstLine.split("\\s+"); + if (parts.length == 3) { + result = Long.parseLong(parts[1])/1024 + " MB"; + } + } + } catch (IOException e) {} + + return result; + } + + private String getCPUInfo() { + String result = null; + + try { + /* The expected /proc/cpuinfo output is as follows: + * Processor : ARMv7 Processor rev 2 (v7l) + * BogoMIPS : 272.62 + */ + String firstLine = readLine(FILENAME_PROC_CPUINFO); + if (firstLine != null) { + result = firstLine.split(":")[1].trim(); + } + } catch (IOException e) {} + + return result; + } } |