Fix the ExpandDividerPreference will flash one time in some corner cases

Bug: 204051529
Test: make SettingsRoboTests
Change-Id: Iaead6d2a596cbbf0281045b40e4b00f23ceb9f09
This commit is contained in:
ykhung
2021-10-25 20:15:09 +08:00
parent f1d527ff0b
commit 36a57f4720
3 changed files with 14 additions and 29 deletions

View File

@@ -65,8 +65,7 @@ public class ExpandDividerPreference extends Preference {
@Override
public void onClick() {
mIsExpanded = !mIsExpanded;
refreshState();
setIsExpanded(!mIsExpanded);
if (mOnExpandListener != null) {
mOnExpandListener.onExpand(mIsExpanded);
}
@@ -74,10 +73,7 @@ public class ExpandDividerPreference extends Preference {
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 @@ public class ExpandDividerPreference extends Preference {
}
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);
}
if (mTextView != null) {
mTextView.setText(mTitleContent);
}
setTitle(mTitleContent);
}
}