OSDN Git Service

Allow below divider for all EntityHeader
authortmfang <tmfang@google.com>
Tue, 20 Nov 2018 03:48:00 +0000 (11:48 +0800)
committertmfang <tmfang@google.com>
Tue, 20 Nov 2018 03:52:29 +0000 (11:52 +0800)
- 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
src/com/android/settings/widget/EntityHeaderController.java
tests/robotests/src/com/android/settings/applications/LayoutPreferenceTest.java
tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java

index cc077cc..9c3cfaf 100644 (file)
@@ -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
index 5e83819..853313f 100644 (file)
@@ -238,6 +238,7 @@ public class EntityHeaderController {
         pref.setOrder(-1000);
         pref.setSelectable(false);
         pref.setKey(PREF_KEY_APP_HEADER);
+        pref.setAllowDividerBelow(true);
         return pref;
     }
 
index 1d2bb3a..899d4cb 100644 (file)
@@ -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();
+    }
 }
index cc9bee0..5d60810 100644 (file)
@@ -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