mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-04-04 21:37:37 +03:00
fix: Replace boolean parcelable
This commit is contained in:
parent
22073e4bbd
commit
5c46fdf41a
10 changed files with 45 additions and 23 deletions
|
@ -29,7 +29,9 @@ import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||||
import com.kunzisoft.keepass.database.element.node.*
|
import com.kunzisoft.keepass.database.element.node.*
|
||||||
import com.kunzisoft.keepass.model.EntryInfo
|
import com.kunzisoft.keepass.model.EntryInfo
|
||||||
import com.kunzisoft.keepass.model.GroupInfo
|
import com.kunzisoft.keepass.model.GroupInfo
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
import com.kunzisoft.keepass.utils.readParcelableCompat
|
import com.kunzisoft.keepass.utils.readParcelableCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
|
@ -78,7 +80,7 @@ class Group : Node, GroupVersionedInterface<Group, Entry> {
|
||||||
constructor(parcel: Parcel) {
|
constructor(parcel: Parcel) {
|
||||||
groupKDB = parcel.readParcelableCompat()
|
groupKDB = parcel.readParcelableCompat()
|
||||||
groupKDBX = parcel.readParcelableCompat()
|
groupKDBX = parcel.readParcelableCompat()
|
||||||
isVirtual = parcel.readByte().toInt() != 0
|
isVirtual = parcel.readBooleanCompat()
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ChildFilter {
|
enum class ChildFilter {
|
||||||
|
@ -112,7 +114,7 @@ class Group : Node, GroupVersionedInterface<Group, Entry> {
|
||||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||||
dest.writeParcelable(groupKDB, flags)
|
dest.writeParcelable(groupKDB, flags)
|
||||||
dest.writeParcelable(groupKDBX, flags)
|
dest.writeParcelable(groupKDBX, flags)
|
||||||
dest.writeByte((if (isVirtual) 1 else 0).toByte())
|
dest.writeBooleanCompat(isVirtual)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val nodeId: NodeId<*>
|
override val nodeId: NodeId<*>
|
||||||
|
|
|
@ -24,6 +24,8 @@ import android.content.Context
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
import org.apache.commons.io.output.CountingOutputStream
|
import org.apache.commons.io.output.CountingOutputStream
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
@ -51,17 +53,17 @@ abstract class BinaryData : Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected constructor(parcel: Parcel) {
|
protected constructor(parcel: Parcel) {
|
||||||
isCompressed = parcel.readByte().toInt() != 0
|
isCompressed = parcel.readBooleanCompat()
|
||||||
isProtected = parcel.readByte().toInt() != 0
|
isProtected = parcel.readBooleanCompat()
|
||||||
isCorrupted = parcel.readByte().toInt() != 0
|
isCorrupted = parcel.readBooleanCompat()
|
||||||
mLength = parcel.readLong()
|
mLength = parcel.readLong()
|
||||||
mBinaryHash = parcel.readInt()
|
mBinaryHash = parcel.readInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||||
dest.writeByte((if (isCompressed) 1 else 0).toByte())
|
dest.writeBooleanCompat(isCompressed)
|
||||||
dest.writeByte((if (isProtected) 1 else 0).toByte())
|
dest.writeBooleanCompat(isProtected)
|
||||||
dest.writeByte((if (isCorrupted) 1 else 0).toByte())
|
dest.writeBooleanCompat(isCorrupted)
|
||||||
dest.writeLong(mLength)
|
dest.writeLong(mLength)
|
||||||
dest.writeInt(mBinaryHash)
|
dest.writeInt(mBinaryHash)
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ package com.kunzisoft.keepass.database.element.entry
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import com.kunzisoft.keepass.utils.UnsignedInt
|
import com.kunzisoft.keepass.utils.UnsignedInt
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
|
|
||||||
class AutoType : Parcelable {
|
class AutoType : Parcelable {
|
||||||
|
|
||||||
|
@ -41,7 +43,7 @@ class AutoType : Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(parcel: Parcel) {
|
constructor(parcel: Parcel) {
|
||||||
this.enabled = parcel.readByte().toInt() != 0
|
this.enabled = parcel.readBooleanCompat()
|
||||||
this.obfuscationOptions = UnsignedInt(parcel.readInt())
|
this.obfuscationOptions = UnsignedInt(parcel.readInt())
|
||||||
this.defaultSequence = parcel.readString() ?: defaultSequence
|
this.defaultSequence = parcel.readString() ?: defaultSequence
|
||||||
parcel.readTypedList(this.windowSeqPairs, AutoTypeItem.CREATOR)
|
parcel.readTypedList(this.windowSeqPairs, AutoTypeItem.CREATOR)
|
||||||
|
@ -52,7 +54,7 @@ class AutoType : Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||||
dest.writeByte((if (enabled) 1 else 0).toByte())
|
dest.writeBooleanCompat(enabled)
|
||||||
dest.writeInt(obfuscationOptions.toKotlinInt())
|
dest.writeInt(obfuscationOptions.toKotlinInt())
|
||||||
dest.writeString(defaultSequence)
|
dest.writeString(defaultSequence)
|
||||||
dest.writeTypedList(windowSeqPairs)
|
dest.writeTypedList(windowSeqPairs)
|
||||||
|
|
|
@ -34,6 +34,8 @@ import com.kunzisoft.keepass.database.element.node.Type
|
||||||
import com.kunzisoft.keepass.utils.readParcelableCompat
|
import com.kunzisoft.keepass.utils.readParcelableCompat
|
||||||
import com.kunzisoft.keepass.utils.readSerializableCompat
|
import com.kunzisoft.keepass.utils.readSerializableCompat
|
||||||
import com.kunzisoft.keepass.utils.UnsignedLong
|
import com.kunzisoft.keepass.utils.UnsignedLong
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class GroupKDBX : GroupVersioned<UUID, UUID, GroupKDBX, EntryKDBX>, NodeKDBXInterface {
|
class GroupKDBX : GroupVersioned<UUID, UUID, GroupKDBX, EntryKDBX>, NodeKDBXInterface {
|
||||||
|
@ -70,7 +72,7 @@ class GroupKDBX : GroupVersioned<UUID, UUID, GroupKDBX, EntryKDBX>, NodeKDBXInte
|
||||||
locationChanged = parcel.readParcelableCompat() ?: locationChanged
|
locationChanged = parcel.readParcelableCompat() ?: locationChanged
|
||||||
customData = parcel.readParcelableCompat() ?: CustomData()
|
customData = parcel.readParcelableCompat() ?: CustomData()
|
||||||
notes = parcel.readString() ?: notes
|
notes = parcel.readString() ?: notes
|
||||||
isExpanded = parcel.readByte().toInt() != 0
|
isExpanded = parcel.readBooleanCompat()
|
||||||
val isSearchingEnabled = parcel.readInt()
|
val isSearchingEnabled = parcel.readInt()
|
||||||
enableSearching = if (isSearchingEnabled == -1) null else isSearchingEnabled == 1
|
enableSearching = if (isSearchingEnabled == -1) null else isSearchingEnabled == 1
|
||||||
val isAutoTypeEnabled = parcel.readInt()
|
val isAutoTypeEnabled = parcel.readInt()
|
||||||
|
@ -95,7 +97,7 @@ class GroupKDBX : GroupVersioned<UUID, UUID, GroupKDBX, EntryKDBX>, NodeKDBXInte
|
||||||
dest.writeParcelable(locationChanged, flags)
|
dest.writeParcelable(locationChanged, flags)
|
||||||
dest.writeParcelable(customData, flags)
|
dest.writeParcelable(customData, flags)
|
||||||
dest.writeString(notes)
|
dest.writeString(notes)
|
||||||
dest.writeByte((if (isExpanded) 1 else 0).toByte())
|
dest.writeBooleanCompat(isExpanded)
|
||||||
dest.writeInt(if (enableSearching == null) -1 else if (enableSearching!!) 1 else 0)
|
dest.writeInt(if (enableSearching == null) -1 else if (enableSearching!!) 1 else 0)
|
||||||
dest.writeInt(if (enableAutoType == null) -1 else if (enableAutoType!!) 1 else 0)
|
dest.writeInt(if (enableAutoType == null) -1 else if (enableAutoType!!) 1 else 0)
|
||||||
dest.writeString(defaultAutoTypeSequence)
|
dest.writeString(defaultAutoTypeSequence)
|
||||||
|
|
|
@ -26,7 +26,9 @@ import com.kunzisoft.keepass.database.element.DateInstant
|
||||||
import com.kunzisoft.keepass.database.element.entry.EntryVersionedInterface
|
import com.kunzisoft.keepass.database.element.entry.EntryVersionedInterface
|
||||||
import com.kunzisoft.keepass.database.element.group.GroupVersionedInterface
|
import com.kunzisoft.keepass.database.element.group.GroupVersionedInterface
|
||||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
import com.kunzisoft.keepass.utils.readParcelableCompat
|
import com.kunzisoft.keepass.utils.readParcelableCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract class who manage Groups and Entries
|
* Abstract class who manage Groups and Entries
|
||||||
|
@ -51,7 +53,7 @@ abstract class NodeVersioned<IdType, Parent : GroupVersionedInterface<Parent, En
|
||||||
this.lastModificationTime = parcel.readParcelableCompat() ?: lastModificationTime
|
this.lastModificationTime = parcel.readParcelableCompat() ?: lastModificationTime
|
||||||
this.lastAccessTime = parcel.readParcelableCompat() ?: lastAccessTime
|
this.lastAccessTime = parcel.readParcelableCompat() ?: lastAccessTime
|
||||||
this.expiryTime = parcel.readParcelableCompat() ?: expiryTime
|
this.expiryTime = parcel.readParcelableCompat() ?: expiryTime
|
||||||
this.expires = parcel.readByte().toInt() != 0
|
this.expires = parcel.readBooleanCompat()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||||
|
@ -62,7 +64,7 @@ abstract class NodeVersioned<IdType, Parent : GroupVersionedInterface<Parent, En
|
||||||
dest.writeParcelable(lastModificationTime, flags)
|
dest.writeParcelable(lastModificationTime, flags)
|
||||||
dest.writeParcelable(lastAccessTime, flags)
|
dest.writeParcelable(lastAccessTime, flags)
|
||||||
dest.writeParcelable(expiryTime, flags)
|
dest.writeParcelable(expiryTime, flags)
|
||||||
dest.writeByte((if (expires) 1 else 0).toByte())
|
dest.writeBooleanCompat(expires)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun describeContents(): Int {
|
override fun describeContents(): Int {
|
||||||
|
|
|
@ -21,6 +21,8 @@ package com.kunzisoft.keepass.database.element.security
|
||||||
|
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
|
|
||||||
class ProtectedString : Parcelable {
|
class ProtectedString : Parcelable {
|
||||||
|
|
||||||
|
@ -39,7 +41,7 @@ class ProtectedString : Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(parcel: Parcel) {
|
constructor(parcel: Parcel) {
|
||||||
isProtected = parcel.readByte().toInt() != 0
|
isProtected = parcel.readBooleanCompat()
|
||||||
stringValue = parcel.readString() ?: stringValue
|
stringValue = parcel.readString() ?: stringValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +50,7 @@ class ProtectedString : Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||||
dest.writeByte((if (isProtected) 1 else 0).toByte())
|
dest.writeBooleanCompat(isProtected)
|
||||||
dest.writeString(stringValue)
|
dest.writeString(stringValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,10 @@ import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||||
import com.kunzisoft.keepass.otp.OtpElement
|
import com.kunzisoft.keepass.otp.OtpElement
|
||||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||||
import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_TOKEN_FIELD
|
import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_TOKEN_FIELD
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
import com.kunzisoft.keepass.utils.readListCompat
|
import com.kunzisoft.keepass.utils.readListCompat
|
||||||
import com.kunzisoft.keepass.utils.readParcelableCompat
|
import com.kunzisoft.keepass.utils.readParcelableCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class EntryInfo : NodeInfo {
|
class EntryInfo : NodeInfo {
|
||||||
|
@ -66,7 +68,7 @@ class EntryInfo : NodeInfo {
|
||||||
parcel.readListCompat(attachments)
|
parcel.readListCompat(attachments)
|
||||||
autoType = parcel.readParcelableCompat() ?: autoType
|
autoType = parcel.readParcelableCompat() ?: autoType
|
||||||
otpModel = parcel.readParcelableCompat() ?: otpModel
|
otpModel = parcel.readParcelableCompat() ?: otpModel
|
||||||
isTemplate = parcel.readByte().toInt() != 0
|
isTemplate = parcel.readBooleanCompat()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun describeContents(): Int {
|
override fun describeContents(): Int {
|
||||||
|
@ -87,7 +89,7 @@ class EntryInfo : NodeInfo {
|
||||||
parcel.writeList(attachments)
|
parcel.writeList(attachments)
|
||||||
parcel.writeParcelable(autoType, flags)
|
parcel.writeParcelable(autoType, flags)
|
||||||
parcel.writeParcelable(otpModel, flags)
|
parcel.writeParcelable(otpModel, flags)
|
||||||
parcel.writeByte((if (isTemplate) 1 else 0).toByte())
|
parcel.writeBooleanCompat(isTemplate)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun containsCustomFieldsProtected(): Boolean {
|
fun containsCustomFieldsProtected(): Boolean {
|
||||||
|
|
|
@ -5,7 +5,9 @@ import android.os.Parcelable
|
||||||
import com.kunzisoft.keepass.database.element.CustomData
|
import com.kunzisoft.keepass.database.element.CustomData
|
||||||
import com.kunzisoft.keepass.database.element.DateInstant
|
import com.kunzisoft.keepass.database.element.DateInstant
|
||||||
import com.kunzisoft.keepass.database.element.icon.IconImage
|
import com.kunzisoft.keepass.database.element.icon.IconImage
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
import com.kunzisoft.keepass.utils.readParcelableCompat
|
import com.kunzisoft.keepass.utils.readParcelableCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
|
|
||||||
open class NodeInfo() : Parcelable {
|
open class NodeInfo() : Parcelable {
|
||||||
|
|
||||||
|
@ -22,7 +24,7 @@ open class NodeInfo() : Parcelable {
|
||||||
icon = parcel.readParcelableCompat() ?: icon
|
icon = parcel.readParcelableCompat() ?: icon
|
||||||
creationTime = parcel.readParcelableCompat() ?: creationTime
|
creationTime = parcel.readParcelableCompat() ?: creationTime
|
||||||
lastModificationTime = parcel.readParcelableCompat() ?: lastModificationTime
|
lastModificationTime = parcel.readParcelableCompat() ?: lastModificationTime
|
||||||
expires = parcel.readInt() != 0
|
expires = parcel.readBooleanCompat()
|
||||||
expiryTime = parcel.readParcelableCompat() ?: expiryTime
|
expiryTime = parcel.readParcelableCompat() ?: expiryTime
|
||||||
customData = parcel.readParcelableCompat() ?: customData
|
customData = parcel.readParcelableCompat() ?: customData
|
||||||
}
|
}
|
||||||
|
@ -32,7 +34,7 @@ open class NodeInfo() : Parcelable {
|
||||||
parcel.writeParcelable(icon, flags)
|
parcel.writeParcelable(icon, flags)
|
||||||
parcel.writeParcelable(creationTime, flags)
|
parcel.writeParcelable(creationTime, flags)
|
||||||
parcel.writeParcelable(lastModificationTime, flags)
|
parcel.writeParcelable(lastModificationTime, flags)
|
||||||
parcel.writeInt(if (expires) 1 else 0)
|
parcel.writeBooleanCompat(expires)
|
||||||
parcel.writeParcelable(expiryTime, flags)
|
parcel.writeParcelable(expiryTime, flags)
|
||||||
parcel.writeParcelable(customData, flags)
|
parcel.writeParcelable(customData, flags)
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import com.kunzisoft.keepass.otp.OtpEntryFields
|
import com.kunzisoft.keepass.otp.OtpEntryFields
|
||||||
import com.kunzisoft.keepass.utils.ObjectNameResource
|
import com.kunzisoft.keepass.utils.ObjectNameResource
|
||||||
|
import com.kunzisoft.keepass.utils.readBooleanCompat
|
||||||
|
import com.kunzisoft.keepass.utils.writeBooleanCompat
|
||||||
|
|
||||||
class SearchInfo : ObjectNameResource, Parcelable {
|
class SearchInfo : ObjectNameResource, Parcelable {
|
||||||
var manualSelection: Boolean = false
|
var manualSelection: Boolean = false
|
||||||
|
@ -44,7 +46,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
private constructor(parcel: Parcel) {
|
private constructor(parcel: Parcel) {
|
||||||
manualSelection = parcel.readByte().toInt() != 0
|
manualSelection = parcel.readBooleanCompat()
|
||||||
val readAppId = parcel.readString()
|
val readAppId = parcel.readString()
|
||||||
applicationId = if (readAppId.isNullOrEmpty()) null else readAppId
|
applicationId = if (readAppId.isNullOrEmpty()) null else readAppId
|
||||||
val readDomain = parcel.readString()
|
val readDomain = parcel.readString()
|
||||||
|
@ -60,7 +62,7 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||||
parcel.writeByte((if (manualSelection) 1 else 0).toByte())
|
parcel.writeBooleanCompat(manualSelection)
|
||||||
parcel.writeString(applicationId ?: "")
|
parcel.writeString(applicationId ?: "")
|
||||||
parcel.writeString(webDomain ?: "")
|
parcel.writeString(webDomain ?: "")
|
||||||
parcel.writeString(webScheme ?: "")
|
parcel.writeString(webScheme ?: "")
|
||||||
|
|
|
@ -234,4 +234,8 @@ inline fun <reified T : Enum<T>> Parcel.readEnum() =
|
||||||
readString()?.let { enumValueOf<T>(it) }
|
readString()?.let { enumValueOf<T>(it) }
|
||||||
|
|
||||||
fun <T : Enum<T>> Parcel.writeEnum(value: T?) =
|
fun <T : Enum<T>> Parcel.writeEnum(value: T?) =
|
||||||
writeString(value?.name)
|
writeString(value?.name)
|
||||||
|
|
||||||
|
fun Parcel.readBooleanCompat(): Boolean = readByte().toInt() != 0
|
||||||
|
|
||||||
|
fun Parcel.writeBooleanCompat(value: Boolean) = writeByte((if (value) 1 else 0).toByte())
|
Loading…
Add table
Add a link
Reference in a new issue