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