diff options
-rw-r--r-- | core/res/MakeJavaSymbols.sed | 25 | ||||
-rw-r--r-- | core/res/res/values/public.xml | 1508 | ||||
-rw-r--r-- | tools/aapt/AaptAssets.cpp | 85 | ||||
-rw-r--r-- | tools/aapt/AaptAssets.h | 42 | ||||
-rw-r--r-- | tools/aapt/Command.cpp | 8 | ||||
-rw-r--r-- | tools/aapt/Resource.cpp | 7 | ||||
-rw-r--r-- | tools/aapt/ResourceTable.cpp | 44 |
7 files changed, 1709 insertions, 10 deletions
diff --git a/core/res/MakeJavaSymbols.sed b/core/res/MakeJavaSymbols.sed new file mode 100644 index 0000000..d02fffa --- /dev/null +++ b/core/res/MakeJavaSymbols.sed @@ -0,0 +1,25 @@ +# Run this on the errors output by javac of missing resource symbols, +# to generate the set of <java-symbol> commands to have aapt generate +# the symbol for them. +# +# For example: make framework 2>&1 | sed -n -f MakeJavaSymbols.sed | sort -u + +s|.*R.id.\([a-zA-Z0-9_]*\).*| <java-symbol type="id" name="\1" />|gp +s|.*R.attr.\([a-zA-Z0-9_]*\).*| <java-symbol type="attr" name="\1" />|gp +s|.*R.bool.\([a-zA-Z0-9_]*\).*| <java-symbol type="bool" name="\1" />|gp +s|.*R.integer.\([a-zA-Z0-9_]*\).*| <java-symbol type="integer" name="\1" />|gp +s|.*R.color.\([a-zA-Z0-9_]*\).*| <java-symbol type="color" name="\1" />|gp +s|.*R.dimen.\([a-zA-Z0-9_]*\).*| <java-symbol type="dimen" name="\1" />|gp +s|.*R.fraction.\([a-zA-Z0-9_]*\).*| <java-symbol type="fraction" name="\1" />|gp +s|.*R.string.\([a-zA-Z0-9_]*\).*| <java-symbol type="string" name="\1" />|gp +s|.*R.plurals.\([a-zA-Z0-9_]*\).*| <java-symbol type="plurals" name="\1" />|gp +s|.*R.array.\([a-zA-Z0-9_]*\).*| <java-symbol type="array" name="\1" />|gp +s|.*R.drawable.\([a-zA-Z0-9_]*\).*| <java-symbol type="drawable" name="\1" />|gp +s|.*R.layout.\([a-zA-Z0-9_]*\).*| <java-symbol type="layout" name="\1" />|gp +s|.*R.anim.\([a-zA-Z0-9_]*\).*| <java-symbol type="anim" name="\1" />|gp +s|.*R.animator.\([a-zA-Z0-9_]*\).*| <java-symbol type="animator" name="\1" />|gp +s|.*R.interpolator.\([a-zA-Z0-9_]*\).*| <java-symbol type="interpolator" name="\1" />|gp +s|.*R.menu.\([a-zA-Z0-9_]*\).*| <java-symbol type="menu" name="\1" />|gp +s|.*R.xml.\([a-zA-Z0-9_]*\).*| <java-symbol type="xml" name="\1" />|gp +s|.*R.raw.\([a-zA-Z0-9_]*\).*| <java-symbol type="raw" name="\1" />|gp +s|.*R.style.\([a-zA-Z0-9_]*\).*| <java-symbol type="style" name="\1" />|gp diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 4d97ad2..e3c2bd8 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -23,6 +23,1514 @@ SDK. Instead, put them here. --> <private-symbols package="com.android.internal" /> + <!-- Private symbols that we need to reference from framework code. See + frameworks/base/core/res/MakeJavaSymbols.sed for how to easily generate + this. + --> + <java-symbol type="id" name="account_name" /> + <java-symbol type="id" name="account_row_checkmark" /> + <java-symbol type="id" name="account_row_icon" /> + <java-symbol type="id" name="account_row_text" /> + <java-symbol type="id" name="account_type" /> + <java-symbol type="id" name="action_bar" /> + <java-symbol type="id" name="action_bar_container" /> + <java-symbol type="id" name="action_bar_title" /> + <java-symbol type="id" name="action_bar_subtitle" /> + <java-symbol type="id" name="action_context_bar" /> + <java-symbol type="id" name="action_menu_presenter" /> + <java-symbol type="id" name="action_mode_close_button" /> + <java-symbol type="id" name="activity_chooser_view_content" /> + <java-symbol type="id" name="addAccount" /> + <java-symbol type="id" name="albumart" /> + <java-symbol type="id" name="alertTitle" /> + <java-symbol type="id" name="allow_button" /> + <java-symbol type="id" name="alwaysUse" /> + <java-symbol type="id" name="amPm" /> + <java-symbol type="id" name="authtoken_type" /> + <java-symbol type="id" name="back_button" /> + <java-symbol type="id" name="btn_next" /> + <java-symbol type="id" name="btn_play" /> + <java-symbol type="id" name="btn_prev" /> + <java-symbol type="id" name="button_bar" /> + <java-symbol type="id" name="buttonPanel" /> + <java-symbol type="id" name="by_common" /> + <java-symbol type="id" name="by_org" /> + <java-symbol type="id" name="by_org_unit" /> + <java-symbol type="id" name="calendar_view" /> + <java-symbol type="id" name="cancel" /> + <java-symbol type="id" name="characterPicker" /> + <java-symbol type="id" name="clearDefaultHint" /> + <java-symbol type="id" name="contentPanel" /> + <java-symbol type="id" name="customPanel" /> + <java-symbol type="id" name="dangerous_perms_list" /> + <java-symbol type="id" name="datePicker" /> + <java-symbol type="id" name="day" /> + <java-symbol type="id" name="day_names" /> + <java-symbol type="id" name="decrement" /> + <java-symbol type="id" name="default_activity_button" /> + <java-symbol type="id" name="deny_button" /> + <java-symbol type="id" name="description" /> + <java-symbol type="id" name="divider" /> + <java-symbol type="id" name="edit_query" /> + <java-symbol type="id" name="edittext_container" /> + <java-symbol type="id" name="enter_pin_section" /> + <java-symbol type="id" name="expand_activities_button" /> + <java-symbol type="id" name="expand_button" /> + <java-symbol type="id" name="expand_button_divider" /> + <java-symbol type="id" name="expires_on" /> + <java-symbol type="id" name="find_next" /> + <java-symbol type="id" name="find_prev" /> + <java-symbol type="id" name="ffwd" /> + <java-symbol type="id" name="fillInIntent" /> + <java-symbol type="id" name="find" /> + <java-symbol type="id" name="fullscreenArea" /> + <java-symbol type="id" name="headers" /> + <java-symbol type="id" name="hour" /> + <java-symbol type="id" name="icon" /> + <java-symbol type="id" name="image" /> + <java-symbol type="id" name="imageButton" /> + <java-symbol type="id" name="increment" /> + <java-symbol type="id" name="internalEmpty" /> + <java-symbol type="id" name="info" /> + <java-symbol type="id" name="inputExtractAccessories" /> + <java-symbol type="id" name="inputExtractAction" /> + <java-symbol type="id" name="inputExtractEditButton" /> + <java-symbol type="id" name="issued_on" /> + <java-symbol type="id" name="left_icon" /> + <java-symbol type="id" name="leftSpacer" /> + <java-symbol type="id" name="line3" /> + <java-symbol type="id" name="list_footer" /> + <java-symbol type="id" name="list_item" /> + <java-symbol type="id" name="listContainer" /> + <java-symbol type="id" name="locale" /> + <java-symbol type="id" name="matches" /> + <java-symbol type="id" name="mediacontroller_progress" /> + <java-symbol type="id" name="minute" /> + <java-symbol type="id" name="mode_normal" /> + <java-symbol type="id" name="month" /> + <java-symbol type="id" name="month_name" /> + <java-symbol type="id" name="name" /> + <java-symbol type="id" name="next" /> + <java-symbol type="id" name="next_button" /> + <java-symbol type="id" name="new_app_action" /> + <java-symbol type="id" name="new_app_description" /> + <java-symbol type="id" name="new_app_icon" /> + <java-symbol type="id" name="no_permissions" /> + <java-symbol type="id" name="non_dangerous_perms_list" /> + <java-symbol type="id" name="numberpicker_input" /> + <java-symbol type="id" name="old_app_action" /> + <java-symbol type="id" name="old_app_description" /> + <java-symbol type="id" name="old_app_icon" /> + <java-symbol type="id" name="package_label" /> + <java-symbol type="id" name="packages_list" /> + <java-symbol type="id" name="pause" /> + <java-symbol type="id" name="perm_icon" /> + <java-symbol type="id" name="permission_group" /> + <java-symbol type="id" name="permission_list" /> + <java-symbol type="id" name="pickers" /> + <java-symbol type="id" name="prefs" /> + <java-symbol type="id" name="prefs_frame" /> + <java-symbol type="id" name="prev" /> + <java-symbol type="id" name="progress" /> + <java-symbol type="id" name="progress_circular" /> + <java-symbol type="id" name="progress_horizontal" /> + <java-symbol type="id" name="progress_number" /> + <java-symbol type="id" name="progress_percent" /> + <java-symbol type="id" name="progressContainer" /> + <java-symbol type="id" name="rew" /> + <java-symbol type="id" name="rightSpacer" /> + <java-symbol type="id" name="rowTypeId" /> + <java-symbol type="id" name="scrollView" /> + <java-symbol type="id" name="search_app_icon" /> + <java-symbol type="id" name="search_badge" /> + <java-symbol type="id" name="search_bar" /> + <java-symbol type="id" name="search_button" /> + <java-symbol type="id" name="search_close_btn" /> + <java-symbol type="id" name="search_edit_frame" /> + <java-symbol type="id" name="search_go_btn" /> + <java-symbol type="id" name="search_mag_icon" /> + <java-symbol type="id" name="search_plate" /> + <java-symbol type="id" name="search_src_text" /> + <java-symbol type="id" name="search_view" /> + <java-symbol type="id" name="search_voice_btn" /> + <java-symbol type="id" name="select_all" /> + <java-symbol type="id" name="serial_number" /> + <java-symbol type="id" name="seekbar" /> + <java-symbol type="id" name="sha1_fingerprint" /> + <java-symbol type="id" name="sha256_fingerprint" /> + <java-symbol type="id" name="share" /> + <java-symbol type="id" name="shortcut" /> + <java-symbol type="id" name="show_more" /> + <java-symbol type="id" name="show_more_icon" /> + <java-symbol type="id" name="show_more_text" /> + <java-symbol type="id" name="skip_button" /> + <java-symbol type="id" name="slider_group" /> + <java-symbol type="id" name="split_action_bar" /> + <java-symbol type="id" name="stream_icon" /> + <java-symbol type="id" name="submit_area" /> + <java-symbol type="id" name="switch_new" /> + <java-symbol type="id" name="switch_old" /> + <java-symbol type="id" name="switchWidget" /> + <java-symbol type="id" name="text" /> + <java-symbol type="id" name="textButton" /> + <java-symbol type="id" name="time" /> + <java-symbol type="id" name="time_current" /> + <java-symbol type="id" name="timeDisplayBackground" /> + <java-symbol type="id" name="timeDisplayForeground" /> + <java-symbol type="id" name="titleDivider" /> + <java-symbol type="id" name="titleDividerTop" /> + <java-symbol type="id" name="timePicker" /> + <java-symbol type="id" name="title_template" /> + <java-symbol type="id" name="to_common" /> + <java-symbol type="id" name="to_org" /> + <java-symbol type="id" name="to_org_unit" /> + <java-symbol type="id" name="topPanel" /> + <java-symbol type="id" name="up" /> + <java-symbol type="id" name="value" /> + <java-symbol type="id" name="visible_panel" /> + <java-symbol type="id" name="websearch" /> + <java-symbol type="id" name="wifi_p2p_wps_pin" /> + <java-symbol type="id" name="year" /> + <java-symbol type="id" name="zoomControls" /> + <java-symbol type="id" name="zoomIn" /> + <java-symbol type="id" name="zoomMagnify" /> + <java-symbol type="id" name="zoomOut" /> + + <java-symbol type="attr" name="actionModeShareDrawable" /> + <java-symbol type="attr" name="alertDialogCenterButtons" /> + <java-symbol type="attr" name="gestureOverlayViewStyle" /> + <java-symbol type="attr" name="keyboardViewStyle" /> + <java-symbol type="attr" name="numberPickerStyle" /> + <java-symbol type="attr" name="pointerStyle" /> + <java-symbol type="attr" name="preferenceFrameLayoutStyle" /> + <java-symbol type="attr" name="searchDialogTheme" /> + <java-symbol type="attr" name="searchViewSearchIcon" /> + <java-symbol type="attr" name="stackViewStyle" /> + <java-symbol type="attr" name="switchStyle" /> + <java-symbol type="attr" name="textAppearanceAutoCorrectionSuggestion" /> + <java-symbol type="attr" name="textAppearanceEasyCorrectSuggestion" /> + <java-symbol type="attr" name="textAppearanceMisspelledSuggestion" /> + <java-symbol type="attr" name="textColorSearchUrl" /> + <java-symbol type="attr" name="timePickerStyle" /> + + <java-symbol type="bool" name="action_bar_embed_tabs" /> + <java-symbol type="bool" name="action_bar_expanded_action_views_exclusive" /> + <java-symbol type="bool" name="config_allowActionMenuItemTextWithIcon" /> + <java-symbol type="bool" name="config_bluetooth_adapter_quick_switch" /> + <java-symbol type="bool" name="config_bluetooth_sco_off_call" /> + <java-symbol type="bool" name="config_duplicate_port_omadm_wappush" /> + <java-symbol type="bool" name="config_enable_emergency_call_while_sim_locked" /> + <java-symbol type="bool" name="config_enable_puk_unlock_screen" /> + <java-symbol type="bool" name="config_mms_content_disposition_support" /> + <java-symbol type="bool" name="config_showMenuShortcutsWhenKeyboardPresent" /> + <java-symbol type="bool" name="config_sip_wifi_only" /> + <java-symbol type="bool" name="config_sms_capable" /> + <java-symbol type="bool" name="config_sms_utf8_support" /> + <java-symbol type="bool" name="config_swipeDisambiguation" /> + <java-symbol type="bool" name="config_telephony_use_own_number_for_voicemail" /> + <java-symbol type="bool" name="config_ui_enableFadingMarquee" /> + <java-symbol type="bool" name="config_use_strict_phone_number_comparation" /> + <java-symbol type="bool" name="config_voice_capable" /> + <java-symbol type="bool" name="preferences_prefer_dual_pane" /> + <java-symbol type="bool" name="skip_restoring_network_selection" /> + <java-symbol type="bool" name="split_action_bar_is_narrow" /> + + <java-symbol type="integer" name="config_cursorWindowSize" /> + <java-symbol type="integer" name="config_longPressOnPowerBehavior" /> + <java-symbol type="integer" name="config_max_pan_devices" /> + <java-symbol type="integer" name="config_ntpTimeout" /> + <java-symbol type="integer" name="config_wifi_framework_scan_interval" /> + <java-symbol type="integer" name="config_wifi_supplicant_scan_interval" /> + <java-symbol type="integer" name="db_connection_pool_size" /> + <java-symbol type="integer" name="max_action_buttons" /> + + <java-symbol type="color" name="tab_indicator_text_v4" /> + + <java-symbol type="dimen" name="config_prefDialogWidth" /> + <java-symbol type="dimen" name="config_viewConfigurationTouchSlop" /> + <java-symbol type="dimen" name="default_app_widget_padding_bottom" /> + <java-symbol type="dimen" name="default_app_widget_padding_left" /> + <java-symbol type="dimen" name="default_app_widget_padding_right" /> + <java-symbol type="dimen" name="default_app_widget_padding_top" /> + <java-symbol type="dimen" name="default_gap" /> + <java-symbol type="dimen" name="dropdownitem_icon_width" /> + <java-symbol type="dimen" name="dropdownitem_text_padding_left" /> + <java-symbol type="dimen" name="fastscroll_overlay_size" /> + <java-symbol type="dimen" name="fastscroll_thumb_height" /> + <java-symbol type="dimen" name="fastscroll_thumb_width" /> + <java-symbol type="dimen" name="fastscroll_thumb_width" /> + <java-symbol type="dimen" name="password_keyboard_spacebar_vertical_correction" /> + <java-symbol type="dimen" name="search_view_preferred_width" /> + <java-symbol type="dimen" name="textview_error_popup_default_width" /> + <java-symbol type="dimen" name="toast_y_offset" /> + <java-symbol type="dimen" name="volume_panel_top" /> + + <java-symbol type="string" name="addToDictionary" /> + <java-symbol type="string" name="action_bar_home_description" /> + <java-symbol type="string" name="action_bar_up_description" /> + <java-symbol type="string" name="delete" /> + <java-symbol type="string" name="deleteText" /> + <java-symbol type="string" name="ellipsis_two_dots" /> + <java-symbol type="string" name="ellipsis" /> + <java-symbol type="string" name="grant_permissions_header_text" /> + <java-symbol type="string" name="list_delimeter" /> + <java-symbol type="string" name="menu_delete_shortcut_label" /> + <java-symbol type="string" name="menu_enter_shortcut_label" /> + <java-symbol type="string" name="menu_space_shortcut_label" /> + <java-symbol type="string" name="notification_title" /> + <java-symbol type="string" name="permission_request_notification_with_subtitle" /> + <java-symbol type="string" name="prepend_shortcut_label" /> + <java-symbol type="string" name="replace" /> + <java-symbol type="string" name="textSelectionCABTitle" /> + <java-symbol type="string" name="BaMmi" /> + <java-symbol type="string" name="CLIRDefaultOffNextCallOff" /> + <java-symbol type="string" name="CLIRDefaultOffNextCallOn" /> + <java-symbol type="string" name="CLIRDefaultOnNextCallOff" /> + <java-symbol type="string" name="CLIRDefaultOnNextCallOn" /> + <java-symbol type="string" name="CLIRPermanent" /> + <java-symbol type="string" name="CfMmi" /> + <java-symbol type="string" name="ClipMmi" /> + <java-symbol type="string" name="ClirMmi" /> + <java-symbol type="string" name="CwMmi" /> + <java-symbol type="string" name="Midnight" /> + <java-symbol type="string" name="Noon" /> + <java-symbol type="string" name="PinMmi" /> + <java-symbol type="string" name="PwdMmi" /> + <java-symbol type="string" name="RestrictedChangedTitle" /> + <java-symbol type="string" name="RestrictedOnAllVoice" /> + <java-symbol type="string" name="RestrictedOnData" /> + <java-symbol type="string" name="RestrictedOnEmergency" /> + <java-symbol type="string" name="RestrictedOnNormal" /> + <java-symbol type="string" name="SetupCallDefault" /> + <java-symbol type="string" name="abbrev_month" /> + <java-symbol type="string" name="abbrev_month_day" /> + <java-symbol type="string" name="abbrev_month_day_year" /> + <java-symbol type="string" name="abbrev_month_year" /> + <java-symbol type="string" name="accept" /> + <java-symbol type="string" name="activity_chooser_view_see_all" /> + <java-symbol type="string" name="activitychooserview_choose_application" /> + <java-symbol type="string" name="alternate_eri_file" /> + <java-symbol type="string" name="alwaysUse" /> + <java-symbol type="string" name="am" /> + <java-symbol type="string" name="autofill_address_line_1_label_re" /> + <java-symbol type="string" name="autofill_address_line_1_re" /> + <java-symbol type="string" name="autofill_address_line_2_re" /> + <java-symbol type="string" name="autofill_address_line_3_re" /> + <java-symbol type="string" name="autofill_address_name_separator" /> + <java-symbol type="string" name="autofill_address_summary_format" /> + <java-symbol type="string" name="autofill_address_summary_name_format" /> + <java-symbol type="string" name="autofill_address_summary_separator" /> + <java-symbol type="string" name="autofill_address_type_same_as_re" /> + <java-symbol type="string" name="autofill_address_type_use_my_re" /> + <java-symbol type="string" name="autofill_area" /> + <java-symbol type="string" name="autofill_area_code_notext_re" /> + <java-symbol type="string" name="autofill_area_code_re" /> + <java-symbol type="string" name="autofill_attention_ignored_re" /> + <java-symbol type="string" name="autofill_billing_designator_re" /> + <java-symbol type="string" name="autofill_card_cvc_re" /> + <java-symbol type="string" name="autofill_card_ignored_re" /> + <java-symbol type="string" name="autofill_card_number_re" /> + <java-symbol type="string" name="autofill_city_re" /> + <java-symbol type="string" name="autofill_company_re" /> + <java-symbol type="string" name="autofill_country_code_re" /> + <java-symbol type="string" name="autofill_country_re" /> + <java-symbol type="string" name="autofill_county" /> + <java-symbol type="string" name="autofill_department" /> + <java-symbol type="string" name="autofill_district" /> + <java-symbol type="string" name="autofill_email_re" /> + <java-symbol type="string" name="autofill_emirate" /> + <java-symbol type="string" name="autofill_expiration_date_re" /> + <java-symbol type="string" name="autofill_expiration_month_re" /> + <java-symbol type="string" name="autofill_fax_re" /> + <java-symbol type="string" name="autofill_first_name_re" /> + <java-symbol type="string" name="autofill_island" /> + <java-symbol type="string" name="autofill_last_name_re" /> + <java-symbol type="string" name="autofill_middle_initial_re" /> + <java-symbol type="string" name="autofill_middle_name_re" /> + <java-symbol type="string" name="autofill_name_on_card_contextual_re" /> + <java-symbol type="string" name="autofill_name_on_card_re" /> + <java-symbol type="string" name="autofill_name_re" /> + <java-symbol type="string" name="autofill_name_specific_re" /> + <java-symbol type="string" name="autofill_parish" /> + <java-symbol type="string" name="autofill_phone_extension_re" /> + <java-symbol type="string" name="autofill_phone_prefix_re" /> + <java-symbol type="string" name="autofill_phone_prefix_separator_re" /> + <java-symbol type="string" name="autofill_phone_re" /> + <java-symbol type="string" name="autofill_phone_suffix_re" /> + <java-symbol type="string" name="autofill_phone_suffix_separator_re" /> + <java-symbol type="string" name="autofill_postal_code" /> + <java-symbol type="string" name="autofill_prefecture" /> + <java-symbol type="string" name="autofill_province" /> + <java-symbol type="string" name="autofill_region_ignored_re" /> + <java-symbol type="string" name="autofill_shipping_designator_re" /> + <java-symbol type="string" name="autofill_state" /> + <java-symbol type="string" name="autofill_state_re" /> + <java-symbol type="string" name="autofill_this_form" /> + <java-symbol type="string" name="autofill_username_re" /> + <java-symbol type="string" name="autofill_zip_4_re" /> + <java-symbol type="string" name="autofill_zip_code" /> + <java-symbol type="string" name="autofill_zip_code_re" /> + <java-symbol type="string" name="badPin" /> + <java-symbol type="string" name="badPuk" /> + <java-symbol type="string" name="byteShort" /> + <java-symbol type="string" name="cfTemplateForwarded" /> + <java-symbol type="string" name="cfTemplateForwardedTime" /> + <java-symbol type="string" name="cfTemplateNotForwarded" /> + <java-symbol type="string" name="cfTemplateRegistered" /> + <java-symbol type="string" name="cfTemplateRegisteredTime" /> + <java-symbol type="string" name="checkbox_checked" /> + <java-symbol type="string" name="checkbox_not_checked" /> + <java-symbol type="string" name="chooseActivity" /> + <java-symbol type="string" name="config_default_dns_server" /> + <java-symbol type="string" name="config_ethernet_iface_regex" /> + <java-symbol type="string" name="config_ntpServer" /> + <java-symbol type="string" name="config_tether_apndata" /> + <java-symbol type="string" name="config_useragentprofile_url" /> + <java-symbol type="string" name="config_wifi_p2p_device_type" /> + <java-symbol type="string" name="contentServiceSync" /> + <java-symbol type="string" name="contentServiceSyncNotificationTitle" /> + <java-symbol type="string" name="contentServiceTooManyDeletesNotificationDesc" /> + <java-symbol type="string" name="date1_date2" /> + <java-symbol type="string" name="date1_time1_date2_time2" /> + <java-symbol type="string" name="date_and_time" /> + <java-symbol type="string" name="date_picker_decrement_day_button" /> + <java-symbol type="string" name="date_picker_decrement_month_button" /> + <java-symbol type="string" name="date_picker_decrement_year_button" /> + <java-symbol type="string" name="date_picker_dialog_title" /> + <java-symbol type="string" name="date_picker_increment_day_button" /> + <java-symbol type="string" name="date_picker_increment_month_button" /> + <java-symbol type="string" name="date_picker_increment_year_button" /> + <java-symbol type="string" name="date_time" /> + <java-symbol type="string" name="date_time_set" /> + <java-symbol type="string" name="day_of_week_long_friday" /> + <java-symbol type="string" name="day_of_week_long_monday" /> + <java-symbol type="string" name="day_of_week_long_saturday" /> + <java-symbol type="string" name="day_of_week_long_sunday" /> + <java-symbol type="string" name="day_of_week_long_thursday" /> + <java-symbol type="string" name="day_of_week_long_tuesday" /> + <java-symbol type="string" name="day_of_week_long_wednesday" /> + <java-symbol type="string" name="day_of_week_medium_friday" /> + <java-symbol type="string" name="day_of_week_medium_monday" /> + <java-symbol type="string" name="day_of_week_medium_saturday" /> + <java-symbol type="string" name="day_of_week_medium_sunday" /> + <java-symbol type="string" name="day_of_week_medium_thursday" /> + <java-symbol type="string" name="day_of_week_medium_tuesday" /> + <java-symbol type="string" name="day_of_week_medium_wednesday" /> + <java-symbol type="string" name="day_of_week_short_friday" /> + <java-symbol type="string" name="day_of_week_short_monday" /> + <java-symbol type="string" name="day_of_week_short_saturday" /> + <java-symbol type="string" name="day_of_week_short_sunday" /> + <java-symbol type="string" name="day_of_week_short_thursday" /> + <java-symbol type="string" name="day_of_week_short_tuesday" /> + <java-symbol type="string" name="day_of_week_short_wednesday" /> + <java-symbol type="string" name="day_of_week_shortest_friday" /> + <java-symbol type="string" name="day_of_week_shortest_monday" /> + <java-symbol type="string" name="day_of_week_shortest_saturday" /> + <java-symbol type="string" name="day_of_week_shortest_sunday" /> + <java-symbol type="string" name="day_of_week_shortest_thursday" /> + <java-symbol type="string" name="day_of_week_shortest_tuesday" /> + <java-symbol type="string" name="day_of_week_shortest_wednesday" /> + <java-symbol type="string" name="decline" /> + <java-symbol type="string" name="default_permission_group" /> + <java-symbol type="string" name="default_text_encoding" /> + <java-symbol type="string" name="description_target_unlock_tablet" /> + <java-symbol type="string" name="double_tap_toast" /> + <java-symbol type="string" name="elapsed_time_short_format_h_mm_ss" /> + <java-symbol type="string" name="elapsed_time_short_format_mm_ss" /> + <java-symbol type="string" name="emailTypeCustom" /> + <java-symbol type="string" name="emailTypeHome" /> + <java-symbol type="string" name="emailTypeMobile" /> + <java-symbol type="string" name="emailTypeOther" /> + <java-symbol type="string" name="emailTypeWork" /> + <java-symbol type="string" name="emergency_call_dialog_number_for_display" /> + <java-symbol type="string" name="emergency_calls_only" /> + <java-symbol type="string" name="eventTypeAnniversary" /> + <java-symbol type="string" name="eventTypeBirthday" /> + <java-symbol type="string" name="eventTypeCustom" /> + <java-symbol type="string" name="eventTypeOther" /> + <java-symbol type="string" name="extmedia_format_button_format" /> + <java-symbol type="string" name="extmedia_format_message" /> + <java-symbol type="string" name="extmedia_format_title" /> + <java-symbol type="string" name="fileSizeSuffix" /> + <java-symbol type="string" name="force_close" /> + <java-symbol type="string" name="format_error" /> + <java-symbol type="string" name="gadget_host_error_inflating" /> + <java-symbol type="string" name="gigabyteShort" /> + <java-symbol type="string" name="gpsNotifMessage" /> + <java-symbol type="string" name="gpsNotifTicker" /> + <java-symbol type="string" name="gpsNotifTitle" /> + <java-symbol type="string" name="gpsVerifNo" /> + <java-symbol type="string" name="gpsVerifYes" /> + <java-symbol type="string" name="gsm_alphabet_default_charset" /> + <java-symbol type="string" name="hour_ampm" /> + <java-symbol type="string" name="hour_cap_ampm" /> + <java-symbol type="string" name="hour_minute_24" /> + <java-symbol type="string" name="hour_minute_ampm" /> + <java-symbol type="string" name="hour_minute_cap_ampm" /> + <java-symbol type="string" name="httpError" /> + <java-symbol type="string" name="httpErrorAuth" /> + <java-symbol type="string" name="httpErrorConnect" /> + <java-symbol type="string" name="httpErrorFailedSslHandshake" /> + <java-symbol type="string" name="httpErrorFile" /> + <java-symbol type="string" name="httpErrorFileNotFound" /> + <java-symbol type="string" name="httpErrorIO" /> + <java-symbol type="string" name="httpErrorLookup" /> + <java-symbol type="string" name="httpErrorOk" /> + <java-symbol type="string" name="httpErrorProxyAuth" /> + <java-symbol type="string" name="httpErrorRedirectLoop" /> + <java-symbol type="string" name="httpErrorTimeout" /> + <java-symbol type="string" name="httpErrorTooManyRequests" /> + <java-symbol type="string" name="httpErrorUnsupportedAuthScheme" /> + <java-symbol type="string" name="imProtocolAim" /> + <java-symbol type="string" name="imProtocolCustom" /> + <java-symbol type="string" name="imProtocolGoogleTalk" /> + <java-symbol type="string" name="imProtocolIcq" /> + <java-symbol type="string" name="imProtocolJabber" /> + <java-symbol type="string" name="imProtocolMsn" /> + <java-symbol type="string" name="imProtocolNetMeeting" /> + <java-symbol type="string" name="imProtocolQq" /> + <java-symbol type="string" name="imProtocolSkype" /> + <java-symbol type="string" name="imProtocolYahoo" /> + <java-symbol type="string" name="imTypeCustom" /> + <java-symbol type="string" name="imTypeHome" /> + <java-symbol type="string" name="imTypeOther" /> + <java-symbol type="string" name="imTypeWork" /> + <java-symbol type="string" name="ime_action_default" /> + <java-symbol type="string" name="ime_action_done" /> + <java-symbol type="string" name="ime_action_go" /> + <java-symbol type="string" name="ime_action_next" /> + <java-symbol type="string" name="ime_action_previous" /> + <java-symbol type="string" name="ime_action_search" /> + <java-symbol type="string" name="ime_action_send" /> + <java-symbol type="string" name="invalidPin" /> + <java-symbol type="string" name="js_dialog_before_unload" /> + <java-symbol type="string" name="js_dialog_title" /> + <java-symbol type="string" name="js_dialog_title_default" /> + <java-symbol type="string" name="keyboard_headset_required_to_hear_password" /> + <java-symbol type="string" name="keyboard_password_character_no_headset" /> + <java-symbol type="string" name="keyboardview_keycode_alt" /> + <java-symbol type="string" name="keyboardview_keycode_cancel" /> + <java-symbol type="string" name="keyboardview_keycode_delete" /> + <java-symbol type="string" name="keyboardview_keycode_done" /> + <java-symbol type="string" name="keyboardview_keycode_enter" /> + <java-symbol type="string" name="keyboardview_keycode_mode_change" /> + <java-symbol type="string" name="keyboardview_keycode_shift" /> + <java-symbol type="string" name="kilobyteShort" /> + <java-symbol type="string" name="last_month" /> + <java-symbol type="string" name="launchBrowserDefault" /> + <java-symbol type="string" name="lockscreen_access_pattern_cell_added" /> + <java-symbol type="string" name="lockscreen_access_pattern_cleared" /> + <java-symbol type="string" name="lockscreen_access_pattern_detected" /> + <java-symbol type="string" name="lockscreen_access_pattern_start" /> + <java-symbol type="string" name="lockscreen_emergency_call" /> + <java-symbol type="string" name="lockscreen_return_to_call" /> + <java-symbol type="string" name="lockscreen_transport_pause_description" /> + <java-symbol type="string" name="lockscreen_transport_play_description" /> + <java-symbol type="string" name="lockscreen_transport_stop_description" /> + <java-symbol type="string" name="low_memory" /> + <java-symbol type="string" name="media_bad_removal" /> + <java-symbol type="string" name="media_checking" /> + <java-symbol type="string" name="media_removed" /> + <java-symbol type="string" name="media_shared" /> + <java-symbol type="string" name="media_unknown_state" /> + <java-symbol type="string" name="megabyteShort" /> + <java-symbol type="string" name="midnight" /> + <java-symbol type="string" name="mismatchPin" /> + <java-symbol type="string" name="mmiComplete" /> + <java-symbol type="string" name="mmiError" /> + <java-symbol type="string" name="mmiFdnError" /> + <java-symbol type="string" name="month" /> + <java-symbol type="string" name="month_day" /> + <java-symbol type="string" name="month_day_year" /> + <java-symbol type="string" name="month_long_april" /> + <java-symbol type="string" name="month_long_august" /> + <java-symbol type="string" name="month_long_december" /> + <java-symbol type="string" name="month_long_february" /> + <java-symbol type="string" name="month_long_january" /> + <java-symbol type="string" name="month_long_july" /> + <java-symbol type="string" name="month_long_june" /> + <java-symbol type="string" name="month_long_march" /> + <java-symbol type="string" name="month_long_may" /> + <java-symbol type="string" name="month_long_november" /> + <java-symbol type="string" name="month_long_october" /> + <java-symbol type="string" name="month_long_september" /> + <java-symbol type="string" name="month_long_standalone_april" /> + <java-symbol type="string" name="month_long_standalone_august" /> + <java-symbol type="string" name="month_long_standalone_december" /> + <java-symbol type="string" name="month_long_standalone_february" /> + <java-symbol type="string" name="month_long_standalone_january" /> + <java-symbol type="string" name="month_long_standalone_july" /> + <java-symbol type="string" name="month_long_standalone_june" /> + <java-symbol type="string" name="month_long_standalone_march" /> + <java-symbol type="string" name="month_long_standalone_may" /> + <java-symbol type="string" name="month_long_standalone_november" /> + <java-symbol type="string" name="month_long_standalone_october" /> + <java-symbol type="string" name="month_long_standalone_september" /> + <java-symbol type="string" name="month_medium_april" /> + <java-symbol type="string" name="month_medium_august" /> + <java-symbol type="string" name="month_medium_december" /> + <java-symbol type="string" name="month_medium_february" /> + <java-symbol type="string" name="month_medium_january" /> + <java-symbol type="string" name="month_medium_july" /> + <java-symbol type="string" name="month_medium_june" /> + <java-symbol type="string" name="month_medium_march" /> + <java-symbol type="string" name="month_medium_may" /> + <java-symbol type="string" name="month_medium_november" /> + <java-symbol type="string" name="month_medium_october" /> + <java-symbol type="string" name="month_medium_september" /> + <java-symbol type="string" name="month_shortest_april" /> + <java-symbol type="string" name="month_shortest_august" /> + <java-symbol type="string" name="month_shortest_december" /> + <java-symbol type="string" name="month_shortest_february" /> + <java-symbol type="string" name="month_shortest_january" /> + <java-symbol type="string" name="month_shortest_july" /> + <java-symbol type="string" name="month_shortest_june" /> + <java-symbol type="string" name="month_shortest_march" /> + <java-symbol type="string" name="month_shortest_may" /> + <java-symbol type="string" name="month_shortest_november" /> + <java-symbol type="string" name="month_shortest_october" /> + <java-symbol type="string" name="month_shortest_september" /> + <java-symbol type="string" name="month_year" /> + <java-symbol type="string" name="more_item_label" /> + <java-symbol type="string" name="needPuk" /> + <java-symbol type="string" name="needPuk2" /> + <java-symbol type="string" name="new_app_action" /> + <java-symbol type="string" name="new_app_description" /> + <java-symbol type="string" name="noApplications" /> + <java-symbol type="string" name="no_file_chosen" /> + <java-symbol type="string" name="no_matches" /> + <java-symbol type="string" name="noon" /> + <java-symbol type="string" name="number_picker_increment_scroll_action" /> + <java-symbol type="string" name="number_picker_increment_scroll_mode" /> + <java-symbol type="string" name="numeric_date" /> + <java-symbol type="string" name="numeric_date_format" /> + <java-symbol type="string" name="numeric_date_template" /> + <java-symbol type="string" name="numeric_md1_md2" /> + <java-symbol type="string" name="numeric_md1_time1_md2_time2" /> + <java-symbol type="string" name="numeric_mdy1_mdy2" /> + <java-symbol type="string" name="numeric_mdy1_time1_mdy2_time2" /> + <java-symbol type="string" name="numeric_wday1_md1_time1_wday2_md2_time2" /> + <java-symbol type="string" name="numeric_wday1_md1_wday2_md2" /> + <java-symbol type="string" name="numeric_wday1_mdy1_time1_wday2_mdy2_time2" /> + <java-symbol type="string" name="numeric_wday1_mdy1_wday2_mdy2" /> + <java-symbol type="string" name="old_app_action" /> + <java-symbol type="string" name="old_app_description" /> + <java-symbol type="string" name="older" /> + <java-symbol type="string" name="open_permission_deny" /> + <java-symbol type="string" name="orgTypeCustom" /> + <java-symbol type="string" name="orgTypeOther" /> + <java-symbol type="string" name="orgTypeWork" /> + <java-symbol type="string" name="passwordIncorrect" /> + <java-symbol type="string" name="permissions_format" /> + <java-symbol type="string" name="perms_hide" /> + <java-symbol type="string" name="perms_show_all" /> + <java-symbol type="string" name="petabyteShort" /> + <java-symbol type="string" name="phoneTypeAssistant" /> + <java-symbol type="string" name="phoneTypeCallback" /> + <java-symbol type="string" name="phoneTypeCar" /> + <java-symbol type="string" name="phoneTypeCompanyMain" /> + <java-symbol type="string" name="phoneTypeCustom" /> + <java-symbol type="string" name="phoneTypeFaxHome" /> + <java-symbol type="string" name="phoneTypeFaxWork" /> + <java-symbol type="string" name="phoneTypeHome" /> + <java-symbol type="string" name="phoneTypeIsdn" /> + <java-symbol type="string" name="phoneTypeMain" /> + <java-symbol type="string" name="phoneTypeMms" /> + <java-symbol type="string" name="phoneTypeMobile" /> + <java-symbol type="string" name="phoneTypeOther" /> + <java-symbol type="string" name="phoneTypeOtherFax" /> + <java-symbol type="string" name="phoneTypePager" /> + <java-symbol type="string" name="phoneTypeRadio" /> + <java-symbol type="string" name="phoneTypeTelex" /> + <java-symbol type="string" name="phoneTypeTtyTdd" /> + <java-symbol type="string" name="phoneTypeWork" /> + <java-symbol type="string" name="phoneTypeWorkMobile" /> + <java-symbol type="string" name="phoneTypeWorkPager" /> + <java-symbol type="string" name="pm" /> + <java-symbol type="string" name="policydesc_disableCamera" /> + <java-symbol type="string" name="policydesc_encryptedStorage" /> + <java-symbol type="string" name="policydesc_expirePassword" /> + <java-symbol type="string" name="policydesc_forceLock" /> + <java-symbol type="string" name="policydesc_limitPassword" /> + <java-symbol type="string" name="policydesc_resetPassword" /> + <java-symbol type="string" name="policydesc_setGlobalProxy" /> + <java-symbol type="string" name="policydesc_watchLogin" /> + <java-symbol type="string" name="policydesc_wipeData" /> + <java-symbol type="string" name="policylab_disableCamera" /> + <java-symbol type="string" name="policylab_encryptedStorage" /> + <java-symbol type="string" name="policylab_expirePassword" /> + <java-symbol type="string" name="policylab_forceLock" /> + <java-symbol type="string" name="policylab_limitPassword" /> + <java-symbol type="string" name="policylab_resetPassword" /> + <java-symbol type="string" name="policylab_setGlobalProxy" /> + <java-symbol type="string" name="policylab_watchLogin" /> + <java-symbol type="string" name="policylab_wipeData" /> + <java-symbol type="string" name="postalTypeCustom" /> + <java-symbol type="string" name="postalTypeHome" /> + <java-symbol type="string" name="postalTypeOther" /> + <java-symbol type="string" name="postalTypeWork" /> + <java-symbol type="string" name="power_off" /> + <java-symbol type="string" name="preposition_for_date" /> + <java-symbol type="string" name="preposition_for_time" /> + <java-symbol type="string" name="progress_erasing" /> + <java-symbol type="string" name="progress_unmounting" /> + <java-symbol type="string" name="radiobutton_not_selected" /> + <java-symbol type="string" name="radiobutton_selected" /> + <java-symbol type="string" name="relationTypeAssistant" /> + <java-symbol type="string" name="relationTypeBrother" /> + <java-symbol type="string" name="relationTypeChild" /> + <java-symbol type="string" name="relationTypeDomesticPartner" /> + <java-symbol type="string" name="relationTypeFather" /> + <java-symbol type="string" name="relationTypeFriend" /> + <java-symbol type="string" name="relationTypeManager" /> + <java-symbol type="string" name="relationTypeMother" /> + <java-symbol type="string" name="relationTypeParent" /> + <java-symbol type="string" name="relationTypePartner" /> + <java-symbol type="string" name="relationTypeReferredBy" /> + <java-symbol type="string" name="relationTypeRelative" /> + <java-symbol type="string" name="relationTypeSister" /> + <java-symbol type="string" name="relationTypeSpouse" /> + <java-symbol type="string" name="relative_time" /> + <java-symbol type="string" name="reset" /> + <java-symbol type="string" name="ringtone_default" /> + <java-symbol type="string" name="ringtone_default_with_actual" /> + <java-symbol type="string" name="ringtone_picker_title" /> + <java-symbol type="string" name="ringtone_silent" /> + <java-symbol type="string" name="ringtone_unknown" /> + <java-symbol type="string" name="roamingText0" /> + <java-symbol type="string" name="roamingText1" /> + <java-symbol type="string" name="roamingText10" /> + <java-symbol type="string" name="roamingText11" /> + <java-symbol type="string" name="roamingText12" /> + <java-symbol type="string" name="roamingText2" /> + <java-symbol type="string" name="roamingText3" /> + <java-symbol type="string" name="roamingText4" /> + <java-symbol type="string" name="roamingText5" /> + <java-symbol type="string" name="roamingText6" /> + <java-symbol type="string" name="roamingText7" /> + <java-symbol type="string" name="roamingText8" /> + <java-symbol type="string" name="roamingText9" /> + <java-symbol type="string" name="roamingTextSearching" /> + <java-symbol type="string" name="same_month_md1_md2" /> + <java-symbol type="string" name="same_month_md1_time1_md2_time2" /> + <java-symbol type="string" name="same_month_mdy1_mdy2" /> + <java-symbol type="string" name="same_month_mdy1_time1_mdy2_time2" /> + <java-symbol type="string" name="same_month_wday1_md1_time1_wday2_md2_time2" /> + <java-symbol type="string" name="same_month_wday1_md1_wday2_md2" /> + <java-symbol type="string" name="same_month_wday1_mdy1_time1_wday2_mdy2_time2" /> + <java-symbol type="string" name="same_month_wday1_mdy1_wday2_mdy2" /> + <java-symbol type="string" name="same_year_md1_md2" /> + <java-symbol type="string" name="same_year_md1_time1_md2_time2" /> + <java-symbol type="string" name="same_year_mdy1_mdy2" /> + <java-symbol type="string" name="same_year_mdy1_time1_mdy2_time2" /> + <java-symbol type="string" name="same_year_wday1_md1_time1_wday2_md2_time2" /> + <java-symbol type="string" name="same_year_wday1_md1_wday2_md2" /> + <java-symbol type="string" name="same_year_wday1_mdy1_time1_wday2_mdy2_time2" /> + <java-symbol type="string" name="same_year_wday1_mdy1_wday2_mdy2" /> + <java-symbol type="string" name="save_password_label" /> + <java-symbol type="string" name="save_password_message" /> + <java-symbol type="string" name="save_password_never" /> + <java-symbol type="string" name="save_password_notnow" /> + <java-symbol type="string" name="save_password_remember" /> + <java-symbol type="string" name="sendText" /> + <java-symbol type="string" name="sending" /> + <java-symbol type="string" name="serviceClassData" /> + <java-symbol type="string" name="serviceClassDataAsync" /> + <java-symbol type="string" name="serviceClassDataSync" /> + <java-symbol type="string" name="serviceClassFAX" /> + <java-symbol type="string" name="serviceClassPAD" /> + <java-symbol type="string" name="serviceClassPacket" /> + <java-symbol type="string" name="serviceClassSMS" /> + <java-symbol type="string" name="serviceClassVoice" /> + <java-symbol type="string" name="serviceDisabled" /> + <java-symbol type="string" name="serviceEnabled" /> + <java-symbol type="string" name="serviceEnabledFor" /> + <java-symbol type="string" name="serviceErased" /> + <java-symbol type="string" name="serviceNotProvisioned" /> + <java-symbol type="string" name="serviceRegistered" /> + <java-symbol type="string" name="setup_autofill" /> + <java-symbol type="string" name="shareactionprovider_share_with" /> + <java-symbol type="string" name="shareactionprovider_share_with_application" /> + <java-symbol type="string" name="short_format_month" /> + <java-symbol type="string" name="shutdown_confirm" /> + <java-symbol type="string" name="shutdown_confirm_question" /> + <java-symbol type="string" name="shutdown_progress" /> + <java-symbol type="string" name="sim_added_message" /> + <java-symbol type="string" name="sim_added_title" /> + <java-symbol type="string" name="sim_removed_message" /> + <java-symbol type="string" name="sim_removed_title" /> + <java-symbol type="string" name="sim_restart_button" /> + <java-symbol type="string" name="sipAddressTypeCustom" /> + <java-symbol type="string" name="sipAddressTypeHome" /> + <java-symbol type="string" name="sipAddressTypeOther" /> + <java-symbol type="string" name="sipAddressTypeWork" /> + <java-symbol type="string" name="sms_control_default_app_name" /> + <java-symbol type="string" name="sms_control_message" /> + <java-symbol type="string" name="sms_control_no" /> + <java-symbol type="string" name="sms_control_title" /> + <java-symbol type="string" name="sms_control_yes" /> + <java-symbol type="string" name="submit" /> + <java-symbol type="string" name="switch_off" /> + <java-symbol type="string" name="switch_on" /> + <java-symbol type="string" name="sync_binding_label" /> + <java-symbol type="string" name="sync_do_nothing" /> + <java-symbol type="string" name="sync_really_delete" /> + <java-symbol type="string" name="sync_too_many_deletes_desc" /> + <java-symbol type="string" name="sync_undo_deletes" /> + <java-symbol type="string" name="terabyteShort" /> + <java-symbol type="string" name="text_copied" /> + <java-symbol type="string" name="time1_time2" /> + <java-symbol type="string" name="time_date" /> + <java-symbol type="string" name="time_of_day" /> + <java-symbol type="string" name="time_picker_decrement_hour_button" /> + <java-symbol type="string" name="time_picker_decrement_minute_button" /> + <java-symbol type="string" name="time_picker_decrement_set_am_button" /> + <java-symbol type="string" name="time_picker_dialog_title" /> + <java-symbol type="string" name="time_picker_increment_hour_button" /> + <java-symbol type="string" name="time_picker_increment_minute_button" /> + <java-symbol type="string" name="time_picker_increment_set_pm_button" /> + <java-symbol type="string" name="time_picker_separator" /> + <java-symbol type="string" name="time_wday" /> + <java-symbol type="string" name="time_wday_date" /> + <java-symbol type="string" name="today" /> + <java-symbol type="string" name="togglebutton_not_pressed" /> + <java-symbol type="string" name="togglebutton_pressed" /> + <java-symbol type="string" name="tomorrow" /> + <java-symbol type="string" name="twelve_hour_time_format" /> + <java-symbol type="string" name="twenty_four_hour_time_format" /> + <java-symbol type="string" name="upload_file" /> + <java-symbol type="string" name="volume_alarm" /> + <java-symbol type="string" name="volume_icon_description_bluetooth" /> + <java-symbol type="string" name="volume_icon_description_incall" /> + <java-symbol type="string" name="volume_icon_description_media" /> + <java-symbol type="string" name="volume_icon_description_notification" /> + <java-symbol type="string" name="volume_icon_description_ringer" /> + <java-symbol type="string" name="wait" /> + <java-symbol type="string" name="wday1_date1_time1_wday2_date2_time2" /> + <java-symbol type="string" name="wday1_date1_wday2_date2" /> + <java-symbol type="string" name="wday_date" /> + <java-symbol type="string" name="web_user_agent" /> + <java-symbol type="string" name="web_user_agent_target_content" /> + <java-symbol type="string" name="webpage_unresponsive" /> + <java-symbol type="string" name="whichApplication" /> + <java-symbol type="string" name="wifi_available_sign_in" /> + <java-symbol type="string" name="wifi_available_sign_in_detailed" /> + <java-symbol type="string" name="wifi_p2p_dialog_title" /> + <java-symbol type="string" name="wifi_p2p_enabled_notification_message" /> + <java-symbol type="string" name="wifi_p2p_enabled_notification_title" /> + <java-symbol type="string" name="wifi_p2p_failed_message" /> + <java-symbol type="string" name="wifi_p2p_from_message" /> + <java-symbol type="string" name="wifi_p2p_invitation_sent_title" /> + <java-symbol type="string" name="wifi_p2p_invitation_to_connect_title" /> + <java-symbol type="string" name="wifi_p2p_show_pin_message" /> + <java-symbol type="string" name="wifi_p2p_to_message" /> + <java-symbol type="string" name="wifi_p2p_turnon_message" /> + <java-symbol type="string" name="wifi_tether_configure_ssid_default" /> + <java-symbol type="string" name="wifi_watchdog_network_disabled" /> + <java-symbol type="string" name="wifi_watchdog_network_disabled_detailed" /> + <java-symbol type="string" name="yesterday" /> + + <java-symbol type="plurals" name="abbrev_in_num_days" /> + <java-symbol type="plurals" name="abbrev_in_num_hours" /> + <java-symbol type="plurals" name="abbrev_in_num_minutes" /> + <java-symbol type="plurals" name="abbrev_in_num_seconds" /> + <java-symbol type="plurals" name="abbrev_num_days_ago" /> + <java-symbol type="plurals" name="abbrev_num_hours_ago" /> + <java-symbol type="plurals" name="abbrev_num_minutes_ago" /> + <java-symbol type="plurals" name="abbrev_num_seconds_ago" /> + <java-symbol type="plurals" name="in_num_days" /> + <java-symbol type="plurals" name="in_num_hours" /> + <java-symbol type="plurals" name="in_num_minutes" /> + <java-symbol type="plurals" name="in_num_seconds" /> + <java-symbol type="plurals" name="last_num_days" /> + <java-symbol type="plurals" name="matches_found" /> + <java-symbol type="plurals" name="num_days_ago" /> + <java-symbol type="plurals" name="num_hours_ago" /> + <java-symbol type="plurals" name="num_minutes_ago" /> + <java-symbol type="plurals" name="num_seconds_ago" /> + + <java-symbol type="array" name="carrier_properties" /> + <java-symbol type="array" name="config_data_usage_network_types" /> + <java-symbol type="array" name="config_sms_enabled_locking_shift_tables" /> + <java-symbol type="array" name="config_sms_enabled_single_shift_tables" /> + <java-symbol type="array" name="config_twoDigitNumberPattern" /> + <java-symbol type="array" name="networkAttributes" /> + <java-symbol type="array" name="preloaded_color_state_lists" /> + <java-symbol type="array" name="preloaded_drawables" /> + <java-symbol type="array" name="special_locale_codes" /> + <java-symbol type="array" name="special_locale_names" /> + + <java-symbol type="drawable" name="default_wallpaper" /> + <java-symbol type="drawable" name="ic_suggestions_add" /> + <java-symbol type="drawable" name="ic_suggestions_delete" /> + <java-symbol type="drawable" name="indicator_input_error" /> + <java-symbol type="drawable" name="overscroll_edge" /> + <java-symbol type="drawable" name="overscroll_glow" /> + <java-symbol type="drawable" name="popup_bottom_dark" /> + <java-symbol type="drawable" name="popup_bottom_bright" /> + <java-symbol type="drawable" name="popup_bottom_medium" /> + <java-symbol type="drawable" name="popup_center_dark" /> + <java-symbol type="drawable" name="popup_center_bright" /> + <java-symbol type="drawable" name="popup_full_dark" /> + <java-symbol type="drawable" name="popup_full_bright" /> + <java-symbol type="drawable" name="popup_top_dark" /> + <java-symbol type="drawable" name="popup_top_bright" /> + <java-symbol type="drawable" name="search_spinner" /> + <java-symbol type="drawable" name="sym_app_on_sd_unavailable_icon" /> + <java-symbol type="drawable" name="text_edit_side_paste_window" /> + <java-symbol type="drawable" name="text_edit_paste_window" /> + <java-symbol type="drawable" name="btn_check_off" /> + <java-symbol type="drawable" name="btn_code_lock_default_holo" /> + <java-symbol type="drawable" name="btn_code_lock_touched_holo" /> + <java-symbol type="drawable" name="clock_dial" /> + <java-symbol type="drawable" name="clock_hand_hour" /> + <java-symbol type="drawable" name="clock_hand_minute" /> + <java-symbol type="drawable" name="emo_im_angel" /> + <java-symbol type="drawable" name="emo_im_cool" /> + <java-symbol type="drawable" name="emo_im_crying" /> + <java-symbol type="drawable" name="emo_im_embarrassed" /> + <java-symbol type="drawable" name="emo_im_foot_in_mouth" /> + <java-symbol type="drawable" name="emo_im_happy" /> + <java-symbol type="drawable" name="emo_im_kissing" /> + <java-symbol type="drawable" name="emo_im_laughing" /> + <java-symbol type="drawable" name="emo_im_lips_are_sealed" /> + <java-symbol type="drawable" name="emo_im_money_mouth" /> + <java-symbol type="drawable" name="emo_im_sad" /> + <java-symbol type="drawable" name="emo_im_surprised" /> + <java-symbol type="drawable" name="emo_im_tongue_sticking_out" /> + <java-symbol type="drawable" name="emo_im_undecided" /> + <java-symbol type="drawable" name="emo_im_winking" /> + <java-symbol type="drawable" name="emo_im_wtf" /> + <java-symbol type="drawable" name="emo_im_yelling" /> + <java-symbol type="drawable" name="expander_close_holo_dark" /> + <java-symbol type="drawable" name="expander_open_holo_dark" /> + <java-symbol type="drawable" name="ic_audio_alarm" /> + <java-symbol type="drawable" name="ic_audio_alarm_mute" /> + <java-symbol type="drawable" name="ic_audio_bt" /> + <java-symbol type="drawable" name="ic_audio_bt_mute" /> + <java-symbol type="drawable" name="ic_audio_notification" /> + <java-symbol type="drawable" name="ic_audio_notification_mute" /> + <java-symbol type="drawable" name="ic_audio_phone" /> + <java-symbol type="drawable" name="ic_audio_ring_notif" /> + <java-symbol type="drawable" name="ic_audio_ring_notif_mute" /> + <java-symbol type="drawable" name="ic_audio_ring_notif_vibrate" /> + <java-symbol type="drawable" name="ic_audio_vol" /> + <java-symbol type="drawable" name="ic_audio_vol_mute" /> + <java-symbol type="drawable" name="ic_bullet_key_permission" /> + <java-symbol type="drawable" name="ic_contact_picture" /> + <java-symbol type="drawable" name="ic_dialog_usb" /> + <java-symbol type="drawable" name="ic_emergency" /> + <java-symbol type="drawable" name="ic_media_stop" /> + <java-symbol type="drawable" name="ic_text_dot" /> + <java-symbol type="drawable" name="indicator_code_lock_drag_direction_green_up" /> + <java-symbol type="drawable" name="indicator_code_lock_drag_direction_red_up" /> + <java-symbol type="drawable" name="indicator_code_lock_point_area_default_holo" /> + <java-symbol type="drawable" name="indicator_code_lock_point_area_green_holo" /> + <java-symbol type="drawable" name="indicator_code_lock_point_area_red_holo" /> + <java-symbol type="drawable" name="jog_dial_arrow_long_left_green" /> + <java-symbol type="drawable" name="jog_dial_arrow_long_right_red" /> + <java-symbol type="drawable" name="jog_dial_arrow_short_left_and_right" /> + <java-symbol type="drawable" name="jog_dial_bg" /> + <java-symbol type="drawable" name="jog_dial_dimple" /> + <java-symbol type="drawable" name="jog_dial_dimple_dim" /> + <java-symbol type="drawable" name="jog_tab_bar_left_generic" /> + <java-symbol type="drawable" name="jog_tab_bar_right_generic" /> + <java-symbol type="drawable" name="jog_tab_left_generic" /> + <java-symbol type="drawable" name="jog_tab_right_generic" /> + <java-symbol type="drawable" name="jog_tab_target_gray" /> + <java-symbol type="drawable" name="picture_emergency" /> + <java-symbol type="drawable" name="platlogo" /> + <java-symbol type="drawable" name="stat_notify_sync_error" /> + <java-symbol type="drawable" name="stat_notify_wifi_in_range" /> + <java-symbol type="drawable" name="stat_sys_gps_on" /> + <java-symbol type="drawable" name="stat_sys_tether_wifi" /> + <java-symbol type="drawable" name="status_bar_background" /> + <java-symbol type="drawable" name="sym_keyboard_shift" /> + <java-symbol type="drawable" name="sym_keyboard_shift_locked" /> + <java-symbol type="drawable" name="tab_bottom_left" /> + <java-symbol type="drawable" name="tab_bottom_left_v4" /> + <java-symbol type="drawable" name="tab_bottom_right" /> + <java-symbol type="drawable" name="tab_bottom_right_v4" /> + <java-symbol type="drawable" name="tab_indicator_v4" /> + <java-symbol type="drawable" name="text_select_handle_left" /> + <java-symbol type="drawable" name="text_select_handle_right" /> + <java-symbol type="drawable" name="unknown_image" /> + <java-symbol type="drawable" name="unlock_default" /> + <java-symbol type="drawable" name="unlock_halo" /> + <java-symbol type="drawable" name="unlock_ring" /> + <java-symbol type="drawable" name="unlock_wave" /> + + <java-symbol type="layout" name="action_bar_home" /> + <java-symbol type="layout" name="action_bar_title_item" /> + <java-symbol type="layout" name="action_menu_item_layout" /> + <java-symbol type="layout" name="action_menu_layout" /> + <java-symbol type="layout" name="action_mode_close_item" /> + <java-symbol type="layout" name="alert_dialog" /> + <java-symbol type="layout" name="choose_account" /> + <java-symbol type="layout" name="choose_account_row" /> + <java-symbol type="layout" name="choose_account_type" /> + <java-symbol type="layout" name="choose_selected_account_row" /> + <java-symbol type="layout" name="choose_type_and_account" /> + <java-symbol type="layout" name="grant_credentials_permission" /> + <java-symbol type="layout" name="number_picker" /> + <java-symbol type="layout" name="permissions_package_list_item" /> + <java-symbol type="layout" name="popup_menu_item_layout" /> + <java-symbol type="layout" name="remote_views_adapter_default_loading_view" /> + <java-symbol type="layout" name="search_bar" /> + <java-symbol type="layout" name="search_dropdown_item_icons_2line" /> + <java-symbol type="layout" name="search_view" /> + <java-symbol type="layout" name="select_dialog" /> + <java-symbol type="layout" name="simple_dropdown_hint" /> + <java-symbol type="layout" name="status_bar_latest_event_content" /> + <java-symbol type="layout" name="status_bar_latest_event_content_large_icon" /> + <java-symbol type="layout" name="status_bar_latest_event_ticker" /> + <java-symbol type="layout" name="status_bar_latest_event_ticker_large_icon" /> + <java-symbol type="layout" name="text_edit_action_popup_text" /> + <java-symbol type="layout" name="text_drag_thumbnail" /> + <java-symbol type="layout" name="typing_filter" /> + <java-symbol type="layout" name="activity_chooser_view" /> + <java-symbol type="layout" name="activity_chooser_view_list_item" /> + <java-symbol type="layout" name="activity_list" /> + <java-symbol type="layout" name="activity_list_item_2" /> + <java-symbol type="layout" name="alert_dialog_progress" /> + <java-symbol type="layout" name="always_use_checkbox" /> + <java-symbol type="layout" name="app_permission_item" /> + <java-symbol type="layout" name="app_perms_summary" /> + <java-symbol type="layout" name="calendar_view" /> + <java-symbol type="layout" name="character_picker" /> + <java-symbol type="layout" name="character_picker_button" /> + <java-symbol type="layout" name="date_picker" /> + <java-symbol type="layout" name="date_picker_dialog" /> + <java-symbol type="layout" name="expanded_menu_layout" /> + <java-symbol type="layout" name="fragment_bread_crumb_item" /> + <java-symbol type="layout" name="fragment_bread_crumbs" /> + <java-symbol type="layout" name="heavy_weight_switcher" /> + <java-symbol type="layout" name="icon_menu_item_layout" /> + <java-symbol type="layout" name="icon_menu_layout" /> + <java-symbol type="layout" name="input_method" /> + <java-symbol type="layout" name="input_method_extract_view" /> + <java-symbol type="layout" name="js_prompt" /> + <java-symbol type="layout" name="list_content_simple" /> + <java-symbol type="layout" name="list_menu_item_checkbox" /> + <java-symbol type="layout" name="list_menu_item_icon" /> + <java-symbol type="layout" name="list_menu_item_layout" /> + <java-symbol type="layout" name="list_menu_item_radio" /> + <java-symbol type="layout" name="locale_picker_item" /> + <java-symbol type="layout" name="media_controller" /> + <java-symbol type="layout" name="preference" /> + <java-symbol type="layout" name="preference_header_item" /> + <java-symbol type="layout" name="preference_list_content" /> + <java-symbol type="layout" name="preference_list_content_single" /> + <java-symbol type="layout" name="preference_list_fragment" /> + <java-symbol type="layout" name="preference_widget_seekbar" /> + <java-symbol type="layout" name="progress_dialog" /> + <java-symbol type="layout" name="resolve_list_item" /> + <java-symbol type="layout" name="seekbar_dialog" /> + <java-symbol type="layout" name="select_dialog_singlechoice_holo" /> + <java-symbol type="layout" name="ssl_certificate" /> + <java-symbol type="layout" name="tab_content" /> + <java-symbol type="layout" name="tab_indicator_holo" /> + <java-symbol type="layout" name="textview_hint" /> + <java-symbol type="layout" name="time_picker" /> + <java-symbol type="layout" name="time_picker_dialog" /> + <java-symbol type="layout" name="transient_notification" /> + <java-symbol type="layout" name="volume_adjust" /> + <java-symbol type="layout" name="volume_adjust_item" /> + <java-symbol type="layout" name="web_text_view_dropdown" /> + <java-symbol type="layout" name="webview_find" /> + <java-symbol type="layout" name="webview_select_singlechoice" /> + <java-symbol type="layout" name="wifi_p2p_dialog" /> + <java-symbol type="layout" name="wifi_p2p_dialog_row" /> + <java-symbol type="layout" name="zoom_container" /> + <java-symbol type="layout" name="zoom_controls" /> + <java-symbol type="layout" name="zoom_magnify" /> + + <java-symbol type="anim" name="slide_in_child_bottom" /> + <java-symbol type="anim" name="slide_in_right" /> + <java-symbol type="anim" name="slide_out_left" /> + + <java-symbol type="menu" name="webview_copy" /> + <java-symbol type="menu" name="webview_find" /> + + <java-symbol type="xml" name="password_kbd_qwerty" /> + <java-symbol type="xml" name="autotext" /> + <java-symbol type="xml" name="eri" /> + <java-symbol type="xml" name="password_kbd_numeric" /> + <java-symbol type="xml" name="password_kbd_qwerty_shifted" /> + <java-symbol type="xml" name="password_kbd_symbols" /> + <java-symbol type="xml" name="password_kbd_symbols_shift" /> + <java-symbol type="xml" name="power_profile" /> + <java-symbol type="xml" name="time_zones_by_country" /> + + <java-symbol type="raw" name="incognito_mode_start_page" /> + <java-symbol type="raw" name="loaderror" /> + <java-symbol type="raw" name="nodomain" /> + + <java-symbol type="style" name="Animation.DropDownUp" /> + <java-symbol type="style" name="Animation.DropDownDown" /> + <java-symbol type="style" name="Animation.PopupWindow" /> + <java-symbol type="style" name="Animation.TypingFilter" /> + <java-symbol type="style" name="Animation.TypingFilterRestore" /> + <java-symbol type="style" name="Theme.DeviceDefault.Dialog.Alert" /> + <java-symbol type="style" name="Theme.DeviceDefault.Light.Dialog.Alert" /> + <java-symbol type="style" name="Theme.Dialog.Alert" /> + <java-symbol type="style" name="Theme.Holo.Dialog.Alert" /> + <java-symbol type="style" name="Theme.Holo.Light.Dialog.Alert" /> + <java-symbol type="style" name="ActiveWallpaperSettings" /> + <java-symbol type="style" name="Animation.InputMethodFancy" /> + <java-symbol type="style" name="Animation.Wallpaper" /> + <java-symbol type="style" name="Animation.ZoomButtons" /> + <java-symbol type="style" name="PreviewWallpaperSettings" /> + <java-symbol type="style" name="TextAppearance.SlidingTabActive" /> + <java-symbol type="style" name="TextAppearance.SlidingTabNormal" /> + <java-symbol type="style" name="Theme.DeviceDefault.Dialog.NoFrame" /> + <java-symbol type="style" name="Theme.IconMenu" /> + <java-symbol type="style" name="Theme.Panel.Volume" /> + + <!-- From android.policy --> + <java-symbol type="anim" name="app_starting_exit" /> + <java-symbol type="anim" name="lock_screen_behind_enter" /> + <java-symbol type="array" name="config_keyboardTapVibePattern" /> + <java-symbol type="array" name="config_longPressVibePattern" /> + <java-symbol type="array" name="config_safeModeDisabledVibePattern" /> + <java-symbol type="array" name="config_safeModeEnabledVibePattern" /> + <java-symbol type="array" name="config_virtualKeyVibePattern" /> + <java-symbol type="array" name="lockscreen_targets_when_silent" /> + <java-symbol type="array" name="lockscreen_targets_when_soundon" /> + <java-symbol type="array" name="lockscreen_targets_with_camera" /> + <java-symbol type="attr" name="actionModePopupWindowStyle" /> + <java-symbol type="attr" name="dialogCustomTitleDecorLayout" /> + <java-symbol type="attr" name="dialogTitleDecorLayout" /> + <java-symbol type="attr" name="dialogTitleIconsDecorLayout" /> + <java-symbol type="bool" name="config_allowAllRotations" /> + <java-symbol type="bool" name="config_bypass_keyguard_if_slider_open" /> + <java-symbol type="bool" name="config_carDockEnablesAccelerometer" /> + <java-symbol type="bool" name="config_deskDockEnablesAccelerometer" /> + <java-symbol type="bool" name="config_disableMenuKeyInLockScreen" /> + <java-symbol type="bool" name="config_enableLockBeforeUnlockScreen" /> + <java-symbol type="bool" name="config_enableLockScreenRotation" /> + <java-symbol type="bool" name="config_reverseDefaultRotation" /> + <java-symbol type="bool" name="config_showNavigationBar" /> + <java-symbol type="bool" name="target_honeycomb_needs_options_menu" /> + <java-symbol type="dimen" name="navigation_bar_height" /> + <java-symbol type="dimen" name="navigation_bar_width" /> + <java-symbol type="dimen" name="status_bar_height" /> + <java-symbol type="dimen" name="system_bar_height" /> + <java-symbol type="drawable" name="ic_jog_dial_sound_off" /> + <java-symbol type="drawable" name="ic_jog_dial_sound_on" /> + <java-symbol type="drawable" name="ic_jog_dial_unlock" /> + <java-symbol type="drawable" name="ic_jog_dial_vibrate_on" /> + <java-symbol type="drawable" name="ic_lock_airplane_mode" /> + <java-symbol type="drawable" name="ic_lock_airplane_mode_off" /> + <java-symbol type="drawable" name="ic_menu_cc" /> + <java-symbol type="drawable" name="jog_tab_bar_left_unlock" /> + <java-symbol type="drawable" name="jog_tab_bar_right_sound_off" /> + <java-symbol type="drawable" name="jog_tab_bar_right_sound_on" /> + <java-symbol type="drawable" name="jog_tab_left_unlock" /> + <java-symbol type="drawable" name="jog_tab_right_sound_off" /> + <java-symbol type="drawable" name="jog_tab_right_sound_on" /> + <java-symbol type="drawable" name="jog_tab_target_green" /> + <java-symbol type="drawable" name="jog_tab_target_yellow" /> + <java-symbol type="drawable" name="menu_background" /> + <java-symbol type="drawable" name="stat_sys_secure" /> + <java-symbol type="id" name="action_mode_bar_stub" /> + <java-symbol type="id" name="alarm_status" /> + <java-symbol type="id" name="backspace" /> + <java-symbol type="id" name="button0" /> + <java-symbol type="id" name="button4" /> + <java-symbol type="id" name="button5" /> + <java-symbol type="id" name="button6" /> + <java-symbol type="id" name="button7" /> + <java-symbol type="id" name="carrier" /> + <java-symbol type="id" name="date" /> + <java-symbol type="id" name="eight" /> + <java-symbol type="id" name="emergencyCallButton" /> + <java-symbol type="id" name="faceLockAreaView" /> + <java-symbol type="id" name="five" /> + <java-symbol type="id" name="forgotPatternButton" /> + <java-symbol type="id" name="four" /> + <java-symbol type="id" name="headerText" /> + <java-symbol type="id" name="icon_menu_presenter" /> + <java-symbol type="id" name="instructions" /> + <java-symbol type="id" name="keyboard" /> + <java-symbol type="id" name="list_menu_presenter" /> + <java-symbol type="id" name="lockPattern" /> + <java-symbol type="id" name="lock_screen" /> + <java-symbol type="id" name="login" /> + <java-symbol type="id" name="nine" /> + <java-symbol type="id" name="no_applications_message" /> + <java-symbol type="id" name="ok" /> + <java-symbol type="id" name="one" /> + <java-symbol type="id" name="option1" /> + <java-symbol type="id" name="option2" /> + <java-symbol type="id" name="option3" /> + <java-symbol type="id" name="password" /> + <java-symbol type="id" name="passwordEntry" /> + <java-symbol type="id" name="pinDel" /> + <java-symbol type="id" name="pinDisplay" /> + <java-symbol type="id" name="propertyOf" /> + <java-symbol type="id" name="pukDel" /> + <java-symbol type="id" name="pukDisplay" /> + <java-symbol type="id" name="right_icon" /> + <java-symbol type="id" name="seven" /> + <java-symbol type="id" name="six" /> + <java-symbol type="id" name="status" /> + <java-symbol type="id" name="status1" /> + <java-symbol type="id" name="switch_ime_button" /> + <java-symbol type="id" name="three" /> + <java-symbol type="id" name="title_container" /> + <java-symbol type="id" name="topHeader" /> + <java-symbol type="id" name="transport" /> + <java-symbol type="id" name="transport_bg_protect" /> + <java-symbol type="id" name="two" /> + <java-symbol type="id" name="unlock_widget" /> + <java-symbol type="id" name="zero" /> + <java-symbol type="integer" name="config_carDockRotation" /> + <java-symbol type="integer" name="config_defaultUiModeType" /> + <java-symbol type="integer" name="config_deskDockRotation" /> + <java-symbol type="integer" name="config_lidKeyboardAccessibility" /> + <java-symbol type="integer" name="config_lidNavigationAccessibility" /> + <java-symbol type="integer" name="config_lidOpenRotation" /> + <java-symbol type="integer" name="config_longPressOnHomeBehavior" /> + <java-symbol type="layout" name="global_actions_item" /> + <java-symbol type="layout" name="global_actions_silent_mode" /> + <java-symbol type="layout" name="keyguard_screen_glogin_unlock" /> + <java-symbol type="layout" name="keyguard_screen_password_landscape" /> + <java-symbol type="layout" name="keyguard_screen_password_portrait" /> + <java-symbol type="layout" name="keyguard_screen_sim_pin_landscape" /> + <java-symbol type="layout" name="keyguard_screen_sim_pin_portrait" /> + <java-symbol type="layout" name="keyguard_screen_sim_puk_landscape" /> + <java-symbol type="layout" name="keyguard_screen_sim_puk_portrait" /> + <java-symbol type="layout" name="keyguard_screen_tab_unlock" /> + <java-symbol type="layout" name="keyguard_screen_tab_unlock_land" /> + <java-symbol type="layout" name="keyguard_screen_unlock_landscape" /> + <java-symbol type="layout" name="keyguard_screen_unlock_portrait" /> + <java-symbol type="layout" name="recent_apps_dialog" /> + <java-symbol type="layout" name="screen_action_bar" /> + <java-symbol type="layout" name="screen_action_bar_overlay" /> + <java-symbol type="layout" name="screen_custom_title" /> + <java-symbol type="layout" name="screen_progress" /> + <java-symbol type="layout" name="screen_simple" /> + <java-symbol type="layout" name="screen_simple_overlay_action_mode" /> + <java-symbol type="layout" name="screen_title" /> + <java-symbol type="layout" name="screen_title_icons" /> + <java-symbol type="string" name="abbrev_wday_month_day_no_year" /> + <java-symbol type="string" name="android_upgrading_title" /> + <java-symbol type="string" name="config_defaultDreamComponent" /> + <java-symbol type="string" name="faceunlock_multiple_failures" /> + <java-symbol type="string" name="global_action_power_off" /> + <java-symbol type="string" name="global_actions_airplane_mode_off_status" /> + <java-symbol type="string" name="global_actions_airplane_mode_on_status" /> + <java-symbol type="string" name="global_actions_toggle_airplane_mode" /> + <java-symbol type="string" name="invalidPuk" /> + <java-symbol type="string" name="keyguard_password_enter_pin_code" /> + <java-symbol type="string" name="keyguard_password_enter_puk_code" /> + <java-symbol type="string" name="keyguard_password_wrong_pin_code" /> + <java-symbol type="string" name="lockscreen_carrier_default" /> + <java-symbol type="string" name="lockscreen_charged" /> + <java-symbol type="string" name="lockscreen_failed_attempts_almost_at_wipe" /> + <java-symbol type="string" name="lockscreen_failed_attempts_almost_glogin" /> + <java-symbol type="string" name="lockscreen_failed_attempts_now_wiping" /> + <java-symbol type="string" name="lockscreen_forgot_pattern_button_text" /> + <java-symbol type="string" name="lockscreen_glogin_checking_password" /> + <java-symbol type="string" name="lockscreen_glogin_forgot_pattern" /> + <java-symbol type="string" name="lockscreen_glogin_invalid_input" /> + <java-symbol type="string" name="lockscreen_glogin_too_many_attempts" /> + <java-symbol type="string" name="lockscreen_instructions_when_pattern_disabled" /> + <java-symbol type="string" name="lockscreen_low_battery" /> + <java-symbol type="string" name="lockscreen_missing_sim_instructions" /> + <java-symbol type="string" name="lockscreen_missing_sim_instructions_long" /> + <java-symbol type="string" name="lockscreen_missing_sim_message_short" /> + <java-symbol type="string" name="lockscreen_network_locked_message" /> + <java-symbol type="string" name="lockscreen_password_wrong" /> + <java-symbol type="string" name="lockscreen_pattern_instructions" /> + <java-symbol type="string" name="lockscreen_pattern_wrong" /> + <java-symbol type="string" name="lockscreen_permanent_disabled_sim_instructions" /> + <java-symbol type="string" name="lockscreen_plugged_in" /> + <java-symbol type="string" name="lockscreen_sim_locked_message" /> + <java-symbol type="string" name="lockscreen_sim_puk_locked_message" /> + <java-symbol type="string" name="lockscreen_sim_unlock_progress_dialog_message" /> + <java-symbol type="string" name="lockscreen_sound_off_label" /> + <java-symbol type="string" name="lockscreen_sound_on_label" /> + <java-symbol type="string" name="lockscreen_too_many_failed_attempts_countdown" /> + <java-symbol type="string" name="lockscreen_too_many_failed_attempts_dialog_message" /> + <java-symbol type="string" name="lockscreen_too_many_failed_password_attempts_dialog_message" /> + <java-symbol type="string" name="lockscreen_too_many_failed_pin_attempts_dialog_message" /> + <java-symbol type="string" name="lockscreen_unlock_label" /> + <java-symbol type="string" name="status_bar_device_locked" /> + <java-symbol type="style" name="Animation.LockScreen" /> + <java-symbol type="style" name="Theme.Dialog.RecentApplications" /> + <java-symbol type="style" name="Theme.ExpandedMenu" /> + + <!-- From services --> + <java-symbol type="anim" name="screen_rotate_0_enter" /> + <java-symbol type="anim" name="screen_rotate_0_exit" /> + <java-symbol type="anim" name="screen_rotate_180_enter" /> + <java-symbol type="anim" name="screen_rotate_180_exit" /> + <java-symbol type="anim" name="screen_rotate_finish_enter" /> + <java-symbol type="anim" name="screen_rotate_finish_exit" /> + <java-symbol type="anim" name="screen_rotate_minus_90_enter" /> + <java-symbol type="anim" name="screen_rotate_minus_90_exit" /> + <java-symbol type="anim" name="screen_rotate_plus_90_enter" /> + <java-symbol type="anim" name="screen_rotate_plus_90_exit" /> + <java-symbol type="anim" name="screen_rotate_start_enter" /> + <java-symbol type="anim" name="screen_rotate_start_exit" /> + <java-symbol type="anim" name="window_move_from_decor" /> + <java-symbol type="array" name="config_autoBrightnessButtonBacklightValues" /> + <java-symbol type="array" name="config_autoBrightnessKeyboardBacklightValues" /> + <java-symbol type="array" name="config_autoBrightnessLcdBacklightValues" /> + <java-symbol type="array" name="config_autoBrightnessLevels" /> + <java-symbol type="array" name="config_protectedNetworks" /> + <java-symbol type="array" name="config_statusBarIcons" /> + <java-symbol type="array" name="config_tether_bluetooth_regexs" /> + <java-symbol type="array" name="config_tether_dhcp_range" /> + <java-symbol type="array" name="config_tether_upstream_types" /> + <java-symbol type="array" name="config_tether_usb_regexs" /> + <java-symbol type="array" name="config_tether_wifi_regexs" /> + <java-symbol type="array" name="config_usbHostBlacklist" /> + <java-symbol type="array" name="radioAttributes" /> + <java-symbol type="bool" name="config_animateScreenLights" /> + <java-symbol type="bool" name="config_automatic_brightness_available" /> + <java-symbol type="bool" name="config_sf_limitedAlpha" /> + <java-symbol type="bool" name="config_unplugTurnsOnScreen" /> + <java-symbol type="bool" name="config_wifi_background_scan_support" /> + <java-symbol type="bool" name="config_wifi_dual_band_support" /> + <java-symbol type="bool" name="config_wimaxEnabled" /> + <java-symbol type="bool" name="show_ongoing_ime_switcher" /> + <java-symbol type="color" name="config_defaultNotificationColor" /> + <java-symbol type="drawable" name="ic_notification_ime_default" /> + <java-symbol type="drawable" name="stat_notify_car_mode" /> + <java-symbol type="drawable" name="stat_notify_disabled" /> + <java-symbol type="drawable" name="stat_notify_disk_full" /> + <java-symbol type="drawable" name="stat_sys_adb" /> + <java-symbol type="drawable" name="stat_sys_battery" /> + <java-symbol type="drawable" name="stat_sys_battery_charge" /> + <java-symbol type="drawable" name="stat_sys_battery_unknown" /> + <java-symbol type="drawable" name="stat_sys_data_usb" /> + <java-symbol type="drawable" name="stat_sys_tether_bluetooth" /> + <java-symbol type="drawable" name="stat_sys_tether_general" /> + <java-symbol type="drawable" name="stat_sys_tether_usb" /> + <java-symbol type="drawable" name="stat_sys_throttled" /> + <java-symbol type="drawable" name="vpn_connected" /> + <java-symbol type="id" name="ask_checkbox" /> + <java-symbol type="id" name="compat_checkbox" /> + <java-symbol type="id" name="original_app_icon" /> + <java-symbol type="id" name="original_message" /> + <java-symbol type="id" name="radio" /> + <java-symbol type="id" name="reask_hint" /> + <java-symbol type="id" name="replace_app_icon" /> + <java-symbol type="id" name="replace_message" /> + <java-symbol type="fraction" name="config_dimBehindFadeDuration" /> + <java-symbol type="integer" name="config_carDockKeepsScreenOn" /> + <java-symbol type="integer" name="config_criticalBatteryWarningLevel" /> + <java-symbol type="integer" name="config_datause_notification_type" /> + <java-symbol type="integer" name="config_datause_polling_period_sec" /> + <java-symbol type="integer" name="config_datause_threshold_bytes" /> + <java-symbol type="integer" name="config_datause_throttle_kbitsps" /> + <java-symbol type="integer" name="config_defaultNotificationLedOff" /> + <java-symbol type="integer" name="config_defaultNotificationLedOn" /> + <java-symbol type="integer" name="config_deskDockKeepsScreenOn" /> + <java-symbol type="integer" name="config_lightSensorWarmupTime" /> + <java-symbol type="integer" name="config_lowBatteryCloseWarningLevel" /> + <java-symbol type="integer" name="config_lowBatteryWarningLevel" /> + <java-symbol type="integer" name="config_networkPolicyDefaultWarning" /> + <java-symbol type="integer" name="config_networkTransitionTimeout" /> + <java-symbol type="integer" name="config_notificationsBatteryFullARGB" /> + <java-symbol type="integer" name="config_notificationsBatteryLedOff" /> + <java-symbol type="integer" name="config_notificationsBatteryLedOn" /> + <java-symbol type="integer" name="config_notificationsBatteryLowARGB" /> + <java-symbol type="integer" name="config_notificationsBatteryMediumARGB" /> + <java-symbol type="integer" name="config_radioScanningTimeout" /> + <java-symbol type="integer" name="config_screenBrightnessDim" /> + <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" /> + <java-symbol type="layout" name="am_compat_mode_dialog" /> + <java-symbol type="layout" name="launch_warning" /> + <java-symbol type="layout" name="safe_mode" /> + <java-symbol type="layout" name="simple_list_item_2_single_choice" /> + <java-symbol type="plurals" name="wifi_available" /> + <java-symbol type="plurals" name="wifi_available_detailed" /> + <java-symbol type="string" name="accessibility_binding_label" /> + <java-symbol type="string" name="adb_active_notification_message" /> + <java-symbol type="string" name="adb_active_notification_title" /> + <java-symbol type="string" name="aerr_application" /> + <java-symbol type="string" name="aerr_process" /> + <java-symbol type="string" name="aerr_title" /> + <java-symbol type="string" name="android_upgrading_apk" /> + <java-symbol type="string" name="android_upgrading_complete" /> + <java-symbol type="string" name="android_upgrading_starting_apps" /> + <java-symbol type="string" name="anr_activity_application" /> + <java-symbol type="string" name="anr_activity_process" /> + <java-symbol type="string" name="anr_application_process" /> + <java-symbol type="string" name="anr_process" /> + <java-symbol type="string" name="anr_title" /> + <java-symbol type="string" name="car_mode_disable_notification_message" /> + <java-symbol type="string" name="car_mode_disable_notification_title" /> + <java-symbol type="string" name="chooser_wallpaper" /> + <java-symbol type="string" name="config_datause_iface" /> + <java-symbol type="string" name="config_geocodeProvider" /> + <java-symbol type="string" name="config_networkLocationProvider" /> + <java-symbol type="string" name="config_wimaxManagerClassname" /> + <java-symbol type="string" name="config_wimaxNativeLibLocation" /> + <java-symbol type="string" name="config_wimaxServiceClassname" /> + <java-symbol type="string" name="config_wimaxServiceJarLocation" /> + <java-symbol type="string" name="config_wimaxStateTrackerClassname" /> + <java-symbol type="string" name="configure_input_methods" /> + <java-symbol type="string" name="data_usage_3g_limit_snoozed_title" /> + <java-symbol type="string" name="data_usage_3g_limit_title" /> + <java-symbol type="string" name="data_usage_4g_limit_snoozed_title" /> + <java-symbol type="string" name="data_usage_4g_limit_title" /> + <java-symbol type="string" name="data_usage_limit_body" /> + <java-symbol type="string" name="data_usage_limit_snoozed_body" /> + <java-symbol type="string" name="data_usage_mobile_limit_snoozed_title" /> + <java-symbol type="string" name="data_usage_mobile_limit_title" /> + <java-symbol type="string" name="data_usage_restricted_body" /> + <java-symbol type="string" name="data_usage_restricted_title" /> + <java-symbol type="string" name="data_usage_warning_body" /> + <java-symbol type="string" name="data_usage_warning_title" /> + <java-symbol type="string" name="data_usage_wifi_limit_snoozed_title" /> + <java-symbol type="string" name="data_usage_wifi_limit_title" /> + <java-symbol type="string" name="default_wallpaper_component" /> + <java-symbol type="string" name="dlg_ok" /> + <java-symbol type="string" name="factorytest_failed" /> + <java-symbol type="string" name="factorytest_no_action" /> + <java-symbol type="string" name="factorytest_not_system" /> + <java-symbol type="string" name="factorytest_reboot" /> + <java-symbol type="string" name="heavy_weight_notification" /> + <java-symbol type="string" name="heavy_weight_notification_detail" /> + <java-symbol type="string" name="input_method_binding_label" /> + <java-symbol type="string" name="launch_warning_original" /> + <java-symbol type="string" name="launch_warning_replace" /> + <java-symbol type="string" name="launch_warning_title" /> + <java-symbol type="string" name="low_internal_storage_view_text" /> + <java-symbol type="string" name="low_internal_storage_view_title" /> + <java-symbol type="string" name="report" /> + <java-symbol type="string" name="select_input_method" /> + <java-symbol type="string" name="smv_application" /> + <java-symbol type="string" name="smv_process" /> + <java-symbol type="string" name="tethered_notification_message" /> + <java-symbol type="string" name="tethered_notification_title" /> + <java-symbol type="string" name="throttle_warning_notification_message" /> + <java-symbol type="string" name="throttle_warning_notification_title" /> + <java-symbol type="string" name="throttled_notification_message" /> + <java-symbol type="string" name="throttled_notification_title" /> + <java-symbol type="string" name="usb_accessory_notification_title" /> + <java-symbol type="string" name="usb_cd_installer_notification_title" /> + <java-symbol type="string" name="usb_mtp_notification_title" /> + <java-symbol type="string" name="usb_notification_message" /> + <java-symbol type="string" name="usb_ptp_notification_title" /> + <java-symbol type="string" name="vpn_text" /> + <java-symbol type="string" name="vpn_text_long" /> + <java-symbol type="string" name="vpn_title" /> + <java-symbol type="string" name="vpn_title_long" /> + <java-symbol type="string" name="wallpaper_binding_label" /> + <java-symbol type="style" name="Theme.Dialog.AppError" /> + <java-symbol type="style" name="Theme.Toast" /> + <java-symbol type="xml" name="storage_list" /> + + <!-- From SystemUI --> + <java-symbol type="anim" name="push_down_in" /> + <java-symbol type="anim" name="push_down_out" /> + <java-symbol type="anim" name="push_up_in" /> + <java-symbol type="anim" name="push_up_out" /> + <java-symbol type="dimen" name="status_bar_icon_size" /> + <java-symbol type="dimen" name="system_bar_icon_size" /> + <java-symbol type="drawable" name="list_selector_pressed_holo_dark" /> + <java-symbol type="drawable" name="scrubber_control_disabled_holo" /> + <java-symbol type="drawable" name="scrubber_control_selector_holo" /> + <java-symbol type="drawable" name="scrubber_progress_horizontal_holo_dark" /> + <java-symbol type="drawable" name="usb_android" /> + <java-symbol type="drawable" name="usb_android_connected" /> + <java-symbol type="id" name="banner" /> + <java-symbol type="id" name="mount_button" /> + <java-symbol type="id" name="unmount_button" /> + <java-symbol type="layout" name="usb_storage_activity" /> + <java-symbol type="string" name="chooseUsbActivity" /> + <java-symbol type="string" name="dlg_confirm_kill_storage_users_text" /> + <java-symbol type="string" name="dlg_confirm_kill_storage_users_title" /> + <java-symbol type="string" name="dlg_error_title" /> + <java-symbol type="string" name="ext_media_badremoval_notification_message" /> + <java-symbol type="string" name="ext_media_badremoval_notification_title" /> + <java-symbol type="string" name="ext_media_checking_notification_message" /> + <java-symbol type="string" name="ext_media_checking_notification_title" /> + <java-symbol type="string" name="ext_media_nofs_notification_message" /> + <java-symbol type="string" name="ext_media_nofs_notification_title" /> + <java-symbol type="string" name="ext_media_nomedia_notification_message" /> + <java-symbol type="string" name="ext_media_nomedia_notification_title" /> + <java-symbol type="string" name="ext_media_safe_unmount_notification_message" /> + <java-symbol type="string" name="ext_media_safe_unmount_notification_title" /> + <java-symbol type="string" name="ext_media_unmountable_notification_message" /> + <java-symbol type="string" name="ext_media_unmountable_notification_title" /> + <java-symbol type="string" name="usb_storage_error_message" /> + <java-symbol type="string" name="usb_storage_message" /> + <java-symbol type="string" name="usb_storage_notification_message" /> + <java-symbol type="string" name="usb_storage_notification_title" /> + <java-symbol type="string" name="usb_storage_stop_message" /> + <java-symbol type="string" name="usb_storage_stop_notification_message" /> + <java-symbol type="string" name="usb_storage_stop_notification_title" /> + <java-symbol type="string" name="usb_storage_stop_title" /> + <java-symbol type="string" name="usb_storage_title" /> + + <!-- ImfTest --> + <java-symbol type="layout" name="auto_complete_list" /> + + <!-- From SettingsProvider --> + <java-symbol type="raw" name="fallbackring" /> + + <!-- From Settings --> + <java-symbol type="array" name="config_mobile_hotspot_provision_app" /> + <java-symbol type="bool" name="config_intrusiveNotificationLed" /> + <java-symbol type="dimen" name="preference_fragment_padding_bottom" /> + <java-symbol type="dimen" name="preference_fragment_padding_side" /> + <java-symbol type="drawable" name="expander_ic_maximized" /> + <java-symbol type="drawable" name="expander_ic_minimized" /> + <java-symbol type="drawable" name="ic_menu_archive" /> + <java-symbol type="drawable" name="ic_menu_goto" /> + <java-symbol type="drawable" name="title_bar_medium" /> + <java-symbol type="id" name="body" /> + <java-symbol type="string" name="fast_scroll_alphabet" /> + <java-symbol type="string" name="ssl_certificate" /> + + <!-- From Phone --> + <java-symbol type="bool" name="config_built_in_sip_phone" /> + + <!-- From TelephonyProvider --> + <java-symbol type="xml" name="apns" /> + + <!-- From ContactsProvider --> + <java-symbol type="array" name="common_nicknames" /> + <java-symbol type="drawable" name="call_contact" /> + <java-symbol type="drawable" name="create_contact" /> + <java-symbol type="string" name="common_name_prefixes" /> + <java-symbol type="string" name="common_last_name_prefixes" /> + <java-symbol type="string" name="common_name_suffixes" /> + <java-symbol type="string" name="common_name_conjunctions" /> + <java-symbol type="string" name="dial_number_using" /> + <java-symbol type="string" name="create_contact_using" /> + + <!-- From DownloadProvider --> + <java-symbol type="integer" name="config_MaxConcurrentDownloadsAllowed" /> + <java-symbol type="integer" name="config_downloadDataDirSize" /> + <java-symbol type="integer" name="config_downloadDataDirLowSpaceThreshold" /> + + <!-- From Contacts --> + <java-symbol type="drawable" name="quickcontact_badge_overlay_dark" /> + + <!-- From Browser --> + <java-symbol type="drawable" name="ic_menu_moreoverflow_normal_holo_dark" /> + <java-symbol type="id" name="placeholder" /> + <java-symbol type="string" name="ssl_certificate_is_valid" /> + + <!-- From Mms --> + <java-symbol type="drawable" name="ic_menu_play_clip" /> + + <!-- From Stk --> + <java-symbol type="bool" name="config_sf_slowBlur" /> + <java-symbol type="drawable" name="ic_volume" /> + <java-symbol type="drawable" name="stat_notify_sim_toolkit" /> + + <!-- From PinyinIME(!!!) --> + <java-symbol type="string" name="inputMethod" /> + <!-- AndroidManifest.xml attributes. --> <eat-comment /> diff --git a/tools/aapt/AaptAssets.cpp b/tools/aapt/AaptAssets.cpp index 6ce665b..ec61403 100644 --- a/tools/aapt/AaptAssets.cpp +++ b/tools/aapt/AaptAssets.cpp @@ -1837,6 +1837,49 @@ String8 AaptDir::getPrintableSource() const // ========================================================================= // ========================================================================= +status_t AaptSymbols::applyJavaSymbols(const sp<AaptSymbols>& javaSymbols) +{ + status_t err = NO_ERROR; + size_t N = javaSymbols->mSymbols.size(); + for (size_t i=0; i<N; i++) { + const String8& name = javaSymbols->mSymbols.keyAt(i); + const AaptSymbolEntry& entry = javaSymbols->mSymbols.valueAt(i); + ssize_t pos = mSymbols.indexOfKey(name); + if (pos < 0) { + entry.sourcePos.error("Symbol '%s' declared with <java-symbol> not defined\n", name.string()); + err = UNKNOWN_ERROR; + continue; + } + //printf("**** setting symbol #%d/%d %s to isJavaSymbol=%d\n", + // i, N, name.string(), entry.isJavaSymbol ? 1 : 0); + mSymbols.editValueAt(pos).isJavaSymbol = entry.isJavaSymbol; + } + + N = javaSymbols->mNestedSymbols.size(); + for (size_t i=0; i<N; i++) { + const String8& name = javaSymbols->mNestedSymbols.keyAt(i); + const sp<AaptSymbols>& symbols = javaSymbols->mNestedSymbols.valueAt(i); + ssize_t pos = mNestedSymbols.indexOfKey(name); + if (pos < 0) { + SourcePos pos; + pos.error("Java symbol dir %s not defined\n", name.string()); + err = UNKNOWN_ERROR; + continue; + } + //printf("**** applying java symbols in dir %s\n", name.string()); + status_t myerr = mNestedSymbols.valueAt(pos)->applyJavaSymbols(symbols); + if (myerr != NO_ERROR) { + err = myerr; + } + } + + return err; +} + +// ========================================================================= +// ========================================================================= +// ========================================================================= + AaptAssets::AaptAssets() : AaptDir(String8(), String8()), mChanged(false), mHaveIncludedAssets(false), mRes(NULL) @@ -2404,6 +2447,48 @@ sp<AaptSymbols> AaptAssets::getSymbolsFor(const String8& name) return sym; } +sp<AaptSymbols> AaptAssets::getJavaSymbolsFor(const String8& name) +{ + sp<AaptSymbols> sym = mJavaSymbols.valueFor(name); + if (sym == NULL) { + sym = new AaptSymbols(); + mJavaSymbols.add(name, sym); + } + return sym; +} + +status_t AaptAssets::applyJavaSymbols() +{ + size_t N = mJavaSymbols.size(); + for (size_t i=0; i<N; i++) { + const String8& name = mJavaSymbols.keyAt(i); + const sp<AaptSymbols>& symbols = mJavaSymbols.valueAt(i); + ssize_t pos = mSymbols.indexOfKey(name); + if (pos < 0) { + SourcePos pos; + pos.error("Java symbol dir %s not defined\n", name.string()); + return UNKNOWN_ERROR; + } + //printf("**** applying java symbols in dir %s\n", name.string()); + status_t err = mSymbols.valueAt(pos)->applyJavaSymbols(symbols); + if (err != NO_ERROR) { + return err; + } + } + + return NO_ERROR; +} + +bool AaptAssets::isJavaSymbol(const AaptSymbolEntry& sym, bool includePrivate) const { + //printf("isJavaSymbol %s: public=%d, includePrivate=%d, isJavaSymbol=%d\n", + // sym.name.string(), sym.isPublic ? 1 : 0, includePrivate ? 1 : 0, + // sym.isJavaSymbol ? 1 : 0); + if (!mHavePrivateSymbols) return true; + if (sym.isPublic) return true; + if (includePrivate && sym.isJavaSymbol) return true; + return false; +} + status_t AaptAssets::buildIncludedResources(Bundle* bundle) { if (!mHaveIncludedAssets) { diff --git a/tools/aapt/AaptAssets.h b/tools/aapt/AaptAssets.h index c5a397c..1c653e1 100644 --- a/tools/aapt/AaptAssets.h +++ b/tools/aapt/AaptAssets.h @@ -315,16 +315,16 @@ class AaptSymbolEntry { public: AaptSymbolEntry() - : isPublic(false), typeCode(TYPE_UNKNOWN) + : isPublic(false), isJavaSymbol(false), typeCode(TYPE_UNKNOWN) { } AaptSymbolEntry(const String8& _name) - : name(_name), isPublic(false), typeCode(TYPE_UNKNOWN) + : name(_name), isPublic(false), isJavaSymbol(false), typeCode(TYPE_UNKNOWN) { } AaptSymbolEntry(const AaptSymbolEntry& o) : name(o.name), sourcePos(o.sourcePos), isPublic(o.isPublic) - , comment(o.comment), typeComment(o.typeComment) + , isJavaSymbol(o.isJavaSymbol), comment(o.comment), typeComment(o.typeComment) , typeCode(o.typeCode), int32Val(o.int32Val), stringVal(o.stringVal) { } @@ -332,6 +332,7 @@ public: { sourcePos = o.sourcePos; isPublic = o.isPublic; + isJavaSymbol = o.isJavaSymbol; comment = o.comment; typeComment = o.typeComment; typeCode = o.typeCode; @@ -344,6 +345,7 @@ public: SourcePos sourcePos; bool isPublic; + bool isJavaSymbol; String16 comment; String16 typeComment; @@ -401,6 +403,15 @@ public: return NO_ERROR; } + status_t makeSymbolJavaSymbol(const String8& name, const SourcePos& pos) { + if (!check_valid_symbol_name(name, pos, "symbol")) { + return BAD_VALUE; + } + AaptSymbolEntry& sym = edit_symbol(name, &pos); + sym.isJavaSymbol = true; + return NO_ERROR; + } + void appendComment(const String8& name, const String16& comment, const SourcePos& pos) { if (comment.size() <= 0) { return; @@ -441,6 +452,8 @@ public: return sym; } + status_t applyJavaSymbols(const sp<AaptSymbols>& javaSymbols); + const KeyedVector<String8, AaptSymbolEntry>& getSymbols() const { return mSymbols; } const DefaultKeyedVector<String8, sp<AaptSymbols> >& getNestedSymbols() const @@ -509,7 +522,11 @@ public: virtual ~AaptAssets() { delete mRes; } const String8& getPackage() const { return mPackage; } - void setPackage(const String8& package) { mPackage = package; mSymbolsPrivatePackage = package; } + void setPackage(const String8& package) { + mPackage = package; + mSymbolsPrivatePackage = package; + mHavePrivateSymbols = false; + } const SortedVector<AaptGroupEntry>& getGroupEntries() const; @@ -532,11 +549,22 @@ public: sp<AaptSymbols> getSymbolsFor(const String8& name); + sp<AaptSymbols> getJavaSymbolsFor(const String8& name); + + status_t applyJavaSymbols(); + const DefaultKeyedVector<String8, sp<AaptSymbols> >& getSymbols() const { return mSymbols; } String8 getSymbolsPrivatePackage() const { return mSymbolsPrivatePackage; } - void setSymbolsPrivatePackage(const String8& pkg) { mSymbolsPrivatePackage = pkg; } - + void setSymbolsPrivatePackage(const String8& pkg) { + mSymbolsPrivatePackage = pkg; + mHavePrivateSymbols = mSymbolsPrivatePackage != mPackage; + } + + bool havePrivateSymbols() const { return mHavePrivateSymbols; } + + bool isJavaSymbol(const AaptSymbolEntry& sym, bool includePrivate) const; + status_t buildIncludedResources(Bundle* bundle); status_t addIncludedResources(const sp<AaptFile>& file); const ResTable& getIncludedResources() const; @@ -576,7 +604,9 @@ private: String8 mPackage; SortedVector<AaptGroupEntry> mGroupEntries; DefaultKeyedVector<String8, sp<AaptSymbols> > mSymbols; + DefaultKeyedVector<String8, sp<AaptSymbols> > mJavaSymbols; String8 mSymbolsPrivatePackage; + bool mHavePrivateSymbols; Vector<sp<AaptDir> > mResDirs; diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp index 607056a..c79e243 100644 --- a/tools/aapt/Command.cpp +++ b/tools/aapt/Command.cpp @@ -1617,6 +1617,12 @@ int doPackage(Bundle* bundle) goto bail; } + // Update symbols with information about which ones are needed as Java symbols. + assets->applyJavaSymbols(); + if (SourcePos::hasErrors()) { + goto bail; + } + // If we've been asked to generate a dependency file, do that here if (bundle->getGenDependencies()) { // If this is the packaging step, generate the dependency file next to @@ -1638,7 +1644,7 @@ int doPackage(Bundle* bundle) } // Write out R.java constants - if (assets->getPackage() == assets->getSymbolsPrivatePackage()) { + if (!assets->havePrivateSymbols()) { if (bundle->getCustomPackage() == NULL) { // Write the R.java file into the appropriate class directory // e.g. gen/com/foo/app/R.java diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp index c0fe538..7eaf528 100644 --- a/tools/aapt/Resource.cpp +++ b/tools/aapt/Resource.cpp @@ -1808,7 +1808,7 @@ static status_t writeSymbolClass( if (sym.typeCode != AaptSymbolEntry::TYPE_INT32) { continue; } - if (!includePrivate && !sym.isPublic) { + if (!assets->isJavaSymbol(sym, includePrivate)) { continue; } String16 name(sym.name); @@ -1864,7 +1864,7 @@ static status_t writeSymbolClass( if (sym.typeCode != AaptSymbolEntry::TYPE_STRING) { continue; } - if (!includePrivate && !sym.isPublic) { + if (!assets->isJavaSymbol(sym, includePrivate)) { continue; } String16 name(sym.name); @@ -1976,7 +1976,8 @@ status_t writeResourceSymbols(Bundle* bundle, const sp<AaptAssets>& assets, "\n" "package %s;\n\n", package.string()); - status_t err = writeSymbolClass(fp, assets, includePrivate, symbols, className, 0, bundle->getNonConstantId()); + status_t err = writeSymbolClass(fp, assets, includePrivate, symbols, + className, 0, bundle->getNonConstantId()); if (err != NO_ERROR) { return err; } diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp index f59bba2..7a0499c 100644 --- a/tools/aapt/ResourceTable.cpp +++ b/tools/aapt/ResourceTable.cpp @@ -753,6 +753,7 @@ status_t compileResourceFile(Bundle* bundle, const String16 public16("public"); const String16 public_padding16("public-padding"); const String16 private_symbols16("private-symbols"); + const String16 java_symbol16("java-symbol"); const String16 add_resource16("add-resource"); const String16 skip16("skip"); const String16 eat_comment16("eat-comment"); @@ -1058,6 +1059,49 @@ status_t compileResourceFile(Bundle* bundle, } continue; + } else if (strcmp16(block.getElementName(&len), java_symbol16.string()) == 0) { + SourcePos srcPos(in->getPrintableSource(), block.getLineNumber()); + + String16 type; + ssize_t typeIdx = block.indexOfAttribute(NULL, "type"); + if (typeIdx < 0) { + srcPos.error("A 'type' attribute is required for <public>\n"); + hasErrors = localHasErrors = true; + } + type = String16(block.getAttributeStringValue(typeIdx, &len)); + + String16 name; + ssize_t nameIdx = block.indexOfAttribute(NULL, "name"); + if (nameIdx < 0) { + srcPos.error("A 'name' attribute is required for <public>\n"); + hasErrors = localHasErrors = true; + } + name = String16(block.getAttributeStringValue(nameIdx, &len)); + + sp<AaptSymbols> symbols = assets->getJavaSymbolsFor(String8("R")); + if (symbols != NULL) { + symbols = symbols->addNestedSymbol(String8(type), srcPos); + } + if (symbols != NULL) { + symbols->makeSymbolJavaSymbol(String8(name), srcPos); + String16 comment( + block.getComment(&len) ? block.getComment(&len) : nulStr); + symbols->appendComment(String8(name), comment, srcPos); + } else { + srcPos.error("Unable to create symbols!\n"); + hasErrors = localHasErrors = true; + } + + while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) { + if (code == ResXMLTree::END_TAG) { + if (strcmp16(block.getElementName(&len), java_symbol16.string()) == 0) { + break; + } + } + } + continue; + + } else if (strcmp16(block.getElementName(&len), add_resource16.string()) == 0) { SourcePos srcPos(in->getPrintableSource(), block.getLineNumber()); |