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); + } }