From bf234afbbb795d25542785122645bfbbe89aff1b Mon Sep 17 00:00:00 2001 From: jeffreyhuang Date: Tue, 14 Nov 2017 15:09:12 -0800 Subject: [PATCH] Speed up dev options - Put memory updates on background thread - Prevent update state from being called twice Bug: 69000975 Test: Manual Change-Id: I186bc25f6b74a5098b1737891efee3a6855dc996 --- res/xml/development_settings.xml | 2 +- .../settings/dashboard/DashboardFragment.java | 8 ++++--- .../MemoryUsagePreferenceController.java | 22 ++++++++++++------- .../MemoryUsagePreferenceControllerTest.java | 4 ++++ 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index 669f4fb93c6..9857280ecf4 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -23,7 +23,7 @@ android:key="memory" android:icon="@drawable/ic_settings_memory" android:title="@string/memory_settings_title" - android:summary="@string/summary_empty" + android:summary="@string/summary_placeholder" android:fragment="com.android.settings.applications.ProcessStatsSummary" /> { + mProcStatsData.refreshStats(true); + final ProcStatsData.MemInfo memInfo = mProcStatsData.getMemInfo(); + final String usedResult = Formatter.formatShortFileSize(mContext, + (long) memInfo.realUsedRam); + final String totalResult = Formatter.formatShortFileSize(mContext, + (long) memInfo.realTotalRam); + ThreadUtils.postOnMainThread( + () -> mPreference.setSummary(mContext.getString(R.string.memory_summary, + usedResult, totalResult))); + }); } @VisibleForTesting diff --git a/tests/robotests/src/com/android/settings/development/MemoryUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MemoryUsagePreferenceControllerTest.java index a949eef8173..d68f2762689 100644 --- a/tests/robotests/src/com/android/settings/development/MemoryUsagePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/MemoryUsagePreferenceControllerTest.java @@ -30,6 +30,7 @@ import android.support.v7.preference.PreferenceScreen; import com.android.settings.TestConfig; import com.android.settings.applications.ProcStatsData; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.ShadowThreadUtils; import org.junit.Before; import org.junit.Test; @@ -68,6 +69,9 @@ public class MemoryUsagePreferenceControllerTest { } @Test + @Config(shadows = { + ShadowThreadUtils.class + }) public void updateState_shouldUpdatePreferenceSummary() { mController.updateState(mPreference);