Add big image file error

This commit is contained in:
J-Jamet
2021-03-01 17:54:10 +01:00
parent 0e3b8fdbb6
commit 3e6cd98cb9
4 changed files with 20 additions and 5 deletions

View File

@@ -27,7 +27,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.fragment.app.commit import androidx.fragment.app.commit
import com.google.android.material.snackbar.Snackbar
import com.kunzisoft.keepass.R import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.activities.fragments.IconPickerFragment import com.kunzisoft.keepass.activities.fragments.IconPickerFragment
import com.kunzisoft.keepass.activities.helpers.SelectFileHelper import com.kunzisoft.keepass.activities.helpers.SelectFileHelper
@@ -37,6 +39,8 @@ import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.icon.IconImage import com.kunzisoft.keepass.database.element.icon.IconImage
import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.utils.UriUtil import com.kunzisoft.keepass.utils.UriUtil
import com.kunzisoft.keepass.view.asError
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
import com.kunzisoft.keepass.view.updateLockPaddingLeft import com.kunzisoft.keepass.view.updateLockPaddingLeft
import com.kunzisoft.keepass.viewmodels.IconPickerViewModel import com.kunzisoft.keepass.viewmodels.IconPickerViewModel
@@ -44,6 +48,7 @@ import com.kunzisoft.keepass.viewmodels.IconPickerViewModel
class IconPickerActivity : LockingActivity() { class IconPickerActivity : LockingActivity() {
private lateinit var toolbar: Toolbar private lateinit var toolbar: Toolbar
private lateinit var coordinatorLayout: CoordinatorLayout
private lateinit var uploadButton: View private lateinit var uploadButton: View
private var lockView: View? = null private var lockView: View? = null
@@ -65,6 +70,8 @@ class IconPickerActivity : LockingActivity() {
supportActionBar?.setDisplayShowHomeEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setDisplayShowTitleEnabled(false) supportActionBar?.setDisplayShowTitleEnabled(false)
coordinatorLayout = findViewById(R.id.icon_picker_coordinator)
uploadButton = findViewById(R.id.icon_picker_upload) uploadButton = findViewById(R.id.icon_picker_upload)
uploadButton.setOnClickListener { uploadButton.setOnClickListener {
mSelectFileHelper?.selectFileOnClickViewListener?.onClick(it) mSelectFileHelper?.selectFileOnClickViewListener?.onClick(it)
@@ -142,7 +149,7 @@ class IconPickerActivity : LockingActivity() {
uri?.let { iconToUploadUri -> uri?.let { iconToUploadUri ->
UriUtil.getFileData(this, iconToUploadUri)?.also { documentFile -> UriUtil.getFileData(this, iconToUploadUri)?.also { documentFile ->
if (documentFile.length() > MAX_ICON_SIZE) { if (documentFile.length() > MAX_ICON_SIZE) {
// TODO Error Icon size too big Snackbar.make(coordinatorLayout, R.string.error_image_to_big, Snackbar.LENGTH_LONG).asError().show()
} else { } else {
mDatabase?.let { database -> mDatabase?.let { database ->
iconPickerViewModel.addCustomIcon(database, iconPickerViewModel.addCustomIcon(database,

View File

@@ -66,7 +66,9 @@ class IconsManager {
fun getCustomIconList(): List<IconImage> { fun getCustomIconList(): List<IconImage> {
val list = ArrayList<IconImage>() val list = ArrayList<IconImage>()
customCache.doForEachBinary { key, binary -> customCache.doForEachBinary { key, binary ->
list.add(IconImage(IconImageCustom(key, binary))) if (binary.length > 0) {
list.add(IconImage(IconImageCustom(key, binary)))
}
} }
return list return list
} }

View File

@@ -24,12 +24,17 @@
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.fragment.app.FragmentContainerView <androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/icon_picker_fragment" android:id="@+id/icon_picker_coordinator"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/toolbar" /> app:layout_constraintBottom_toTopOf="@+id/toolbar">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/icon_picker_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<com.kunzisoft.keepass.view.ToolbarAction <com.kunzisoft.keepass.view.ToolbarAction
android:id="@+id/toolbar" android:id="@+id/toolbar"

View File

@@ -137,6 +137,7 @@
<string name="error_field_name_already_exists">The field name already exists.</string> <string name="error_field_name_already_exists">The field name already exists.</string>
<string name="error_database_uri_null">Database URI cannot be retrieved.</string> <string name="error_database_uri_null">Database URI cannot be retrieved.</string>
<string name="error_rebuild_list">Unable to properly rebuild the list.</string> <string name="error_rebuild_list">Unable to properly rebuild the list.</string>
<string name="error_image_to_big">The image you are trying to upload is too big.</string>
<string name="field_name">Field name</string> <string name="field_name">Field name</string>
<string name="field_value">Field value</string> <string name="field_value">Field value</string>
<string name="file_not_found_content">Could not find file. Try reopening it from your file browser.</string> <string name="file_not_found_content">Could not find file. Try reopening it from your file browser.</string>