logd: settings: ro.config.low_ram support
- limit settings to 64K, 256K and 1M if ro.config.low_ram true
- Correctly handle ro.logd.size
Bug: 17526187
Change-Id: I2380b649516b29c2a98f54de18e5a4780b3421ce
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index c7c0020..0a09a9c 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -894,6 +894,13 @@
<item>16M</item>
</string-array>
+ <!-- Titles for logd limit size lowram selection preference. [CHAR LIMIT=14] -->
+ <string-array name="select_logd_size_lowram_titles">
+ <item>64K</item>
+ <item>256K</item>
+ <item>1M</item>
+ </string-array>
+
<!-- Values for logd limit size selection preference. -->
<string-array name="select_logd_size_values" translatable="false" >
<item>65536</item>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index d801ae0..8bc4b64 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -1107,9 +1107,13 @@
}
String[] values = getResources().getStringArray(R.array.select_logd_size_values);
String[] titles = getResources().getStringArray(R.array.select_logd_size_titles);
+ if (SystemProperties.get("ro.config.low_ram").equals("true")) {
+ mLogdSize.setEntries(R.array.select_logd_size_lowram_titles);
+ titles = getResources().getStringArray(R.array.select_logd_size_lowram_titles);
+ }
String[] summaries = getResources().getStringArray(R.array.select_logd_size_summaries);
int index = 1; // punt to second entry if not found
- for (int i = 0; i < values.length; i++) {
+ for (int i = 0; i < titles.length; i++) {
if (currentValue.equals(values[i])
|| currentValue.equals(titles[i])) {
index = i;
@@ -1123,6 +1127,10 @@
}
private void writeLogdSizeOption(Object newValue) {
+ String currentValue = SystemProperties.get(SELECT_LOGD_DEFAULT_SIZE_PROPERTY);
+ if (currentValue != null) {
+ DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES = currentValue;
+ }
final String size = (newValue != null) ?
newValue.toString() : DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES;
SystemProperties.set(SELECT_LOGD_SIZE_PROPERTY, size);