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

Commit 8ba52d62 authored by Fyodor Kupolov's avatar Fyodor Kupolov
Browse files

Added lock screen settings section

Added lock screen settings section and moved "Add users when device is locked"
 from the overflow menu to the new section.

Bug: 25289622
Change-Id: I97c02acbacae3b6cde44180a23ea337853b0a551
parent 94949994
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -5130,8 +5130,12 @@

    <!-- User details remove user menu [CHAR LIMIT=20] -->
    <string name="user_remove_user_menu">Delete <xliff:g id="user_name">%1$s</xliff:g> from this device</string>
    <!-- User menu to allow creating new users from lockscreen [CHAR LIMIT=30] -->
    <string name="user_add_on_lockscreen_menu">Add users when device is locked</string>
    <!-- User lock screen settings header[CHAR LIMIT=40] -->
    <string name="user_lockscreen_settings">Lock screen settings</string>
    <!-- User settings item to allow creating new users from locks creen [CHAR LIMIT=40] -->
    <string name="user_add_on_lockscreen_menu">Add users</string>
    <!-- User settings user_add_on_lockscreen_menu item summary [CHAR LIMIT=40] -->
    <string name="user_add_on_lockscreen_menu_summary">when device is locked</string>
    <!-- User details new user name [CHAR LIMIT=30] -->
    <string name="user_new_user_name">New user</string>
    <!-- User details new restricted profile name [CHAR LIMIT=30] -->
+6 −0
Original line number Diff line number Diff line
@@ -28,4 +28,10 @@
            android:title="@string/user_add_user_or_profile_menu"
            android:icon="@drawable/ic_menu_add_dark" />

    <PreferenceCategory
            android:key="lock_screen_settings"
            android:title="@string/user_lockscreen_settings">
        <SwitchPreference android:key="add_users_when_locked"  android:title="@string/user_add_on_lockscreen_menu"
                            android:summary="@string/user_add_on_lockscreen_menu_summary" />
    </PreferenceCategory>
</PreferenceScreen>
+21 −30
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceGroup;
@@ -97,7 +98,6 @@ public class UserSettings extends SettingsPreferenceFragment
    private static final String KEY_ADD_USER = "user_add";

    private static final int MENU_REMOVE_USER = Menu.FIRST;
    private static final int MENU_ADD_ON_LOCKSCREEN = Menu.FIRST + 1;

    private static final int DIALOG_CONFIRM_REMOVE = 1;
    private static final int DIALOG_ADD_USER = 2;
@@ -126,8 +126,9 @@ public class UserSettings extends SettingsPreferenceFragment

    private PreferenceGroup mUserListCategory;
    private UserPreference mMePreference;
    private SelectableEditTextPreference mNicknamePreference;
    private Preference mAddUser;
    private PreferenceGroup mLockScreenSettings;
    private SwitchPreference mAddUserWhenLocked;
    private int mRemovingUserId = -1;
    private int mAddedUserId = 0;
    private boolean mAddingUser;
@@ -221,6 +222,8 @@ public class UserSettings extends SettingsPreferenceFragment
                mAddUser.setTitle(R.string.user_add_user_menu);
            }
        }
        mLockScreenSettings = (PreferenceGroup) findPreference("lock_screen_settings");
        mAddUserWhenLocked = (SwitchPreference) findPreference("add_users_when_locked");
        loadProfile();
        setHasOptionsMenu(true);
        IntentFilter filter = new IntentFilter(Intent.ACTION_USER_REMOVED);
@@ -272,13 +275,6 @@ public class UserSettings extends SettingsPreferenceFragment
                    getResources().getString(R.string.user_remove_user_menu, nickname));
            removeThisUser.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        }
        if (mUserCaps.mIsAdmin && !um.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) {
            MenuItem allowAddOnLockscreen = menu.add(0, MENU_ADD_ON_LOCKSCREEN, pos++,
                    R.string.user_add_on_lockscreen_menu);
            allowAddOnLockscreen.setCheckable(true);
            allowAddOnLockscreen.setChecked(Settings.Global.getInt(getContentResolver(),
                    Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1);
        }
        super.onCreateOptionsMenu(menu, inflater);
    }

@@ -288,12 +284,6 @@ public class UserSettings extends SettingsPreferenceFragment
        if (itemId == MENU_REMOVE_USER) {
            onRemoveUserClicked(UserHandle.myUserId());
            return true;
        } else if (itemId == MENU_ADD_ON_LOCKSCREEN) {
            final boolean isChecked = item.isChecked();
            Settings.Global.putInt(getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED,
                    isChecked ? 0 : 1);
            item.setChecked(!isChecked);
            return true;
        } else {
            return super.onOptionsItemSelected(item);
        }
@@ -809,6 +799,13 @@ public class UserSettings extends SettingsPreferenceFragment
                mAddUser.setSummary(null);
            }
        }
        if (mUserCaps.mIsAdmin && !mUserCaps.mDisallowAddUser) {
            mLockScreenSettings.setOrder(Preference.DEFAULT_ORDER);
            preferenceScreen.addPreference(mLockScreenSettings);
            mAddUserWhenLocked.setChecked(Settings.Global.getInt(getContentResolver(),
                    Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1);
            mAddUserWhenLocked.setOnPreferenceChangeListener(this);
        }
    }

    private int getMaxRealUsers() {
@@ -871,12 +868,6 @@ public class UserSettings extends SettingsPreferenceFragment
        }
    }

    private void setUserName(String name) {
        mUserManager.setUserName(UserHandle.myUserId(), name);
        mNicknamePreference.setSummary(name);
        getActivity().invalidateOptionsMenu();
    }

    @Override
    public boolean onPreferenceClick(Preference pref) {
        if (pref == mMePreference) {
@@ -974,14 +965,13 @@ public class UserSettings extends SettingsPreferenceFragment

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if (preference == mNicknamePreference) {
            String value = (String) newValue;
            if (preference == mNicknamePreference && value != null
                    && value.length() > 0) {
                setUserName(value);
            }
        if (preference == mAddUserWhenLocked) {
            Boolean value = (Boolean) newValue;
            Settings.Global.putInt(getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED,
                    value != null && value ? 1 : 0);
            return true;
        }

        return false;
    }

@@ -1007,6 +997,7 @@ public class UserSettings extends SettingsPreferenceFragment
        boolean mIsAdmin;
        boolean mIsGuest;
        boolean mCanAddGuest;
        boolean mDisallowAddUser;

        private UserCapabilities() {}

@@ -1021,11 +1012,11 @@ public class UserSettings extends SettingsPreferenceFragment
            final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
            caps.mIsGuest = myUserInfo.isGuest();
            caps.mIsAdmin = myUserInfo.isAdmin();
            final boolean disallowAddUser = userManager.hasUserRestriction(
            caps.mDisallowAddUser = userManager.hasUserRestriction(
                    UserManager.DISALLOW_ADD_USER);
            if (!caps.mIsAdmin || UserManager.getMaxSupportedUsers() < 2
                    || !UserManager.supportsMultipleUsers()
                    || disallowAddUser) {
                    || caps.mDisallowAddUser) {
                caps.mCanAddUser = false;
            }
            DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
@@ -1037,7 +1028,7 @@ public class UserSettings extends SettingsPreferenceFragment

            final boolean canAddUsersWhenLocked = caps.mIsAdmin || Settings.Global.getInt(
                    context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
            caps.mCanAddGuest = !caps.mIsGuest && !disallowAddUser && canAddUsersWhenLocked;
            caps.mCanAddGuest = !caps.mIsGuest && !caps.mDisallowAddUser && canAddUsersWhenLocked;
            return caps;
        }