-
Notifications
You must be signed in to change notification settings - Fork 5
/
interface.pretty
232 lines (185 loc) · 3.9 KB
/
interface.pretty
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
//Classes to represent input elements of an HTML form
@SerializeJson
@Pascal->Kotlin
@PascalClass
class FormInput {
name: String
caption: String
value: String
}
@SerializeJson
@Pascal->Kotlin
@PascalClass
class FormSelect: FormInput {
optionCaptions: String[]
optionValues: String[]
}
@SerializeJson
@Pascal->Kotlin
@PascalClass
class FormParams: FastInterfacedObject {
inputs: FormInput[]
}
@Pascal->Kotlin
class VersionInfo {
version: String
platform: String
buildId: String
}
//Classes to store user configuration options
@SerializeJson
@KotlinVar
@KotlinDataClass
@Pascal<->Kotlin
@PascalClass
class BookListDisplayOptions {
showHistory: Boolean
noBorrowedBookDetails: Boolean
showRenewCount: Boolean = true
groupingKey: String = "_dueWeek"
sortingKey: String = "dueDate"
filterKey: String
alwaysFilterOnHistory: Boolean = true
}
@SerializeJson
@KotlinVar
@Pascal<->Kotlin
@PascalClass
class NotificationConfig {
enabled: Boolean = true
serviceDelay: Int = 15
lastTime: Long
lastTitle: String
lastText: String
lastAskedForPermission: Int
}
@SerializeJson
@KotlinVar
@Pascal<->Kotlin
@PascalClass
class OptionsAndroidOnly {
logging: Boolean
bookListDisplayOptions: BookListDisplayOptions
filterHistory: String[]
importExportFileName: String
additionalCertificatesBase64: String[]
notifications: NotificationConfig
hasBeenStartedAtLeastOnce: Boolean
accountCountBackup: Int = -1
}
@SerializeJson
@KotlinVar
@Pascal<->Kotlin
@PascalClass
class OptionsShared {
nearTime: Int
refreshInterval: Int
userLibIds: String[]
}
@Pascal<->Kotlin
@PascalPrefix(eif)
enum ImportExportFlag {
Current = 1
History = 2
Config = 4
Password = 8
}
@Pascal<->Kotlin
@KotlinVar
class ImportExportData {
accountsToImport: String[]
flags: Int
//nativePtr is a very large object which must be destroyed with a call to VLImportAccounts
nativePtr: Long
}
//Classes to represent metadata of a library
@Pascal<->Kotlin
@PascalPrefix(ti)
enum LibraryTestingInfo {
Unknown
Yes
No
Broken
}
@PascalClass
@Pascal<->Kotlin
class LibraryVariable {
name: String
value: String
}
@PascalClass
@Pascal<->Kotlin
@KotlinVar
class LibraryDetails {
id: String
prettyName: String
prettyNameShort: String
fhomepageUrl: String
fcatalogueUrl: String
fcatalogueUrlFromTemplate: String
tableComment: String
accountComment: String
templateId: String
variables: LibraryVariable[]
segregatedAccounts: Boolean
email: String
testingSearch: LibraryTestingInfo
testingAccount: LibraryTestingInfo
}
//Information about a supported library system
@Pascal->Kotlin
class TemplateDetails {
description: String
variablesNames: String[]
variablesDescription: String[]
variablesDefault: String[]
}
//Book information
@Pascal<->Kotlin
@PascalPrefix(bs)
enum BookStatus {
Unknown = 0
Problematic = 5
Normal = 6
Ordered = 8
Provided = 9
Reserved = 10
Available = 100
Lend = 101
Virtual = 102
Presentation = 103
InterLoan = 104
}
//Error handling
@Pascal<->Kotlin
@PascalPrefix(ek)
enum PendingExceptionKind{
Unknown = 0
Internet = 1
Login = 2
}
@Pascal->Kotlin
class PendingException {
kind: PendingExceptionKind
accountPrettyNames: String
error: String
libraryIds: String
searchQuery: String
details: String
anonymousDetails: String
firstAccountUser: String
firstAccountLib: String
}
@Pascal->Kotlin
class PendingExceptions {
exceptions: PendingException[]
}
fun VLGetTemplateDetails(name: String): TemplateDetails
fun VLGetLibraryDetails(id: String, needCatalogUrl: Boolean): LibraryDetails
fun VLGetVersion(): VersionInfo
fun VLSetOptions(options: OptionsShared)
fun VLGetOptions(): OptionsShared
fun VLGetOptionsAndroidOnly(): OptionsAndroidOnly
fun VLSetOptionsAndroidOnly(options: OptionsAndroidOnly)
fun VLGetCoverURLs(ISBN: String, maxWidth: Int, maxHeight: Int ): String[]
fun VLTakePendingExceptions(): PendingExceptions