Fix the problem that when the MainSwitchPreference is gone,

there will be a blank area.

- Disable the visibility of preference when the the hide() method
  is invoked.

Fix: 192332931
Test: robotest and see the UI
Change-Id: Iec5a06ca689843ebb692b1b7040f1d2be9f45bc2
This commit is contained in:
Stanley Wang
2021-07-01 22:47:55 +08:00
parent f1b07d7ddd
commit b757a6e9f2
2 changed files with 5 additions and 5 deletions

View File

@@ -50,7 +50,6 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
private SettingsMainSwitchBar mMainSwitchBar;
private CharSequence mTitle;
private boolean mIsVisible;
private EnforcedAdmin mEnforcedAdmin;
private RestrictedPreferenceHelper mRestrictedHelper;
@@ -87,7 +86,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
}
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
initMainSwitchBar();
if (mIsVisible) {
if (isVisible()) {
mMainSwitchBar.show();
if (mMainSwitchBar.isChecked() != isChecked()) {
setChecked(isChecked());
@@ -101,7 +100,6 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
private void init(Context context, AttributeSet attrs) {
setLayoutResource(R.layout.preference_widget_main_switch);
mSwitchChangeListeners.add(this);
mIsVisible = true;
if (attrs != null) {
final TypedArray a = context.obtainStyledAttributes(attrs,
@@ -151,7 +149,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
* Show the MainSwitchBar
*/
public void show() {
mIsVisible = true;
setVisible(true);
if (mMainSwitchBar != null) {
mMainSwitchBar.show();
}
@@ -161,7 +159,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
* Hide the MainSwitchBar
*/
public void hide() {
mIsVisible = false;
setVisible(false);
if (mMainSwitchBar != null) {
mMainSwitchBar.hide();
}