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