Skip to content

Commit 3f61473

Browse files
committed
qp:re 3.0.0: fixes 2
1 parent 7c3d631 commit 3f61473

File tree

23 files changed

+167
-138
lines changed

23 files changed

+167
-138
lines changed

.idea/misc.xml

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/mikhailgrigorev/quickpassword/ui/auth/auth/AuthActivity.kt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.mikhailgrigorev.quickpassword.ui.auth.auth
22

3-
import android.content.Context
43
import android.content.Intent
5-
import android.content.pm.PackageManager
64
import android.os.Bundle
75
import android.view.View
86
import android.view.animation.AccelerateDecelerateInterpolator
97
import androidx.appcompat.app.AlertDialog
108
import androidx.appcompat.app.AppCompatActivity
9+
import androidx.biometric.BiometricManager
1110
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
1211
import com.google.firebase.auth.UserProfileChangeRequest
1312
import com.mikhailgrigorev.quickpassword.R
@@ -54,12 +53,15 @@ class AuthActivity : AppCompatActivity() {
5453
}
5554

5655
private fun initListeners() {
56+
57+
binding.tvAvatarSymbol.text = "🦊"
58+
5759
binding.loginFab.setOnClickListener {
5860
binding.inputLoginId.error = null
5961
binding.inputPasswordId.error = null
6062
binding.inputPassword2Id.error = null
6163
binding.tilUserLogin.error = null
62-
if(binding.inputLoginIdField.text.toString() != "") {
64+
if (binding.inputLoginIdField.text.toString() != "") {
6365
if (binding.signUpChip.isChecked) {
6466
if (validate(binding.inputPasswordIdField.text.toString())) {
6567
if (
@@ -194,7 +196,7 @@ class AuthActivity : AppCompatActivity() {
194196
}
195197

196198
private fun goHome() {
197-
if (isAvailable(this)) {
199+
if (isAvailable()) {
198200
val builder = AlertDialog.Builder(this, R.style.AlertDialogCustom)
199201
builder.setTitle(getString(R.string.bio_usage))
200202
builder.setMessage(getString(R.string.fingerUnlock))
@@ -229,7 +231,12 @@ class AuthActivity : AppCompatActivity() {
229231
}
230232
}
231233

232-
private fun isAvailable(context: Context): Boolean {
233-
return context.packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)
234+
private fun isAvailable(): Boolean {
235+
val biometricManager = BiometricManager.from(this)
236+
return biometricManager.canAuthenticate(
237+
BiometricManager.Authenticators.BIOMETRIC_WEAK
238+
or
239+
BiometricManager.Authenticators.DEVICE_CREDENTIAL
240+
) == BiometricManager.BIOMETRIC_SUCCESS
234241
}
235242
}

app/src/main/java/com/mikhailgrigorev/quickpassword/ui/password/PasswordFragment.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ class PasswordFragment: Fragment() {
192192
if (!Utils.useAnalyze()) {
193193
binding.cvQualityCard.visibility = View.GONE
194194
binding.cvAdditionalInfoCard.visibility = View.GONE
195-
binding.cardView.visibility = View.GONE
195+
binding.cvAllPasswords.visibility = View.GONE
196196
}
197197
}
198198

@@ -315,8 +315,7 @@ class PasswordFragment: Fragment() {
315315
binding.fabNewPassword.animate().scaleX(0F).scaleY(0F).setDuration(0).start()
316316
binding.cvWarningRulesCard.animate().alpha(1F).setDuration(0).start()
317317
binding.cvBackupReminderCard.animate().alpha(1F).setDuration(0).start()
318-
binding.cardView.animate().alpha(1F).setDuration(0).start()
319-
binding.cardView.animate().alpha(1F).setDuration(0).start()
318+
binding.cvAllPasswords.animate().alpha(1F).setDuration(0).start()
320319
}
321320

322321
binding.etSearchPassword.clearFocus()
@@ -343,7 +342,8 @@ class PasswordFragment: Fragment() {
343342
if (slideOffset <= 0) {
344343
binding.cvWarningRulesCard.animate().alpha(abs(slideOffset) + 0.5F)
345344
.setDuration(0).start()
346-
binding.cardView.animate().alpha(abs(slideOffset) + 0.5F).setDuration(0).start()
345+
binding.cvAllPasswords.animate().alpha(abs(slideOffset) + 0.5F).setDuration(0)
346+
.start()
347347
binding.cvAdditionalInfoCard.animate().alpha(abs(slideOffset) + 0.5F)
348348
.setDuration(0).start()
349349
binding.cvPasswordGenerateButton.animate().alpha(abs(slideOffset) + 0.5F)
@@ -724,7 +724,11 @@ class PasswordFragment: Fragment() {
724724
}
725725

726726
private fun showNoPasswordsInterface() {
727-
binding.cardView.visibility = View.GONE
727+
binding.fabNewPassword.animate().scaleX(0F).scaleY(0F).setDuration(0).start()
728+
binding.cvWarningRulesCard.animate().alpha(1F).setDuration(0).start()
729+
binding.cvBackupReminderCard.animate().alpha(1F).setDuration(0).start()
730+
binding.cvPasswordGenerateButton.animate().alpha(1F).setDuration(0).start()
731+
binding.cvAllPasswords.visibility = View.GONE
728732
binding.cvAdditionalInfoCard.visibility = View.GONE
729733
binding.cvNoPasswordsCard.visibility = View.VISIBLE
730734
binding.fabAddNewPass.visibility = View.VISIBLE
@@ -733,10 +737,11 @@ class PasswordFragment: Fragment() {
733737
val bottomSheetBehavior = BottomSheetBehavior.from(binding.llAllPasswords)
734738
bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN
735739

740+
736741
}
737742

738743
private fun showPasswordsInterface() {
739-
binding.cardView.visibility = View.VISIBLE
744+
binding.cvAllPasswords.visibility = View.VISIBLE
740745
binding.cvAdditionalInfoCard.visibility = View.VISIBLE
741746
binding.cvNoPasswordsCard.visibility = View.GONE
742747
binding.ivSmilePasswordCreation.visibility = View.VISIBLE

app/src/main/java/com/mikhailgrigorev/quickpassword/ui/password_card/create/PasswordCreateActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ class PasswordCreateActivity : MyBaseActivity() {
207207
materialAlertDialogBuilder.setView(customAlertDialogView)
208208
materialAlertDialogBuilder
209209
.setView(customAlertDialogView)
210-
.setTitle("Folder creation")
211-
.setMessage("Current configuration details")
210+
.setTitle(getString(R.string.folder_creation))
211+
.setMessage(getString(R.string.create_folder_config))
212212
.setPositiveButton("Ok") { dialog, _ ->
213213
val name =
214214
customAlertDialogView.findViewById<TextInputEditText>(

app/src/main/java/com/mikhailgrigorev/quickpassword/ui/profile/edit/ProfileEditFragment.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@ class ProfileEditFragment : Fragment() {
9393
val newPassword = binding.etNewPassword.text.toString()
9494
val emojiAvatar = binding.etUserAvatarEmoji.text.toString()
9595
if (password == "") {
96-
binding.tilPassword.error = "Where is my password??"
96+
binding.tilPassword.error = getString(R.string.enter_passwords)
9797
} else {
98-
this.context?.let { it1 -> Utils.makeToast(it1, "Saving...") }
9998
binding.cvSaving.visibility = View.VISIBLE
10099
Utils.auth.signInWithEmailAndPassword(
101100
Utils.getMail()!!,
@@ -133,8 +132,15 @@ class ProfileEditFragment : Fragment() {
133132
}.addOnFailureListener { exception ->
134133
Log.d("Auth mail", Utils.getMail()!!)
135134
Log.d("Auth password", password)
136-
Utils.makeToast(requireContext(), "Data saving error, please write to the app creator")
137-
exception.message?.let { Utils.makeToast(requireContext(), it) }
135+
binding.cvSaving.visibility = View.GONE
136+
Utils.makeToast(
137+
requireContext(),
138+
"Data saving error, please write to the app creator"
139+
)
140+
if (exception.localizedMessage != null) {
141+
Utils.makeToast(requireContext(), exception.localizedMessage!!)
142+
} else
143+
exception.message?.let { Utils.makeToast(requireContext(), it) }
138144
}
139145
}
140146
}

app/src/main/java/com/mikhailgrigorev/quickpassword/ui/settings/SettingsFragment.kt

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import android.widget.SeekBar
1717
import androidx.activity.result.contract.ActivityResultContracts
1818
import androidx.annotation.RequiresApi
1919
import androidx.biometric.BiometricManager
20-
import androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG
20+
import androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_WEAK
2121
import androidx.fragment.app.Fragment
2222
import androidx.lifecycle.ViewModelProvider
2323
import androidx.lifecycle.lifecycleScope
@@ -103,7 +103,7 @@ class SettingsFragment: Fragment() {
103103
}
104104

105105
val biometricManager = BiometricManager.from(requireActivity())
106-
when (biometricManager.canAuthenticate(BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL)) {
106+
when (biometricManager.canAuthenticate(BIOMETRIC_WEAK or BiometricManager.Authenticators.DEVICE_CREDENTIAL)) {
107107
BiometricManager.BIOMETRIC_SUCCESS ->
108108
Log.d("QP", "App can authenticate using biometrics.")
109109
else -> {
@@ -318,7 +318,12 @@ class SettingsFragment: Fragment() {
318318
private fun exportPasswordsToCSVFile(csvFile: File) {
319319
viewModel.passwords.observe(viewLifecycleOwner) {
320320
if (it.isEmpty()) {
321-
this.context?.let { it1 -> Utils.makeToast(it1, "Паролей не найдено") }
321+
this.context?.let { it1 ->
322+
Utils.makeToast(
323+
it1,
324+
getString(R.string.no_passwords_found)
325+
)
326+
}
322327
} else {
323328
csvWriter().open(csvFile, append = false) {
324329
writeRow(
@@ -371,7 +376,12 @@ class SettingsFragment: Fragment() {
371376
private fun exportFoldersToCSVFile(csvFile: File) {
372377
viewModel.folders.observe(viewLifecycleOwner) {
373378
if (it.isEmpty()) {
374-
this.context?.let { it1 -> Utils.makeToast(it1, "Папок не найдено") }
379+
this.context?.let { it1 ->
380+
Utils.makeToast(
381+
it1,
382+
getString(R.string.no_folders_found)
383+
)
384+
}
375385
} else {
376386
csvWriter().open(csvFile, append = false) {
377387
writeRow(
@@ -409,14 +419,18 @@ class SettingsFragment: Fragment() {
409419
if (csvFile != null) {
410420
if (folder) {
411421
exportFoldersToCSVFile(csvFile)
422+
val intent = this.context?.let {
423+
goToFileIntent(it, csvFile)
424+
}
425+
startActivity(intent)
412426
} else {
413427
exportPasswordsToCSVFile(csvFile)
428+
val intent = this.context?.let {
429+
goToFileIntent(it, csvFile)
430+
}
431+
startActivity(intent)
414432
}
415-
val intent = this.context?.let {
416-
goToFileIntent(it, csvFile)
417-
}
418-
startActivity(intent)
419-
Utils.makeToast(requireContext(), "EXPORT_DB: Ok.")
433+
// Utils.makeToast(requireContext(), "EXPORT_DB: Ok.")
420434
} else {
421435
Utils.makeToast(requireContext(), "EXPORT_DB: Error.")
422436
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="#FFFFFF">
7+
<path
8+
android:fillColor="@android:color/white"
9+
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8l8,5 8,-5v10zM12,11L4,6h16l-8,5z"/>
10+
</vector>
399 Bytes
Loading
286 Bytes
Loading
514 Bytes
Loading

0 commit comments

Comments
 (0)