Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5859,6 +5859,7 @@ package android.provider { field public static final String NAMESPACE_NETD_NATIVE = "netd_native"; field public static final String NAMESPACE_RUNTIME_NATIVE_BOOT = "runtime_native_boot"; field public static final String NAMESPACE_SYSTEMUI = "systemui"; field public static final String NAMESPACE_TEXTCLASSIFIER = "textclassifier"; } public static interface DeviceConfig.AttentionManagerService { Loading core/java/android/provider/DeviceConfig.java +8 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,14 @@ public final class DeviceConfig { @SystemApi public static final String NAMESPACE_SYSTEMUI = "systemui"; /** * Namespace for TextClassifier related features. * * @hide */ @SystemApi public static final String NAMESPACE_TEXTCLASSIFIER = "textclassifier"; /** * Namespace for all runtime related features. * Loading core/java/android/provider/Settings.java +26 −16 Original line number Diff line number Diff line Loading @@ -11931,6 +11931,8 @@ public final class Settings { * entity_list_default (String[]) * entity_list_not_editable (String[]) * entity_list_editable (String[]) * in_app_conversation_action_types_default (String[]) * notification_conversation_action_types_default (String[]) * lang_id_threshold_override (float) * template_intent_factory_enabled (boolean) * </pre> Loading Loading @@ -14587,6 +14589,14 @@ public final class Settings { */ public static final String BATTERY_CHARGING_STATE_UPDATE_DELAY = "battery_charging_state_update_delay"; /** * A serialized string of params that will be loaded into a text classifier action model. * * @hide */ public static final String TEXT_CLASSIFIER_ACTION_MODEL_PARAMS = "text_classifier_action_model_params"; } /** core/java/android/view/textclassifier/ConfigParser.java 0 → 100644 +86 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view.textclassifier; import android.annotation.Nullable; import android.provider.DeviceConfig; import android.util.KeyValueListParser; import com.android.internal.annotations.VisibleForTesting; /** * Retrieves settings from {@link DeviceConfig} and {@link android.provider.Settings}. * It will try DeviceConfig first and then Settings. * * @hide */ @VisibleForTesting public final class ConfigParser { private static final String TAG = "ConfigParser"; private final KeyValueListParser mParser; public ConfigParser(@Nullable String textClassifierConstants) { final KeyValueListParser parser = new KeyValueListParser(','); try { parser.setString(textClassifierConstants); } catch (IllegalArgumentException e) { // Failed to parse the settings string, log this and move on with defaults. Log.w(TAG, "Bad text_classifier_constants: " + textClassifierConstants); } mParser = parser; } /** * Reads a boolean flag. */ public boolean getBoolean(String key, boolean defaultValue) { return DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getBoolean(key, defaultValue)); } /** * Reads an integer flag. */ public int getInt(String key, int defaultValue) { return DeviceConfig.getInt( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getInt(key, defaultValue)); } /** * Reads a float flag. */ public float getFloat(String key, float defaultValue) { return DeviceConfig.getFloat( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getFloat(key, defaultValue)); } /** * Reads a string flag. */ public String getString(String key, String defaultValue) { return DeviceConfig.getString( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getString(key, defaultValue)); } } core/java/android/view/textclassifier/TextClassificationConstants.java +159 −101 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ package android.view.textclassifier; import android.annotation.Nullable; import android.util.KeyValueListParser; import android.util.Slog; import com.android.internal.util.IndentingPrintWriter; Loading Loading @@ -46,6 +44,8 @@ import java.util.StringJoiner; * entity_list_default (String[]) * entity_list_not_editable (String[]) * entity_list_editable (String[]) * in_app_conversation_action_types_default (String[]) * notification_conversation_action_types_default (String[]) * lang_id_threshold_override (float) * template_intent_factory_enabled (boolean) * </pre> Loading @@ -61,43 +61,90 @@ import java.util.StringJoiner; * @hide */ public final class TextClassificationConstants { private static final String LOG_TAG = "TextClassificationConstants"; private static final String LOCAL_TEXT_CLASSIFIER_ENABLED = "local_textclassifier_enabled"; private static final String SYSTEM_TEXT_CLASSIFIER_ENABLED = "system_textclassifier_enabled"; private static final String MODEL_DARK_LAUNCH_ENABLED = "model_dark_launch_enabled"; private static final String SMART_SELECTION_ENABLED = "smart_selection_enabled"; private static final String SMART_TEXT_SHARE_ENABLED = "smart_text_share_enabled"; private static final String SMART_LINKIFY_ENABLED = "smart_linkify_enabled"; /** * Whether the smart linkify feature is enabled. */ private static final String SMART_LINKIFY_ENABLED = "smart_linkify_enabled"; /** * Whether SystemTextClassifier is enabled. */ private static final String SYSTEM_TEXT_CLASSIFIER_ENABLED = "system_textclassifier_enabled"; /** * Whether TextClassifierImpl is enabled. */ private static final String LOCAL_TEXT_CLASSIFIER_ENABLED = "local_textclassifier_enabled"; /** * Enable smart selection without a visible UI changes. */ private static final String MODEL_DARK_LAUNCH_ENABLED = "model_dark_launch_enabled"; /** * Whether the smart selection feature is enabled. */ private static final String SMART_SELECTION_ENABLED = "smart_selection_enabled"; /** * Whether the smart text share feature is enabled. */ private static final String SMART_TEXT_SHARE_ENABLED = "smart_text_share_enabled"; /** * Whether animation for smart selection is enabled. */ private static final String SMART_SELECT_ANIMATION_ENABLED = "smart_select_animation_enabled"; /** * Max length of text that suggestSelection can accept. */ private static final String SUGGEST_SELECTION_MAX_RANGE_LENGTH = "suggest_selection_max_range_length"; private static final String CLASSIFY_TEXT_MAX_RANGE_LENGTH = "classify_text_max_range_length"; private static final String GENERATE_LINKS_MAX_TEXT_LENGTH = "generate_links_max_text_length"; /** * Max length of text that classifyText can accept. */ private static final String CLASSIFY_TEXT_MAX_RANGE_LENGTH = "classify_text_max_range_length"; /** * Max length of text that generateLinks can accept. */ private static final String GENERATE_LINKS_MAX_TEXT_LENGTH = "generate_links_max_text_length"; /** * Sampling rate for generateLinks logging. */ private static final String GENERATE_LINKS_LOG_SAMPLE_RATE = "generate_links_log_sample_rate"; private static final String ENTITY_LIST_DEFAULT = "entity_list_default"; private static final String ENTITY_LIST_NOT_EDITABLE = "entity_list_not_editable"; private static final String ENTITY_LIST_EDITABLE = "entity_list_editable"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when hint is not given. */ private static final String ENTITY_LIST_DEFAULT = "entity_list_default"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when the text is in a not editable UI widget. */ private static final String ENTITY_LIST_NOT_EDITABLE = "entity_list_not_editable"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when the text is in an editable UI widget. */ private static final String ENTITY_LIST_EDITABLE = "entity_list_editable"; /** * A colon(:) separated string that specifies the default action types for * suggestConversationActions when the suggestions are used in an app. */ private static final String IN_APP_CONVERSATION_ACTION_TYPES_DEFAULT = "in_app_conversation_action_types_default"; /** * A colon(:) separated string that specifies the default action types for * suggestConversationActions when the suggestions are used in a notification. */ private static final String NOTIFICATION_CONVERSATION_ACTION_TYPES_DEFAULT = "notification_conversation_action_types_default"; private static final String LANG_ID_THRESHOLD_OVERRIDE = "lang_id_threshold_override"; /** * Threshold in classifyText to consider a text is in a foreign language. */ private static final String LANG_ID_THRESHOLD_OVERRIDE = "lang_id_threshold_override"; /** * Whether to enable {@link android.view.textclassifier.TemplateIntentFactory}. */ private static final String TEMPLATE_INTENT_FACTORY_ENABLED = "template_intent_factory_enabled"; private static final boolean LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT = true; Loading Loading @@ -162,66 +209,77 @@ public final class TextClassificationConstants { private final boolean mTemplateIntentFactoryEnabled; private TextClassificationConstants(@Nullable String settings) { final KeyValueListParser parser = new KeyValueListParser(','); try { parser.setString(settings); } catch (IllegalArgumentException e) { // Failed to parse the settings string, log this and move on with defaults. Slog.e(LOG_TAG, "Bad TextClassifier settings: " + settings); } mSystemTextClassifierEnabled = parser.getBoolean( ConfigParser configParser = new ConfigParser(settings); mSystemTextClassifierEnabled = configParser.getBoolean( SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); mLocalTextClassifierEnabled = parser.getBoolean( mLocalTextClassifierEnabled = configParser.getBoolean( LOCAL_TEXT_CLASSIFIER_ENABLED, LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT); mModelDarkLaunchEnabled = parser.getBoolean( mModelDarkLaunchEnabled = configParser.getBoolean( MODEL_DARK_LAUNCH_ENABLED, MODEL_DARK_LAUNCH_ENABLED_DEFAULT); mSmartSelectionEnabled = parser.getBoolean( mSmartSelectionEnabled = configParser.getBoolean( SMART_SELECTION_ENABLED, SMART_SELECTION_ENABLED_DEFAULT); mSmartTextShareEnabled = parser.getBoolean( mSmartTextShareEnabled = configParser.getBoolean( SMART_TEXT_SHARE_ENABLED, SMART_TEXT_SHARE_ENABLED_DEFAULT); mSmartLinkifyEnabled = parser.getBoolean( mSmartLinkifyEnabled = configParser.getBoolean( SMART_LINKIFY_ENABLED, SMART_LINKIFY_ENABLED_DEFAULT); mSmartSelectionAnimationEnabled = parser.getBoolean( mSmartSelectionAnimationEnabled = configParser.getBoolean( SMART_SELECT_ANIMATION_ENABLED, SMART_SELECT_ANIMATION_ENABLED_DEFAULT); mSuggestSelectionMaxRangeLength = parser.getInt( mSuggestSelectionMaxRangeLength = configParser.getInt( SUGGEST_SELECTION_MAX_RANGE_LENGTH, SUGGEST_SELECTION_MAX_RANGE_LENGTH_DEFAULT); mClassifyTextMaxRangeLength = parser.getInt( mClassifyTextMaxRangeLength = configParser.getInt( CLASSIFY_TEXT_MAX_RANGE_LENGTH, CLASSIFY_TEXT_MAX_RANGE_LENGTH_DEFAULT); mGenerateLinksMaxTextLength = parser.getInt( mGenerateLinksMaxTextLength = configParser.getInt( GENERATE_LINKS_MAX_TEXT_LENGTH, GENERATE_LINKS_MAX_TEXT_LENGTH_DEFAULT); mGenerateLinksLogSampleRate = parser.getInt( mGenerateLinksLogSampleRate = configParser.getInt( GENERATE_LINKS_LOG_SAMPLE_RATE, GENERATE_LINKS_LOG_SAMPLE_RATE_DEFAULT); mEntityListDefault = parseStringList(parser.getString( mEntityListDefault = parseStringList(configParser.getString( ENTITY_LIST_DEFAULT, ENTITY_LIST_DEFAULT_VALUE)); mEntityListNotEditable = parseStringList(parser.getString( mEntityListNotEditable = parseStringList( configParser.getString( ENTITY_LIST_NOT_EDITABLE, ENTITY_LIST_DEFAULT_VALUE)); mEntityListEditable = parseStringList(parser.getString( mEntityListEditable = parseStringList( configParser.getString( ENTITY_LIST_EDITABLE, ENTITY_LIST_DEFAULT_VALUE)); mInAppConversationActionTypesDefault = parseStringList(parser.getString( mInAppConversationActionTypesDefault = parseStringList( configParser.getString( IN_APP_CONVERSATION_ACTION_TYPES_DEFAULT, CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES)); mNotificationConversationActionTypesDefault = parseStringList(parser.getString( mNotificationConversationActionTypesDefault = parseStringList( configParser.getString( NOTIFICATION_CONVERSATION_ACTION_TYPES_DEFAULT, CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES)); mLangIdThresholdOverride = parser.getFloat( mLangIdThresholdOverride = configParser.getFloat( LANG_ID_THRESHOLD_OVERRIDE, LANG_ID_THRESHOLD_OVERRIDE_DEFAULT); mTemplateIntentFactoryEnabled = parser.getBoolean( TEMPLATE_INTENT_FACTORY_ENABLED, TEMPLATE_INTENT_FACTORY_ENABLED_DEFAULT); mTemplateIntentFactoryEnabled = configParser.getBoolean( TEMPLATE_INTENT_FACTORY_ENABLED, TEMPLATE_INTENT_FACTORY_ENABLED_DEFAULT); } /** Load from a settings string. */ Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5859,6 +5859,7 @@ package android.provider { field public static final String NAMESPACE_NETD_NATIVE = "netd_native"; field public static final String NAMESPACE_RUNTIME_NATIVE_BOOT = "runtime_native_boot"; field public static final String NAMESPACE_SYSTEMUI = "systemui"; field public static final String NAMESPACE_TEXTCLASSIFIER = "textclassifier"; } public static interface DeviceConfig.AttentionManagerService { Loading
core/java/android/provider/DeviceConfig.java +8 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,14 @@ public final class DeviceConfig { @SystemApi public static final String NAMESPACE_SYSTEMUI = "systemui"; /** * Namespace for TextClassifier related features. * * @hide */ @SystemApi public static final String NAMESPACE_TEXTCLASSIFIER = "textclassifier"; /** * Namespace for all runtime related features. * Loading
core/java/android/provider/Settings.java +26 −16 Original line number Diff line number Diff line Loading @@ -11931,6 +11931,8 @@ public final class Settings { * entity_list_default (String[]) * entity_list_not_editable (String[]) * entity_list_editable (String[]) * in_app_conversation_action_types_default (String[]) * notification_conversation_action_types_default (String[]) * lang_id_threshold_override (float) * template_intent_factory_enabled (boolean) * </pre> Loading Loading @@ -14587,6 +14589,14 @@ public final class Settings { */ public static final String BATTERY_CHARGING_STATE_UPDATE_DELAY = "battery_charging_state_update_delay"; /** * A serialized string of params that will be loaded into a text classifier action model. * * @hide */ public static final String TEXT_CLASSIFIER_ACTION_MODEL_PARAMS = "text_classifier_action_model_params"; } /**
core/java/android/view/textclassifier/ConfigParser.java 0 → 100644 +86 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view.textclassifier; import android.annotation.Nullable; import android.provider.DeviceConfig; import android.util.KeyValueListParser; import com.android.internal.annotations.VisibleForTesting; /** * Retrieves settings from {@link DeviceConfig} and {@link android.provider.Settings}. * It will try DeviceConfig first and then Settings. * * @hide */ @VisibleForTesting public final class ConfigParser { private static final String TAG = "ConfigParser"; private final KeyValueListParser mParser; public ConfigParser(@Nullable String textClassifierConstants) { final KeyValueListParser parser = new KeyValueListParser(','); try { parser.setString(textClassifierConstants); } catch (IllegalArgumentException e) { // Failed to parse the settings string, log this and move on with defaults. Log.w(TAG, "Bad text_classifier_constants: " + textClassifierConstants); } mParser = parser; } /** * Reads a boolean flag. */ public boolean getBoolean(String key, boolean defaultValue) { return DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getBoolean(key, defaultValue)); } /** * Reads an integer flag. */ public int getInt(String key, int defaultValue) { return DeviceConfig.getInt( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getInt(key, defaultValue)); } /** * Reads a float flag. */ public float getFloat(String key, float defaultValue) { return DeviceConfig.getFloat( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getFloat(key, defaultValue)); } /** * Reads a string flag. */ public String getString(String key, String defaultValue) { return DeviceConfig.getString( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, mParser.getString(key, defaultValue)); } }
core/java/android/view/textclassifier/TextClassificationConstants.java +159 −101 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ package android.view.textclassifier; import android.annotation.Nullable; import android.util.KeyValueListParser; import android.util.Slog; import com.android.internal.util.IndentingPrintWriter; Loading Loading @@ -46,6 +44,8 @@ import java.util.StringJoiner; * entity_list_default (String[]) * entity_list_not_editable (String[]) * entity_list_editable (String[]) * in_app_conversation_action_types_default (String[]) * notification_conversation_action_types_default (String[]) * lang_id_threshold_override (float) * template_intent_factory_enabled (boolean) * </pre> Loading @@ -61,43 +61,90 @@ import java.util.StringJoiner; * @hide */ public final class TextClassificationConstants { private static final String LOG_TAG = "TextClassificationConstants"; private static final String LOCAL_TEXT_CLASSIFIER_ENABLED = "local_textclassifier_enabled"; private static final String SYSTEM_TEXT_CLASSIFIER_ENABLED = "system_textclassifier_enabled"; private static final String MODEL_DARK_LAUNCH_ENABLED = "model_dark_launch_enabled"; private static final String SMART_SELECTION_ENABLED = "smart_selection_enabled"; private static final String SMART_TEXT_SHARE_ENABLED = "smart_text_share_enabled"; private static final String SMART_LINKIFY_ENABLED = "smart_linkify_enabled"; /** * Whether the smart linkify feature is enabled. */ private static final String SMART_LINKIFY_ENABLED = "smart_linkify_enabled"; /** * Whether SystemTextClassifier is enabled. */ private static final String SYSTEM_TEXT_CLASSIFIER_ENABLED = "system_textclassifier_enabled"; /** * Whether TextClassifierImpl is enabled. */ private static final String LOCAL_TEXT_CLASSIFIER_ENABLED = "local_textclassifier_enabled"; /** * Enable smart selection without a visible UI changes. */ private static final String MODEL_DARK_LAUNCH_ENABLED = "model_dark_launch_enabled"; /** * Whether the smart selection feature is enabled. */ private static final String SMART_SELECTION_ENABLED = "smart_selection_enabled"; /** * Whether the smart text share feature is enabled. */ private static final String SMART_TEXT_SHARE_ENABLED = "smart_text_share_enabled"; /** * Whether animation for smart selection is enabled. */ private static final String SMART_SELECT_ANIMATION_ENABLED = "smart_select_animation_enabled"; /** * Max length of text that suggestSelection can accept. */ private static final String SUGGEST_SELECTION_MAX_RANGE_LENGTH = "suggest_selection_max_range_length"; private static final String CLASSIFY_TEXT_MAX_RANGE_LENGTH = "classify_text_max_range_length"; private static final String GENERATE_LINKS_MAX_TEXT_LENGTH = "generate_links_max_text_length"; /** * Max length of text that classifyText can accept. */ private static final String CLASSIFY_TEXT_MAX_RANGE_LENGTH = "classify_text_max_range_length"; /** * Max length of text that generateLinks can accept. */ private static final String GENERATE_LINKS_MAX_TEXT_LENGTH = "generate_links_max_text_length"; /** * Sampling rate for generateLinks logging. */ private static final String GENERATE_LINKS_LOG_SAMPLE_RATE = "generate_links_log_sample_rate"; private static final String ENTITY_LIST_DEFAULT = "entity_list_default"; private static final String ENTITY_LIST_NOT_EDITABLE = "entity_list_not_editable"; private static final String ENTITY_LIST_EDITABLE = "entity_list_editable"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when hint is not given. */ private static final String ENTITY_LIST_DEFAULT = "entity_list_default"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when the text is in a not editable UI widget. */ private static final String ENTITY_LIST_NOT_EDITABLE = "entity_list_not_editable"; /** * A colon(:) separated string that specifies the default entities types for * generateLinks when the text is in an editable UI widget. */ private static final String ENTITY_LIST_EDITABLE = "entity_list_editable"; /** * A colon(:) separated string that specifies the default action types for * suggestConversationActions when the suggestions are used in an app. */ private static final String IN_APP_CONVERSATION_ACTION_TYPES_DEFAULT = "in_app_conversation_action_types_default"; /** * A colon(:) separated string that specifies the default action types for * suggestConversationActions when the suggestions are used in a notification. */ private static final String NOTIFICATION_CONVERSATION_ACTION_TYPES_DEFAULT = "notification_conversation_action_types_default"; private static final String LANG_ID_THRESHOLD_OVERRIDE = "lang_id_threshold_override"; /** * Threshold in classifyText to consider a text is in a foreign language. */ private static final String LANG_ID_THRESHOLD_OVERRIDE = "lang_id_threshold_override"; /** * Whether to enable {@link android.view.textclassifier.TemplateIntentFactory}. */ private static final String TEMPLATE_INTENT_FACTORY_ENABLED = "template_intent_factory_enabled"; private static final boolean LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT = true; Loading Loading @@ -162,66 +209,77 @@ public final class TextClassificationConstants { private final boolean mTemplateIntentFactoryEnabled; private TextClassificationConstants(@Nullable String settings) { final KeyValueListParser parser = new KeyValueListParser(','); try { parser.setString(settings); } catch (IllegalArgumentException e) { // Failed to parse the settings string, log this and move on with defaults. Slog.e(LOG_TAG, "Bad TextClassifier settings: " + settings); } mSystemTextClassifierEnabled = parser.getBoolean( ConfigParser configParser = new ConfigParser(settings); mSystemTextClassifierEnabled = configParser.getBoolean( SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); mLocalTextClassifierEnabled = parser.getBoolean( mLocalTextClassifierEnabled = configParser.getBoolean( LOCAL_TEXT_CLASSIFIER_ENABLED, LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT); mModelDarkLaunchEnabled = parser.getBoolean( mModelDarkLaunchEnabled = configParser.getBoolean( MODEL_DARK_LAUNCH_ENABLED, MODEL_DARK_LAUNCH_ENABLED_DEFAULT); mSmartSelectionEnabled = parser.getBoolean( mSmartSelectionEnabled = configParser.getBoolean( SMART_SELECTION_ENABLED, SMART_SELECTION_ENABLED_DEFAULT); mSmartTextShareEnabled = parser.getBoolean( mSmartTextShareEnabled = configParser.getBoolean( SMART_TEXT_SHARE_ENABLED, SMART_TEXT_SHARE_ENABLED_DEFAULT); mSmartLinkifyEnabled = parser.getBoolean( mSmartLinkifyEnabled = configParser.getBoolean( SMART_LINKIFY_ENABLED, SMART_LINKIFY_ENABLED_DEFAULT); mSmartSelectionAnimationEnabled = parser.getBoolean( mSmartSelectionAnimationEnabled = configParser.getBoolean( SMART_SELECT_ANIMATION_ENABLED, SMART_SELECT_ANIMATION_ENABLED_DEFAULT); mSuggestSelectionMaxRangeLength = parser.getInt( mSuggestSelectionMaxRangeLength = configParser.getInt( SUGGEST_SELECTION_MAX_RANGE_LENGTH, SUGGEST_SELECTION_MAX_RANGE_LENGTH_DEFAULT); mClassifyTextMaxRangeLength = parser.getInt( mClassifyTextMaxRangeLength = configParser.getInt( CLASSIFY_TEXT_MAX_RANGE_LENGTH, CLASSIFY_TEXT_MAX_RANGE_LENGTH_DEFAULT); mGenerateLinksMaxTextLength = parser.getInt( mGenerateLinksMaxTextLength = configParser.getInt( GENERATE_LINKS_MAX_TEXT_LENGTH, GENERATE_LINKS_MAX_TEXT_LENGTH_DEFAULT); mGenerateLinksLogSampleRate = parser.getInt( mGenerateLinksLogSampleRate = configParser.getInt( GENERATE_LINKS_LOG_SAMPLE_RATE, GENERATE_LINKS_LOG_SAMPLE_RATE_DEFAULT); mEntityListDefault = parseStringList(parser.getString( mEntityListDefault = parseStringList(configParser.getString( ENTITY_LIST_DEFAULT, ENTITY_LIST_DEFAULT_VALUE)); mEntityListNotEditable = parseStringList(parser.getString( mEntityListNotEditable = parseStringList( configParser.getString( ENTITY_LIST_NOT_EDITABLE, ENTITY_LIST_DEFAULT_VALUE)); mEntityListEditable = parseStringList(parser.getString( mEntityListEditable = parseStringList( configParser.getString( ENTITY_LIST_EDITABLE, ENTITY_LIST_DEFAULT_VALUE)); mInAppConversationActionTypesDefault = parseStringList(parser.getString( mInAppConversationActionTypesDefault = parseStringList( configParser.getString( IN_APP_CONVERSATION_ACTION_TYPES_DEFAULT, CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES)); mNotificationConversationActionTypesDefault = parseStringList(parser.getString( mNotificationConversationActionTypesDefault = parseStringList( configParser.getString( NOTIFICATION_CONVERSATION_ACTION_TYPES_DEFAULT, CONVERSATION_ACTIONS_TYPES_DEFAULT_VALUES)); mLangIdThresholdOverride = parser.getFloat( mLangIdThresholdOverride = configParser.getFloat( LANG_ID_THRESHOLD_OVERRIDE, LANG_ID_THRESHOLD_OVERRIDE_DEFAULT); mTemplateIntentFactoryEnabled = parser.getBoolean( TEMPLATE_INTENT_FACTORY_ENABLED, TEMPLATE_INTENT_FACTORY_ENABLED_DEFAULT); mTemplateIntentFactoryEnabled = configParser.getBoolean( TEMPLATE_INTENT_FACTORY_ENABLED, TEMPLATE_INTENT_FACTORY_ENABLED_DEFAULT); } /** Load from a settings string. */ Loading