Merge "Fix the ExpandDividerPreference will flash one time in some corner cases" into sc-v2-dev am: 0ed32fca75

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16115940

Change-Id: I953a2e45433c6f7c563392ab98272261b37f3e9e
diff --git a/res/layout/preference_expand_divider.xml b/res/layout/preference_expand_divider.xml
index 164419a..ce3d2e7 100644
--- a/res/layout/preference_expand_divider.xml
+++ b/res/layout/preference_expand_divider.xml
@@ -26,9 +26,7 @@
     android:paddingRight="?android:attr/listPreferredItemPaddingRight"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:background="?android:attr/selectableItemBackground"
-    android:orientation="horizontal"
-    android:clipToPadding="false"
-    android:baselineAligned="false">
+    android:orientation="horizontal">
 
     <TextView
         android:id="@+id/expand_title"
diff --git a/src/com/android/settings/fuelgauge/ExpandDividerPreference.java b/src/com/android/settings/fuelgauge/ExpandDividerPreference.java
index b89f2d4..4517177 100644
--- a/src/com/android/settings/fuelgauge/ExpandDividerPreference.java
+++ b/src/com/android/settings/fuelgauge/ExpandDividerPreference.java
@@ -65,8 +65,7 @@
 
     @Override
     public void onClick() {
-        mIsExpanded = !mIsExpanded;
-        refreshState();
+        setIsExpanded(!mIsExpanded);
         if (mOnExpandListener != null) {
             mOnExpandListener.onExpand(mIsExpanded);
         }
@@ -74,10 +73,7 @@
 
     void setTitle(final String titleContent) {
         mTitleContent = titleContent;
-        if (mTextView != null) {
-            mTextView.postDelayed(
-                () -> mTextView.setText(titleContent), 50);
-        }
+        refreshState();
     }
 
     void setIsExpanded(boolean isExpanded) {
@@ -90,13 +86,13 @@
     }
 
     private void refreshState() {
-        final int iconId =
-            mIsExpanded
-                ? R.drawable.ic_settings_expand_less
-                : R.drawable.ic_settings_expand_more;
         if (mImageView != null) {
-            mImageView.setImageResource(iconId);
+            mImageView.setImageResource(mIsExpanded
+                    ? R.drawable.ic_settings_expand_less
+                    : R.drawable.ic_settings_expand_more);
         }
-        setTitle(mTitleContent);
+        if (mTextView != null) {
+            mTextView.setText(mTitleContent);
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/ExpandDividerPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/ExpandDividerPreferenceTest.java
index 97af282..9e32da4 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/ExpandDividerPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/ExpandDividerPreferenceTest.java
@@ -18,11 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -36,8 +32,6 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
@@ -52,7 +46,6 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mImageView = spy(new ImageView(mContext));
         mTextView = spy(new TextView(mContext));
@@ -64,9 +57,9 @@
     @Test
     public void testConstructor_returnExpectedResult() {
         assertThat(mExpandDividerPreference.getKey())
-            .isEqualTo(ExpandDividerPreference.PREFERENCE_KEY);
+                .isEqualTo(ExpandDividerPreference.PREFERENCE_KEY);
         assertThat(mExpandDividerPreference.getLayoutResource())
-            .isEqualTo(R.layout.preference_expand_divider);
+                .isEqualTo(R.layout.preference_expand_divider);
     }
 
     @Test
@@ -75,9 +68,7 @@
         mExpandDividerPreference.mTextView = mTextView;
 
         mExpandDividerPreference.setTitle(titleContent);
-        final ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class);
-        verify(mTextView).postDelayed(captor.capture(), eq(50L));
-        captor.getValue().run();
+
         verify(mTextView).setText(titleContent);
     }
 
@@ -86,7 +77,7 @@
         final boolean[] isExpandedArray = new boolean[] {false};
         mExpandDividerPreference.mImageView = mImageView;
         mExpandDividerPreference.setOnExpandListener(
-            isExpanded -> isExpandedArray[0] = isExpanded);
+                isExpanded -> isExpandedArray[0] = isExpanded);
 
         // Click the item first time from false -> true.
         mExpandDividerPreference.onClick();
@@ -106,7 +97,7 @@
         final boolean[] isExpandedArray = new boolean[] {false};
         mExpandDividerPreference.mImageView = mImageView;
         mExpandDividerPreference.setOnExpandListener(
-            isExpanded -> isExpandedArray[0] = isExpanded);
+                isExpanded -> isExpandedArray[0] = isExpanded);
 
         mExpandDividerPreference.setIsExpanded(true);