From e389c3ccaeb4a9a333e7d58edda38a3512df9e57 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Wed, 16 Feb 2022 10:45:21 +0200 Subject: [PATCH] Create advanced options view --- .../circles/ui/view/AdvancedOptionsView.kt | 46 +++++++++++++++++++ .../res/drawable/ic_keyboard_arrow_down.xml | 5 ++ .../res/drawable/ic_keyboard_arrow_right.xml | 5 ++ .../main/res/layout/advanced_options_view.xml | 44 ++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt create mode 100644 app/src/main/res/drawable/ic_keyboard_arrow_down.xml create mode 100644 app/src/main/res/drawable/ic_keyboard_arrow_right.xml create mode 100644 app/src/main/res/layout/advanced_options_view.xml diff --git a/app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt b/app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt new file mode 100644 index 000000000..791bcf387 --- /dev/null +++ b/app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt @@ -0,0 +1,46 @@ +package com.futo.circles.ui.view + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.isVisible +import com.futo.circles.R +import com.futo.circles.databinding.AdvancedOptionsViewBinding +import com.futo.circles.extensions.gone +import com.futo.circles.extensions.visible + +class AdvancedOptionsView( + context: Context, + attrs: AttributeSet? = null, +) : ConstraintLayout(context, attrs) { + + private val binding = + AdvancedOptionsViewBinding.inflate(LayoutInflater.from(context), this) + + init { + binding.btnAdvanced.setOnClickListener { + toggleEncryptionPasswordVisibility() + } + } + + fun getText(): String? = + binding.tilPassword.editText?.text.toString().takeIf { it.isNotEmpty() } + + private fun toggleEncryptionPasswordVisibility() { + if (binding.tilPassword.isVisible) { + binding.tilPassword.gone() + binding.btnAdvanced.apply { + text = context.getString(R.string.advanced_options) + setIconResource(R.drawable.ic_keyboard_arrow_right) + } + } else { + binding.tilPassword.visible() + binding.btnAdvanced.apply { + text = context.getString(R.string.hide_advanced_options) + setIconResource(R.drawable.ic_keyboard_arrow_down) + } + } + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_down.xml b/app/src/main/res/drawable/ic_keyboard_arrow_down.xml new file mode 100644 index 000000000..1aeaa9985 --- /dev/null +++ b/app/src/main/res/drawable/ic_keyboard_arrow_down.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_right.xml b/app/src/main/res/drawable/ic_keyboard_arrow_right.xml new file mode 100644 index 000000000..1b7f06b4b --- /dev/null +++ b/app/src/main/res/drawable/ic_keyboard_arrow_right.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6 -1.41,-1.41z"/> +</vector> diff --git a/app/src/main/res/layout/advanced_options_view.xml b/app/src/main/res/layout/advanced_options_view.xml new file mode 100644 index 000000000..4b910a8d8 --- /dev/null +++ b/app/src/main/res/layout/advanced_options_view.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<merge 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" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <com.google.android.material.button.MaterialButton + android:id="@+id/btnAdvanced" + style="@style/Widget.MaterialComponents.Button.TextButton.Icon" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:minHeight="0dp" + android:paddingStart="0dp" + android:paddingEnd="40dp" + android:text="@string/advanced_options" + android:textAppearance="@style/footNote" + app:icon="@drawable/ic_keyboard_arrow_right" + tools:ignore="RtlSymmetry" /> + + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/tilPassword" + style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:hint="@string/encryption_password" + android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/btnAdvanced" + app:passwordToggleEnabled="true" + tools:visibility="visible"> + + <com.google.android.material.textfield.TextInputEditText + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:inputType="textPassword" + android:padding="8dp" /> + + </com.google.android.material.textfield.TextInputLayout> + + +</merge> \ No newline at end of file -- GitLab