From 04110960a70f606ceb403e49a7df95d43ad0ba10 Mon Sep 17 00:00:00 2001 From: Rahul Dubey Date: Tue, 31 Mar 2020 22:58:02 +0530 Subject: [PATCH 1/2] Add Edit Text option to Prompt Dialog. --- .../lib/colordialog/PromptDialog.java | 85 +++++++++++++++++- .../res/drawable/black_border_background.xml | 9 ++ .../src/main/res/drawable/sel_btn_edit.xml | 17 ++++ .../main/res/layout/layout_promptdialog.xml | 18 +++- ColorDialog/src/main/res/mipmap/icon_edit.png | Bin 0 -> 23072 bytes ColorDialog/src/main/res/values/colors.xml | 1 + .../sample/colordialog/MainActivity.java | 17 ++++ sample/src/main/res/layout/activity_main.xml | 6 ++ sample/src/main/res/values/strings.xml | 2 + 9 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 ColorDialog/src/main/res/drawable/black_border_background.xml create mode 100644 ColorDialog/src/main/res/drawable/sel_btn_edit.xml create mode 100644 ColorDialog/src/main/res/mipmap/icon_edit.png diff --git a/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java b/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java index 52b1a73..a692ef6 100644 --- a/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java +++ b/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java @@ -11,11 +11,13 @@ import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RoundRectShape; import android.os.Bundle; +import android.text.InputType; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationSet; +import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -37,16 +39,19 @@ public class PromptDialog extends Dialog { public static final int DIALOG_TYPE_WRONG = 2; public static final int DIALOG_TYPE_SUCCESS = 3; public static final int DIALOG_TYPE_WARNING = 4; + public static final int DIALOG_TYPE_EDIT = 5; public static final int DIALOG_TYPE_DEFAULT = DIALOG_TYPE_INFO; private AnimationSet mAnimIn, mAnimOut; private View mDialogView; private TextView mTitleTv, mContentTv, mPositiveBtn; + + private EditText editText; private OnPositiveListener mOnPositiveListener; private int mDialogType; - private boolean mIsShowAnim; - private CharSequence mTitle, mContent, mBtnText; + private boolean mIsShowAnim, mIsEditTextSecure; + private CharSequence mTitle, mContent, mBtnText, mEditTextContent, mEditTextHint; public PromptDialog(Context context) { this(context, 0); @@ -82,6 +87,7 @@ private void initView() { mTitleTv = (TextView) contentView.findViewById(R.id.tvTitle); mContentTv = (TextView) contentView.findViewById(R.id.tvContent); mPositiveBtn = (TextView) contentView.findViewById(R.id.btnPositive); + editText = (EditText) contentView.findViewById(R.id.editText); View llBtnGroup = findViewById(R.id.llBtnGroup); ImageView logoIv = (ImageView) contentView.findViewById(R.id.logoIv); @@ -109,6 +115,26 @@ private void initView() { mTitleTv.setText(mTitle); mContentTv.setText(mContent); mPositiveBtn.setText(mBtnText); + + configureEditText(); + } + + private void configureEditText() + { + if(mDialogType == DIALOG_TYPE_EDIT) + { + editText.setVisibility(View.VISIBLE); + editText.setHint(mEditTextHint); + editText.setText(mEditTextContent); + if(mIsEditTextSecure) + { + editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT); + } + } + else + { + editText.setVisibility(View.GONE); + } } private void resizeDialog() { @@ -161,6 +187,9 @@ private int getLogoResId(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.mipmap.icon_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.mipmap.icon_edit; + } return R.mipmap.ic_info; } @@ -183,6 +212,10 @@ private int getColorResId(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.color.color_type_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.color.color_type_edit; + } + return R.color.color_type_info; } @@ -205,6 +238,9 @@ private int getSelBtn(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.drawable.sel_btn_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.drawable.sel_btn_edit; + } return R.drawable.sel_btn; } @@ -375,4 +411,49 @@ public interface OnPositiveListener { void onClick(PromptDialog dialog); } + public EditText getEditText() + { + return editText; + } + + public PromptDialog setEditTextContent(CharSequence editTextContent) + { + mEditTextContent = editTextContent; + return this; + } + + public PromptDialog setEditTextContent(int resId) + { + mEditTextContent = getContext().getString(resId); + return this; + } + + public CharSequence getEditTextContent() + { + return mEditTextContent; + } + + public CharSequence getEditTextHint() + { + return mEditTextHint; + } + + public PromptDialog setEditTextHint(CharSequence editTextHint) + { + mEditTextHint = editTextHint; + return this; + } + + public PromptDialog setEditTextHint(int resId) + { + mEditTextHint = getContext().getString(resId); + return this; + } + + public PromptDialog setIsEditTextContentSecure(Boolean isSecure) + { + mIsEditTextSecure = isSecure; + return this; + } + } diff --git a/ColorDialog/src/main/res/drawable/black_border_background.xml b/ColorDialog/src/main/res/drawable/black_border_background.xml new file mode 100644 index 0000000..0473999 --- /dev/null +++ b/ColorDialog/src/main/res/drawable/black_border_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ColorDialog/src/main/res/drawable/sel_btn_edit.xml b/ColorDialog/src/main/res/drawable/sel_btn_edit.xml new file mode 100644 index 0000000..dcc0255 --- /dev/null +++ b/ColorDialog/src/main/res/drawable/sel_btn_edit.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ColorDialog/src/main/res/layout/layout_promptdialog.xml b/ColorDialog/src/main/res/layout/layout_promptdialog.xml index 784c661..ad5043c 100755 --- a/ColorDialog/src/main/res/layout/layout_promptdialog.xml +++ b/ColorDialog/src/main/res/layout/layout_promptdialog.xml @@ -64,7 +64,23 @@ android:paddingRight="10dp" android:paddingTop="5dp" android:textColor="@color/color_dialog_content_prompt" - android:visibility="visible" /> + android:visibility="visible" + /> + + diff --git a/ColorDialog/src/main/res/mipmap/icon_edit.png b/ColorDialog/src/main/res/mipmap/icon_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebce453afd5cf04a1dd175e221989f82db26f71 GIT binary patch literal 23072 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 #e8bd4b #90b06e + #222da1 diff --git a/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java b/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java index 38b1e9d..f1fa746 100644 --- a/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java +++ b/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java @@ -25,6 +25,23 @@ public void showPromptDialog(View view) { showPromptDlg(); } + public void showPromptDialogWithEditText(View view) + { + new PromptDialog(this) + .setDialogType(PromptDialog.DIALOG_TYPE_EDIT) + .setAnimationEnable(true) + .setTitleText("EDIT") + .setContentText("Sub Title") + .setEditTextHint("Enter Text") + .setPositiveListener(getString(R.string.edit), new PromptDialog.OnPositiveListener() { + @Override + public void onClick(PromptDialog dialog) { + dialog.dismiss(); + } + }).show(); + } + + private void showPromptDlg() { new PromptDialog(this) .setDialogType(PromptDialog.DIALOG_TYPE_SUCCESS) diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 7f10e94..e6c9455 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -11,6 +11,12 @@ android:layout_height="wrap_content" android:text="@string/prompt_dialog"/> +