From 89bc735369240d2e8d1113c006785d0c4ad24086 Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Wed, 12 Feb 2020 15:47:22 -0800 Subject: [PATCH] Show the footer when global switch is off. In the original implementation we showed a footer when global switch is off, however, this was broken due to some refactor. This patch fixes the issue where we don't set the visibility of the footer when global switch is on/off. Bug: b/148626177 Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver Change-Id: I0f0763ee1551199cc8611c650350a2adbdf402ed --- ...GraphicsDriverFooterPreferenceController.java | 7 +++++++ ...hicsDriverFooterPreferenceControllerTest.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceController.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceController.java index e368aab8600..4862cfe03a2 100644 --- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceController.java +++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceController.java @@ -26,6 +26,7 @@ import android.os.Looper; import android.provider.Settings; import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; @@ -79,6 +80,12 @@ public class GraphicsDriverFooterPreferenceController extends BasePreferenceCont mGraphicsDriverContentObserver.unregister(mContentResolver); } + @Override + public void updateState(Preference preference) { + final FooterPreference footerPref = (FooterPreference) preference; + footerPref.setVisible(isAvailable()); + } + @Override public void onGraphicsDriverContentChanged() { updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceControllerTest.java index 1dac1310314..a2d23b6b4cb 100644 --- a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverFooterPreferenceControllerTest.java @@ -105,4 +105,20 @@ public class GraphicsDriverFooterPreferenceControllerTest { verify(mGraphicsDriverContentObserver).unregister(mResolver); } + + @Test + public void updateState_available_visible() { + when(mController.getAvailabilityStatus()).thenReturn(AVAILABLE_UNSEARCHABLE); + mController.updateState(mPreference); + + verify(mPreference).setVisible(true); + } + + @Test + public void updateState_unavailable_invisible() { + when(mController.getAvailabilityStatus()).thenReturn(CONDITIONALLY_UNAVAILABLE); + mController.updateState(mPreference); + + verify(mPreference).setVisible(false); + } }