Skip to content

Commit c4aefbb

Browse files
committed
1.0.3: Different fixes
1 parent f6358b7 commit c4aefbb

File tree

11 files changed

+42
-27
lines changed

11 files changed

+42
-27
lines changed

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ android {
2525
applicationId "com.mikhailgrigorev.simple_password"
2626
minSdkVersion 23
2727
targetSdk 33
28-
versionCode 2
29-
versionName '1.0.1'
28+
versionCode 4
29+
versionName '1.0.3'
3030
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3131
}
3232

@@ -103,7 +103,7 @@ dependencies {
103103
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
104104
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
105105

106-
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'
106+
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.10'
107107
implementation 'androidx.core:core-ktx:1.9.0'
108108
implementation 'com.anjlab.android.iab.v3:library:2.0.3'
109109
implementation 'androidx.appcompat:appcompat:1.6.0'

app/release/app-release.apk

2.43 KB
Binary file not shown.

app/release/output-metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"type": "SINGLE",
1212
"filters": [],
1313
"attributes": [],
14-
"versionCode": 2,
15-
"versionName": "1.0.1",
14+
"versionCode": 4,
15+
"versionName": "1.0.3",
1616
"outputFile": "app-release.apk"
1717
}
1818
],

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools">
44

5-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
6-
android:maxSdkVersion="32" />
7-
<uses-permission
8-
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
9-
tools:ignore="ScopedStorage" />
5+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
6+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage" />
107
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
118
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
129
<uses-permission android:name="com.android.vending.BILLING" />

app/src/main/java/com/mikhailgrigorev/simple_password/common/manager/BackupManager.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ object BackupManager {
2020
}
2121

2222
fun goToFileIntent(context: Context, file: File): Intent {
23+
val contentUri = FileProvider.getUriForFile(
24+
context,
25+
"com.mikhailgrigorev.simple_password.provider",
26+
file
27+
)
28+
29+
2330
val intent = Intent(Intent.ACTION_VIEW)
24-
val contentUri =
25-
FileProvider.getUriForFile(context, "com.mikhailgrigorev.simple_password.fileprovider", file)
26-
val mimeType = context.contentResolver.getType(contentUri)
27-
intent.setDataAndType(contentUri, mimeType)
28-
intent.flags =
29-
Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
31+
.addFlags( Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
32+
33+
intent.setDataAndType(contentUri, "text/comma-separated-values")
3034

3135
return intent
3236
}

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.content.*
77
import android.content.pm.PackageManager
88
import android.database.Cursor
99
import android.net.Uri
10+
import android.os.Build
1011
import android.os.Bundle
1112
import android.provider.DocumentsContract
1213
import android.provider.MediaStore
@@ -596,10 +597,14 @@ class PasswordCreateActivity : MyBaseActivity() {
596597
private val permissionCodeWrite = 1002
597598

598599
private fun checkPermissionForImage() {
599-
if ((checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED)
600-
&& (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED)
601-
) {
602-
val permission = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE)
600+
val manifestPermission = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
601+
Manifest.permission.READ_MEDIA_IMAGES
602+
} else {
603+
Manifest.permission.READ_EXTERNAL_STORAGE
604+
}
605+
606+
if ((checkSelfPermission(manifestPermission) == PackageManager.PERMISSION_DENIED) && (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED)) {
607+
val permission = arrayOf(manifestPermission)
603608
val permissionCoarse = arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE)
604609

605610
requestPermissions(permission, permissionCodeRead)

app/src/main/java/com/mikhailgrigorev/simple_password/ui/password_card/view/PasswordViewActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ class PasswordViewActivity : MyBaseActivity() {
108108

109109
private fun loadPassword(passwordId: Int) {
110110
viewModel.getPasswordById(passwordId).observe(this) { passwordCard ->
111+
if (passwordCard == null) return@observe
112+
111113
viewModel.currentPassword = passwordCard
112114

113115
setUpScreenContent(passwordCard)

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import android.view.View
1313
import android.view.ViewGroup
1414
import android.view.autofill.AutofillManager
1515
import android.widget.SeekBar
16+
import android.widget.Toast
1617
import androidx.activity.result.contract.ActivityResultContracts
1718
import androidx.annotation.RequiresApi
1819
import androidx.appcompat.app.AppCompatDelegate
@@ -46,8 +47,8 @@ import javax.inject.Inject
4647
class SettingsFragment: Fragment() {
4748

4849
companion object {
49-
val IMPORT_FROM_PASSWORD_CODE = 5
50-
val IMPORT_FROM_OLD_QUICKPASS = 11
50+
const val IMPORT_FROM_PASSWORD_CODE = 5
51+
const val IMPORT_FROM_OLD_APPLICATION = 11
5152
}
5253

5354

@@ -185,7 +186,7 @@ class SettingsFragment: Fragment() {
185186
)
186187
}
187188
}
188-
IMPORT_FROM_OLD_QUICKPASS -> {
189+
IMPORT_FROM_OLD_APPLICATION -> {
189190
lifecycleScope.launch(Dispatchers.IO) {
190191
viewModel.insertPassword(
191192
PasswordCard(
@@ -526,11 +527,15 @@ class SettingsFragment: Fragment() {
526527
val intent = this.context?.let {
527528
goToFileIntent(it, csvFile)
528529
}
529-
startActivity(intent)
530+
try {
531+
startActivity(intent)
532+
} catch (e: Exception) {
533+
context?.let { Utils.makeToast(it, getString(R.string.sorry_there_is_no_application_to_view_csv_on_your_device)) }
534+
}
530535
}
531536
// Utils.makeToast(requireContext(), "EXPORT_DB: Ok.")
532537
} else {
533-
Utils.makeToast(requireContext(), "EXPORT_DB: Error.")
538+
context?.let { Utils.makeToast(it, "EXPORT_DB: Error.") }
534539
}
535540
}
536541

app/src/main/res/values-ru/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,4 +216,5 @@
216216

217217
<string name="import_db_failed">Произошла проблема с одним из паролей</string>
218218
<string name="import_db_folder_ok">Все пароли импортированы</string>
219+
<string name="sorry_there_is_no_application_to_view_csv_on_your_device">Извините, на вашем девайсе нет приложения, чтобы просмотреть CSV-файл</string>
219220
</resources>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
<string name="auto_copy_password">Auto-copy password</string>
102102
<string name="about_app">About app</string>
103103
<string name="app_author">Mikhail Grigorev</string>
104-
<string name="version_and_year" translatable="false">v1.0.1 • 2023</string>
104+
<string name="version_and_year" translatable="false">v1.0.2 • 2023</string>
105105
<string name="telegram" translatable="false">Telegram</string>
106106
<string name="vkontakte" translatable="false">Vkontakte</string>
107107
<string name="sen_email" translatable="false">Send email</string>
@@ -242,5 +242,6 @@
242242
<string name="local_profile">Local profile</string>
243243
<string name="import_db_failed">There is a problem with some passwords</string>
244244
<string name="import_db_folder_ok">All passwords imported</string>
245+
<string name="sorry_there_is_no_application_to_view_csv_on_your_device">Sorry, there is no application to view CSV on your device</string>
245246

246247
</resources>

0 commit comments

Comments
 (0)