Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12cef917 authored by Sunny Shao's avatar Sunny Shao
Browse files

Update BrandedAccountPreferenceController

Use the updateState to decide the preference display due to the displayPreference
could not be called while user press BACK key then the upper page gone and bottom
page reshow.

Fixes: 146989749
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
Change-Id: I00b08b59c533ed0832ed07e6231138dd88084517
parent e7806063
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -32,13 +32,13 @@ import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory;

public class BrandedAccountPreferenceController extends BasePreferenceController {
    private final Account[] mAccounts;
    private final AccountFeatureProvider mAccountFeatureProvider;
    private Account[] mAccounts;

    public BrandedAccountPreferenceController(Context context, String key) {
        super(context, key);
        final AccountFeatureProvider accountFeatureProvider = FeatureFactory.getFactory(
                mContext).getAccountFeatureProvider();
        mAccounts = accountFeatureProvider.getAccounts(mContext);
        mAccountFeatureProvider = FeatureFactory.getFactory(mContext).getAccountFeatureProvider();
        mAccounts = mAccountFeatureProvider.getAccounts(mContext);
    }

    @Override
@@ -56,8 +56,6 @@ public class BrandedAccountPreferenceController extends BasePreferenceController
    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final AccountFeatureProvider accountFeatureProvider = FeatureFactory.getFactory(
                mContext).getAccountFeatureProvider();
        final Preference accountPreference = screen.findPreference(getPreferenceKey());
        if (accountPreference != null && (mAccounts == null || mAccounts.length == 0)) {
            screen.removePreference(accountPreference);
@@ -72,7 +70,7 @@ public class BrandedAccountPreferenceController extends BasePreferenceController
            args.putParcelable(AccountDetailDashboardFragment.KEY_USER_HANDLE,
                    android.os.Process.myUserHandle());
            args.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE,
                    accountFeatureProvider.getAccountType());
                    mAccountFeatureProvider.getAccountType());

            new SubSettingLauncher(mContext)
                    .setDestination(AccountDetailDashboardFragment.class.getName())
@@ -83,4 +81,13 @@ public class BrandedAccountPreferenceController extends BasePreferenceController
            return true;
        });
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        mAccounts = mAccountFeatureProvider.getAccounts(mContext);
        if (mAccounts == null || mAccounts.length == 0) {
            preference.setVisible(false);
        }
    }
}