Skip to content
Snippets Groups Projects
Commit efd1c551 authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Added privacy on TextInputDialogs

parent 25b7c4b1
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@ package io.xxlabs.messenger.ui.dialog.textinput
import android.content.DialogInterface
import android.os.Bundle
import android.text.InputType
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.method.LinkMovementMethod
......@@ -24,12 +25,16 @@ class TextInputDialog : XxBottomSheetDialog() {
private val dialogUI: TextInputDialogUI by lazy {
requireArguments().get(ARG_UI) as TextInputDialogUI
}
private val isSensitive: Boolean by lazy {
requireArguments().getBoolean(ARG_SENSITIVE)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = DataBindingUtil.inflate(
inflater,
R.layout.component_textinput_dialog,
......@@ -45,11 +50,20 @@ class TextInputDialog : XxBottomSheetDialog() {
}
initClickListeners()
setInputPrivacy()
binding.lifecycleOwner = viewLifecycleOwner
binding.ui = dialogUI
return binding.root
}
private fun setInputPrivacy() {
if (isSensitive) {
binding.edittextDialogTextInput.editText?.apply {
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD
}
}
}
private fun initClickListeners() {
binding.edittextDialogPositiveButton.setOnClickListener {
dismiss()
......@@ -98,11 +112,12 @@ class TextInputDialog : XxBottomSheetDialog() {
companion object Factory {
private const val ARG_UI: String = "ui"
fun newInstance(dialogUI: TextInputDialogUI): TextInputDialog =
private const val ARG_SENSITIVE: String = "sensitive"
fun newInstance(dialogUI: TextInputDialogUI, isSensitive: Boolean = false): TextInputDialog =
TextInputDialog().apply {
arguments = Bundle().apply {
putSerializable(ARG_UI, dialogUI)
putBoolean(ARG_SENSITIVE, isSensitive)
}
}
}
......
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="ui"
type="io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI" />
</data>
<androidx.cardview.widget.CardView
android:id="@+id/infoDialogRoot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="@dimen/bottom_sheet_dialog_corner_radius">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/edittext_dialog_title"
android:text="@{ui.title}"
android:layout_marginBottom="@dimen/registration_body_vertical_margin"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/edittext_dialog_body"
style="@style/dialog_title"
tools:text="@string/registration_username_info_title"/>
<TextView
android:id="@+id/edittext_dialog_body"
android:layout_marginBottom="@dimen/registration_body_vertical_margin"
app:layout_constraintTop_toBottomOf="@id/edittext_dialog_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/edittext_dialog_text_input"
tools:text="@string/registration_username_info_body"
style="@style/dialog_body" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edittext_dialog_text_input"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@{ui.inputHint}"
android:error="@{ui.inputError}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/edittext_dialog_body"
app:layout_constraintBottom_toTopOf="@+id/edittext_dialog_positive_button"
tools:hint="Enter text here"
style="@style/registration_text_input">
<com.google.android.material.textfield.TextInputEditText
style="@style/registration_text_input_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:maxLength="@{ui.maxInputLength}"
android:afterTextChanged="@{ui::onTextInput}"/>
</com.google.android.material.textfield.TextInputLayout>
<io.xxlabs.messenger.support.view.SingleClickButton
android:id="@+id/edittext_dialog_positive_button"
style="@style/dialog_button"
android:layout_marginTop="@dimen/registration_body_vertical_margin"
android:text="@{ui.positiveLabel}"
android:textColor="@color/neutral_white"
android:background="@drawable/bg_btn_white"
android:backgroundTint="@color/brand_default"
android:layout_marginStart="@dimen/registration_horizontal_margin"
android:enabled="@{ui.positiveButtonEnabled}"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/edittext_dialog_negative_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/edittext_dialog_text_input" />
<io.xxlabs.messenger.support.view.SingleClickButton
android:id="@+id/edittext_dialog_negative_button"
android:text="@{ui.negativeLabel}"
android:layout_marginTop="@dimen/registration_body_vertical_margin"
android:layout_marginEnd="@dimen/registration_horizontal_margin"
android:layout_marginStart="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edittext_dialog_positive_button"
app:layout_constraintEnd_toEndOf="parent"
style="@style/dialog_button" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</layout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment