blob: 65497e1fd711a5da017591ca992e4be69484565c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
* Copyright © 2019 The Android Password Authors. All Rights Reserved.
* SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
*/
@file:JvmName("OpenPgpMetadata")
package org.openintents.openpgp
import android.os.Parcel
import android.os.Parcelable
import android.os.Parcelable.Creator
public class OpenPgpMetadata() : Parcelable {
public var filename: String? = null
public var mimeType: String? = null
public var charset: String? = null
public var modificationTime: Long = 0
public var originalSize: Long = 0
private constructor(
filename: String?,
mimeType: String?,
modificationTime: Long,
originalSize: Long,
charset: String?
) : this() {
this.filename = filename
this.mimeType = mimeType
this.modificationTime = modificationTime
this.originalSize = originalSize
this.charset = charset
}
private constructor(
filename: String?,
mimeType: String?,
modificationTime: Long,
originalSize: Long
) : this() {
this.filename = filename
this.mimeType = mimeType
this.modificationTime = modificationTime
this.originalSize = originalSize
}
private constructor(b: OpenPgpMetadata) : this() {
filename = b.filename
mimeType = b.mimeType
modificationTime = b.modificationTime
originalSize = b.originalSize
}
override fun describeContents(): Int {
return 0
}
override fun writeToParcel(dest: Parcel, flags: Int) {
/**
* NOTE: When adding fields in the process of updating this API, make sure to bump
* [PARCELABLE_VERSION].
*/
dest.writeInt(PARCELABLE_VERSION)
// Inject a placeholder that will store the parcel size from this point on
// (not including the size itself).
val sizePosition = dest.dataPosition()
dest.writeInt(0)
val startPosition = dest.dataPosition()
// version 1
dest.writeString(filename)
dest.writeString(mimeType)
dest.writeLong(modificationTime)
dest.writeLong(originalSize)
// version 2
dest.writeString(charset)
// Go back and write the size
val parcelableSize = dest.dataPosition() - startPosition
dest.setDataPosition(sizePosition)
dest.writeInt(parcelableSize)
dest.setDataPosition(startPosition + parcelableSize)
}
public companion object CREATOR : Creator<OpenPgpMetadata> {
/**
* Since there might be a case where new versions of the client using the library getting
* old versions of the protocol (and thus old versions of this class), we need a versioning
* system for the parcels sent between the clients and the providers.
*/
private const val PARCELABLE_VERSION = 2
override fun createFromParcel(source: Parcel): OpenPgpMetadata? {
val version = source.readInt() // parcelableVersion
val parcelableSize = source.readInt()
val startPosition = source.dataPosition()
val vr = OpenPgpMetadata()
vr.filename = source.readString()
vr.mimeType = source.readString()
vr.modificationTime = source.readLong()
vr.originalSize = source.readLong()
if (version >= 2) {
vr.charset = source.readString()
}
// skip over all fields added in future versions of this parcel
source.setDataPosition(startPosition + parcelableSize)
return vr
}
override fun newArray(size: Int): Array<OpenPgpMetadata?> {
return arrayOfNulls(size)
}
}
override fun toString(): String {
var out = "\nfilename: $filename"
out += "\nmimeType: $mimeType"
out += "\nmodificationTime: $modificationTime"
out += "\noriginalSize: $originalSize"
out += "\ncharset: $charset"
return out
}
}
|