From 894af268def8a817306ea83f21cb25b6f0edf2e3 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Wed, 17 Sep 2014 14:05:15 -0700 Subject: [PATCH] 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 --- res/values/arrays.xml | 7 +++++++ src/com/android/settings/DevelopmentSettings.java | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index c7c0020a243..0a09a9c967e 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -894,6 +894,13 @@ 16M + + + 64K + 256K + 1M + + 65536 diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index d801ae0c8fe..8bc4b646895 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -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);