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
This commit is contained in:
@@ -40,4 +40,11 @@
|
|||||||
android:order="105"
|
android:order="105"
|
||||||
settings:allowDividerAbove="true"/>
|
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>
|
</PreferenceScreen>
|
||||||
|
@@ -21,29 +21,18 @@ import android.content.Context;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
|
||||||
import com.android.settingslib.widget.FooterPreferenceMixinCompat;
|
|
||||||
|
|
||||||
public class MultiUserFooterPreferenceController extends BasePreferenceController {
|
public class MultiUserFooterPreferenceController extends BasePreferenceController {
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final UserCapabilities mUserCaps;
|
final UserCapabilities mUserCaps;
|
||||||
|
|
||||||
private FooterPreferenceMixinCompat mFooterMixin;
|
public MultiUserFooterPreferenceController(Context context, String key) {
|
||||||
|
super(context, key);
|
||||||
public MultiUserFooterPreferenceController(Context context) {
|
|
||||||
super(context, "dummy_key");
|
|
||||||
mUserCaps = UserCapabilities.create(context);
|
mUserCaps = UserCapabilities.create(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MultiUserFooterPreferenceController setFooterMixin(
|
|
||||||
FooterPreferenceMixinCompat footerMixin) {
|
|
||||||
mFooterMixin = footerMixin;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return (mUserCaps.mEnabled && !mUserCaps.mUserSwitcherEnabled)
|
return (mUserCaps.mEnabled && !mUserCaps.mUserSwitcherEnabled)
|
||||||
@@ -54,8 +43,6 @@ public class MultiUserFooterPreferenceController extends BasePreferenceControlle
|
|||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
mUserCaps.updateAddUserCapabilities(mContext);
|
mUserCaps.updateAddUserCapabilities(mContext);
|
||||||
final FooterPreference pref = mFooterMixin.createFooterPreference();
|
preference.setVisible(isAvailable());
|
||||||
pref.setTitle(R.string.user_settings_footer_text);
|
|
||||||
pref.setVisible(isAvailable());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -111,6 +111,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
private static final String KEY_USER_GUEST = "user_guest";
|
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 = "user_add";
|
||||||
private static final String KEY_ADD_USER_WHEN_LOCKED = "user_settings_add_users_when_locked";
|
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;
|
private static final int MENU_REMOVE_USER = Menu.FIRST;
|
||||||
|
|
||||||
@@ -233,8 +234,8 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mAddUserWhenLockedPreferenceController = new AddUserWhenLockedPreferenceController(
|
mAddUserWhenLockedPreferenceController = new AddUserWhenLockedPreferenceController(
|
||||||
activity, KEY_ADD_USER_WHEN_LOCKED);
|
activity, KEY_ADD_USER_WHEN_LOCKED);
|
||||||
mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity)
|
mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity,
|
||||||
.setFooterMixin(mFooterPreferenceMixin);
|
KEY_MULTIUSER_FOOTER);
|
||||||
|
|
||||||
final PreferenceScreen screen = getPreferenceScreen();
|
final PreferenceScreen screen = getPreferenceScreen();
|
||||||
mAddUserWhenLockedPreferenceController.displayPreference(screen);
|
mAddUserWhenLockedPreferenceController.displayPreference(screen);
|
||||||
@@ -958,7 +959,10 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
final Preference addUserOnLockScreen = getPreferenceScreen().findPreference(
|
final Preference addUserOnLockScreen = getPreferenceScreen().findPreference(
|
||||||
mAddUserWhenLockedPreferenceController.getPreferenceKey());
|
mAddUserWhenLockedPreferenceController.getPreferenceKey());
|
||||||
mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
|
mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
|
||||||
mMultiUserFooterPreferenceController.updateState(null /* preference */);
|
|
||||||
|
final Preference multiUserFooterPrefence = getPreferenceScreen().findPreference(
|
||||||
|
mMultiUserFooterPreferenceController.getPreferenceKey());
|
||||||
|
mMultiUserFooterPreferenceController.updateState(multiUserFooterPrefence);
|
||||||
mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
|
mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
|
||||||
|
|
||||||
updateAddUser(context);
|
updateAddUser(context);
|
||||||
|
@@ -40,7 +40,7 @@ public class MultiUserFooterPreferenceControllerTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
mController = new MultiUserFooterPreferenceController(mContext);
|
mController = new MultiUserFooterPreferenceController(mContext, "footer");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user