From 012b089a9100a3dcbf424d38b0d2d9fa2fe5b2cb Mon Sep 17 00:00:00 2001 From: tmfang Date: Tue, 20 Nov 2018 11:48:00 +0800 Subject: [PATCH] Allow below divider for all EntityHeader - Create an method in LayoutPreference let other class can set divider status. - EntityHeaderController will allow to have a below divider by default. Test: visual, robotest Bug: 116346008 Change-Id: Ic041b8fef8d22ce1b7ea48eedfbe97c708c41ce7 --- src/com/android/settings/applications/LayoutPreference.java | 12 ++++++++---- src/com/android/settings/widget/EntityHeaderController.java | 1 + .../android/settings/applications/LayoutPreferenceTest.java | 7 +++++++ .../android/settings/widget/EntityHeaderControllerTest.java | 3 ++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/applications/LayoutPreference.java b/src/com/android/settings/applications/LayoutPreference.java index cc077cc753..9c3cfaf1f8 100644 --- a/src/com/android/settings/applications/LayoutPreference.java +++ b/src/com/android/settings/applications/LayoutPreference.java @@ -24,7 +24,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; -import androidx.annotation.VisibleForTesting; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; @@ -37,9 +36,7 @@ public class LayoutPreference extends Preference { private final View.OnClickListener mClickListener = v -> performClick(v); private boolean mAllowDividerAbove; private boolean mAllowDividerBelow; - - @VisibleForTesting - View mRootView; + private View mRootView; public LayoutPreference(Context context, AttributeSet attrs) { super(context, attrs); @@ -116,4 +113,11 @@ public class LayoutPreference extends Preference { return mRootView.findViewById(id); } + public void setAllowDividerBelow(boolean allowed) { + mAllowDividerBelow = allowed; + } + + public boolean isAllowDividerBelow() { + return mAllowDividerBelow; + } } \ No newline at end of file diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java index 5e8381931b..853313fd32 100644 --- a/src/com/android/settings/widget/EntityHeaderController.java +++ b/src/com/android/settings/widget/EntityHeaderController.java @@ -238,6 +238,7 @@ public class EntityHeaderController { pref.setOrder(-1000); pref.setSelectable(false); pref.setKey(PREF_KEY_APP_HEADER); + pref.setAllowDividerBelow(true); return pref; } diff --git a/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java b/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java index 1d2bb3a0b8..899d4cb650 100644 --- a/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java @@ -83,4 +83,11 @@ public class LayoutPreferenceTest { assertThat(mPreference.findViewById(R.id.button1).isEnabled()).isFalse(); assertThat(mPreference.findViewById(R.id.button2).isEnabled()).isTrue(); } + + @Test + public void allowDividerBelow_shouldSaveCorrectDividerStatus() { + mPreference.setAllowDividerBelow(true); + + assertThat(mPreference.isAllowDividerBelow()).isTrue(); + } } diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java index cc9bee099c..5d60810627 100644 --- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java @@ -96,11 +96,12 @@ public class EntityHeaderControllerTest { } @Test - public void testBuildView_withContext_shouldBuildPreference() { + public void testBuildView_withContext_shouldBuildPreferenceAllowedBelowDivider() { mController = EntityHeaderController.newInstance(mActivity, mFragment, null); Preference preference = mController.done(mActivity, mShadowContext); assertThat(preference instanceof LayoutPreference).isTrue(); + assertThat(((LayoutPreference)preference).isAllowDividerBelow()).isTrue(); } @Test -- 2.11.0