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

Commit d267276b authored by Tetiana Meronyk's avatar Tetiana Meronyk Committed by Android (Google) Code Review
Browse files

Merge "Update dialog to edit user info" into udc-qpr-dev

parents fed13de9 25d5b6cf
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@
            android:id="@+id/dialog_with_icon_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:gravity="center"
            style="@style/TextAppearanceSmall"/>

+39 −53
Original line number Diff line number Diff line
@@ -14,26 +14,13 @@
     limitations under the License.
-->

<ScrollView
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/user_info_editor"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/user_info_scroll"
    android:padding="16dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:orientation="vertical">
        <TextView
            android:id="@+id/user_info_title"
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@style/EditUserDialogTitle"
            android:text="@string/user_info_settings_title"
            android:textDirection="locale"/>
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
@@ -71,5 +58,4 @@

</LinearLayout>

</ScrollView>
+3 −4
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ public class CreateUserDialogController {
    private static final String KEY_IS_ADMIN = "admin_status";
    private static final String KEY_ADD_USER_LONG_MESSAGE_DISPLAYED =
            "key_add_user_long_message_displayed";
    public static final int MESSAGE_PADDING = 10;

    @Retention(RetentionPolicy.SOURCE)
    @IntDef({EXIT_DIALOG, INITIAL_DIALOG, GRANT_ADMIN_DIALOG,
@@ -191,6 +192,7 @@ public class CreateUserDialogController {
            cancelCallback.run();
            clear();
        });
        mCustomDialogHelper.setMessagePadding(MESSAGE_PADDING);
        mUserCreationDialog.setCanceledOnTouchOutside(true);
        return mUserCreationDialog;
    }
@@ -212,7 +214,6 @@ public class CreateUserDialogController {
            }
            updateLayout();
        });
        return;
    }

    private void updateLayout() {
@@ -234,7 +235,6 @@ public class CreateUserDialogController {
                }
                Drawable icon = mActivity.getDrawable(R.drawable.ic_person_add);
                mCustomDialogHelper.setVisibility(mCustomDialogHelper.ICON, true)
                        .setVisibility(mCustomDialogHelper.TITLE, true)
                        .setVisibility(mCustomDialogHelper.MESSAGE, true)
                        .setIcon(icon)
                        .setButtonEnabled(true)
@@ -248,7 +248,6 @@ public class CreateUserDialogController {
                mGrantAdminView.setVisibility(View.VISIBLE);
                mCustomDialogHelper
                        .setVisibility(mCustomDialogHelper.ICON, true)
                        .setVisibility(mCustomDialogHelper.TITLE, true)
                        .setVisibility(mCustomDialogHelper.MESSAGE, true)
                        .setIcon(mActivity.getDrawable(R.drawable.ic_admin_panel_settings))
                        .setTitle(R.string.user_grant_admin_title)
@@ -262,8 +261,8 @@ public class CreateUserDialogController {
            case EDIT_NAME_DIALOG:
                mCustomDialogHelper
                        .setVisibility(mCustomDialogHelper.ICON, false)
                        .setVisibility(mCustomDialogHelper.TITLE, false)
                        .setVisibility(mCustomDialogHelper.MESSAGE, false)
                        .setTitle(R.string.user_info_settings_title)
                        .setNegativeButtonText(R.string.back)
                        .setPositiveButtonText(R.string.done);
                mEditUserInfoView.setVisibility(View.VISIBLE);
+21 −20
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settingslib.users;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
@@ -31,7 +30,6 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ScrollView;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -41,6 +39,7 @@ import com.android.settingslib.R;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.drawable.CircleFramedDrawable;
import com.android.settingslib.utils.CustomDialogHelper;

import java.io.File;
import java.util.function.BiConsumer;
@@ -128,7 +127,7 @@ public class EditUserInfoController {
     *                        codes to take photo/choose photo/crop photo.
     */
    public Dialog createDialog(Activity activity, ActivityStarter activityStarter,
            @Nullable Drawable oldUserIcon, String defaultUserName, String title,
            @Nullable Drawable oldUserIcon, String defaultUserName,
            BiConsumer<String, Drawable> successCallback, Runnable cancelCallback) {
        LayoutInflater inflater = LayoutInflater.from(activity);
        View content = inflater.inflate(R.layout.edit_user_info_dialog_content, null);
@@ -160,10 +159,8 @@ public class EditUserInfoController {
                        userPhotoView);
            }
        }
        ScrollView scrollView = content.findViewById(R.id.user_info_scroll);
        scrollView.setClipToOutline(true);
        mEditUserInfoDialog = buildDialog(activity, content, userNameView, oldUserIcon,
                defaultUserName, title, successCallback, cancelCallback);
                defaultUserName, successCallback, cancelCallback);

        // Make sure the IME is up.
        mEditUserInfoDialog.getWindow()
@@ -181,12 +178,13 @@ public class EditUserInfoController {
    }

    private Dialog buildDialog(Activity activity, View content, EditText userNameView,
            @Nullable Drawable oldUserIcon, String defaultUserName, String title,
            @Nullable Drawable oldUserIcon, String defaultUserName,
            BiConsumer<String, Drawable> successCallback, Runnable cancelCallback) {
        return new AlertDialog.Builder(activity)
                .setView(content)
                .setCancelable(true)
                .setPositiveButton(android.R.string.ok, (dialog, which) -> {
        CustomDialogHelper dialogHelper = new CustomDialogHelper(activity);
        dialogHelper
                .setTitle(R.string.user_info_settings_title)
                .addCustomView(content)
                .setPositiveButton(android.R.string.ok, view -> {
                    Drawable newUserIcon = mEditUserPhotoController != null
                            ? mEditUserPhotoController.getNewUserPhotoDrawable()
                            : null;
@@ -201,20 +199,23 @@ public class EditUserInfoController {
                    if (successCallback != null) {
                        successCallback.accept(userName, userIcon);
                    }
                    dialogHelper.getDialog().dismiss();
                })
                .setNegativeButton(android.R.string.cancel, (dialog, which) -> {
                .setBackButton(android.R.string.cancel, view -> {
                    clear();
                    if (cancelCallback != null) {
                        cancelCallback.run();
                    }
                })
                .setOnCancelListener(dialog -> {
                    dialogHelper.getDialog().dismiss();
                });
        dialogHelper.getDialog().setOnCancelListener(dialog -> {
            clear();
            if (cancelCallback != null) {
                cancelCallback.run();
            }
                })
                .create();
            dialogHelper.getDialog().dismiss();
        });
        return dialogHelper.getDialog();
    }

    @VisibleForTesting
+8 −0
Original line number Diff line number Diff line
@@ -192,6 +192,14 @@ public class CustomDialogHelper {
        return this;
    }

    /**
     * Sets message padding of the dialog.
     */
    public CustomDialogHelper setMessagePadding(int dp) {
        mDialogMessage.setPadding(dp, dp, dp, dp);
        return this;
    }

    /**
     * Sets icon of the dialog.
     */
Loading