| | | | |
| Offset 1, 14 lines modified | Offset 1, 10 lines modified |
| | |
| 1 | package·com.android.textclassifier.common; | 1 | package·com.android.textclassifier.common; |
| | |
| 2 | import·java.util.Iterator; | |
| 3 | import·android.provider.DeviceConfig$Properties; | |
| 4 | import·android.text.TextUtils; | |
| 5 | import·com.google.common.collect.ImmutableList$Builder; | |
| 6 | import·com.google.common.base.Splitter; | 2 | import·com.google.common.base.Splitter; |
| 7 | import·com.android.textclassifier.utils.IndentingPrintWriter; | 3 | import·com.android.textclassifier.utils.IndentingPrintWriter; |
| 8 | import·java.util.Collections; | 4 | import·java.util.Collections; |
| 9 | import·java.util.Arrays; | 5 | import·java.util.Arrays; |
| 10 | import·java.util.List; | 6 | import·java.util.List; |
| 11 | import·java.util.concurrent.TimeUnit; | 7 | import·java.util.concurrent.TimeUnit; |
| 12 | import·com.google.common.collect.ImmutableList; | 8 | import·com.google.common.collect.ImmutableList; |
| Offset 18, 29 lines modified | Offset 14, 26 lines modified |
| 18 | ····private·static·final·ImmutableList·CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; | 14 | ····private·static·final·ImmutableList·CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; |
| 19 | ····private·static·final·TextClassifierSettings$IDeviceConfig·DEFAULT_DEVICE_CONFIG; | 15 | ····private·static·final·TextClassifierSettings$IDeviceConfig·DEFAULT_DEVICE_CONFIG; |
| 20 | ····static·final·String·ENTITY_LIST_DEFAULT·=·"entity_list_default"; | 16 | ····static·final·String·ENTITY_LIST_DEFAULT·=·"entity_list_default"; |
| 21 | ····private·static·final·ImmutableList·ENTITY_LIST_DEFAULT_VALUE; | 17 | ····private·static·final·ImmutableList·ENTITY_LIST_DEFAULT_VALUE; |
| 22 | ····static·final·String·LANG_ID_CONTEXT_SETTINGS·=·"lang_id_context_settings"; | 18 | ····static·final·String·LANG_ID_CONTEXT_SETTINGS·=·"lang_id_context_settings"; |
| 23 | ····private·static·final·float[]·LANG_ID_CONTEXT_SETTINGS_DEFAULT; | 19 | ····private·static·final·float[]·LANG_ID_CONTEXT_SETTINGS_DEFAULT; |
| 24 | ····static·final·String·LANG_ID_THRESHOLD_OVERRIDE·=·"lang_id_threshold_override"; | 20 | ····static·final·String·LANG_ID_THRESHOLD_OVERRIDE·=·"lang_id_threshold_override"; |
| 25 | ····public·static·final·String·MANIFEST_DOWNLOAD_MAX_ATTEMPTS·=·"manifest_download_max_attempts"; | |
| 26 | ····public·static·final·String·MANIFEST_URL_TEMPLATE·=·"manifest_url_%s_%s"; | 21 | ····public·static·final·String·MANIFEST_URL_TEMPLATE·=·"manifest_url_%s_%s"; |
| 27 | ····static·final·String·MODEL_DOWNLOAD_BACKOFF_DELAY_IN_MILLIS·=·"model_download_backoff_delay_in_millis"; | 22 | ····static·final·String·MODEL_DOWNLOAD_BACKOFF_DELAY_IN_MILLIS·=·"model_download_backoff_delay_in_millis"; |
| 28 | ····private·static·final·long·MODEL_DOWNLOAD_BACKOFF_DELAY_IN_MILLIS_DEFAULT·=·0L; | |
| 29 | ····public·static·final·String·MODEL_DOWNLOAD_MANAGER_ENABLED·=·"model_download_manager_enabled"; | 23 | ····public·static·final·String·MODEL_DOWNLOAD_MANAGER_ENABLED·=·"model_download_manager_enabled"; |
| 30 | ····static·final·String·MODEL_DOWNLOAD_WORKER_MAX_ATTEMPTS·=·"model_download_worker_max_attempts"; | 24 | ····static·final·String·MODEL_DOWNLOAD_MAX_ATTEMPTS·=·"model_download_max_attempts"; |
| 31 | ····public·static·final·String·MODEL_URL_BLOCKLIST·=·"model_url_blocklist"; | |
| 32 | ····public·static·final·String·MODEL_URL_BLOCKLIST_SEPARATOR·=·","; | |
| 33 | ····static·final·String·SUGGEST_SELECTION_MAX_RANGE_LENGTH·=·"suggest_selection_max_range_length"; | 25 | ····static·final·String·SUGGEST_SELECTION_MAX_RANGE_LENGTH·=·"suggest_selection_max_range_length"; |
| 34 | ····static·final·String·TEMPLATE_INTENT_FACTORY_ENABLED·=·"template_intent_factory_enabled"; | 26 | ····static·final·String·TEMPLATE_INTENT_FACTORY_ENABLED·=·"template_intent_factory_enabled"; |
| 35 | ····private·final·TextClassifierSettings$IDeviceConfig·deviceConfig; | 27 | ····private·final·TextClassifierSettings$IDeviceConfig·deviceConfig; |
| 36 | ···· | 28 | ···· |
| 37 | ····static·{ | 29 | ····static·{ |
| 38 | ········ENTITY_LIST_DEFAULT_VALUE·=·ImmutableList.of((Object)"address",·(Object)"email",·(Object)"phone",·(Object)"url",·(Object)"date",·(Object)"datetime",·(Object)"flight"); | 30 | ········ENTITY_LIST_DEFAULT_VALUE·=·ImmutableList.of((Object)"address",·(Object)"email",·(Object)"phone",·(Object)"url",·(Object)"date",·(Object)"datetime",·(Object)"flight"); |
| 39 | ········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"); | 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"); |
| | 32 | ········TimeUnit.HOURS.toMillis(1L); |
| 40 | ········final·float[]·array; | 33 | ········final·float[]·array; |
| 41 | ········final·float[]·lang_ID_CONTEXT_SETTINGS_DEFAULT·=·array·=·new·float[3]; | 34 | ········final·float[]·lang_ID_CONTEXT_SETTINGS_DEFAULT·=·array·=·new·float[3]; |
| 42 | ········array[0]·=·20.0f; | 35 | ········array[0]·=·20.0f; |
| 43 | ········array[1]·=·1.0f; | 36 | ········array[1]·=·1.0f; |
| 44 | ········array[2]·=·0.4f; | 37 | ········array[2]·=·0.4f; |
| 45 | ········LANG_ID_CONTEXT_SETTINGS_DEFAULT·=·lang_ID_CONTEXT_SETTINGS_DEFAULT; | 38 | ········LANG_ID_CONTEXT_SETTINGS_DEFAULT·=·lang_ID_CONTEXT_SETTINGS_DEFAULT; |
| 46 | ········DEFAULT_DEVICE_CONFIG·=·(TextClassifierSettings$IDeviceConfig)new·TextClassifierSettings$1(); | 39 | ········DEFAULT_DEVICE_CONFIG·=·(TextClassifierSettings$IDeviceConfig)new·TextClassifierSettings$1(); |
| Offset 87, 28 lines modified | Offset 80, 28 lines modified |
| 87 | ········final·ImmutableList·conversation_ACTIONS_TYPES_DEFAULT_VALUES·=·TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; | 80 | ········final·ImmutableList·conversation_ACTIONS_TYPES_DEFAULT_VALUES·=·TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES; |
| 88 | ········final·String·s7·=·"in_app_conversation_action_types_default"; | 81 | ········final·String·s7·=·"in_app_conversation_action_types_default"; |
| 89 | ········indentingPrintWriter.printPair(s7,·(Object)this.getDeviceConfigStringList(s7,·(List)conversation_ACTIONS_TYPES_DEFAULT_VALUES)); | 82 | ········indentingPrintWriter.printPair(s7,·(Object)this.getDeviceConfigStringList(s7,·(List)conversation_ACTIONS_TYPES_DEFAULT_VALUES)); |
| 90 | ········Object·a·=·TextClassifierSettings.LANG_ID_CONTEXT_SETTINGS_DEFAULT; | 83 | ········Object·a·=·TextClassifierSettings.LANG_ID_CONTEXT_SETTINGS_DEFAULT; |
| 91 | ········final·TextClassifierSettings$IDeviceConfig·deviceConfig4·=·this.deviceConfig; | 84 | ········final·TextClassifierSettings$IDeviceConfig·deviceConfig4·=·this.deviceConfig; |
| 92 | ········String·s8·=·"lang_id_context_settings"; | 85 | ········String·s8·=·"lang_id_context_settings"; |
| 93 | ········final·String·string·=·deviceConfig4.getString(s,·s8,·(String)null); | 86 | ········final·String·string·=·deviceConfig4.getString(s,·s8,·(String)null); |
| 94 | ········Label_0370:·{ | 87 | ········Label_0376:·{ |
| 95 | ············if·(string·==·null)·{ | 88 | ············if·(string·==·null)·{ |
| 96 | ················break·Label_0370; | 89 | ················break·Label_0376; |
| 97 | ············} | 90 | ············} |
| 98 | ············final·List·splitToList·=·Splitter.onPattern(":").splitToList((CharSequence)string); | 91 | ············final·List·splitToList·=·Splitter.onPattern(":").splitToList((CharSequence)string); |
| 99 | ············if·(splitToList.size()·!=·((TextClassifierSettings$IDeviceConfig)a).length)·{ | 92 | ············if·(splitToList.size()·!=·((TextClassifierSettings$IDeviceConfig)a).length)·{ |
| 100 | ················break·Label_0370; | 93 | ················break·Label_0376; |
| 101 | ············} | 94 | ············} |
| 102 | ············final·float[]·array·=·new·float[splitToList.size()]; | 95 | ············final·float[]·array·=·new·float[splitToList.size()]; |
| 103 | ············int·n2·=·0; | 96 | ············int·n2·=·0; |
| 104 | ············while·(true)·{ | 97 | ············while·(true)·{ |
| 105 | ················Label_0367:·{ | 98 | ················Label_0373:·{ |
| 106 | ····················if·(n2·>=·splitToList.size())·{ | 99 | ····················if·(n2·>=·splitToList.size())·{ |
| 107 | ························break·Label_0367; | 100 | ························break·Label_0373; |
| 108 | ····················} | 101 | ····················} |
| 109 | ····················final·List·list·=·splitToList; | 102 | ····················final·List·list·=·splitToList; |
| 110 | ····················try·{ | 103 | ····················try·{ |
| 111 | ························final·String·value·=·list.get(n2); | 104 | ························final·String·value·=·list.get(n2); |
| 112 | ························try·{ | 105 | ························try·{ |
| 113 | ····························final·String·s9·=·(String)value; | 106 | ····························final·String·s9·=·(String)value; |
| 114 | ····························try·{ | 107 | ····························try·{ |
| Offset 143, 35 lines modified | Offset 136, 23 lines modified |
| 143 | ································a·=·((TextClassifierSettings)o).deviceConfig; | 136 | ································a·=·((TextClassifierSettings)o).deviceConfig; |
| 144 | ································final·String·s13·=·"translate_in_classification_enabled"; | 137 | ································final·String·s13·=·"translate_in_classification_enabled"; |
| 145 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getBoolean(s,·s13,·(boolean)(n·!=·0)); | 138 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getBoolean(s,·s13,·(boolean)(n·!=·0)); |
| 146 | ································indentingPrintWriter.printPair(s13,·a); | 139 | ································indentingPrintWriter.printPair(s13,·a); |
| 147 | ································a·=·((TextClassifierSettings)o).isModelDownloadManagerEnabled(); | 140 | ································a·=·((TextClassifierSettings)o).isModelDownloadManagerEnabled(); |
| 148 | ································indentingPrintWriter.printPair("model_download_manager_enabled",·a); | 141 | ································indentingPrintWriter.printPair("model_download_manager_enabled",·a); |
| 149 | ································a·=·((TextClassifierSettings)o).deviceConfig; | 142 | ································a·=·((TextClassifierSettings)o).deviceConfig; |
| 150 | ································final·String·s14·=·"model_download_worker_max_attempts"; | 143 | ································final·String·s14·=·"model_download_max_attempts"; |
| 151 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getInt(s,·s14,·5); | 144 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getInt(s,·s14,·5); |
| 152 | ································indentingPrintWriter.printPair(s14,·a); | 145 | ································indentingPrintWriter.printPair(s14,·a); |
| 153 | ································a·=·((TextClassifierSettings)o).deviceConfig; | |
| 154 | ································final·String·s15·=·"manifest_download_max_attempts"; | |
| 155 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getInt(s,·s15,·3); | |
| 156 | ································indentingPrintWriter.printPair(s15,·a); | |
| 157 | ································a·=·((TextClassifierSettings)o).deviceConfig; | |
| 158 | ································final·String·s16·=·"manifest_download_requires_charging"; | |
| 159 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getBoolean(s,·s16,·false); | |
| 160 | ································indentingPrintWriter.printPair(s16,·a); | |
| 161 | ································a·=·((TextClassifierSettings)o).deviceConfig; | |
| 162 | ································final·String·s17·=·"manifest_download_requires_device_idle"; | |
| 163 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getBoolean(s,·s17,·false); | |
| 164 | ································indentingPrintWriter.printPair(s17,·a); | |
| 165 | ································indentingPrintWriter.decreaseIndent(); | 146 | ································indentingPrintWriter.decreaseIndent(); |
| 166 | ································a·=·((TextClassifierSettings)o).deviceConfig; | 147 | ································a·=·((TextClassifierSettings)o).deviceConfig; |
| 167 | ································final·String·s18·=·"textclassifier_api_log_sample_rate"; | 148 | ································final·String·s15·=·"textclassifier_api_log_sample_rate"; |
| 168 | ································n·=·10; | 149 | ································n·=·10; |
| 169 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getInt(s,·s18,·n); | 150 | ································a·=·((TextClassifierSettings$IDeviceConfig)a).getInt(s,·s15,·n); |
| 170 | ································indentingPrintWriter.printPair(s18,·a); | 151 | ································indentingPrintWriter.printPair(s15,·a); |
| 171 | ································o·=·((TextClassifierSettings)o).deviceConfig; | 152 | ································o·=·((TextClassifierSettings)o).deviceConfig; |
| 172 | ································a·=·"session_id_to_context_cache_size"; | 153 | ································a·=·"session_id_to_context_cache_size"; |
| 173 | ································o·=·((TextClassifierSettings$IDeviceConfig)o).getInt(s,·(String)a,·n); | 154 | ································o·=·((TextClassifierSettings$IDeviceConfig)o).getInt(s,·(String)a,·n); |
| 174 | ································indentingPrintWriter.printPair((String)a,·o); | 155 | ································indentingPrintWriter.printPair((String)a,·o); |
| 175 | ································indentingPrintWriter.decreaseIndent(); | 156 | ································indentingPrintWriter.decreaseIndent(); |
| 176 | ································return; | 157 | ································return; |
| 177 | ································a·=·array; | 158 | ································a·=·array; |
| Offset 215, 64 lines modified | Offset 196, 14 lines modified |
| 215 | ········return·this.getDeviceConfigStringList("in_app_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); | 196 | ········return·this.getDeviceConfigStringList("in_app_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); |
| 216 | ····} | 197 | ····} |
| 217 | ···· | 198 | ···· |
| 218 | ····public·float·getLangIdThresholdOverride()·{ | 199 | ····public·float·getLangIdThresholdOverride()·{ |
| 219 | ········return·this.deviceConfig.getFloat("textclassifier",·"lang_id_threshold_override",·-1.0f); | 200 | ········return·this.deviceConfig.getFloat("textclassifier",·"lang_id_threshold_override",·-1.0f); |
| 220 | ····} | 201 | ····} |
| 221 | ···· | 202 | ···· |
| 222 | ····public·ImmutableList·getLanguageTagsForManifestURL(String·format)·{ | |
| 223 | ········format·=·String.format("manifest_url_%s_%s",·format,·""); | |
| 224 | ········final·DeviceConfig$Properties·properties·=·this.deviceConfig.getProperties("textclassifier",·new·String[0]); | |
| 225 | ········final·int·$r8$clinit·=·ImmutableList.$r8$clinit; | |
| 226 | ········final·ImmutableList$Builder·immutableList$Builder·=·new·ImmutableList$Builder(); | |
| 227 | ········for·(final·String·s·:·properties.getKeyset())·{ | |
| 228 | ············if·(!s.startsWith(format))·{ | |
| 229 | ················continue; | |
| 230 | ············} | |
| 231 | ············if·(TextUtils.isEmpty((CharSequence)properties.getString(s,·(String)null)))·{ | |
| 232 | ················continue; | |
| 233 | ············} | |
| 234 | ············immutableList$Builder.add((Object)s.substring(format.length())); | |
| 235 | ········} | |
| 236 | ········return·immutableList$Builder.build(); | |
| 237 | ····} | |
| 238 | ···· | |
| 239 | ····public·int·getManifestDownloadMaxAttempts()·{ | |
| 240 | ········return·this.deviceConfig.getInt("textclassifier",·"manifest_download_max_attempts",·3); | |
| 241 | ····} | |
| 242 | ···· | |
| 243 | ····public·String·getManifestDownloadRequiredNetworkType()·{ | |
| 244 | ········return·this.deviceConfig.getString("textclassifier",·"manifest_download_required_network_type",·"UNMETERED"); | |
| 245 | ····} | |
| 246 | ···· | |
| 247 | ····public·boolean·getManifestDownloadRequiresCharging()·{ | |
| 248 | ········return·this.deviceConfig.getBoolean("textclassifier",·"manifest_download_requires_charging",·false); | |
| 249 | ····} | |
| 250 | ···· | |
| 251 | ····public·boolean·getManifestDownloadRequiresDeviceIdle()·{ | |
| 252 | ········return·this.deviceConfig.getBoolean("textclassifier",·"manifest_download_requires_device_idle",·false); | |
| 253 | ····} | |
| 254 | ···· | |
| 255 | ····public·String·getManifestURL(String·format,·final·String·s)·{ | |
| 256 | ········format·=·String.format("manifest_url_%s_%s",·format,·s); | |
| 257 | ········return·this.deviceConfig.getString("textclassifier",·format,·""); | |
| 258 | ····} | |
| 259 | ···· | |
| 260 | ····public·long·getModelDownloadBackoffDelayInMillis()·{ | |
| 261 | ········return·this.deviceConfig.getLong("textclassifier",·"model_download_backoff_delay_in_millis",·TextClassifierSettings.MODEL_DOWNLOAD_BACKOFF_DELAY_IN_MILLIS_DEFAULT); | |
| 262 | ····} | |
| 263 | ···· | |
| 264 | ····public·int·getModelDownloadWorkerMaxAttempts()·{ | |
| 265 | ········return·this.deviceConfig.getInt("textclassifier",·"model_download_worker_max_attempts",·5); | |
| 266 | ····} | |
| 267 | ···· | |
| 268 | ····public·ImmutableList·getModelUrlBlocklist()·{ | |
| 269 | ········return·ImmutableList.copyOf(Splitter.on(",").split((CharSequence)this.deviceConfig.getString("textclassifier",·"model_url_blocklist",·""))); | |
| 270 | ····} | |
| 271 | ···· | |
| 272 | ····public·List·getNotificationConversationActionTypes()·{ | 203 | ····public·List·getNotificationConversationActionTypes()·{ |
| 273 | ········return·this.getDeviceConfigStringList("notification_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); | 204 | ········return·this.getDeviceConfigStringList("notification_conversation_action_types_default",·(List)TextClassifierSettings.CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES); |
| 274 | ····} | 205 | ····} |
| 275 | ···· | 206 | ···· |
| 276 | ····public·int·getSessionIdToContextCacheSize()·{ | 207 | ····public·int·getSessionIdToContextCacheSize()·{ |
| 277 | ········return·this.deviceConfig.getInt("textclassifier",·"session_id_to_context_cache_size",·10); | 208 | ········return·this.deviceConfig.getInt("textclassifier",·"session_id_to_context_cache_size",·10); |
| 278 | ····} | 209 | ····} |