Loading packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java +8 −0 Original line number Original line Diff line number Diff line package com.android.settingslib.core; package com.android.settingslib.core; import android.content.Context; import android.content.Context; import android.text.TextUtils; import android.util.Log; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceGroup; Loading @@ -11,6 +13,8 @@ import androidx.preference.PreferenceScreen; */ */ public abstract class AbstractPreferenceController { public abstract class AbstractPreferenceController { private static final String TAG = "AbstractPrefController"; protected final Context mContext; protected final Context mContext; public AbstractPreferenceController(Context context) { public AbstractPreferenceController(Context context) { Loading @@ -22,6 +26,10 @@ public abstract class AbstractPreferenceController { */ */ public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) { final String prefKey = getPreferenceKey(); final String prefKey = getPreferenceKey(); if (TextUtils.isEmpty(prefKey)) { Log.w(TAG, "Skipping displayPreference because key is empty:" + getClass().getName()); return; } if (isAvailable()) { if (isAvailable()) { setVisible(screen, prefKey, true /* visible */); setVisible(screen, prefKey, true /* visible */); if (this instanceof Preference.OnPreferenceChangeListener) { if (this instanceof Preference.OnPreferenceChangeListener) { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java +20 −8 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,8 @@ import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) public class AbstractPreferenceControllerTest { public class AbstractPreferenceControllerTest { private static final String KEY_PREF = "test_pref"; @Mock @Mock private PreferenceScreen mScreen; private PreferenceScreen mScreen; Loading @@ -47,9 +49,9 @@ public class AbstractPreferenceControllerTest { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application; mPreference = new Preference(mContext); mPreference = new Preference(mContext); mPreference.setKey(TestPrefController.KEY_PREF); mPreference.setKey(KEY_PREF); when(mScreen.findPreference(TestPrefController.KEY_PREF)).thenReturn(mPreference); when(mScreen.findPreference(KEY_PREF)).thenReturn(mPreference); mTestPrefController = new TestPrefController(mContext); mTestPrefController = new TestPrefController(mContext, KEY_PREF); } } @Test @Test Loading @@ -61,16 +63,25 @@ public class AbstractPreferenceControllerTest { assertThat(mPreference.isVisible()).isTrue(); assertThat(mPreference.isVisible()).isTrue(); } } @Test public void displayPref_noKey_shouldDoNothing() { mTestPrefController.isAvailable = true; mTestPrefController.displayPreference(mScreen); assertThat(mPreference.isVisible()).isTrue(); } @Test @Test public void setVisible_prefIsVisible_shouldSetToVisible() { public void setVisible_prefIsVisible_shouldSetToVisible() { mTestPrefController.setVisible(mScreen, TestPrefController.KEY_PREF, true /* visible */); mTestPrefController.setVisible(mScreen, KEY_PREF, true /* visible */); assertThat(mPreference.isVisible()).isTrue(); assertThat(mPreference.isVisible()).isTrue(); } } @Test @Test public void setVisible_prefNotVisible_shouldSetToInvisible() { public void setVisible_prefNotVisible_shouldSetToInvisible() { mTestPrefController.setVisible(mScreen, TestPrefController.KEY_PREF, false /* visible */); mTestPrefController.setVisible(mScreen, KEY_PREF, false /* visible */); assertThat(mPreference.isVisible()).isFalse(); assertThat(mPreference.isVisible()).isFalse(); } } Loading @@ -92,13 +103,14 @@ public class AbstractPreferenceControllerTest { } } private static class TestPrefController extends AbstractPreferenceController { private static class TestPrefController extends AbstractPreferenceController { private static final String KEY_PREF = "test_pref"; private static final CharSequence TEST_SUMMARY = "Test"; private static final CharSequence TEST_SUMMARY = "Test"; public boolean isAvailable; public boolean isAvailable; private final String mPrefKey; public TestPrefController(Context context) { TestPrefController(Context context, String key) { super(context); super(context); mPrefKey = key; } } @Override @Override Loading @@ -113,7 +125,7 @@ public class AbstractPreferenceControllerTest { @Override @Override public String getPreferenceKey() { public String getPreferenceKey() { return KEY_PREF; return mPrefKey; } } @Override @Override Loading Loading
packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java +8 −0 Original line number Original line Diff line number Diff line package com.android.settingslib.core; package com.android.settingslib.core; import android.content.Context; import android.content.Context; import android.text.TextUtils; import android.util.Log; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceGroup; Loading @@ -11,6 +13,8 @@ import androidx.preference.PreferenceScreen; */ */ public abstract class AbstractPreferenceController { public abstract class AbstractPreferenceController { private static final String TAG = "AbstractPrefController"; protected final Context mContext; protected final Context mContext; public AbstractPreferenceController(Context context) { public AbstractPreferenceController(Context context) { Loading @@ -22,6 +26,10 @@ public abstract class AbstractPreferenceController { */ */ public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) { final String prefKey = getPreferenceKey(); final String prefKey = getPreferenceKey(); if (TextUtils.isEmpty(prefKey)) { Log.w(TAG, "Skipping displayPreference because key is empty:" + getClass().getName()); return; } if (isAvailable()) { if (isAvailable()) { setVisible(screen, prefKey, true /* visible */); setVisible(screen, prefKey, true /* visible */); if (this instanceof Preference.OnPreferenceChangeListener) { if (this instanceof Preference.OnPreferenceChangeListener) { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java +20 −8 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,8 @@ import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) public class AbstractPreferenceControllerTest { public class AbstractPreferenceControllerTest { private static final String KEY_PREF = "test_pref"; @Mock @Mock private PreferenceScreen mScreen; private PreferenceScreen mScreen; Loading @@ -47,9 +49,9 @@ public class AbstractPreferenceControllerTest { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application; mPreference = new Preference(mContext); mPreference = new Preference(mContext); mPreference.setKey(TestPrefController.KEY_PREF); mPreference.setKey(KEY_PREF); when(mScreen.findPreference(TestPrefController.KEY_PREF)).thenReturn(mPreference); when(mScreen.findPreference(KEY_PREF)).thenReturn(mPreference); mTestPrefController = new TestPrefController(mContext); mTestPrefController = new TestPrefController(mContext, KEY_PREF); } } @Test @Test Loading @@ -61,16 +63,25 @@ public class AbstractPreferenceControllerTest { assertThat(mPreference.isVisible()).isTrue(); assertThat(mPreference.isVisible()).isTrue(); } } @Test public void displayPref_noKey_shouldDoNothing() { mTestPrefController.isAvailable = true; mTestPrefController.displayPreference(mScreen); assertThat(mPreference.isVisible()).isTrue(); } @Test @Test public void setVisible_prefIsVisible_shouldSetToVisible() { public void setVisible_prefIsVisible_shouldSetToVisible() { mTestPrefController.setVisible(mScreen, TestPrefController.KEY_PREF, true /* visible */); mTestPrefController.setVisible(mScreen, KEY_PREF, true /* visible */); assertThat(mPreference.isVisible()).isTrue(); assertThat(mPreference.isVisible()).isTrue(); } } @Test @Test public void setVisible_prefNotVisible_shouldSetToInvisible() { public void setVisible_prefNotVisible_shouldSetToInvisible() { mTestPrefController.setVisible(mScreen, TestPrefController.KEY_PREF, false /* visible */); mTestPrefController.setVisible(mScreen, KEY_PREF, false /* visible */); assertThat(mPreference.isVisible()).isFalse(); assertThat(mPreference.isVisible()).isFalse(); } } Loading @@ -92,13 +103,14 @@ public class AbstractPreferenceControllerTest { } } private static class TestPrefController extends AbstractPreferenceController { private static class TestPrefController extends AbstractPreferenceController { private static final String KEY_PREF = "test_pref"; private static final CharSequence TEST_SUMMARY = "Test"; private static final CharSequence TEST_SUMMARY = "Test"; public boolean isAvailable; public boolean isAvailable; private final String mPrefKey; public TestPrefController(Context context) { TestPrefController(Context context, String key) { super(context); super(context); mPrefKey = key; } } @Override @Override Loading @@ -113,7 +125,7 @@ public class AbstractPreferenceControllerTest { @Override @Override public String getPreferenceKey() { public String getPreferenceKey() { return KEY_PREF; return mPrefKey; } } @Override @Override Loading