From 89cff1ab753290860444da2bd40bf1a9734471da Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Sat, 3 Jun 2017 17:46:55 -0700 Subject: [PATCH] Misc fixes in settingslib Bug: 62039146 Fix: 62138362 Test: make RunSettingsLibRoboTests - Do not use enhanced loop in lifecycle events to avoid Concurrent modification exception. - Tweak footer preference icon layout - Add some logging to help debug future suggestion issues Change-Id: I08eb3aca4b776a7d7e5db75dff8f92904d482aa3 --- .../SettingsLib/res/layout/preference_footer.xml | 6 ++-- .../settingslib/core/lifecycle/Lifecycle.java | 36 ++++++++++++++-------- .../settingslib/suggestions/SuggestionParser.java | 6 ++-- .../settingslib/core/lifecycle/LifecycleTest.java | 22 +++++++++++++ 4 files changed, 52 insertions(+), 18 deletions(-) diff --git a/packages/SettingsLib/res/layout/preference_footer.xml b/packages/SettingsLib/res/layout/preference_footer.xml index 1df4f7095ac5..d83e249d586b 100644 --- a/packages/SettingsLib/res/layout/preference_footer.xml +++ b/packages/SettingsLib/res/layout/preference_footer.xml @@ -26,14 +26,14 @@ android:clipToPadding="false"> category.exclusiveExpireDaysInMillis; + final long elapsedTime = currentTime - setupTime; + Log.d(TAG, "Day " + elapsedTime / DateUtils.DAY_IN_MILLIS + " for " + category.category); + return elapsedTime > category.exclusiveExpireDaysInMillis; } private boolean isDismissed(Tile suggestion, boolean isSmartSuggestionEnabled) { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java index 9004ba419c93..585633226e59 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java @@ -210,6 +210,13 @@ public class LifecycleTest { assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); } + @Test + public void addObserverDuringObserve_shoudNotCrash() { + Lifecycle lifecycle = new Lifecycle(); + lifecycle.addObserver(new OnStartObserver(lifecycle)); + lifecycle.onStart(); + } + private static class OptionItemAccepter implements LifecycleObserver, OnOptionsItemSelected { public boolean wasCalled = false; @@ -236,4 +243,19 @@ public class LifecycleTest { assertThat(accepter.wasCalled).isFalse(); } + + private class OnStartObserver implements LifecycleObserver, OnStart { + + private final Lifecycle mLifecycle; + + public OnStartObserver(Lifecycle lifecycle) { + mLifecycle = lifecycle; + } + + @Override + public void onStart() { + mLifecycle.addObserver(new LifecycleObserver() { + }); + } + } } -- 2.11.0