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

Commit 7687e0b1 authored by Sunny Shao's avatar Sunny Shao
Browse files

Use FooterPreference in xml explicitly

Removed the FooterPreferenceMixin from the UserSettings page.

Fixes: 140008560
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.users
Change-Id: If6da2bd2f6a72d8e61b8c8bca9e3179cfdee05e6
parent 2cce2150
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -40,4 +40,11 @@
        android:order="105"
        settings:allowDividerAbove="true"/>

    <com.android.settingslib.widget.FooterPreference
        android:key="multiuser_footer"
        android:title="@string/user_settings_footer_text"
        android:selectable="false"
        settings:searchable="false"
        settings:controller="com.android.settings.users.MultiUserFooterPreferenceController"/>

</PreferenceScreen>
+3 −16
Original line number Diff line number Diff line
@@ -21,29 +21,18 @@ import android.content.Context;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.FooterPreferenceMixinCompat;

public class MultiUserFooterPreferenceController extends BasePreferenceController {

    @VisibleForTesting
    final UserCapabilities mUserCaps;

    private FooterPreferenceMixinCompat mFooterMixin;

    public MultiUserFooterPreferenceController(Context context) {
        super(context, "dummy_key");
    public MultiUserFooterPreferenceController(Context context, String key) {
        super(context, key);
        mUserCaps = UserCapabilities.create(context);
    }

    public MultiUserFooterPreferenceController setFooterMixin(
            FooterPreferenceMixinCompat footerMixin) {
        mFooterMixin = footerMixin;
        return this;
    }

    @Override
    public int getAvailabilityStatus() {
        return (mUserCaps.mEnabled && !mUserCaps.mUserSwitcherEnabled)
@@ -54,8 +43,6 @@ public class MultiUserFooterPreferenceController extends BasePreferenceControlle
    @Override
    public void updateState(Preference preference) {
        mUserCaps.updateAddUserCapabilities(mContext);
        final FooterPreference pref = mFooterMixin.createFooterPreference();
        pref.setTitle(R.string.user_settings_footer_text);
        pref.setVisible(isAvailable());
        preference.setVisible(isAvailable());
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ public class UserSettings extends SettingsPreferenceFragment
    private static final String KEY_USER_GUEST = "user_guest";
    private static final String KEY_ADD_USER = "user_add";
    private static final String KEY_ADD_USER_WHEN_LOCKED = "user_settings_add_users_when_locked";
    private static final String KEY_MULTIUSER_FOOTER = "multiuser_footer";

    private static final int MENU_REMOVE_USER = Menu.FIRST;

@@ -233,8 +234,8 @@ public class UserSettings extends SettingsPreferenceFragment

        mAddUserWhenLockedPreferenceController = new AddUserWhenLockedPreferenceController(
                activity, KEY_ADD_USER_WHEN_LOCKED);
        mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity)
                .setFooterMixin(mFooterPreferenceMixin);
        mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity,
                KEY_MULTIUSER_FOOTER);

        final PreferenceScreen screen = getPreferenceScreen();
        mAddUserWhenLockedPreferenceController.displayPreference(screen);
@@ -958,7 +959,10 @@ public class UserSettings extends SettingsPreferenceFragment
        final Preference addUserOnLockScreen = getPreferenceScreen().findPreference(
                mAddUserWhenLockedPreferenceController.getPreferenceKey());
        mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
        mMultiUserFooterPreferenceController.updateState(null /* preference */);

        final Preference multiUserFooterPrefence = getPreferenceScreen().findPreference(
                mMultiUserFooterPreferenceController.getPreferenceKey());
        mMultiUserFooterPreferenceController.updateState(multiUserFooterPrefence);
        mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);

        updateAddUser(context);
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ public class MultiUserFooterPreferenceControllerTest {
    @Before
    public void setUp() {
        mContext = RuntimeEnvironment.application;
        mController = new MultiUserFooterPreferenceController(mContext);
        mController = new MultiUserFooterPreferenceController(mContext, "footer");
    }

    @Test