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
This commit is contained in:
Mark Salyzyn
2014-09-17 14:05:15 -07:00
parent 69b674656a
commit 894af268de
2 changed files with 16 additions and 1 deletions

View File

@@ -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>

View File

@@ -1107,9 +1107,13 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
}
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 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
}
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);