@@ -16,17 +16,23 @@ object OpenCCDictManager {
16
16
System .loadLibrary(" rime_jni" )
17
17
}
18
18
19
- private val openccDictDir = File (
20
- DataManager .getDataDir(" opencc" )
21
- ).also { it.mkdirs() }
19
+ val sharedDir = File (DataManager .sharedDataDir, " opencc" ).also { it.mkdirs() }
20
+ val userDir = File (DataManager .userDataDir, " opencc" ).also { it.mkdirs() }
22
21
23
- fun dictionaries (): List <Dictionary > = openccDictDir
22
+ fun sharedDictionaries (): List <Dictionary > = sharedDir
24
23
.listFiles()
25
- ?.mapNotNull { Dictionary .new(it) }
26
- ?.toList() ? : listOf ()
24
+ ?.mapNotNull { Dictionary .new(it) } ? : listOf ()
27
25
28
- fun openccDictionaries (): List <OpenCCDictionary > =
29
- dictionaries().mapNotNull { it as ? OpenCCDictionary }
26
+ fun userDictionaries (): List <Dictionary > = userDir
27
+ .listFiles()
28
+ ?.mapNotNull { Dictionary .new(it) } ? : listOf ()
29
+
30
+ fun getAllDictionaries (): List <Dictionary > =
31
+ if (sharedDir.path == userDir.path) userDictionaries()
32
+ else (sharedDictionaries() + userDictionaries())
33
+
34
+ fun openCCDictionaries (): List <OpenCCDictionary > =
35
+ getAllDictionaries().mapNotNull { it as ? OpenCCDictionary }
30
36
31
37
fun importFromFile (file : File ): OpenCCDictionary {
32
38
val raw = Dictionary .new(file)
@@ -35,7 +41,7 @@ object OpenCCDictManager {
35
41
// preserve original file name
36
42
val new = raw.toOpenCCDictionary(
37
43
File (
38
- openccDictDir ,
44
+ userDir ,
39
45
file.nameWithoutExtension + " .${Dictionary .Type .OPENCC .ext} "
40
46
)
41
47
)
@@ -47,8 +53,8 @@ object OpenCCDictManager {
47
53
* Convert internal text dict to opencc format
48
54
*/
49
55
@JvmStatic
50
- fun internalDeploy () {
51
- for (d in dictionaries ()) {
56
+ fun buildOpenCCDict () {
57
+ for (d in getAllDictionaries ()) {
52
58
if (d is TextDictionary ) {
53
59
val result: OpenCCDictionary
54
60
measureTimeMillis {
0 commit comments