diff options
| author | ashoksinghal <ashoksinghal1990@gmail.com> | 2020-10-17 22:09:34 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-17 22:09:34 +0530 |
| commit | 3981638e0f8d714567f6a3c3a25dc54599263af2 (patch) | |
| tree | 4148e109a1c0b7eb75b24e24be120a2a7edf8d36 /app/src/main/java/com/zeapo/pwdstore/ui | |
| parent | 6c1e41ba1050c92f4b615f7e857e0d085120a242 (diff) | |
| download | HardenedPass-3981638e0f8d714567f6a3c3a25dc54599263af2.tar.gz HardenedPass-3981638e0f8d714567f6a3c3a25dc54599263af2.zip | |
Use BottomSheet in place of Snackbar for longer messages (#1157)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/ui')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/ui/dialogs/BasicBottomSheet.kt | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/BasicBottomSheet.kt b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/BasicBottomSheet.kt index 5f79baf8..6f028009 100644 --- a/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/BasicBottomSheet.kt +++ b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/BasicBottomSheet.kt @@ -28,8 +28,10 @@ import com.zeapo.pwdstore.utils.viewBinding * API through [Builder] to create a similar UI, just at the bottom of the screen. */ class BasicBottomSheet private constructor( - val title: String, + val title: String?, val message: String, + val positiveButtonLabel: String?, + val negativeButtonLabel: String?, val positiveButtonClickListener: View.OnClickListener?, val negativeButtonClickListener: View.OnClickListener?, ) : BottomSheetDialogFragment() { @@ -65,9 +67,15 @@ class BasicBottomSheet private constructor( peekHeight = 0 addBottomSheetCallback(bottomSheetCallback) } - binding.bottomSheetTitle.text = title + if (!title.isNullOrEmpty()) { + binding.bottomSheetTitle.isVisible = true + binding.bottomSheetTitle.text = title + } binding.bottomSheetMessage.text = message if (positiveButtonClickListener != null) { + positiveButtonLabel?.let { buttonLbl -> + binding.bottomSheetOkButton.text = buttonLbl + } binding.bottomSheetOkButton.isVisible = true binding.bottomSheetOkButton.setOnClickListener { positiveButtonClickListener.onClick(it) @@ -76,6 +84,9 @@ class BasicBottomSheet private constructor( } if (negativeButtonClickListener != null) { binding.bottomSheetCancelButton.isVisible = true + negativeButtonLabel?.let { buttonLbl -> + binding.bottomSheetCancelButton.text = buttonLbl + } binding.bottomSheetCancelButton.setOnClickListener { negativeButtonClickListener.onClick(it) dismiss() @@ -98,6 +109,8 @@ class BasicBottomSheet private constructor( private var title: String? = null private var message: String? = null + private var positiveButtonLabel: String? = null + private var negativeButtonLabel: String? = null private var positiveButtonClickListener: View.OnClickListener? = null private var negativeButtonClickListener: View.OnClickListener? = null @@ -121,22 +134,25 @@ class BasicBottomSheet private constructor( return this } - fun setPositiveButtonClickListener(listener: View.OnClickListener): Builder { + fun setPositiveButtonClickListener(buttonLabel: String? = null, listener: View.OnClickListener): Builder { this.positiveButtonClickListener = listener + this.positiveButtonLabel = buttonLabel return this } - fun setNegativeButtonClickListener(listener: View.OnClickListener): Builder { + fun setNegativeButtonClickListener(buttonLabel: String? = null, listener: View.OnClickListener): Builder { this.negativeButtonClickListener = listener + this.negativeButtonLabel = buttonLabel return this } fun build(): BasicBottomSheet { - require(title != null) { "Title needs to be set" } require(message != null) { "Message needs to be set" } return BasicBottomSheet( - title!!, + title, message!!, + positiveButtonLabel, + negativeButtonLabel, positiveButtonClickListener, negativeButtonClickListener ) |
