diff options
author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-05-10 14:25:59 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-10 14:25:59 +0530 |
commit | 94dc92f8d70870b57a7f8c4fe8adef152c1211ce (patch) | |
tree | 4139557d2cc1311daf807124cde16a17058143fb | |
parent | 9a77f6bbea95034f6dd6cdb2e0351a90dc3906f4 (diff) |
Miscellaneous UI tweaking (#771)
* Remove dangling UI element and relayout authentication modes
* Drop unnecessary actionBarPopupTheme declaration
* Improve ssh keygen UI
* Commonize button styling
* Tweak save button in server config
* Tweak generate button in ssh keygen
* Commonize OutlinedButton style
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/sshkeygen/SshKeyGenFragment.kt | 17 | ||||
-rw-r--r-- | app/src/main/res/layout/activity_git_clone.xml | 38 | ||||
-rw-r--r-- | app/src/main/res/layout/activity_git_config.xml | 9 | ||||
-rw-r--r-- | app/src/main/res/layout/decrypt_layout.xml | 5 | ||||
-rw-r--r-- | app/src/main/res/layout/encrypt_layout.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/layout/fragment_autofill.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/layout/fragment_ssh_keygen.xml | 35 | ||||
-rw-r--r-- | app/src/main/res/layout/fragment_to_clone_or_not.xml | 12 | ||||
-rw-r--r-- | app/src/main/res/values/styles.xml | 16 |
9 files changed, 38 insertions, 100 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/sshkeygen/SshKeyGenFragment.kt b/app/src/main/java/com/zeapo/pwdstore/sshkeygen/SshKeyGenFragment.kt index da7099ad..e16af70a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/sshkeygen/SshKeyGenFragment.kt +++ b/app/src/main/java/com/zeapo/pwdstore/sshkeygen/SshKeyGenFragment.kt @@ -5,7 +5,6 @@ package com.zeapo.pwdstore.sshkeygen import android.os.Bundle -import android.text.InputType import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -47,19 +46,6 @@ class SshKeyGenFragment : Fragment() { generate.setOnClickListener { lifecycleScope.launch { generate(passphrase.text.toString(), comment.text.toString()) } } - showPassphrase.setOnCheckedChangeListener { _, isChecked: Boolean -> - val selection = passphrase.selectionEnd - if (isChecked) { - passphrase.inputType = ( - InputType.TYPE_CLASS_TEXT - or InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) - } else { - passphrase.inputType = ( - InputType.TYPE_CLASS_TEXT - or InputType.TYPE_TEXT_VARIATION_PASSWORD) - } - passphrase.setSelection(selection) - } keyLengthGroup.check(R.id.key_length_4096) keyLengthGroup.addOnButtonCheckedListener { _, checkedId, isChecked -> if (isChecked) { @@ -82,10 +68,9 @@ class SshKeyGenFragment : Fragment() { // ShowSshKeyFragment which displays the public key. private suspend fun generate(passphrase: String, comment: String) { binding.generate.text = getString(R.string.ssh_key_gen_generating_progress) - val jsch = JSch() val e = try { withContext(Dispatchers.IO) { - val kp = KeyPair.genKeyPair(jsch, KeyPair.RSA, keyLength) + val kp = KeyPair.genKeyPair(JSch(), KeyPair.RSA, keyLength) var file = File(requireActivity().filesDir, ".ssh_key") var out = FileOutputStream(file, false) if (passphrase.isNotEmpty()) { diff --git a/app/src/main/res/layout/activity_git_clone.xml b/app/src/main/res/layout/activity_git_clone.xml index e5d41059..d4113cd6 100644 --- a/app/src/main/res/layout/activity_git_clone.xml +++ b/app/src/main/res/layout/activity_git_clone.xml @@ -33,15 +33,6 @@ app:layout_constraintTop_toBottomOf="@id/server_label" app:layout_constraintStart_toStartOf="parent" /> - <Spinner - android:id="@+id/clone_protocol" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="8dp" - android:visibility="gone" - app:layout_constraintTop_toBottomOf="@id/server_label" - app:layout_constraintStart_toEndOf="@id/label_server_protocol" /> - <com.google.android.material.button.MaterialButtonToggleGroup style="@style/TextAppearance.MaterialComponents.Headline1" android:id="@+id/clone_protocol_group" @@ -54,26 +45,18 @@ app:singleSelection="true"> <com.google.android.material.button.MaterialButton - style="?attr/materialButtonOutlinedStyle" android:id="@+id/clone_protocol_ssh" + style="?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/clone_protocol_ssh" - android:textColor="?android:attr/textColorPrimary" - app:rippleColor="@color/ripple_color" - app:strokeColor="?attr/colorSecondary" - app:backgroundTint="@color/toggle_button_selector" /> + android:text="@string/clone_protocol_ssh" /> <com.google.android.material.button.MaterialButton - style="?attr/materialButtonOutlinedStyle" android:id="@+id/clone_protocol_https" + style="?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/clone_protocol_https" - android:textColor="?android:attr/textColorPrimary" - app:rippleColor="@color/ripple_color" - app:strokeColor="?attr/colorSecondary" - app:backgroundTint="@color/toggle_button_selector" /> + android:text="@string/clone_protocol_https" /> </com.google.android.material.button.MaterialButtonToggleGroup> <com.google.android.material.textfield.TextInputLayout @@ -160,7 +143,7 @@ android:id="@+id/connection_mode_group" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="vertical" + android:orientation="horizontal" app:layout_constraintTop_toBottomOf="@id/label_connection_mode" app:layout_constraintStart_toStartOf="parent"> @@ -168,38 +151,39 @@ android:id="@+id/connection_mode_ssh_key" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:text="@string/connection_mode_ssh_key" /> <RadioButton android:id="@+id/connection_mode_password" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:text="@string/connection_mode_basic_authentication" /> <RadioButton android:id="@+id/connection_mode_open_keychain" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:text="@string/connection_mode_openkeychain" /> <RadioButton android:id="@+id/connection_mode_none" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="4dp" android:text="@string/connection_mode_none" /> </RadioGroup> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/save_button" android:text="@string/crypto_save" - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="?android:attr/windowBackground" android:layout_marginTop="8dp" - app:backgroundTint="?attr/colorSecondary" app:layout_constraintTop_toBottomOf="@id/connection_mode_group" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> </ScrollView> diff --git a/app/src/main/res/layout/activity_git_config.xml b/app/src/main/res/layout/activity_git_config.xml index 0ea45c55..e9d769b8 100644 --- a/app/src/main/res/layout/activity_git_config.xml +++ b/app/src/main/res/layout/activity_git_config.xml @@ -45,14 +45,11 @@ </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/save_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="8dp" android:text="@string/crypto_save" - android:textColor="?android:attr/windowBackground" - app:backgroundTint="?attr/colorSecondary" app:layout_constraintTop_toBottomOf="@id/email_input_layout" app:layout_constraintEnd_toEndOf="parent"/> @@ -88,25 +85,19 @@ tools:text="HASH"/> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/git_abort_rebase" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:text="@string/abort_rebase" - android:textColor="?android:attr/windowBackground" - app:backgroundTint="?attr/colorSecondary" app:layout_constraintTop_toBottomOf="@id/commit_hash_label" /> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/git_reset_to_remote" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:text="@string/reset_to_remote" - android:textColor="?android:attr/windowBackground" - app:backgroundTint="?attr/colorSecondary" app:layout_constraintTop_toBottomOf="@id/git_abort_rebase" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/layout/decrypt_layout.xml b/app/src/main/res/layout/decrypt_layout.xml index 8f8198a4..71566178 100644 --- a/app/src/main/res/layout/decrypt_layout.xml +++ b/app/src/main/res/layout/decrypt_layout.xml @@ -95,15 +95,12 @@ android:typeface="monospace" /> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/crypto_password_toggle_show" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="?android:attr/windowBackground" android:text="@string/show_password" android:layout_marginTop="8dp" - app:layout_constraintTop_toBottomOf="@id/crypto_password_show_label" - app:backgroundTint="?attr/colorSecondary"/> + app:layout_constraintTop_toBottomOf="@id/crypto_password_show_label" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/layout/encrypt_layout.xml b/app/src/main/res/layout/encrypt_layout.xml index 54b1c7c9..3b0b8068 100644 --- a/app/src/main/res/layout/encrypt_layout.xml +++ b/app/src/main/res/layout/encrypt_layout.xml @@ -53,14 +53,11 @@ </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/generate_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="8dp" android:text="@string/pwd_generate_button" - android:textColor="?android:attr/windowBackground" - app:backgroundTint="?attr/colorSecondary" app:layout_constraintTop_toBottomOf="@id/password_input_layout" app:layout_constraintEnd_toEndOf="parent"/> diff --git a/app/src/main/res/layout/fragment_autofill.xml b/app/src/main/res/layout/fragment_autofill.xml index 29d0f517..21a9d95a 100644 --- a/app/src/main/res/layout/fragment_autofill.xml +++ b/app/src/main/res/layout/fragment_autofill.xml @@ -59,14 +59,11 @@ android:layout_weight="1"/> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:id="@+id/matchButton" android:layout_gravity="center_horizontal" - android:textColor="?android:attr/windowBackground" - app:backgroundTint="?attr/colorSecondary" tools:ignore="HardcodedText" /> <RadioButton diff --git a/app/src/main/res/layout/fragment_ssh_keygen.xml b/app/src/main/res/layout/fragment_ssh_keygen.xml index 90cf4df0..803debc4 100644 --- a/app/src/main/res/layout/fragment_ssh_keygen.xml +++ b/app/src/main/res/layout/fragment_ssh_keygen.xml @@ -25,32 +25,25 @@ app:selectionRequired="true" app:singleSelection="true"> <com.google.android.material.button.MaterialButton - style="?attr/materialButtonOutlinedStyle" android:id="@+id/key_length_2048" + style="?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/key_length_2048" - android:textColor="?android:attr/textColorPrimary" - app:rippleColor="@color/ripple_color" - app:strokeColor="?attr/colorSecondary" - app:backgroundTint="@color/toggle_button_selector" /> + android:text="@string/key_length_2048" /> <com.google.android.material.button.MaterialButton - style="?attr/materialButtonOutlinedStyle" android:id="@+id/key_length_4096" + style="?attr/materialButtonOutlinedStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/key_length_4096" - android:textColor="?android:attr/textColorPrimary" - app:rippleColor="@color/ripple_color" - app:strokeColor="?attr/colorSecondary" - app:backgroundTint="@color/toggle_button_selector" /> + android:text="@string/key_length_4096" /> </com.google.android.material.button.MaterialButtonToggleGroup> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:hint="@string/ssh_keygen_passphrase"> + android:hint="@string/ssh_keygen_passphrase" + app:endIconMode="password_toggle"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/passphrase" @@ -61,14 +54,6 @@ android:inputType="textPassword" /> </com.google.android.material.textfield.TextInputLayout> - <com.google.android.material.checkbox.MaterialCheckBox - android:id="@+id/show_passphrase" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:checked="false" - android:text="@string/ssh_keygen_show_passphrase" /> - <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" @@ -84,12 +69,10 @@ <com.google.android.material.button.MaterialButton android:id="@+id/generate" - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_gravity="end" android:layout_marginTop="8dp" - android:text="@string/ssh_keygen_generate" - android:textColor="@android:color/white" - app:backgroundTint="?attr/colorSecondary" /> - + android:text="@string/ssh_keygen_generate" /> </LinearLayout> </ScrollView> diff --git a/app/src/main/res/layout/fragment_to_clone_or_not.xml b/app/src/main/res/layout/fragment_to_clone_or_not.xml index 045d8d1e..5aa94e8a 100644 --- a/app/src/main/res/layout/fragment_to_clone_or_not.xml +++ b/app/src/main/res/layout/fragment_to_clone_or_not.xml @@ -42,37 +42,27 @@ android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginEnd="@dimen/activity_horizontal_margin" - android:textAllCaps="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:id="@+id/use_local_directory" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="createNewRepository" - android:textColor="@android:color/white" android:text="@string/initialize" android:textSize="12sp" android:layout_marginTop="48dp" - app:backgroundTint="?attr/colorSecondary" - app:rippleColor="?attr/colorControlHighlight" app:layout_constraintTop_toBottomOf="@id/app_name" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent" - tools:ignore="UnusedAttribute" /> + app:layout_constraintEnd_toEndOf="parent" /> <com.google.android.material.button.MaterialButton - style="@style/Widget.MaterialComponents.Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="cloneExistingRepository" - android:textColor="@android:color/white" android:text="@string/clone" android:textSize="12sp" - app:backgroundTint="?attr/colorSecondary" - app:rippleColor="?attr/colorControlHighlight" app:layout_constraintTop_toBottomOf="@id/use_local_directory" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 7058dcff..1f1bb005 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -19,11 +19,25 @@ <item name="actionModeStyle">@style/ActionMode</item> <item name="alertDialogTheme">@style/AppTheme.Dialog</item> <item name="materialAlertDialogTheme">@style/AppTheme.Dialog</item> - <item name="actionBarPopupTheme">@style/ThemeOverlay.MaterialComponents.ActionBar</item> + <item name="materialButtonStyle">@style/AppTheme.MaterialButton</item> + <item name="materialButtonOutlinedStyle">@style/AppTheme.OutlinedButton</item> <item name="textInputStyle">@style/TextInputLayoutBase</item> <item name="bottomSheetDialogTheme">@style/BottomSheetDialogTheme</item> </style> + <style name="AppTheme.MaterialButton" parent="Widget.MaterialComponents.Button"> + <item name="android:textColor">@android:color/white</item> + <item name="backgroundTint">?attr/colorSecondary</item> + <item name="rippleColor">?attr/colorControlHighlight</item> + </style> + + <style name="AppTheme.OutlinedButton" parent="Widget.MaterialComponents.Button.OutlinedButton"> + <item name="android:textColor">?android:attr/textColorPrimary</item> + <item name="rippleColor">@color/ripple_color</item> + <item name="strokeColor">?attr/colorSecondary</item> + <item name="backgroundTint">@color/toggle_button_selector</item> + </style> + <style name="AppTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog.Alert"> <item name="colorPrimary">@color/secondary_color</item> <item name="colorSecondary">@color/secondary_color</item> |