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

Commit d4abdd27 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Reorganize users screen

As per product/ux feedback, move around and rename the users.
Settings button for some users.

Fix crash in limited user when clicking on the user:
Bug: 8494377

Change-Id: I346d12646d32608b01f2c2c2c866b6da51408618
parent 4e8cbb32
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -37,10 +37,20 @@
                android:background="#ff404040"
                />

            <EditText android:id="@+id/owner_info_nickname"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dip"
                android:gravity="top"
                android:hint="@string/user_nickname"
                android:inputType="textCapWords"
            />

            <CheckBox android:id="@+id/show_owner_info_on_lockscreen_checkbox"
                android:layout_width="match_parent"
                android:layout_height="64dip"
                android:gravity="center_vertical"
                android:layout_marginTop="8dip"
                android:text="@string/show_owner_info_on_lockscreen_label"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="?android:attr/textColorSecondary"
+8 −0
Original line number Diff line number Diff line
@@ -20,6 +20,13 @@
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    <View
        android:id="@+id/divider_manage"
        android:layout_width="2dip"
        android:layout_height="match_parent"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="5dip"
        android:background="@android:drawable/divider_horizontal_dark" />
    <ImageView
        android:id="@+id/manage_user"
        android:layout_width="wrap_content"
@@ -31,6 +38,7 @@
        android:layout_gravity="center"
        android:background="?android:attr/selectableItemBackground" />
    <View
        android:id="@+id/divider_delete"
        android:layout_width="2dip"
        android:layout_height="match_parent"
        android:layout_marginTop="5dip"
+8 −8
Original line number Diff line number Diff line
@@ -4324,20 +4324,20 @@
    <string name="user_settings_title">Users</string>
    <!-- User settings section title for details about you [CHAR LIMIT=25] -->
    <string name="user_you_section">You</string>
    <!-- User settings trusted user list section header [CHAR LIMIT=30] -->
    <string name="user_trusted_list_title">Trusted users</string>
    <!-- User settings limited user list section header [CHAR LIMIT=30] -->
    <!-- User settings trusted user list section header [CHAR LIMIT=40] -->
    <string name="user_trusted_list_title">Users</string>
    <!-- User settings limited user list section header [CHAR LIMIT=40] -->
    <string name="user_limited_list_title">Limited users</string>
    <!-- User settings add user menu [CHAR LIMIT=20] -->
    <!-- User settings add user menu [CHAR LIMIT=35] -->
    <string name="user_add_user_menu">Add user</string>
    <!-- User settings add restricted user label [CHAR LIMIT=20] -->
    <!-- User settings add restricted user label [CHAR LIMIT=35] -->
    <string name="user_add_restricted">Add limited user</string>
    <!-- User settings summary for add restricted user [CHAR LIMIT=100] -->
    <string name="user_add_restricted_summary">Limited users can only access the apps and content you select</string>
    <!-- User settings add user label [CHAR LIMIT=20] -->
    <string name="user_add_trusted">Add trusted user</string>
    <!-- User settings add user label [CHAR LIMIT=35] -->
    <string name="user_add_trusted">Add standard user</string>
    <!-- User settings summary for add trusted user [CHAR LIMIT=100] -->
    <string name="user_add_trusted_summary">Trusted users have no restrictions</string>
    <string name="user_add_trusted_summary">Standard users have their own apps and content</string>

    <!-- User summary to indicate that user is currently active in the background [CHAR LIMIT=100] -->
    <string name="user_summary_active">Active</string>
+8 −23
Original line number Diff line number Diff line
@@ -19,20 +19,15 @@
        android:title="@string/user_settings_title">

    <PreferenceCategory
            android:key="user_you"
            android:title="@string/user_you_section"/>
    <Preference
            android:key="user_me"
            android:summary="@string/user_owner" />
    <com.android.settings.SelectableEditTextPreference
            android:key="user_nickname"
            android:title="@string/user_nickname"
            android:icon="@drawable/empty_icon" />
            android:key="trusted_user_list"
            android:title="@string/user_trusted_list_title">
    </PreferenceCategory>

    <Preference
            android:key="user_owner_info"
            android:title="@string/owner_info_settings_title"
            android:icon="@drawable/empty_icon"
            android:fragment="com.android.settings.OwnerInfoSettings" />
            android:key="user_add_trusted"
            android:title="@string/user_add_trusted"
            android:summary="@string/user_add_trusted_summary"
            android:icon="@drawable/ic_menu_add" />

    <PreferenceCategory
            android:key="limited_user_list"
@@ -45,14 +40,4 @@
            android:summary="@string/user_add_restricted_summary"
            android:icon="@drawable/ic_menu_add" />

    <PreferenceCategory
            android:key="trusted_user_list"
            android:title="@string/user_trusted_list_title">
    </PreferenceCategory>

    <Preference
            android:key="user_add_trusted"
            android:title="@string/user_add_trusted"
            android:summary="@string/user_add_trusted_summary"
            android:icon="@drawable/ic_menu_add" />
</PreferenceScreen>
+41 −8
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ import android.app.Fragment;
import android.content.ContentResolver;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -31,11 +34,25 @@ import android.widget.CompoundButton.OnCheckedChangeListener;
import com.android.internal.widget.LockPatternUtils;

public class OwnerInfoSettings extends Fragment {

    public static final String EXTRA_SHOW_NICKNAME = "show_nickname";

    private View mView;
    private CheckBox mCheckbox;
    private EditText mEditText;
    private int mUserId;
    private LockPatternUtils mLockPatternUtils;
    private EditText mOwnerInfo;
    private EditText mNickname;
    private boolean mShowNickname;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle args = getArguments();
        if (args != null && args.containsKey(EXTRA_SHOW_NICKNAME)) {
            mShowNickname = args.getBoolean(EXTRA_SHOW_NICKNAME);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -52,9 +69,16 @@ public class OwnerInfoSettings extends Fragment {
        String info = mLockPatternUtils.getOwnerInfo(mUserId);
        boolean enabled = mLockPatternUtils.isOwnerInfoEnabled();
        mCheckbox = (CheckBox) mView.findViewById(R.id.show_owner_info_on_lockscreen_checkbox);
        mEditText = (EditText) mView.findViewById(R.id.owner_info_edit_text);
        mEditText.setText(info);
        mEditText.setEnabled(enabled);
        mOwnerInfo = (EditText) mView.findViewById(R.id.owner_info_edit_text);
        mOwnerInfo.setText(info);
        mOwnerInfo.setEnabled(enabled);
        mNickname = (EditText) mView.findViewById(R.id.owner_info_nickname);
        if (!mShowNickname) {
            mNickname.setVisibility(View.GONE);
        } else {
            mNickname.setText(UserManager.get(getActivity()).getUserName());
            mNickname.setSelected(true);
        }
        mCheckbox.setChecked(enabled);
        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
            mCheckbox.setText(R.string.show_user_info_on_lockscreen_label);
@@ -62,7 +86,7 @@ public class OwnerInfoSettings extends Fragment {
        mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                mLockPatternUtils.setOwnerInfoEnabled(isChecked);
                mEditText.setEnabled(isChecked); // disable text field if not enabled
                mOwnerInfo.setEnabled(isChecked); // disable text field if not enabled
            }
        });
    }
@@ -70,12 +94,21 @@ public class OwnerInfoSettings extends Fragment {
    @Override
    public void onPause() {
        super.onPause();
        saveToDb();
        saveChanges();
    }

    void saveToDb() {
        String info = mEditText.getText().toString();
    void saveChanges() {
        ContentResolver res = getActivity().getContentResolver();
        String info = mOwnerInfo.getText().toString();
        mLockPatternUtils.setOwnerInfo(info, mUserId);
        if (mShowNickname) {
            String oldName = UserManager.get(getActivity()).getUserName();
            CharSequence newName = mNickname.getText();
            if (!TextUtils.isEmpty(newName) && !newName.equals(oldName)) {
                UserManager.get(getActivity()).setUserName(UserHandle.myUserId(),
                        newName.toString());
            }
        }
    }

}
Loading