| | | |
Offset 2, 62 lines modified | Offset 2, 45 lines modified |
2 | package·com.android.textclassifier; | 2 | package·com.android.textclassifier; |
| |
3 | import·com.android.textclassifier.utils.IndentingPrintWriter; | 3 | import·com.android.textclassifier.utils.IndentingPrintWriter; |
4 | import·com.google.common.base.Splitter; | 4 | import·com.google.common.base.Splitter; |
5 | import·java.util.Collections; | 5 | import·java.util.Collections; |
6 | import·java.util.Arrays; | 6 | import·java.util.Arrays; |
7 | import·java.util.List; | 7 | import·java.util.List; |
| 8 | import·android.provider.DeviceConfig; |
8 | import·com.google.common.collect.ImmutableList; | 9 | import·com.google.common.collect.ImmutableList; |
| |
9 | public·final·class·TextClassifierSettings | 10 | public·final·class·TextClassifierSettings |
10 | { | 11 | { |
11 | ····static·final·String·ACTIONS_SUGGESTIONS_URL_PREFIX·=·"actions_suggestions_url_prefix"; | |
12 | ····static·final·String·ANNOTATOR_URL_PREFIX·=·"annotator_url_prefix"; | |
13 | ····private·static·final·ImmutableList·CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; | 12 | ····private·static·final·ImmutableList·CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; |
14 | ····private·static·final·TextClassifierSettings$IDeviceConfig·DEFAULT_DEVICE_CONFIG; | |
15 | ····static·final·String·ENTITY_LIST_DEFAULT·=·"entity_list_default"; | 13 | ····static·final·String·ENTITY_LIST_DEFAULT·=·"entity_list_default"; |
16 | ····private·static·final·ImmutableList·ENTITY_LIST_DEFAULT_VALUE; | 14 | ····private·static·final·ImmutableList·ENTITY_LIST_DEFAULT_VALUE; |
17 | ····static·final·String·LANG_ID_CONTEXT_SETTINGS·=·"lang_id_context_settings"; | 15 | ····static·final·String·LANG_ID_CONTEXT_SETTINGS·=·"lang_id_context_settings"; |
18 | ····private·static·final·float[]·LANG_ID_CONTEXT_SETTINGS_DEFAULT; | 16 | ····private·static·final·float[]·LANG_ID_CONTEXT_SETTINGS_DEFAULT; |
19 | ····static·final·String·LANG_ID_THRESHOLD_OVERRIDE·=·"lang_id_threshold_override"; | 17 | ····static·final·String·LANG_ID_THRESHOLD_OVERRIDE·=·"lang_id_threshold_override"; |
20 | ····static·final·String·LANG_ID_URL_PREFIX·=·"lang_id_url_prefix"; | |
21 | ····static·final·String·MODEL_DOWNLOAD_MANAGER_ENABLED·=·"model_download_manager_enabled"; | |
22 | ····static·final·String·PRIMARY_ACTIONS_SUGGESTIONS_URL_SUFFIX·=·"primary_actions_suggestions_url_suffix"; | |
23 | ····static·final·String·PRIMARY_ANNOTATOR_URL_SUFFIX·=·"primary_annotator_url_suffix"; | |
24 | ····static·final·String·PRIMARY_LANG_ID_URL_SUFFIX·=·"primary_lang_id_url_suffix"; | |
25 | ····static·final·String·SUGGEST_SELECTION_MAX_RANGE_LENGTH·=·"suggest_selection_max_range_length"; | 18 | ····static·final·String·SUGGEST_SELECTION_MAX_RANGE_LENGTH·=·"suggest_selection_max_range_length"; |
26 | ····static·final·String·TEMPLATE_INTENT_FACTORY_ENABLED·=·"template_intent_factory_enabled"; | 19 | ····static·final·String·TEMPLATE_INTENT_FACTORY_ENABLED·=·"template_intent_factory_enabled"; |
27 | ····private·final·TextClassifierSettings$IDeviceConfig·deviceConfig; | |
28 | ···· | 20 | ···· |
29 | ····static·{ | 21 | ····static·{ |
30 | ········ENTITY_LIST_DEFAULT_VALUE·=·ImmutableList.of((Object)"address",·(Object)"email",·(Object)"phone",·(Object)"url",·(Object)"date",·(Object)"datetime",·(Object)"flight"); | 22 | ········ENTITY_LIST_DEFAULT_VALUE·=·ImmutableList.of((Object)"address",·(Object)"email",·(Object)"phone",·(Object)"url",·(Object)"date",·(Object)"datetime",·(Object)"flight"); |
31 | ········CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES·=·ImmutableList.of((Object)"text_reply",·(Object)"create_reminder",·(Object)"call_phone",·(Object)"open_url",·(Object)"send_email",·(Object)"send_sms",·(Object)"track_flight",·(Object)"view_calendar",·(Object)"view_map",·(Object)"add_contact",·(Object)"copy"); | 23 | ········CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES·=·ImmutableList.of((Object)"text_reply",·(Object)"create_reminder",·(Object)"call_phone",·(Object)"open_url",·(Object)"send_email",·(Object)"send_sms",·(Object)"track_flight",·(Object)"view_calendar",·(Object)"view_map",·(Object)"add_contact",·(Object)"copy"); |
32 | ········final·float[]·array; | 24 | ········final·float[]·array; |
33 | ········final·float[]·lang_ID_CONTEXT_SETTINGS_DEFAULT·=·array·=·new·float[3]; | 25 | ········final·float[]·lang_ID_CONTEXT_SETTINGS_DEFAULT·=·array·=·new·float[3]; |
34 | ········array[0]·=·20.0f; | 26 | ········array[0]·=·20.0f; |
35 | ········array[1]·=·1.0f; | 27 | ········array[1]·=·1.0f; |
36 | ········array[2]·=·0.4f; | 28 | ········array[2]·=·0.4f; |
37 | ········LANG_ID_CONTEXT_SETTINGS_DEFAULT·=·lang_ID_CONTEXT_SETTINGS_DEFAULT; | 29 | ········LANG_ID_CONTEXT_SETTINGS_DEFAULT·=·lang_ID_CONTEXT_SETTINGS_DEFAULT; |
38 | ········DEFAULT_DEVICE_CONFIG·=·(TextClassifierSettings$IDeviceConfig)new·TextClassifierSettings$1(); | |
39 | ····} | 30 | ····} |
40 | ···· | 31 | ···· |
41 | ····public·TextClassifierSettings()·{ | 32 | ····private·static·float[]·getDeviceConfigFloatArray(final·String·s,·final·float[]·array)·{ |
42 | ········this(TextClassifierSettings.DEFAULT_DEVICE_CONFIG); | 33 | ········return·parse(DeviceConfig.getString("textclassifier",·s,·(String)null),·array); |
43 | ····} | 34 | ····} |
44 | ···· | 35 | ···· |
45 | ····TextClassifierSettings(final·TextClassifierSettings$IDeviceConfig·deviceConfig)·{ | 36 | ····private·static·List·getDeviceConfigStringList(final·String·s,·final·List·list)·{ |
46 | ········this.deviceConfig·=·deviceConfig; | 37 | ········return·parse(DeviceConfig.getString("textclassifier",·s,·(String)null),·list); |
47 | ····} | |
48 | ···· | |
49 | ····private·float[]·getDeviceConfigFloatArray(final·String·s,·final·float[]·array)·{ | |
50 | ········return·parse(this.deviceConfig.getString("textclassifier",·s,·(String)null),·array); | |
51 | ····} | |
52 | ···· | |
53 | ····private·List·getDeviceConfigStringList(final·String·s,·final·List·list)·{ | |
54 | ········return·parse(this.deviceConfig.getString("textclassifier",·s,·(String)null),·list); | |
55 | ····} | 38 | ····} |
56 | ···· | 39 | ···· |
57 | ····private·static·List·parse(final·String·s,·final·List·list)·{ | 40 | ····private·static·List·parse(final·String·s,·final·List·list)·{ |
58 | ········if·(s·!=·null)·{ | 41 | ········if·(s·!=·null)·{ |
59 | ············return·Collections.unmodifiableList((List<?>)Arrays.asList((T[])s.split(":"))); | 42 | ············return·Collections.unmodifiableList((List<?>)Arrays.asList((T[])s.split(":"))); |
60 | ········} | 43 | ········} |
61 | ········return·list; | 44 | ········return·list; |
Offset 110, 170 lines modified | Offset 93, 74 lines modified |
110 | ········indentingPrintWriter.printPair("lang_id_threshold_override",·(Object)this.getLangIdThresholdOverride()); | 93 | ········indentingPrintWriter.printPair("lang_id_threshold_override",·(Object)this.getLangIdThresholdOverride()); |
111 | ········indentingPrintWriter.printPair("translate_action_threshold",·(Object)this.getTranslateActionThreshold()); | 94 | ········indentingPrintWriter.printPair("translate_action_threshold",·(Object)this.getTranslateActionThreshold()); |
112 | ········indentingPrintWriter.printPair("notification_conversation_action_types_default",·(Object)this.getNotificationConversationActionTypes()); | 95 | ········indentingPrintWriter.printPair("notification_conversation_action_types_default",·(Object)this.getNotificationConversationActionTypes()); |
113 | ········indentingPrintWriter.printPair("suggest_selection_max_range_length",·(Object)this.getSuggestSelectionMaxRangeLength()); | 96 | ········indentingPrintWriter.printPair("suggest_selection_max_range_length",·(Object)this.getSuggestSelectionMaxRangeLength()); |
114 | ········indentingPrintWriter.printPair("user_language_profile_enabled",·(Object)this.isUserLanguageProfileEnabled()); | 97 | ········indentingPrintWriter.printPair("user_language_profile_enabled",·(Object)this.isUserLanguageProfileEnabled()); |
115 | ········indentingPrintWriter.printPair("template_intent_factory_enabled",·(Object)this.isTemplateIntentFactoryEnabled()); | 98 | ········indentingPrintWriter.printPair("template_intent_factory_enabled",·(Object)this.isTemplateIntentFactoryEnabled()); |
116 | ········indentingPrintWriter.printPair("translate_in_classification_enabled",·(Object)this.isTranslateInClassificationEnabled()); | 99 | ········indentingPrintWriter.printPair("translate_in_classification_enabled",·(Object)this.isTranslateInClassificationEnabled()); |
117 | ········indentingPrintWriter.printPair("model_download_manager_enabled",·(Object)this.isModelDownloadManagerEnabled()); | |
118 | ········final·String·s·=·"annotator"; | |
119 | ········indentingPrintWriter.printPair("annotator_url_prefix",·(Object)this.getModelURLPrefix(s)); | |
120 | ········final·String·s2·=·"lang_id"; | |
121 | ········indentingPrintWriter.printPair("lang_id_url_prefix",·(Object)this.getModelURLPrefix(s2)); | |
122 | ········final·String·s3·=·"actions_suggestions"; | |
123 | ········indentingPrintWriter.printPair("actions_suggestions_url_prefix",·(Object)this.getModelURLPrefix(s3)); | |
124 | ········indentingPrintWriter.decreaseIndent(); | |
125 | ········indentingPrintWriter.printPair("primary_annotator_url_suffix",·(Object)this.getPrimaryModelURLSuffix(s)); | |
126 | ········indentingPrintWriter.printPair("primary_lang_id_url_suffix",·(Object)this.getPrimaryModelURLSuffix(s2)); | |
127 | ········indentingPrintWriter.printPair("primary_actions_suggestions_url_suffix",·(Object)this.getPrimaryModelURLSuffix(s3)); | |
128 | ········indentingPrintWriter.decreaseIndent(); | 100 | ········indentingPrintWriter.decreaseIndent(); |
129 | ····} | 101 | ····} |
130 | ···· | 102 | ···· |
131 | ····public·int·getClassifyTextMaxRangeLength()·{ | 103 | ····public·int·getClassifyTextMaxRangeLength()·{ |
132 | ········return·this.deviceConfig.getInt("textclassifier",·"classify_text_max_range_length",·10000); | 104 | ········return·DeviceConfig.getInt("textclassifier",·"classify_text_max_range_length",·10000); |
133 | ····} | 105 | ····} |
134 | ···· | 106 | ···· |
135 | ····public·List·getEntityListDefault()·{ | 107 | ····public·List·getEntityListDefault()·{ |
136 | ········return·this.getDeviceConfigStringList("entity_list_default",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); | 108 | ········return·getDeviceConfigStringList("entity_list_default",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); |
137 | ····} | 109 | ····} |
138 | ···· | 110 | ···· |
139 | ····public·List·getEntityListEditable()·{ | 111 | ····public·List·getEntityListEditable()·{ |
140 | ········return·this.getDeviceConfigStringList("entity_list_editable",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); | 112 | ········return·getDeviceConfigStringList("entity_list_editable",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); |
141 | ····} | 113 | ····} |
142 | ···· | 114 | ···· |
143 | ····public·List·getEntityListNotEditable()·{ | 115 | ····public·List·getEntityListNotEditable()·{ |
144 | ········return·this.getDeviceConfigStringList("entity_list_not_editable",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); | 116 | ········return·getDeviceConfigStringList("entity_list_not_editable",·(List)TextClassifierSettings.ENTITY_LIST_DEFAULT_VALUE); |
145 | ····} | 117 | ····} |
146 | ···· | 118 | ···· |
147 | ····public·int·getGenerateLinksLogSampleRate()·{ | 119 | ····public·int·getGenerateLinksLogSampleRate()·{ |
148 | ········return·this.deviceConfig.getInt("textclassifier",·"generate_links_log_sample_rate",·100); | 120 | ········return·DeviceConfig.getInt("textclassifier",·"generate_links_log_sample_rate",·100); |
149 | ····} | 121 | ····} |
150 | ···· | 122 | ···· |
151 | ····public·int·getGenerateLinksMaxTextLength()·{ | 123 | ····public·int·getGenerateLinksMaxTextLength()·{ |
152 | ········return·this.deviceConfig.getInt("textclassifier",·"generate_links_max_text_length",·100000); | 124 | ········return·DeviceConfig.getInt("textclassifier",·"generate_links_max_text_length",·100000); |
153 | ····} | 125 | ····} |
154 | ···· | 126 | ···· |
155 | ····public·List·getInAppConversationActionTypes()·{ | 127 | ····public·List·getInAppConversationActionTypes()·{ |
156 | ········return·this.getDeviceConfigStringList("in_app_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); | 128 | ········return·getDeviceConfigStringList("in_app_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); |
157 | ····} | 129 | ····} |
158 | ···· | 130 | ···· |
159 | ····public·float[]·getLangIdContextSettings()·{ | 131 | ····public·float[]·getLangIdContextSettings()·{ |
160 | ········return·this.getDeviceConfigFloatArray("lang_id_context_settings",·TextClassifierSettings.LANG_ID_CONTEXT_SETTINGS_DEFAULT); | 132 | ········return·getDeviceConfigFloatArray("lang_id_context_settings",·TextClassifierSettings.LANG_ID_CONTEXT_SETTINGS_DEFAULT); |
161 | ····} | 133 | ····} |
162 | ···· | 134 | ···· |
163 | ····public·float·getLangIdThresholdOverride()·{ | 135 | ····public·float·getLangIdThresholdOverride()·{ |
164 | ········return·this.deviceConfig.getFloat("textclassifier",·"lang_id_threshold_override",·-1.0f); | 136 | ········return·DeviceConfig.getFloat("textclassifier",·"lang_id_threshold_override",·-1.0f); |
165 | ····} | |
166 | ···· | |
167 | ····public·String·getModelURLPrefix(final·String·s)·{ | |
168 | ········final·int·hashCode·=·s.hashCode(); | |
169 | ········final·int·n·=·-1408005459; | |
170 | ········final·int·n2·=·2; | |
171 | ········final·boolean·b·=·true; | |
172 | ········int·n3·=·0; | |
173 | ········Label_0120:·{ | |
174 | ············if·(hashCode·!=·n)·{ | |
175 | ················if·(hashCode·!=·-52072180)·{ | |
176 | ····················if·(hashCode·==·1335310812)·{ | |
177 | ························if·(s.equals("annotator"))·{ | |
178 | ····························n3·=·0; | |
179 | ····························break·Label_0120; | |
180 | ························} | |
181 | ····················} | |
182 | ················} | |
183 | ················else·if·(s.equals("lang_id"))·{ | |
184 | ····················n3·=·(b·?·1·:·0); | |
185 | ····················break·Label_0120; | |
186 | ················} | |
187 | ············} | |
188 | ············else·if·(s.equals("actions_suggestions"))·{ | |
189 | ················n3·=·n2; | |
190 | ················break·Label_0120; | |
191 | ············} | |
192 | ············n3·=·-1; | |
193 | ········} | |
194 | ········final·String·s2·=·"textclassifier"; | |
195 | ········if·(n3·==·0)·{ | |
196 | ············return·this.deviceConfig.getString(s2,·"annotator_url_prefix",·"https://www.gstatic.com/android/text_classifier/"); | |
197 | ········} | |
198 | ········if·(n3·==·(b·?·1·:·0))·{ | |
199 | ············return·this.deviceConfig.getString(s2,·"lang_id_url_prefix",·"https://www.gstatic.com/android/text_classifier/langid/"); | |
200 | ········} | |
201 | ········if·(n3·!=·n2)·{ | |
202 | ············return·""; | |
203 | ········} | |
204 | ········return·this.deviceConfig.getString(s2,·"actions_suggestions_url_prefix",·"https://www.gstatic.com/android/text_classifier/actions/"); | |
205 | ····} | 137 | ····} |
206 | ···· | 138 | ···· |
207 | ····public·List·getNotificationConversationActionTypes()·{ | 139 | ····public·List·getNotificationConversationActionTypes()·{ |
208 | ········return·this.getDeviceConfigStringList("notification_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); | 140 | ········return·getDeviceConfigStringList("notification_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); |
209 | ····} | |
210 | ···· | |
211 | ····public·String·getPrimaryModelURLSuffix(final·String·s)·{ | |
212 | ········final·int·hashCode·=·s.hashCode(); | |
213 | ········final·int·n·=·-1408005459; | |
214 | ········final·int·n2·=·2; | |
215 | ········final·boolean·b·=·true; | |
216 | ········int·n3·=·0; | |
217 | ········Label_0120:·{ | |
218 | ············if·(hashCode·!=·n)·{ | |
219 | ················if·(hashCode·!=·-52072180)·{ | |
220 | ····················if·(hashCode·==·1335310812)·{ | |
221 | ························if·(s.equals("annotator"))·{ | |
222 | ····························n3·=·0; | |
223 | ····························break·Label_0120; | |
224 | ························} | |
225 | ····················} | |
226 | ················} | |
227 | ················else·if·(s.equals("lang_id"))·{ | |
228 | ····················n3·=·(b·?·1·:·0); | |
229 | ····················break·Label_0120; | |
230 | ················} | |
231 | ············} | |
232 | ············else·if·(s.equals("actions_suggestions"))·{ | |
233 | ················n3·=·n2; | |
234 | ················break·Label_0120; | |
235 | ············} | |
236 | ············n3·=·-1; | |
237 | ········} | |
238 | ········final·String·s2·=·"textclassifier"; | |
239 | ········final·String·s3·=·""; | |
240 | ········if·(n3·==·0)·{ | |
241 | ············return·this.deviceConfig.getString(s2,·"primary_annotator_url_suffix",·s3); | |
242 | ········} | |
243 | ········if·(n3·==·(b·?·1·:·0))·{ | |
244 | ············return·this.deviceConfig.getString(s2,·"primary_lang_id_url_suffix",·s3); | |
245 | ········} | |
246 | ········if·(n3·!=·n2)·{ | |
247 | ············return·s3; | |
248 | ········} | |
249 | ········return·this.deviceConfig.getString(s2,·"primary_actions_suggestions_url_suffix",·s3); | |
250 | ····} | 141 | ····} |
251 | ···· | 142 | ···· |
252 | ····public·int·getSuggestSelectionMaxRangeLength()·{ | 143 | ····public·int·getSuggestSelectionMaxRangeLength()·{ |
253 | ········return·this.deviceConfig.getInt("textclassifier",·"suggest_selection_max_range_length",·10000); | 144 | ········return·DeviceConfig.getInt("textclassifier",·"suggest_selection_max_range_length",·10000); |
254 | ····} | 145 | ····} |
255 | ···· | 146 | ···· |
256 | ····public·float·getTranslateActionThreshold()·{ | 147 | ····public·float·getTranslateActionThreshold()·{ |
257 | ········return·this.deviceConfig.getFloat("textclassifier",·"translate_action_threshold",·0.5f); | 148 | ········return·DeviceConfig.getFloat("textclassifier",·"translate_action_threshold",·0.5f); |
258 | ····} | 149 | ····} |
259 | ···· | 150 | ···· |
260 | ····public·boolean·isDetectLanguagesFromTextEnabled()·{ | 151 | ····public·boolean·isDetectLanguagesFromTextEnabled()·{ |
261 | ········return·this.deviceConfig.getBoolean("textclassifier",·"detect_languages_from_text_enabled",·true); | 152 | ········return·DeviceConfig.getBoolean("textclassifier",·"detect_languages_from_text_enabled",·true); |
262 | ····} | |
263 | ···· | |
264 | ····public·boolean·isModelDownloadManagerEnabled()·{ | |
265 | ········return·this.deviceConfig.getBoolean("textclassifier",·"model_download_manager_enabled",·false); | |
266 | ····} | 153 | ····} |
267 | ···· | 154 | ···· |
268 | ····public·boolean·isTemplateIntentFactoryEnabled()·{ | 155 | ····public·boolean·isTemplateIntentFactoryEnabled()·{ |
269 | ········return·this.deviceConfig.getBoolean("textclassifier",·"template_intent_factory_enabled",·true); | 156 | ········return·DeviceConfig.getBoolean("textclassifier",·"template_intent_factory_enabled",·true); |
270 | ····} | 157 | ····} |
271 | ···· | 158 | ···· |
272 | ····public·boolean·isTranslateInClassificationEnabled()·{ | 159 | ····public·boolean·isTranslateInClassificationEnabled()·{ |
273 | ········return·this.deviceConfig.getBoolean("textclassifier",·"translate_in_classification_enabled",·true); | 160 | ········return·DeviceConfig.getBoolean("textclassifier",·"translate_in_classification_enabled",·true); |
274 | ····} | 161 | ····} |
275 | ···· | 162 | ···· |
276 | ····public·boolean·isUserLanguageProfileEnabled()·{ | 163 | ····public·boolean·isUserLanguageProfileEnabled()·{ |
277 | ········return·this.deviceConfig.getBoolean("textclassifier",·"user_language_profile_enabled",·true); | 164 | ········return·DeviceConfig.getBoolean("textclassifier",·"user_language_profile_enabled",·true); |
278 | ····} | 165 | ····} |
279 | } | 166 | } |