aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/ui
diff options
context:
space:
mode:
authorashoksinghal <ashoksinghal1990@gmail.com>2020-10-17 22:09:34 +0530
committerGitHub <noreply@github.com>2020-10-17 22:09:34 +0530
commit3981638e0f8d714567f6a3c3a25dc54599263af2 (patch)
tree4148e109a1c0b7eb75b24e24be120a2a7edf8d36 /app/src/main/java/com/zeapo/pwdstore/ui
parent6c1e41ba1050c92f4b615f7e857e0d085120a242 (diff)
downloadHardenedPass-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.kt28
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
)