forked from ankidroid/Anki-Android
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathImageOcclusion.kt
More file actions
70 lines (63 loc) · 2.88 KB
/
ImageOcclusion.kt
File metadata and controls
70 lines (63 loc) · 2.88 KB
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
/*
* Copyright (c) 2023 Abdo <abdo@abdnh.net>
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.ichi2.anki.pages
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.webkit.WebView
import com.ichi2.anki.R
import org.json.JSONObject
class ImageOcclusion : PageFragment() {
override val title = R.string.image_occlusion
override val pageName = "image-occlusion"
override lateinit var webViewClient: PageWebViewClient
override var webChromeClient = PageChromeClient()
override fun onCreate(savedInstanceState: Bundle?) {
val kind = arguments?.getString(ARG_KEY_KIND) ?: throw Exception("missing kind")
val id = arguments?.getLong(ARG_KEY_ID) ?: throw Exception("missing ID")
val path = arguments?.getString(ARG_KEY_PATH) ?: if (kind == "add") throw Exception("missing path") else ""
webViewClient = ImageOcclusionWebViewClient(kind, id, path)
super.onCreate(savedInstanceState)
}
class ImageOcclusionWebViewClient(val kind: String, private val noteOrNotetypeId: Long, private val path: String?) : PageWebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
val options = JSONObject()
options.put("kind", kind)
options.put("imagePath", path)
if (kind == "add") {
options.put("notetypeId", noteOrNotetypeId)
} else {
options.put("noteId", noteOrNotetypeId)
}
view!!.evaluateJavascript("anki.setupImageOcclusion($options);") {
super.onPageFinished(view, url)
}
}
}
companion object {
private const val ARG_KEY_KIND = "kind"
private const val ARG_KEY_ID = "id"
private const val ARG_KEY_PATH = "path"
fun getIntent(context: Context, kind: String, noteOrNotetypeId: Long, imagePath: String?): Intent {
val arguments = Bundle().apply {
putString(ARG_KEY_KIND, kind)
putLong(ARG_KEY_ID, noteOrNotetypeId)
putString(ARG_KEY_PATH, imagePath)
}
return PagesActivity.getIntent(context, ImageOcclusion::class, arguments)
}
}
}