-
Notifications
You must be signed in to change notification settings - Fork 13
/
Server.java
144 lines (125 loc) · 5.42 KB
/
Server.java
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
package com.timecat.ui;
import com.timecat.component.locale.model.LangPackDifference;
import com.timecat.component.locale.model.LangPackLanguage;
import com.timecat.component.locale.model.LangPackString;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
/**
* @author 林学渊
* @email linxy59@mail2.sysu.edu.cn
* @date 2020/10/24
* @description 模仿服务器端
* @usage null
*/
public class Server {
public static ArrayList<LangPackString> englishStrings() {
ArrayList<LangPackString> list = new ArrayList<>();
list.add(new LangPackString("LanguageName", "English"));
list.add(new LangPackString("LanguageNameInEnglish", "English"));
list.add(new LangPackString("local_string", "remote string in english"));
list.add(new LangPackString("remote_string_only", "not existing locally, only existing remotely"));
return list;
}
public static ArrayList<LangPackString> chineseStrings() {
ArrayList<LangPackString> list = new ArrayList<>();
list.add(new LangPackString("LanguageName", "中文简体"));
list.add(new LangPackString("LanguageNameInEnglish", "Chinese"));
list.add(new LangPackString("local_string", "中文的云端字符串"));
list.add(new LangPackString("remote_string_only", "本地缺失,云端存在的字符串"));
return list;
}
public static ArrayList<LangPackString> frenchStrings() {
ArrayList<LangPackString> list = new ArrayList<>();
list.add(new LangPackString("LanguageName", "法语"));
list.add(new LangPackString("LanguageNameInEnglish", "French"));
list.add(new LangPackString("local_string", "法语的云端字符串"));
list.add(new LangPackString("remote_string_only", "法语的本地缺失,云端存在的字符串"));
return list;
}
public static LangPackDifference englishPackDifference() {
LangPackDifference difference = new LangPackDifference();
difference.lang_code = "en";
difference.from_version = 0;
difference.version = 1;
difference.strings = englishStrings();
return difference;
}
public static LangPackDifference frenchPackDifference() {
LangPackDifference difference = new LangPackDifference();
difference.lang_code = "fr";
difference.from_version = 0;
difference.version = 1;
difference.strings = frenchStrings();
return difference;
}
public static LangPackDifference chinesePackDifference() {
LangPackDifference difference = new LangPackDifference();
difference.lang_code = "zh";
difference.from_version = 0;
difference.version = 1;
difference.strings = chineseStrings();
return difference;
}
public static LangPackLanguage chineseLanguage() {
LangPackLanguage langPackLanguage = new LangPackLanguage();
langPackLanguage.name = "chinese";
langPackLanguage.native_name = "简体中文";
langPackLanguage.lang_code = "zh";
langPackLanguage.base_lang_code = "zh";
return langPackLanguage;
}
public static LangPackLanguage frenchLanguage() {
LangPackLanguage langPackLanguage = new LangPackLanguage();
langPackLanguage.name = "french";
langPackLanguage.native_name = "French";
langPackLanguage.lang_code = "fr";
langPackLanguage.base_lang_code = "fr";
return langPackLanguage;
}
public static LangPackLanguage englishLanguage() {
LangPackLanguage langPackLanguage = new LangPackLanguage();
langPackLanguage.name = "english";
langPackLanguage.native_name = "English";
langPackLanguage.lang_code = "en";
langPackLanguage.base_lang_code = "en";
return langPackLanguage;
}
public static List<LangPackLanguage> available() {
List<LangPackLanguage> langPackLanguages = new ArrayList<>();
langPackLanguages.add(englishLanguage());
langPackLanguages.add(chineseLanguage());
langPackLanguages.add(frenchLanguage());
return langPackLanguages;
}
public static void request_langpack_getDifference(String lang_pack, String lang_code, int from_version, @NonNull final GetDifferenceCallback callback) {
if ("zh".equals(lang_code)) {
callback.onNext(chinesePackDifference());
} else if ("en".equals(lang_code)) {
callback.onNext(englishPackDifference());
} else if ("fr".equals(lang_code)) {
callback.onNext(frenchPackDifference());
}
}
public static void request_langpack_getLanguages(@NonNull GetLanguagesCallback callback) {
callback.onNext(available());
}
public static void request_langpack_getLangPack(String lang_code, @NonNull GetLangPackCallback callback) {
if ("zh".equals(lang_code)) {
callback.onNext(chinesePackDifference());
} else if ("en".equals(lang_code)) {
callback.onNext(englishPackDifference());
} else if ("fr".equals(lang_code)) {
callback.onNext(frenchPackDifference());
}
}
public interface GetDifferenceCallback {
void onNext(final LangPackDifference difference);
}
public interface GetLanguagesCallback {
void onNext(final List<LangPackLanguage> languageList);
}
public interface GetLangPackCallback {
void onNext(final LangPackDifference difference);
}
}