From e58b52976042de09b8e642c370e61fa1d3176fa1 Mon Sep 17 00:00:00 2001 From: Yogesh Paliyal Date: Sat, 6 Mar 2021 23:28:57 +0530 Subject: [PATCH] Added option to create password when adding new account --- app/build.gradle | 14 +++++++++++--- .../keypass/ui/detail/DetailActivity.kt | 13 +++++++++++++ .../keypass/ui/settings/MySettingsFragment.kt | 2 +- .../yogeshpaliyal/keypass/utils/IntentHelper.kt | 6 +----- .../keypass/utils/PasswordGenerator.kt | 2 ++ app/src/main/res/drawable/ic_round_refresh_24.xml | 10 ++++++++++ app/src/main/res/layout/fragment_detail.xml | 1 + whatsnew/whatsnew-en-US | 2 +- 8 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/drawable/ic_round_refresh_24.xml diff --git a/app/build.gradle b/app/build.gradle index bac11ae7..da00d854 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,16 +8,24 @@ plugins { +def appPackageId = 'com.yogeshpaliyal.keypass' +def versionMajor = 1 +def versionMinor = 3 +def versionPatch = 1 +def appVersion = "${versionMajor}.${versionMinor}.${versionPatch}" +def appVersionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch + + android { compileSdkVersion 30 buildToolsVersion "30.0.2" defaultConfig { - applicationId "com.yogeshpaliyal.keypass" + applicationId appPackageId minSdkVersion 22 targetSdkVersion 30 - versionCode 4 - versionName "1.4" + versionCode appVersionCode + versionName appVersion testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailActivity.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailActivity.kt index 545d5955..d6ea15de 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailActivity.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/DetailActivity.kt @@ -13,6 +13,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.yogeshpaliyal.keypass.AppDatabase import com.yogeshpaliyal.keypass.R import com.yogeshpaliyal.keypass.databinding.FragmentDetailBinding +import com.yogeshpaliyal.keypass.utils.PasswordGenerator import com.yogeshpaliyal.keypass.utils.initViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -63,7 +64,18 @@ class DetailActivity : AppCompatActivity() { if (accountId > 0) { binding.bottomAppBar.replaceMenu(R.menu.bottom_app_bar_detail) + + binding.tilPassword.startIconDrawable = null + }else{ + binding.tilPassword.setStartIconDrawable(R.drawable.ic_round_refresh_24) + + binding.tilPassword.setStartIconOnClickListener { + binding.etPassword.setText(PasswordGenerator().generatePassword()) + } } + + + binding.bottomAppBar.setNavigationOnClickListener { onBackPressed() } @@ -76,6 +88,7 @@ class DetailActivity : AppCompatActivity() { return@setOnMenuItemClickListener false } + binding.btnSave.setOnClickListener { lifecycleScope.launch(Dispatchers.IO) { val model = mViewModel.accountModel.value diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt index a3bc52a0..7cd1439b 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt @@ -37,7 +37,7 @@ class MySettingsFragment : PreferenceFragmentCompat() { override fun onPreferenceTreeClick(preference: Preference?): Boolean { when(preference?.key){ "feedback" -> { - context?.email("Feedback to KeyPass", "techpaliyal@gmail.com") + context?.email("Feedback to KeyPass", "yogeshpaliyal.foss@gmail.com") return true } diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/IntentHelper.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/IntentHelper.kt index 8e0c266d..8bae5f55 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/IntentHelper.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/IntentHelper.kt @@ -20,7 +20,7 @@ fun Context.email( email: String = "", subject: String = "", text: String = "" -): Boolean { +) { val intent = Intent(Intent.ACTION_SENDTO) intent.data = Uri.parse("mailto:") @@ -33,11 +33,7 @@ fun Context.email( if (text.isNotEmpty()) intent.putExtra(Intent.EXTRA_TEXT, text) - if (intent.resolveActivity(packageManager) != null) { startActivity(Intent.createChooser(intent, chooserTitle)) - return true - } - return false } diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt b/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt index 9a61cec4..8da2f4e2 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/utils/PasswordGenerator.kt @@ -4,6 +4,8 @@ class PasswordGenerator(private var length: Int, private var includeUpperCaseLet private var includeLowerCaseLetters : Boolean, private var includeSymbols : Boolean, private var includeNumbers: Boolean) { + constructor() : this(10,true, true, true, true) + private val UPPER_CASE = 0 private val LOWER_CASE = 1 private val NUMBERS = 2 diff --git a/app/src/main/res/drawable/ic_round_refresh_24.xml b/app/src/main/res/drawable/ic_round_refresh_24.xml new file mode 100644 index 00000000..5cdbeb07 --- /dev/null +++ b/app/src/main/res/drawable/ic_round_refresh_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_detail.xml b/app/src/main/res/layout/fragment_detail.xml index 9b8b5a58..4f7571eb 100644 --- a/app/src/main/res/layout/fragment_detail.xml +++ b/app/src/main/res/layout/fragment_detail.xml @@ -76,6 +76,7 @@ android:id="@+id/tilPassword" android:layout_height="wrap_content" android:hint="Password" + app:startIconDrawable="@drawable/ic_round_refresh_24" app:passwordToggleEnabled="true">