summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt38
-rw-r--r--cmds/content/src/com/android/commands/content/Content.java6
-rw-r--r--[-rwxr-xr-x]cmds/input/src/com/android/commands/input/Input.java0
-rw-r--r--cmds/installd/Android.mk9
-rw-r--r--cmds/installd/commands.c17
-rw-r--r--cmds/installd/tests/Android.mk11
-rw-r--r--cmds/servicemanager/service_manager.c1
-rw-r--r--[-rwxr-xr-x]core/java/android/animation/ValueAnimator.java0
-rw-r--r--core/java/android/app/Activity.java10
-rw-r--r--core/java/android/app/ActivityThread.java11
-rw-r--r--core/java/android/app/DownloadManager.java2
-rw-r--r--[-rwxr-xr-x]core/java/android/app/IAlarmManager.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/app/IThumbnailReceiver.aidl0
-rw-r--r--core/java/android/app/PendingIntent.java4
-rw-r--r--[-rwxr-xr-x]core/java/android/app/admin/DevicePolicyManager.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/appwidget/AppWidgetProvider.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/content/IIntentReceiver.aidl0
-rw-r--r--core/java/android/content/Intent.java6
-rw-r--r--[-rwxr-xr-x]core/java/android/content/res/Configuration.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/content/res/ObbInfo.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/content/res/Resources.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/database/IContentObserver.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/ddm/package.html0
-rw-r--r--[-rwxr-xr-x]core/java/android/debug/package.html0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/Gesture.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/GestureOverlayView.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/GestureUtils.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/Instance.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/Learner.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/gesture/Prediction.java0
-rw-r--r--core/java/android/hardware/Camera.java2
-rw-r--r--core/java/android/hardware/SystemSensorManager.java3
-rw-r--r--[-rwxr-xr-x]core/java/android/hardware/input/InputManager.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/net/Uri.aidl0
-rw-r--r--core/java/android/net/http/AndroidHttpClient.java3
-rw-r--r--core/java/android/net/http/SslCertificate.java41
-rw-r--r--[-rwxr-xr-x]core/java/android/net/http/package.html0
-rw-r--r--[-rwxr-xr-x]core/java/android/net/package.html0
-rw-r--r--core/java/android/os/CommonTimeUtils.java20
-rw-r--r--[-rwxr-xr-x]core/java/android/os/IHardwareService.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/os/IVibratorService.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/os/TokenWatcher.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/provider/ContactsContract.java0
-rw-r--r--core/java/android/security/IKeystoreService.java505
-rw-r--r--[-rwxr-xr-x]core/java/android/server/package.html0
-rw-r--r--[-rwxr-xr-x]core/java/android/speech/tts/ITextToSpeechCallback.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/speech/tts/TextToSpeech.java0
-rw-r--r--core/java/android/text/format/DateUtils.java89
-rw-r--r--core/java/android/text/format/Time.java3
-rwxr-xr-xcore/java/android/util/PropertyValueModel.java143
-rwxr-xr-xcore/java/android/util/ValueModel.java74
-rw-r--r--[-rwxr-xr-x]core/java/android/view/InputDevice.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/view/InputEvent.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/view/KeyEvent.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/view/OrientationEventListener.java0
-rw-r--r--core/java/android/view/ViewStub.java3
-rw-r--r--[-rwxr-xr-x]core/java/android/view/WindowManager.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/android/view/WindowOrientationListener.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/view/animation/package.html0
-rw-r--r--[-rwxr-xr-x]core/java/android/webkit/DeviceMotionService.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/webkit/DeviceOrientationService.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/webkit/GeolocationPermissions.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/webkit/GeolocationPermissionsClassic.java0
-rw-r--r--[-rwxr-xr-x]core/java/android/webkit/GeolocationService.java0
-rw-r--r--core/java/android/webkit/WebCoreThreadWatchdog.java2
-rw-r--r--core/java/android/webkit/WebViewCore.java2
-rw-r--r--core/java/android/widget/AbsListView.java3
-rw-r--r--[-rwxr-xr-x]core/java/android/widget/AppSecurityPermissions.java0
-rw-r--r--core/java/android/widget/CheckBox.java23
-rw-r--r--core/java/android/widget/EditText.java23
-rw-r--r--core/java/android/widget/HeaderViewListAdapter.java3
-rw-r--r--core/java/android/widget/ListView.java8
-rw-r--r--core/java/android/widget/SeekBar.java20
-rwxr-xr-xcore/java/android/widget/ValueEditor.java53
-rw-r--r--[-rwxr-xr-x]core/java/com/android/internal/app/IMediaContainerService.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/com/android/internal/app/IUsageStats.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/com/android/internal/app/NetInitiatedActivity.java0
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java68
-rw-r--r--[-rwxr-xr-x]core/java/com/android/internal/os/PkgUsageStats.aidl0
-rw-r--r--[-rwxr-xr-x]core/java/com/android/internal/os/PkgUsageStats.java0
-rw-r--r--core/java/com/android/internal/util/AsyncChannel.java37
-rw-r--r--core/java/com/android/internal/view/menu/MenuItemImpl.java5
-rw-r--r--core/jni/Android.mk11
-rw-r--r--core/jni/AndroidRuntime.cpp8
-rw-r--r--core/jni/android_emoji_EmojiFactory.cpp14
-rw-r--r--core/jni/android_media_JetPlayer.cpp36
-rw-r--r--core/jni/android_media_ToneGenerator.cpp1
-rw-r--r--core/jni/android_os_SELinux.cpp57
-rw-r--r--core/jni/android_text_format_Time.cpp192
-rw-r--r--core/jni/android_util_EventLog.cpp4
-rw-r--r--core/jni/android_util_StringBlock.cpp1
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-en-hdpi/sym_keyboard_delete.pngbin2315 -> 2315 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_circle_disable.pngbin2727 -> 2727 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_circle_disable_focused.pngbin2330 -> 2330 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_circle_normal.pngbin2824 -> 2824 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_circle_pressed.pngbin4396 -> 4396 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_circle_selected.pngbin4463 -> 4463 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_close_normal.pngbin2220 -> 2220 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_close_pressed.pngbin2831 -> 2831 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_close_selected.pngbin3043 -> 3043 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_normal.9.pngbin1854 -> 1854 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_normal_disable.9.pngbin3601 -> 3601 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.pngbin1781 -> 1781 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_pressed.9.pngbin1913 -> 1913 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_selected.9.pngbin1507 -> 1507 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_small_normal.9.pngbin1698 -> 1698 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.pngbin1649 -> 1649 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.pngbin1720 -> 1720 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_small_pressed.9.pngbin1508 -> 1508 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_default_small_selected.9.pngbin1439 -> 1439 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dialog_disable.pngbin2443 -> 2443 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dialog_normal.pngbin2217 -> 2217 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dialog_pressed.pngbin2841 -> 2841 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dialog_selected.pngbin3028 -> 3028 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dropdown_normal.9.pngbin2652 -> 2652 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dropdown_pressed.9.pngbin7337 -> 7337 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_dropdown_selected.9.pngbin8223 -> 8223 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_off.pngbin3638 -> 3638 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_off_pressed.pngbin4697 -> 4697 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_off_selected.pngbin4819 -> 4819 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_on.pngbin3685 -> 3685 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_on_pressed.pngbin4678 -> 4678 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/btn_radio_on_selected.pngbin4768 -> 4768 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/contact_header_bg.9.pngbin219 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_btn_round_more_disabled.pngbin457 -> 457 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_btn_round_more_normal.pngbin477 -> 477 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_contact_picture_2.pngbin1845 -> 1845 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_contact_picture_3.pngbin1105 -> 1105 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_jog_dial_sound_off.pngbin5698 -> 5698 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_jog_dial_sound_on.pngbin5685 -> 5685 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_jog_dial_unlock.pngbin5758 -> 5758 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/ic_settings_language.pngbin986 -> 986 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.pngbin7469 -> 7469 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.pngbin7378 -> 7378 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.pngbin4877 -> 4877 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.pngbin7501 -> 7501 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.pngbin7523 -> 7523 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_short_left.pngbin3704 -> 3704 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.pngbin6553 -> 6553 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_arrow_short_right.pngbin3826 -> 3826 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_bg.pngbin21832 -> 21832 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_dial_dimple.pngbin5439 -> 5439 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.pngbin5533 -> 5533 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_left_confirm_green.pngbin5797 -> 5797 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_left_confirm_red.pngbin5687 -> 5687 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.pngbin5720 -> 5720 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_left_pressed.pngbin5174 -> 5174 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.pngbin5209 -> 5209 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_right_confirm_green.pngbin5579 -> 5579 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_right_confirm_red.pngbin5443 -> 5443 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.pngbin5509 -> 5509 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/jog_tab_right_pressed.pngbin4833 -> 4833 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/progressbar_indeterminate1.pngbin474 -> 474 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/progressbar_indeterminate2.pngbin472 -> 472 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/progressbar_indeterminate3.pngbin469 -> 469 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_notify_more.pngbin1295 -> 1295 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_10.pngbin1508 -> 1508 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_20.pngbin1625 -> 1625 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_40.pngbin1670 -> 1670 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_60.pngbin1706 -> 1706 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_80.pngbin1704 -> 1704 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.pngbin1928 -> 1928 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.pngbin1941 -> 1941 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.pngbin1956 -> 1956 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.pngbin1914 -> 1914 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.pngbin2023 -> 2023 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_phone_call.pngbin2371 -> 2371 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_phone_call_forward.pngbin2930 -> 2930 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.pngbin2722 -> 2722 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.pngbin2200 -> 2200 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.pngbin1335 -> 1335 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.pngbin1884 -> 1884 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.pngbin2063 -> 2063 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.pngbin2265 -> 2265 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.pngbin425 -> 425 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.pngbin947 -> 947 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.pngbin1159 -> 1159 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.pngbin1283 -> 1283 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.pngbin1357 -> 1357 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.pngbin526 -> 526 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.pngbin1175 -> 1175 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.pngbin1293 -> 1293 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.pngbin1426 -> 1426 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.pngbin1533 -> 1533 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_vp_phone_call.pngbin2785 -> 2785 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.pngbin2888 -> 2888 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.pngbin1278 -> 1278 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_feedback_return.pngbin838 -> 838 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.pngbin885 -> 885 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.pngbin700 -> 700 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_feedback_space.pngbin287 -> 287 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_return.pngbin1123 -> 1123 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_shift.pngbin1495 -> 1495 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_shift_locked.pngbin1119 -> 1119 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/sym_keyboard_space.pngbin371 -> 371 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/textfield_default.9.pngbin529 -> 529 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/textfield_disabled.9.pngbin613 -> 613 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/textfield_disabled_selected.9.pngbin738 -> 738 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-hdpi/textfield_selected.9.pngbin616 -> 616 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_focus_bar_left.9.pngbin2826 -> 2826 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_focus_bar_right.9.pngbin2826 -> 2826 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_press_bar_left.9.pngbin2827 -> 2827 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_press_bar_right.9.pngbin2827 -> 2827 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_selected_bar_left.9.pngbin1011 -> 1011 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-ldpi/tab_selected_bar_right.9.pngbin1011 -> 1011 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_check_buttonless_off.pngbin608 -> 608 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_check_buttonless_on.pngbin721 -> 721 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_dialog_disable.pngbin1306 -> 1306 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_dialog_normal.pngbin1258 -> 1258 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_dialog_pressed.pngbin1326 -> 1326 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_dialog_selected.pngbin1392 -> 1392 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_erase_default.9.pngbin1468 -> 1468 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_erase_pressed.9.pngbin1313 -> 1313 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_erase_selected.9.pngbin1184 -> 1184 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.pngbin664 -> 664 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_media_player.9.pngbin1677 -> 1677 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_media_player_disabled.9.pngbin724 -> 724 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.pngbin1040 -> 1040 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_media_player_pressed.9.pngbin1222 -> 1222 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_media_player_selected.9.pngbin1481 -> 1481 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_off.pngbin1316 -> 1316 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_off_disable.pngbin1886 -> 1886 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.pngbin1868 -> 1868 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_off_pressed.pngbin1507 -> 1507 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_off_selected.pngbin1471 -> 1471 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_on.pngbin1521 -> 1521 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_on_disable.pngbin4522 -> 4522 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.pngbin1911 -> 1911 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_on_pressed.pngbin1540 -> 1540 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/btn_star_big_on_selected.pngbin1456 -> 1456 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.pngbin2921 -> 2921 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/frame_gallery_thumb.9.pngbin925 -> 925 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.pngbin1704 -> 1704 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.pngbin621 -> 621 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/gallery_selected_default.9.pngbin1088 -> 1088 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/gallery_selected_focused.9.pngbin1313 -> 1313 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/gallery_selected_pressed.9.pngbin1317 -> 1317 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/gallery_unselected_default.9.pngbin560 -> 560 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_dialog_info.pngbin3593 -> 3593 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_dialog_time.pngbin1490 -> 1490 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_jog_dial_unlock.pngbin3339 -> 3339 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_lock_idle_charging.pngbin599 -> 599 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_lock_idle_lock.pngbin547 -> 547 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_lock_idle_low_battery.pngbin665 -> 665 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_media_video_poster.pngbin3499 -> 3499 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_add.pngbin1339 -> 1339 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_agenda.pngbin1010 -> 1010 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_allfriends.pngbin1222 -> 1222 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_camera.pngbin981 -> 981 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_crop.pngbin932 -> 932 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_day.pngbin915 -> 915 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_delete.pngbin967 -> 967 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_directions.pngbin834 -> 834 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_edit.pngbin1198 -> 1198 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_gallery.pngbin804 -> 804 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_info_details.pngbin1237 -> 1237 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_manage.pngbin1144 -> 1144 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_month.pngbin1183 -> 1183 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_my_calendar.pngbin1037 -> 1037 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_mylocation.pngbin1216 -> 1216 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_rotate.pngbin1368 -> 1368 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_search.pngbin1133 -> 1133 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_search_holo_dark.pngbin1133 -> 1133 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_send.pngbin920 -> 920 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_set_as.pngbin941 -> 941 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_share.pngbin1154 -> 1154 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_sort_by_size.pngbin640 -> 640 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_star.pngbin1116 -> 1116 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_today.pngbin1167 -> 1167 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_upload.pngbin793 -> 793 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_upload_you_tube.pngbin793 -> 793 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_view.pngbin1083 -> 1083 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_menu_week.pngbin1013 -> 1013 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_popup_reminder.pngbin1288 -> 1288 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/ic_search_category_default.pngbin5059 -> 5059 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/indicator_input_error.pngbin822 -> 822 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.pngbin4486 -> 4486 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.pngbin4520 -> 4520 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.pngbin2915 -> 2915 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.pngbin4465 -> 4465 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.pngbin4592 -> 4592 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_short_left.pngbin2206 -> 2206 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.pngbin3673 -> 3673 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_arrow_short_right.pngbin2204 -> 2204 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_bg.pngbin13048 -> 13048 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_dial_dimple.pngbin3334 -> 3334 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.pngbin4067 -> 4067 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_left_confirm_green.pngbin4455 -> 4455 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.pngbin4360 -> 4360 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_left_normal.pngbin3666 -> 3666 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_left_pressed.pngbin3918 -> 3918 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.pngbin3849 -> 3849 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_right_confirm_green.pngbin4159 -> 4159 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.pngbin4138 -> 4138 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_right_normal.pngbin3416 -> 3416 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/jog_tab_right_pressed.pngbin3587 -> 3587 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.pngbin1385 -> 1385 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_down_disabled.9.pngbin422 -> 422 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.pngbin580 -> 580 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_down_normal.9.pngbin795 -> 795 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_down_pressed.9.pngbin1161 -> 1161 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_down_selected.9.pngbin1170 -> 1170 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_input_disabled.9.pngbin280 -> 280 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_input_normal.9.pngbin582 -> 582 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_input_pressed.9.pngbin604 -> 604 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_input_selected.9.pngbin517 -> 517 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_up_disabled.9.pngbin491 -> 491 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.pngbin728 -> 728 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_up_normal.9.pngbin989 -> 989 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_up_pressed.9.pngbin1433 -> 1433 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/numberpicker_up_selected.9.pngbin1428 -> 1428 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.pngbin266 -> 266 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.pngbin254 -> 254 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/search_plate.9.pngbin2943 -> 2943 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/spinner_black_20.pngbin1217 -> 1217 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.pngbin333 -> 333 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_focus.9.pngbin280 -> 280 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_focus_bar_left.9.pngbin141 -> 141 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_focus_bar_right.9.pngbin141 -> 141 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_press.9.pngbin271 -> 271 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_press_bar_left.9.pngbin141 -> 141 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_press_bar_right.9.pngbin141 -> 141 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_selected_bar_left.9.pngbin143 -> 143 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/tab_selected_bar_right.9.pngbin143 -> 143 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/textfield_search_default.9.pngbin3361 -> 3361 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/textfield_search_selected.9.pngbin3354 -> 3354 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/drawable-mdpi/toast_frame.9.pngbin839 -> 839 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/layout/app_perms_summary.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/raw/fallbackring.oggbin14611 -> 14611 bytes
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc208-mnc01/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc208-mnc10/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc214-mnc03/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc214-mnc07/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc222-mnc01/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc222-mnc10/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc234-mnc33/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc302-mnc370/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc302-mnc660/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc302-mnc720/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values-mcc340-mnc01/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values/attrs.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values/config.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/values/strings.xml2
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-land/password_kbd_qwerty.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-land/password_kbd_qwerty_shifted.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-mdpi/password_kbd_qwerty.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-xlarge/password_kbd_numeric.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-xlarge/password_kbd_qwerty.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-xlarge/password_kbd_symbols.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml-xlarge/password_kbd_symbols_shift.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_extension.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_numeric.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_qwerty.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_qwerty_shifted.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_symbols.xml0
-rw-r--r--[-rwxr-xr-x]core/res/res/xml/password_kbd_symbols_shift.xml0
-rw-r--r--[-rwxr-xr-x]core/tests/ConnectivityManagerTest/assets/accesspoints.xml0
-rw-r--r--[-rwxr-xr-x]core/tests/coretests/src/android/content/pm/AppCacheTest.java0
-rw-r--r--[-rwxr-xr-x]core/tests/coretests/src/android/content/pm/PackageManagerTests.java0
-rw-r--r--core/tests/coretests/src/android/net/http/SslCertificateTest.java69
-rw-r--r--[-rwxr-xr-x]core/tests/coretests/src/android/os/storage/AsecTests.java0
-rw-r--r--core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java19
-rw-r--r--[-rwxr-xr-x]data/fonts/DroidSansJapanese.ttfbin1173140 -> 1173140 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/AudioPackage5.mk0
-rw-r--r--[-rwxr-xr-x]data/sounds/AudioPackage6.mk0
-rw-r--r--[-rwxr-xr-x]data/sounds/AudioPackage7.mk0
-rw-r--r--[-rwxr-xr-x]data/sounds/AudioPackage7alt.mk0
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Argon.oggbin56056 -> 56056 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Carbon.oggbin43364 -> 43364 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Helium.oggbin58729 -> 58729 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Krypton.oggbin103196 -> 103196 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Neon.oggbin176788 -> 176788 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/alarms/ogg-jp/Oxygen.oggbin27025 -> 27025 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/effects/ogg/KeypressDelete.oggbin5492 -> 5492 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/effects/ogg/KeypressReturn.oggbin5490 -> 5490 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/effects/ogg/KeypressSpacebar.oggbin5254 -> 5254 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/effects/ogg/KeypressStandard.oggbin5222 -> 5222 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/aidos.oggbin14038 -> 14038 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/circios.oggbin39179 -> 39179 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/horkos.oggbin18211 -> 18211 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/hypnos1.oggbin16391 -> 16391 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/kratos1.oggbin25158 -> 25158 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/kratos2.oggbin32305 -> 32305 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/nomos1.oggbin14620 -> 14620 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/nomos2.oggbin19885 -> 19885 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Adara.oggbin10414 -> 10414 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Argon.oggbin15851 -> 15851 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Beryllium.oggbin19381 -> 19381 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Capella.oggbin13126 -> 13126 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Cobalt.oggbin18121 -> 18121 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Fluorine.oggbin18674 -> 18674 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Gallium.oggbin12214 -> 12214 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Polaris.oggbin20531 -> 20531 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Procyon.oggbin22344 -> 22344 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Radon.oggbin25356 -> 25356 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Selenium.oggbin10893 -> 10893 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Shaula.oggbin24298 -> 24298 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Spica.oggbin9069 -> 9069 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ogg/Zirconium.oggbin12697 -> 12697 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/ouranos.oggbin21168 -> 21168 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/phantasos.oggbin27842 -> 27842 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/poros.oggbin24934 -> 24934 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/notifications/thrasos1.oggbin15737 -> 15737 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/ringtones/Carina.wavbin264848 -> 264848 bytes
-rw-r--r--[-rwxr-xr-x]data/sounds/testfiles/test.midbin2956 -> 2956 bytes
-rw-r--r--[-rwxr-xr-x]data/videos/AndroidInSpace.480p.lq.mp4bin1506932 -> 1506932 bytes
-rw-r--r--[-rwxr-xr-x]data/videos/AndroidInSpace.480p.mq.mp4bin2884674 -> 2884674 bytes
-rw-r--r--[-rwxr-xr-x]docs/downloads/design/Android_Design_Downloads_20120814.zipbin39409325 -> 39409325 bytes
-rw-r--r--[-rwxr-xr-x]docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.pngbin3941564 -> 3941564 bytes
-rw-r--r--[-rwxr-xr-x]docs/downloads/design/Android_Design_Holo_Widgets_20120814.zipbin1090703 -> 1090703 bytes
-rw-r--r--[-rwxr-xr-x]docs/downloads/design/Android_Design_Icons_20120814.zipbin2297118 -> 2297118 bytes
-rw-r--r--[-rwxr-xr-x]docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.grafflebin29194642 -> 29194642 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/design/media/navigation_between_apps_back.pngbin92319 -> 92319 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/design/media/navigation_between_apps_inward.pngbin90976 -> 90976 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/design/media/navigation_between_apps_up.pngbin101487 -> 101487 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/design/media/navigation_between_siblings_market1.pngbin27752 -> 27752 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/design/media/navigation_between_siblings_market2.pngbin36652 -> 36652 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_admin.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_best_practices.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_integrate.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_overview.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_reference.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/billing_testing.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/index.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/google/play/billing/v2/billing_subscriptions.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/guide/appendix/faq/troubleshooting.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/manifest/uses-configuration-element.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/resources/localization.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/resources/resources-i18n.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/ui/images/hello-gallery.pngbin5593 -> 5593 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/ui/images/hello-gridview.pngbin21768 -> 21768 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/ui/images/hello-linearlayout.pngbin4207 -> 4207 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/ui/images/hello-relativelayout.pngbin2399 -> 2399 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/guide/topics/ui/images/hello-tablelayout.pngbin3446 -> 3446 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_check_supported.pngbin21536 -> 21536 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_checkout_flow.pngbin108980 -> 108980 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_list_form.pngbin96595 -> 96595 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_list_form_2.pngbin140745 -> 140745 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_product_list.pngbin67155 -> 67155 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_product_list_entry.pngbin77842 -> 77842 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_public_key.pngbin100711 -> 100711 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_refund.pngbin30801 -> 30801 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_request_purchase.pngbin38108 -> 38108 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_restore_transactions.pngbin25999 -> 25999 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/billing_test_flow.pngbin105261 -> 105261 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/custom_message.pngbin17871 -> 17871 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/custom_toast.pngbin19966 -> 19966 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/developing/developing_overview.pngbin122635 -> 122635 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/drm_arch.pngbin24108 -> 24108 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/copy_res_files.pngbin14109 -> 14109 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/custom_locale_app.pngbin40676 -> 40676 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-de-rDE/flag.pngbin1613 -> 1613 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-en-rCA/flag.pngbin7765 -> 7765 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-en-rUS/flag.pngbin13781 -> 13781 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-fr-rCA/flag.pngbin7765 -> 7765 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-fr-rFR/flag.pngbin615 -> 615 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/drawable-ja-rJP/flag.pngbin2303 -> 2303 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/flag.pngbin17480 -> 17480 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/frenchCA_screenshot.pngbin19252 -> 19252 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/germanCH_screenshot.pngbin25593 -> 25593 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/german_screenshot.pngbin15424 -> 15424 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/japanese_screenshot.pngbin18564 -> 18564 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/nonlocalized_project.pngbin21195 -> 21195 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/nonlocalized_screenshot1.pngbin25693 -> 25693 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/nonlocalized_screenshot2.pngbin30201 -> 30201 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/plain_project.pngbin10091 -> 10091 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/romanshCH_screenshot.pngbin25352 -> 25352 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/using_custom_locale.pngbin38388 -> 38388 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/xml_file_wizard_shortcut.pngbin9658 -> 9658 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/xml_wizard1.pngbin27897 -> 27897 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/hello_l10n/xml_wizard2.pngbin3662 -> 3662 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_audition_wnd.pngbin38252 -> 38252 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_event_wnd.pngbin54424 -> 54424 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_main_wnd.pngbin62984 -> 62984 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_moveseg_wnd.pngbin16350 -> 16350 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_open_dlg.pngbin17097 -> 17097 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_rep_wnd.pngbin21566 -> 21566 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_repseg_wnd.pngbin21236 -> 21236 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/jet/jc_seg_wnd.pngbin49892 -> 49892 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/notifications_window.pngbin10511 -> 10511 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/options_menu.pngbin40602 -> 40602 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/publishing/publishing_android_market.pngbin35991 -> 35991 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/publishing/publishing_overview.pngbin26898 -> 26898 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/publishing/publishing_overview_prep.pngbin37122 -> 37122 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/publishing/publishing_preparing.pngbin66767 -> 66767 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/publishing/publishing_via_email.pngbin47608 -> 47608 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/radio_buttons.pngbin75740 -> 75740 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/resources/arrow.pngbin486 -> 486 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/resources/right-arrow.pngbin420 -> 420 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/status_bar.pngbin3719 -> 3719 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/testing/android_test_framework.pngbin47368 -> 47368 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/ads-close-to-button.pngbin37139 -> 37139 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/ads-cover-content.pngbin42593 -> 42593 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/ads-eclipse-build-path.pngbin58664 -> 58664 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/ads-top-banner.pngbin35606 -> 35606 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/button.pngbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/button_with_marks.pngbin3396 -> 3396 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/buttons_stretched.pngbin1617 -> 1617 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/cool-places.pngbin31640 -> 31640 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/device-mgmt-activate-device-admin.pngbin42791 -> 42791 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/training/panoramio-grid.pngbin147552 -> 147552 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/images/ui/clipboard/copy_paste_framework.pngbin37996 -> 37996 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/resources/images/KeyChainDemo2.pngbin40334 -> 40334 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/resources/images/KeyChainDemo3.pngbin62468 -> 62468 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/resources/images/KeyChainDemo4.pngbin61334 -> 61334 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/resources/images/SipDemo.pngbin72267 -> 72267 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/resources/images/vpn-confirmation.pngbin60214 -> 60214 bytes
-rw-r--r--[-rwxr-xr-x]docs/html/tools/publishing/publishing_overview.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/tools/testing/testing_android.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/tools/workflow/publishing/publishing_overview.jd0
-rw-r--r--[-rwxr-xr-x]docs/html/tools/workflow/publishing_overview.jd0
-rw-r--r--docs/html/training/basics/activity-lifecycle/recreating.jd2
-rw-r--r--[-rwxr-xr-x]docs/image_sources/fundamentals/fragments.graffle0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmConvertedStatus.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmErrorEvent.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmEvent.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmInfo.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmInfoEvent.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmInfoRequest.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmInfoStatus.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmManagerClient.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmRights.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmStore.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmSupportInfo.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/DrmUtils.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/ProcessedData.java0
-rw-r--r--[-rwxr-xr-x]drm/java/android/drm/package.html0
-rw-r--r--[-rwxr-xr-x]graphics/java/android/graphics/Bitmap.aidl0
-rw-r--r--[-rwxr-xr-x]include/androidfw/KeycodeLabels.h0
-rw-r--r--keystore/java/android/security/KeyStore.java353
-rw-r--r--[-rwxr-xr-x]keystore/tests/src/android/security/KeyStoreTest.java0
-rw-r--r--libs/androidfw/BackupHelpers.cpp2
-rw-r--r--libs/androidfw/ResourceTypes.cpp12
-rw-r--r--libs/androidfw/tests/Android.mk31
-rw-r--r--libs/androidfw/tests/InputEvent_test.cpp2
-rw-r--r--libs/hwui/FontRenderer.cpp49
-rw-r--r--libs/hwui/FontRenderer.h7
-rw-r--r--[-rwxr-xr-x]location/java/android/location/Country.java0
-rw-r--r--[-rwxr-xr-x]location/java/android/location/INetInitiatedListener.aidl0
-rw-r--r--[-rwxr-xr-x]location/java/com/android/internal/location/GpsNetInitiatedHandler.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/IAudioFocusDispatcher.aidl0
-rw-r--r--media/java/android/media/MediaCodec.java18
-rw-r--r--media/java/android/media/MediaCodecList.java2
-rw-r--r--media/java/android/media/MediaScanner.java7
-rw-r--r--media/java/android/media/Ringtone.java47
-rw-r--r--[-rwxr-xr-x]media/java/android/media/audiofx/Visualizer.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/AudioTrack.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/Effect.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/EffectColor.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/EffectKenBurns.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/MediaImageItem.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/MediaItem.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/MediaProperties.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/MediaVideoItem.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/Overlay.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/OverlayFrame.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/Transition.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/TransitionAlpha.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/TransitionCrossfade.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/TransitionFadeBlack.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/TransitionSliding.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/VideoEditor.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/VideoEditorFactory.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/VideoEditorImpl.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/VideoEditorProfile.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/media/videoeditor/WaveformData.java0
-rw-r--r--[-rwxr-xr-x]media/java/android/mtp/MtpDatabase.java0
-rw-r--r--media/jni/android_media_MediaCodec.cpp40
-rw-r--r--media/jni/android_media_MediaCodec.h2
-rw-r--r--media/jni/android_media_MediaCodecList.cpp22
-rw-r--r--media/jni/audioeffect/android_media_AudioEffect.cpp7
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/Android.mk0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoBrowserInternal.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoBrowserMain.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorClasses.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorClasses.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorJava.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorJava.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorLogging.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorMain.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorOsal.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorOsal.h0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorPropertiesMain.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorThumbnailMain.cpp0
-rw-r--r--[-rwxr-xr-x]media/jni/mediaeditor/VideoEditorThumbnailMain.h0
-rw-r--r--media/mca/filterfw/jni/jni_gl_frame.cpp8
-rw-r--r--media/mca/filterfw/jni/jni_native_frame.cpp8
-rwxr-xr-x[-rw-r--r--]media/mca/structgen.py0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java0
-rw-r--r--[-rwxr-xr-x]media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java0
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/Android.mk0
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/AndroidManifest.xml0
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/res/drawable/icon.pngbin6094 -> 6094 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/res/drawable/record.pngbin688 -> 688 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/res/drawable/stop.pngbin369 -> 369 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/res/layout/scoaudiotest.xml0
-rw-r--r--[-rwxr-xr-x]media/tests/ScoAudioTest/res/values/strings.xml0
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/goldenThumbnail.pngbin18211 -> 18211 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3bin1242272 -> 1242272 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/music/SHORTMP3.mp3bin5040 -> 5040 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/music/ants.midbin2956 -> 2956 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/music/bzk_chic.wavbin47060 -> 47060 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/music/test_amr_ietf.amrbin59910 -> 59910 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H263_500_AMRNB_12.3gpbin32244489 -> 32244489 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H263_56_AAC_24.3gpbin5627619 -> 5627619 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H263_56_AMRNB_6.3gpbin4840778 -> 4840778 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H264_320_AAC_64.3gpbin1407646 -> 1407646 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H264_320_AMRNB_6.3gpbin1102859 -> 1102859 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H264_500_AAC_128.3gpbin24379613 -> 24379613 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gpbin32023286 -> 32023286 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gpbin32023286 -> 32023286 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4bin2031057 -> 2031057 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/big-buck-bunny_trailer.webmbin2165175 -> 2165175 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/video/border_large.3gpbin37753 -> 37753 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4bin9599091 -> 9599091 bytes
-rw-r--r--[-rwxr-xr-x]media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.pngbin4559 -> 4559 bytes
-rwxr-xr-x[-rw-r--r--]native/copy-to-ndk.sh0
-rw-r--r--native/graphics/jni/bitmap.cpp6
-rw-r--r--[-rwxr-xr-x]packages/DefaultContainerService/Android.mk0
-rw-r--r--[-rwxr-xr-x]packages/DefaultContainerService/AndroidManifest.xml0
-rw-r--r--packages/SettingsProvider/res/values/defaults.xml1
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java1
-rw-r--r--packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java2
-rw-r--r--packages/WAPPushManager/tests/src/com/android/smspush/unitTests/WapPushTest.java2
-rwxr-xr-x[-rw-r--r--]policy/src/com/android/internal/policy/impl/GlobalActions.java7
-rw-r--r--[-rwxr-xr-x]policy/src/com/android/internal/policy/impl/PhoneWindowManager.java0
-rw-r--r--services/java/com/android/server/ConnectivityService.java7
-rw-r--r--services/java/com/android/server/LocationManagerService.java3
-rw-r--r--services/java/com/android/server/NativeDaemonEvent.java4
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/NotificationManagerService.java0
-rw-r--r--services/java/com/android/server/NsdService.java252
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/VibratorService.java0
-rw-r--r--services/java/com/android/server/WifiService.java4
-rw-r--r--services/java/com/android/server/accessibility/AccessibilityManagerService.java2
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/am/ActivityStack.java0
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/am/package.html0
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/location/ComprehensiveCountryDetector.java0
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/location/GpsLocationProvider.java0
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/location/LocationBasedCountryDetector.java0
-rw-r--r--services/java/com/android/server/net/NetworkPolicyManagerService.java8
-rw-r--r--services/java/com/android/server/net/NetworkStatsService.java10
-rw-r--r--services/java/com/android/server/updates/CertPinInstallReceiver.java24
-rw-r--r--services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java (renamed from services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java)0
-rw-r--r--[-rwxr-xr-x]services/java/com/android/server/wm/WindowManagerService.java34
-rw-r--r--[-rwxr-xr-x]services/jni/com_android_server_location_GpsLocationProvider.cpp6
-rw-r--r--[-rwxr-xr-x]services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java0
-rw-r--r--services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java243
-rw-r--r--telephony/java/android/telephony/CellIdentityCdma.java4
-rw-r--r--telephony/java/android/telephony/CellIdentityGsm.java4
-rw-r--r--telephony/java/android/telephony/CellIdentityLte.java4
-rw-r--r--telephony/java/android/telephony/CellInfoCdma.java4
-rw-r--r--telephony/java/android/telephony/CellInfoGsm.java4
-rw-r--r--telephony/java/android/telephony/CellInfoLte.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthCdma.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthGsm.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthLte.java4
-rw-r--r--telephony/java/android/telephony/PhoneNumberUtils.java20
-rw-r--r--telephony/java/android/telephony/PhoneStateListener.java4
-rw-r--r--telephony/java/android/telephony/Rlog.java94
-rw-r--r--telephony/java/android/telephony/ServiceState.java4
-rw-r--r--telephony/java/android/telephony/SignalStrength.java4
-rw-r--r--[-rwxr-xr-x]telephony/java/android/telephony/TelephonyManager.java10
-rw-r--r--telephony/java/com/android/internal/telephony/CallerInfo.java39
-rw-r--r--telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java36
-rw-r--r--telephony/java/com/android/internal/telephony/GsmAlphabet.java22
-rw-r--r--telephony/java/com/android/internal/telephony/RILConstants.java2
-rw-r--r--[-rwxr-xr-x]test-runner/src/android/test/NoExecTestResult.java0
-rw-r--r--[-rwxr-xr-x]tests/BrowserTestPlugin/res/drawable/browser_test_plugin.pngbin3610 -> 3610 bytes
-rw-r--r--[-rwxr-xr-x]tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java0
-rw-r--r--[-rwxr-xr-x]tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.pngbin364 -> 364 bytes
-rw-r--r--[-rwxr-xr-x]tests/FrameworkPerf/res/drawable-hdpi/stat_happy.pngbin634 -> 634 bytes
-rw-r--r--[-rwxr-xr-x]tests/FrameworkPerf/res/drawable-nodpi/stat_sample.pngbin364 -> 364 bytes
-rw-r--r--[-rwxr-xr-x]tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/Android.mk0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/AndroidManifest.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/res/layout/full_screen_edit_text.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/res/layout/one_edit_text_activity.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/res/layout/sample_edit_text.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/res/values/strings.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/Android.mk0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/AndroidManifest.xml0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java0
-rw-r--r--[-rwxr-xr-x]tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java0
-rw-r--r--[-rwxr-xr-x]tests/LocationTracker/res/xml/preferences.xml0
-rw-r--r--[-rwxr-xr-x]tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java0
-rw-r--r--[-rwxr-xr-x]tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.pngbin4142 -> 4142 bytes
-rw-r--r--tools/aapt/Resource.cpp2
-rw-r--r--[-rwxr-xr-x]tools/aidl/AST.cpp0
-rw-r--r--[-rwxr-xr-x]tools/aidl/AST.h0
-rw-r--r--[-rwxr-xr-x]tools/aidl/Type.cpp0
-rw-r--r--[-rwxr-xr-x]tools/aidl/Type.h0
-rw-r--r--[-rwxr-xr-x]tools/layoutlib/bridge/src/android/util/Log_Delegate.java0
-rw-r--r--[-rwxr-xr-x]tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java0
-rw-r--r--[-rwxr-xr-x]tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java0
-rw-r--r--[-rwxr-xr-x]tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java0
-rw-r--r--voip/java/android/net/rtp/AudioGroup.java3
-rw-r--r--wifi/java/android/net/wifi/WifiStateMachine.java30
-rw-r--r--wifi/java/android/net/wifi/p2p/WifiP2pService.java93
725 files changed, 1949 insertions, 1350 deletions
diff --git a/api/current.txt b/api/current.txt
index 10c6e2c142d7..d281f136d526 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -11202,7 +11202,9 @@ package android.media {
method public final int dequeueInputBuffer(long);
method public final int dequeueOutputBuffer(android.media.MediaCodec.BufferInfo, long);
method public final void flush();
+ method public android.media.MediaCodecInfo getCodecInfo();
method public java.nio.ByteBuffer[] getInputBuffers();
+ method public final java.lang.String getName();
method public java.nio.ByteBuffer[] getOutputBuffers();
method public final android.media.MediaFormat getOutputFormat();
method public final void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException;
@@ -23432,17 +23434,6 @@ package android.util {
method public void set(T, V);
}
- public class PropertyValueModel extends android.util.ValueModel {
- method public T get();
- method public H getHost();
- method public android.util.Property<H, T> getProperty();
- method public java.lang.Class<T> getType();
- method public static android.util.PropertyValueModel<H, T> of(H, android.util.Property<H, T>);
- method public static android.util.PropertyValueModel<H, T> of(H, java.lang.Class<T>, java.lang.String);
- method public static android.util.PropertyValueModel of(java.lang.Object, java.lang.String);
- method public void set(T);
- }
-
public class SparseArray implements java.lang.Cloneable {
ctor public SparseArray();
ctor public SparseArray(int);
@@ -23591,14 +23582,6 @@ package android.util {
field public int type;
}
- public abstract class ValueModel {
- ctor protected ValueModel();
- method public abstract T get();
- method public abstract java.lang.Class<T> getType();
- method public abstract void set(T);
- field public static final android.util.ValueModel EMPTY;
- }
-
public class Xml {
method public static android.util.AttributeSet asAttributeSet(org.xmlpull.v1.XmlPullParser);
method public static android.util.Xml.Encoding findEncodingByName(java.lang.String) throws java.io.UnsupportedEncodingException;
@@ -27989,12 +27972,10 @@ package android.widget {
method public abstract void onSelectedDayChange(android.widget.CalendarView, int, int, int);
}
- public class CheckBox extends android.widget.CompoundButton implements android.widget.ValueEditor {
+ public class CheckBox extends android.widget.CompoundButton {
ctor public CheckBox(android.content.Context);
ctor public CheckBox(android.content.Context, android.util.AttributeSet);
ctor public CheckBox(android.content.Context, android.util.AttributeSet, int);
- method public android.util.ValueModel<java.lang.Boolean> getValueModel();
- method public void setValueModel(android.util.ValueModel<java.lang.Boolean>);
}
public abstract interface Checkable {
@@ -28167,16 +28148,14 @@ package android.widget {
method public void setSize(int, int);
}
- public class EditText extends android.widget.TextView implements android.widget.ValueEditor {
+ public class EditText extends android.widget.TextView {
ctor public EditText(android.content.Context);
ctor public EditText(android.content.Context, android.util.AttributeSet);
ctor public EditText(android.content.Context, android.util.AttributeSet, int);
method public void extendSelection(int);
- method public android.util.ValueModel<java.lang.CharSequence> getValueModel();
method public void selectAll();
method public void setSelection(int, int);
method public void setSelection(int);
- method public void setValueModel(android.util.ValueModel<java.lang.CharSequence>);
}
public abstract interface ExpandableListAdapter {
@@ -29201,13 +29180,11 @@ package android.widget {
method public abstract java.lang.Object[] getSections();
}
- public class SeekBar extends android.widget.AbsSeekBar implements android.widget.ValueEditor {
+ public class SeekBar extends android.widget.AbsSeekBar {
ctor public SeekBar(android.content.Context);
ctor public SeekBar(android.content.Context, android.util.AttributeSet);
ctor public SeekBar(android.content.Context, android.util.AttributeSet, int);
- method public android.util.ValueModel<java.lang.Integer> getValueModel();
method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener);
- method public void setValueModel(android.util.ValueModel<java.lang.Integer>);
}
public static abstract interface SeekBar.OnSeekBarChangeListener {
@@ -29795,11 +29772,6 @@ package android.widget {
method public android.widget.TextView getText2();
}
- public abstract interface ValueEditor {
- method public abstract android.util.ValueModel<T> getValueModel();
- method public abstract void setValueModel(android.util.ValueModel<T>);
- }
-
public class VideoView extends android.view.SurfaceView implements android.widget.MediaController.MediaPlayerControl {
ctor public VideoView(android.content.Context);
ctor public VideoView(android.content.Context, android.util.AttributeSet);
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 070e10509e4e..787fbdb89062 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -83,14 +83,14 @@ public class Content {
+ " Example:\n"
+ " # Change \"new_setting\" secure setting to \"newer_value\".\n"
+ " adb shell content update --uri content://settings/secure --bind"
- + " value:s:newer_value --where \"name=\\'new_setting\\'\"\n"
+ + " value:s:newer_value --where \"name=\'new_setting\'\"\n"
+ "\n"
+ "usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING>"
+ " [--bind <BINDING>...] [--where <WHERE>]\n"
+ " Example:\n"
+ " # Remove \"new_setting\" secure setting.\n"
+ " adb shell content delete --uri content://settings/secure "
- + "--where \"name=\\'new_setting\\'\"\n"
+ + "--where \"name=\'new_setting\'\"\n"
+ "\n"
+ "usage: adb shell content query --uri <URI> [--user <USER_ID>]"
+ " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]\n"
@@ -101,7 +101,7 @@ public class Content {
+ " # Select \"name\" and \"value\" columns from secure settings where \"name\" is "
+ "equal to \"new_setting\" and sort the result by name in ascending order.\n"
+ " adb shell content query --uri content://settings/secure --projection name:value"
- + " --where \"name=\\'new_setting\\'\" --sort \"name ASC\"\n"
+ + " --where \"name=\'new_setting\'\" --sort \"name ASC\"\n"
+ "\n";
private static class Parser {
diff --git a/cmds/input/src/com/android/commands/input/Input.java b/cmds/input/src/com/android/commands/input/Input.java
index a21df0d2c8b2..a21df0d2c8b2 100755..100644
--- a/cmds/input/src/com/android/commands/input/Input.java
+++ b/cmds/input/src/com/android/commands/input/Input.java
diff --git a/cmds/installd/Android.mk b/cmds/installd/Android.mk
index 3e722ea8b1ea..1dd4ee5d66ba 100644
--- a/cmds/installd/Android.mk
+++ b/cmds/installd/Android.mk
@@ -29,17 +29,12 @@ LOCAL_SRC_FILES := \
$(common_src_files)
LOCAL_SHARED_LIBRARIES := \
- libcutils
+ libcutils \
+ libselinux
LOCAL_STATIC_LIBRARIES := \
libdiskusage
-ifeq ($(HAVE_SELINUX),true)
-LOCAL_C_INCLUDES += external/libselinux/include
-LOCAL_SHARED_LIBRARIES += libselinux
-LOCAL_CFLAGS := -DHAVE_SELINUX
-endif # HAVE_SELINUX
-
LOCAL_MODULE := installd
LOCAL_MODULE_TAGS := optional
diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c
index 387f33d1097f..2a547102eb46 100644
--- a/cmds/installd/commands.c
+++ b/cmds/installd/commands.c
@@ -17,10 +17,7 @@
#include <linux/capability.h>
#include "installd.h"
#include <diskusage/dirsize.h>
-
-#ifdef HAVE_SELINUX
#include <selinux/android.h>
-#endif
/* Directory records that are used in execution of commands. */
dir_rec_t android_data_dir;
@@ -94,14 +91,12 @@ int install(const char *pkgname, uid_t uid, gid_t gid)
return -1;
}
-#ifdef HAVE_SELINUX
if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) {
ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno));
unlink(libsymlink);
unlink(pkgdir);
- return -1;
+ return -errno;
}
-#endif
if (chown(pkgdir, uid, gid) < 0) {
ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
@@ -250,21 +245,19 @@ int make_user_data(const char *pkgname, uid_t uid, uid_t persona)
return -1;
}
- if (chown(pkgdir, uid, uid) < 0) {
- ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
+ if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) {
+ ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno));
unlink(libsymlink);
unlink(pkgdir);
return -errno;
}
-#ifdef HAVE_SELINUX
- if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) {
- ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno));
+ if (chown(pkgdir, uid, uid) < 0) {
+ ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
unlink(libsymlink);
unlink(pkgdir);
return -errno;
}
-#endif
return 0;
}
diff --git a/cmds/installd/tests/Android.mk b/cmds/installd/tests/Android.mk
index 315acdb9dbd4..c0192f453f22 100644
--- a/cmds/installd/tests/Android.mk
+++ b/cmds/installd/tests/Android.mk
@@ -18,13 +18,7 @@ static_libraries := \
libgtest_main
c_includes := \
- frameworks/base/cmds/installd \
- bionic \
- bionic/libstdc++/include \
- external/gtest/include \
- external/stlport/stlport
-
-module_tags := eng tests
+ frameworks/base/cmds/installd
$(foreach file,$(test_src_files), \
$(eval include $(CLEAR_VARS)) \
@@ -33,6 +27,5 @@ $(foreach file,$(test_src_files), \
$(eval LOCAL_SRC_FILES := $(file)) \
$(eval LOCAL_C_INCLUDES := $(c_includes)) \
$(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \
- $(eval LOCAL_MODULE_TAGS := $(module_tags)) \
- $(eval include $(BUILD_EXECUTABLE)) \
+ $(eval include $(BUILD_NATIVE_TEST)) \
)
diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c
index 71e840e4fa6a..c563a829ba50 100644
--- a/cmds/servicemanager/service_manager.c
+++ b/cmds/servicemanager/service_manager.c
@@ -47,6 +47,7 @@ static struct {
{ AID_RADIO, "simphonebook" },
{ AID_MEDIA, "common_time.clock" },
{ AID_MEDIA, "common_time.config" },
+ { AID_KEYSTORE, "android.security.keystore" },
};
void *svcmgr_handle;
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java
index f7460c44034f..f7460c44034f 100755..100644
--- a/core/java/android/animation/ValueAnimator.java
+++ b/core/java/android/animation/ValueAnimator.java
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 4f3f2451a912..3bdadc3d26e2 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2539,12 +2539,16 @@ public class Activity extends ContextThemeWrapper
* Activity don't need to deal with feature codes.
*/
public boolean onMenuItemSelected(int featureId, MenuItem item) {
+ CharSequence titleCondensed = item.getTitleCondensed();
+
switch (featureId) {
case Window.FEATURE_OPTIONS_PANEL:
// Put event logging here so it gets called even if subclass
// doesn't call through to superclass's implmeentation of each
// of these methods below
- EventLog.writeEvent(50000, 0, item.getTitleCondensed());
+ if(titleCondensed != null) {
+ EventLog.writeEvent(50000, 0, titleCondensed.toString());
+ }
if (onOptionsItemSelected(item)) {
return true;
}
@@ -2562,7 +2566,9 @@ public class Activity extends ContextThemeWrapper
return false;
case Window.FEATURE_CONTEXT_MENU:
- EventLog.writeEvent(50000, 1, item.getTitleCondensed());
+ if(titleCondensed != null) {
+ EventLog.writeEvent(50000, 1, titleCondensed.toString());
+ }
if (onContextItemSelected(item)) {
return true;
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index d62372c1cfa1..d8808173497e 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -113,6 +113,7 @@ import java.util.TimeZone;
import java.util.regex.Pattern;
import libcore.io.DropBox;
+import libcore.io.EventLogger;
import libcore.io.IoUtils;
import dalvik.system.CloseGuard;
@@ -4980,6 +4981,13 @@ public final class ActivityThread {
}
}
+ private static class EventLoggingReporter implements EventLogger.Reporter {
+ @Override
+ public void report (int code, Object... list) {
+ EventLog.writeEvent(code, list);
+ }
+ }
+
private class DropBoxReporter implements DropBox.Reporter {
private DropBoxManager dropBox;
@@ -5009,6 +5017,9 @@ public final class ActivityThread {
Environment.initForCurrentUser();
+ // Set the reporter for event logging in libcore
+ EventLogger.setReporter(new EventLoggingReporter());
+
Process.setArgV0("<pre-initialized>");
Looper.prepareMainLooper();
diff --git a/core/java/android/app/DownloadManager.java b/core/java/android/app/DownloadManager.java
index 6cf4dd0163df..32e40ee2175b 100644
--- a/core/java/android/app/DownloadManager.java
+++ b/core/java/android/app/DownloadManager.java
@@ -499,7 +499,7 @@ public class DownloadManager {
" already exists and is not a directory");
}
} else {
- if (!file.mkdir()) {
+ if (!file.mkdirs()) {
throw new IllegalStateException("Unable to create directory: "+
file.getAbsolutePath());
}
diff --git a/core/java/android/app/IAlarmManager.aidl b/core/java/android/app/IAlarmManager.aidl
index edb40ed77f51..edb40ed77f51 100755..100644
--- a/core/java/android/app/IAlarmManager.aidl
+++ b/core/java/android/app/IAlarmManager.aidl
diff --git a/core/java/android/app/IThumbnailReceiver.aidl b/core/java/android/app/IThumbnailReceiver.aidl
index 7943f2c83cd7..7943f2c83cd7 100755..100644
--- a/core/java/android/app/IThumbnailReceiver.aidl
+++ b/core/java/android/app/IThumbnailReceiver.aidl
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index 5c75affe09d9..2897ee0f5569 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -289,7 +289,7 @@ public final class PendingIntent implements Parcelable {
/**
* Like {@link #getActivity(Context, int, Intent, int)}, but allows an
- * array of Intents to be supplied. The first Intent in the array is
+ * array of Intents to be supplied. The last Intent in the array is
* taken as the primary key for the PendingIntent, like the single Intent
* given to {@link #getActivity(Context, int, Intent, int)}. Upon sending
* the resulting PendingIntent, all of the Intents are started in the same
@@ -335,7 +335,7 @@ public final class PendingIntent implements Parcelable {
/**
* Like {@link #getActivity(Context, int, Intent, int)}, but allows an
- * array of Intents to be supplied. The first Intent in the array is
+ * array of Intents to be supplied. The last Intent in the array is
* taken as the primary key for the PendingIntent, like the single Intent
* given to {@link #getActivity(Context, int, Intent, int)}. Upon sending
* the resulting PendingIntent, all of the Intents are started in the same
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 4c0eba00e66c..4c0eba00e66c 100755..100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
diff --git a/core/java/android/appwidget/AppWidgetProvider.java b/core/java/android/appwidget/AppWidgetProvider.java
index edf142b2726a..edf142b2726a 100755..100644
--- a/core/java/android/appwidget/AppWidgetProvider.java
+++ b/core/java/android/appwidget/AppWidgetProvider.java
diff --git a/core/java/android/content/IIntentReceiver.aidl b/core/java/android/content/IIntentReceiver.aidl
index 3d9272388e03..3d9272388e03 100755..100644
--- a/core/java/android/content/IIntentReceiver.aidl
+++ b/core/java/android/content/IIntentReceiver.aidl
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index cf0603e3a84d..89b1bbd2ee4e 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1950,7 +1950,7 @@ public class Intent implements Parcelable, Cloneable {
/**
* Broadcast Action: External media is present, but not mounted at its mount point.
- * The path to the mount point for the removed media is contained in the Intent.mData field.
+ * The path to the mount point for the unmounted media is contained in the Intent.mData field.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED";
@@ -1971,7 +1971,7 @@ public class Intent implements Parcelable, Cloneable {
/**
* Broadcast Action: External media is present and mounted at its mount point.
- * The path to the mount point for the removed media is contained in the Intent.mData field.
+ * The path to the mount point for the mounted media is contained in the Intent.mData field.
* The Intent contains an extra with name "read-only" and Boolean value to indicate if the
* media was mounted read only.
*/
@@ -2002,7 +2002,7 @@ public class Intent implements Parcelable, Cloneable {
/**
* Broadcast Action: External media is present but cannot be mounted.
- * The path to the mount point for the removed media is contained in the Intent.mData field.
+ * The path to the mount point for the unmountable media is contained in the Intent.mData field.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_MEDIA_UNMOUNTABLE = "android.intent.action.MEDIA_UNMOUNTABLE";
diff --git a/core/java/android/content/res/Configuration.aidl b/core/java/android/content/res/Configuration.aidl
index bb7f2ddd104f..bb7f2ddd104f 100755..100644
--- a/core/java/android/content/res/Configuration.aidl
+++ b/core/java/android/content/res/Configuration.aidl
diff --git a/core/java/android/content/res/ObbInfo.aidl b/core/java/android/content/res/ObbInfo.aidl
index 636ad6ae415e..636ad6ae415e 100755..100644
--- a/core/java/android/content/res/ObbInfo.aidl
+++ b/core/java/android/content/res/ObbInfo.aidl
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index b316f230a944..b316f230a944 100755..100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
diff --git a/core/java/android/database/IContentObserver.aidl b/core/java/android/database/IContentObserver.aidl
index 13aff058a956..13aff058a956 100755..100644
--- a/core/java/android/database/IContentObserver.aidl
+++ b/core/java/android/database/IContentObserver.aidl
diff --git a/core/java/android/ddm/package.html b/core/java/android/ddm/package.html
index 1c9bf9dad835..1c9bf9dad835 100755..100644
--- a/core/java/android/ddm/package.html
+++ b/core/java/android/ddm/package.html
diff --git a/core/java/android/debug/package.html b/core/java/android/debug/package.html
index c9f96a66ab3b..c9f96a66ab3b 100755..100644
--- a/core/java/android/debug/package.html
+++ b/core/java/android/debug/package.html
diff --git a/core/java/android/gesture/Gesture.java b/core/java/android/gesture/Gesture.java
index c6a2a875352b..c6a2a875352b 100755..100644
--- a/core/java/android/gesture/Gesture.java
+++ b/core/java/android/gesture/Gesture.java
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java
index b6c260fd3e02..b6c260fd3e02 100755..100644
--- a/core/java/android/gesture/GestureOverlayView.java
+++ b/core/java/android/gesture/GestureOverlayView.java
diff --git a/core/java/android/gesture/GestureUtils.java b/core/java/android/gesture/GestureUtils.java
index dd221fc7bbe8..dd221fc7bbe8 100755..100644
--- a/core/java/android/gesture/GestureUtils.java
+++ b/core/java/android/gesture/GestureUtils.java
diff --git a/core/java/android/gesture/Instance.java b/core/java/android/gesture/Instance.java
index 02a65194885b..02a65194885b 100755..100644
--- a/core/java/android/gesture/Instance.java
+++ b/core/java/android/gesture/Instance.java
diff --git a/core/java/android/gesture/Learner.java b/core/java/android/gesture/Learner.java
index a105652d4596..a105652d4596 100755..100644
--- a/core/java/android/gesture/Learner.java
+++ b/core/java/android/gesture/Learner.java
diff --git a/core/java/android/gesture/Prediction.java b/core/java/android/gesture/Prediction.java
index ce6ad5745df6..ce6ad5745df6 100755..100644
--- a/core/java/android/gesture/Prediction.java
+++ b/core/java/android/gesture/Prediction.java
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index a30077641f2c..483e9de7fb9f 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -2338,7 +2338,7 @@ public class Camera {
}
/**
- * Sets the maximum and maximum preview fps. This controls the rate of
+ * Sets the minimum and maximum preview fps. This controls the rate of
* preview frames received in {@link PreviewCallback}. The minimum and
* maximum preview fps must be one of the elements from {@link
* #getSupportedPreviewFpsRange}.
diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java
index 0204e94df6bc..7375e7d743db 100644
--- a/core/java/android/hardware/SystemSensorManager.java
+++ b/core/java/android/hardware/SystemSensorManager.java
@@ -373,7 +373,8 @@ public class SystemSensorManager extends SensorManager {
for (Sensor s : l.getSensors()) {
disableSensorLocked(s);
}
- } else if (l.removeSensor(sensor) == 0) {
+ // Check if the ListenerDelegate has the sensor it is trying to unregister.
+ } else if (l.hasSensor(sensor) && l.removeSensor(sensor) == 0) {
// if we have no more sensors enabled on this listener,
// take it off the list.
sListeners.remove(i);
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index 262d87d84818..262d87d84818 100755..100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
diff --git a/core/java/android/net/Uri.aidl b/core/java/android/net/Uri.aidl
index 6bd3be5e041b..6bd3be5e041b 100755..100644
--- a/core/java/android/net/Uri.aidl
+++ b/core/java/android/net/Uri.aidl
diff --git a/core/java/android/net/http/AndroidHttpClient.java b/core/java/android/net/http/AndroidHttpClient.java
index c534e58f37e1..fabe01835b62 100644
--- a/core/java/android/net/http/AndroidHttpClient.java
+++ b/core/java/android/net/http/AndroidHttpClient.java
@@ -66,8 +66,7 @@ import android.util.Log;
/**
* Implementation of the Apache {@link DefaultHttpClient} that is configured with
- * reasonable default settings and registered schemes for Android, and
- * also lets the user add {@link HttpRequestInterceptor} classes.
+ * reasonable default settings and registered schemes for Android.
* Don't create this directly, use the {@link #newInstance} factory method.
*
* <p>This client processes cookies but does not retain them by default.
diff --git a/core/java/android/net/http/SslCertificate.java b/core/java/android/net/http/SslCertificate.java
index fe6d4eb298ff..5b60c0dee46d 100644
--- a/core/java/android/net/http/SslCertificate.java
+++ b/core/java/android/net/http/SslCertificate.java
@@ -334,9 +334,11 @@ public class SslCertificate {
/**
* A distinguished name helper class: a 3-tuple of:
- * - common name (CN),
- * - organization (O),
- * - organizational unit (OU)
+ * <ul>
+ * <li>the most specific common name (CN)</li>
+ * <li>the most specific organization (O)</li>
+ * <li>the most specific organizational unit (OU)</li>
+ * <ul>
*/
public class DName {
/**
@@ -360,8 +362,15 @@ public class SslCertificate {
private String mUName;
/**
- * Creates a new distinguished name
- * @param dName The distinguished name
+ * Creates a new {@code DName} from a string. The attributes
+ * are assumed to come in most significant to least
+ * significant order which is true of human readable values
+ * returned by methods such as {@code X500Principal.getName()}.
+ * Be aware that the underlying sources of distinguished names
+ * such as instances of {@code X509Certificate} are encoded in
+ * least significant to most significant order, so make sure
+ * the value passed here has the expected ordering of
+ * attributes.
*/
public DName(String dName) {
if (dName != null) {
@@ -374,18 +383,24 @@ public class SslCertificate {
for (int i = 0; i < oid.size(); i++) {
if (oid.elementAt(i).equals(X509Name.CN)) {
- mCName = (String) val.elementAt(i);
+ if (mCName == null) {
+ mCName = (String) val.elementAt(i);
+ }
continue;
}
if (oid.elementAt(i).equals(X509Name.O)) {
- mOName = (String) val.elementAt(i);
- continue;
+ if (mOName == null) {
+ mOName = (String) val.elementAt(i);
+ continue;
+ }
}
if (oid.elementAt(i).equals(X509Name.OU)) {
- mUName = (String) val.elementAt(i);
- continue;
+ if (mUName == null) {
+ mUName = (String) val.elementAt(i);
+ continue;
+ }
}
}
} catch (IllegalArgumentException ex) {
@@ -402,21 +417,21 @@ public class SslCertificate {
}
/**
- * @return The Common-name (CN) component of this name
+ * @return The most specific Common-name (CN) component of this name
*/
public String getCName() {
return mCName != null ? mCName : "";
}
/**
- * @return The Organization (O) component of this name
+ * @return The most specific Organization (O) component of this name
*/
public String getOName() {
return mOName != null ? mOName : "";
}
/**
- * @return The Organizational Unit (OU) component of this name
+ * @return The most specific Organizational Unit (OU) component of this name
*/
public String getUName() {
return mUName != null ? mUName : "";
diff --git a/core/java/android/net/http/package.html b/core/java/android/net/http/package.html
index a81cbce375a9..a81cbce375a9 100755..100644
--- a/core/java/android/net/http/package.html
+++ b/core/java/android/net/http/package.html
diff --git a/core/java/android/net/package.html b/core/java/android/net/package.html
index 47c57e6a13ec..47c57e6a13ec 100755..100644
--- a/core/java/android/net/package.html
+++ b/core/java/android/net/package.html
diff --git a/core/java/android/os/CommonTimeUtils.java b/core/java/android/os/CommonTimeUtils.java
index 9081ee411d61..20755d92d2d5 100644
--- a/core/java/android/os/CommonTimeUtils.java
+++ b/core/java/android/os/CommonTimeUtils.java
@@ -19,6 +19,7 @@ import java.net.InetAddress;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetSocketAddress;
+import java.util.Locale;
import static libcore.io.OsConstants.*;
class CommonTimeUtils {
@@ -192,10 +193,11 @@ class CommonTimeUtils {
if (AF_INET == type) {
int addr = reply.readInt();
port = reply.readInt();
- addrStr = String.format("%d.%d.%d.%d", (addr >> 24) & 0xFF,
- (addr >> 16) & 0xFF,
- (addr >> 8) & 0xFF,
- addr & 0xFF);
+ addrStr = String.format(Locale.US, "%d.%d.%d.%d",
+ (addr >> 24) & 0xFF,
+ (addr >> 16) & 0xFF,
+ (addr >> 8) & 0xFF,
+ addr & 0xFF);
} else if (AF_INET6 == type) {
int addr1 = reply.readInt();
int addr2 = reply.readInt();
@@ -207,11 +209,11 @@ class CommonTimeUtils {
int flowinfo = reply.readInt();
int scope_id = reply.readInt();
- addrStr = String.format("[%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X]",
- (addr1 >> 16) & 0xFFFF, addr1 & 0xFFFF,
- (addr2 >> 16) & 0xFFFF, addr2 & 0xFFFF,
- (addr3 >> 16) & 0xFFFF, addr3 & 0xFFFF,
- (addr4 >> 16) & 0xFFFF, addr4 & 0xFFFF);
+ addrStr = String.format(Locale.US, "[%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X]",
+ (addr1 >> 16) & 0xFFFF, addr1 & 0xFFFF,
+ (addr2 >> 16) & 0xFFFF, addr2 & 0xFFFF,
+ (addr3 >> 16) & 0xFFFF, addr3 & 0xFFFF,
+ (addr4 >> 16) & 0xFFFF, addr4 & 0xFFFF);
}
if (null != addrStr) {
diff --git a/core/java/android/os/IHardwareService.aidl b/core/java/android/os/IHardwareService.aidl
index 38abfc004c56..38abfc004c56 100755..100644
--- a/core/java/android/os/IHardwareService.aidl
+++ b/core/java/android/os/IHardwareService.aidl
diff --git a/core/java/android/os/IVibratorService.aidl b/core/java/android/os/IVibratorService.aidl
index 2c2fe8a18984..2c2fe8a18984 100755..100644
--- a/core/java/android/os/IVibratorService.aidl
+++ b/core/java/android/os/IVibratorService.aidl
diff --git a/core/java/android/os/TokenWatcher.java b/core/java/android/os/TokenWatcher.java
index 9b3a2d689693..9b3a2d689693 100755..100644
--- a/core/java/android/os/TokenWatcher.java
+++ b/core/java/android/os/TokenWatcher.java
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 5b49ba344e25..5b49ba344e25 100755..100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
diff --git a/core/java/android/security/IKeystoreService.java b/core/java/android/security/IKeystoreService.java
new file mode 100644
index 000000000000..f8a49e66f0c9
--- /dev/null
+++ b/core/java/android/security/IKeystoreService.java
@@ -0,0 +1,505 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.security;
+
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.IInterface;
+import android.os.Parcel;
+import android.os.RemoteException;
+
+/**
+ * This must be kept manually in sync with system/security/keystore until AIDL
+ * can generate both Java and C++ bindings.
+ *
+ * @hide
+ */
+public interface IKeystoreService extends IInterface {
+ public static abstract class Stub extends Binder implements IKeystoreService {
+ private static class Proxy implements IKeystoreService {
+ private final IBinder mRemote;
+
+ Proxy(IBinder remote) {
+ mRemote = remote;
+ }
+
+ public IBinder asBinder() {
+ return mRemote;
+ }
+
+ public String getInterfaceDescriptor() {
+ return DESCRIPTOR;
+ }
+
+ public int test() throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ mRemote.transact(Stub.TRANSACTION_test, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public byte[] get(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ byte[] _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_get, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.createByteArray();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int insert(String name, byte[] item) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeByteArray(item);
+ mRemote.transact(Stub.TRANSACTION_insert, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int del(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_del, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int exist(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_exist, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public String[] saw(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ String[] _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_saw, _data, _reply, 0);
+ _reply.readException();
+ int size = _reply.readInt();
+ _result = new String[size];
+ for (int i = 0; i < size; i++) {
+ _result[i] = _reply.readString();
+ }
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ @Override
+ public int reset() throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ mRemote.transact(Stub.TRANSACTION_reset, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int password(String password) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(password);
+ mRemote.transact(Stub.TRANSACTION_password, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int lock() throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ mRemote.transact(Stub.TRANSACTION_lock, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int unlock(String password) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(password);
+ mRemote.transact(Stub.TRANSACTION_unlock, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ @Override
+ public int zero() throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ mRemote.transact(Stub.TRANSACTION_zero, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int generate(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_generate, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int import_key(String name, byte[] data) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeByteArray(data);
+ mRemote.transact(Stub.TRANSACTION_import, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public byte[] sign(String name, byte[] data) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ byte[] _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeByteArray(data);
+ mRemote.transact(Stub.TRANSACTION_sign, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.createByteArray();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int verify(String name, byte[] data, byte[] signature) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeByteArray(data);
+ _data.writeByteArray(signature);
+ mRemote.transact(Stub.TRANSACTION_verify, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public byte[] get_pubkey(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ byte[] _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_get_pubkey, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.createByteArray();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int del_key(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_del_key, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int grant(String name, int granteeUid) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeInt(granteeUid);
+ mRemote.transact(Stub.TRANSACTION_grant, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ public int ungrant(String name, int granteeUid) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ int _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ _data.writeInt(granteeUid);
+ mRemote.transact(Stub.TRANSACTION_ungrant, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readInt();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+
+ @Override
+ public long getmtime(String name) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ long _result;
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(name);
+ mRemote.transact(Stub.TRANSACTION_getmtime, _data, _reply, 0);
+ _reply.readException();
+ _result = _reply.readLong();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ return _result;
+ }
+ }
+
+ private static final String DESCRIPTOR = "android.security.keystore";
+
+ static final int TRANSACTION_test = IBinder.FIRST_CALL_TRANSACTION + 0;
+ static final int TRANSACTION_get = IBinder.FIRST_CALL_TRANSACTION + 1;
+ static final int TRANSACTION_insert = IBinder.FIRST_CALL_TRANSACTION + 2;
+ static final int TRANSACTION_del = IBinder.FIRST_CALL_TRANSACTION + 3;
+ static final int TRANSACTION_exist = IBinder.FIRST_CALL_TRANSACTION + 4;
+ static final int TRANSACTION_saw = IBinder.FIRST_CALL_TRANSACTION + 5;
+ static final int TRANSACTION_reset = IBinder.FIRST_CALL_TRANSACTION + 6;
+ static final int TRANSACTION_password = IBinder.FIRST_CALL_TRANSACTION + 7;
+ static final int TRANSACTION_lock = IBinder.FIRST_CALL_TRANSACTION + 8;
+ static final int TRANSACTION_unlock = IBinder.FIRST_CALL_TRANSACTION + 9;
+ static final int TRANSACTION_zero = IBinder.FIRST_CALL_TRANSACTION + 10;
+ static final int TRANSACTION_generate = IBinder.FIRST_CALL_TRANSACTION + 11;
+ static final int TRANSACTION_import = IBinder.FIRST_CALL_TRANSACTION + 12;
+ static final int TRANSACTION_sign = IBinder.FIRST_CALL_TRANSACTION + 13;
+ static final int TRANSACTION_verify = IBinder.FIRST_CALL_TRANSACTION + 14;
+ static final int TRANSACTION_get_pubkey = IBinder.FIRST_CALL_TRANSACTION + 15;
+ static final int TRANSACTION_del_key = IBinder.FIRST_CALL_TRANSACTION + 16;
+ static final int TRANSACTION_grant = IBinder.FIRST_CALL_TRANSACTION + 17;
+ static final int TRANSACTION_ungrant = IBinder.FIRST_CALL_TRANSACTION + 18;
+ static final int TRANSACTION_getmtime = IBinder.FIRST_CALL_TRANSACTION + 19;
+
+ /**
+ * Cast an IBinder object into an IKeystoreService interface, generating
+ * a proxy if needed.
+ */
+ public static IKeystoreService asInterface(IBinder obj) {
+ if (obj == null) {
+ return null;
+ }
+ IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
+ if (iin != null && iin instanceof IKeystoreService) {
+ return (IKeystoreService) iin;
+ }
+ return new IKeystoreService.Stub.Proxy(obj);
+ }
+
+ /** Construct the stub at attach it to the interface. */
+ public Stub() {
+ attachInterface(this, DESCRIPTOR);
+ }
+
+ public IBinder asBinder() {
+ return this;
+ }
+
+ @Override
+ public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
+ throws RemoteException {
+ switch (code) {
+ case INTERFACE_TRANSACTION: {
+ reply.writeString(DESCRIPTOR);
+ return true;
+ }
+ case TRANSACTION_test: {
+ data.enforceInterface(DESCRIPTOR);
+ int resultCode = test();
+ reply.writeNoException();
+ reply.writeInt(resultCode);
+ return true;
+ }
+ }
+ return super.onTransact(code, data, reply, flags);
+ }
+ }
+
+ public int test() throws RemoteException;
+
+ public byte[] get(String name) throws RemoteException;
+
+ public int insert(String name, byte[] item) throws RemoteException;
+
+ public int del(String name) throws RemoteException;
+
+ public int exist(String name) throws RemoteException;
+
+ public String[] saw(String name) throws RemoteException;
+
+ public int reset() throws RemoteException;
+
+ public int password(String password) throws RemoteException;
+
+ public int lock() throws RemoteException;
+
+ public int unlock(String password) throws RemoteException;
+
+ public int zero() throws RemoteException;
+
+ public int generate(String name) throws RemoteException;
+
+ public int import_key(String name, byte[] data) throws RemoteException;
+
+ public byte[] sign(String name, byte[] data) throws RemoteException;
+
+ public int verify(String name, byte[] data, byte[] signature) throws RemoteException;
+
+ public byte[] get_pubkey(String name) throws RemoteException;
+
+ public int del_key(String name) throws RemoteException;
+
+ public int grant(String name, int granteeUid) throws RemoteException;
+
+ public int ungrant(String name, int granteeUid) throws RemoteException;
+
+ public long getmtime(String name) throws RemoteException;
+}
diff --git a/core/java/android/server/package.html b/core/java/android/server/package.html
index c9f96a66ab3b..c9f96a66ab3b 100755..100644
--- a/core/java/android/server/package.html
+++ b/core/java/android/server/package.html
diff --git a/core/java/android/speech/tts/ITextToSpeechCallback.aidl b/core/java/android/speech/tts/ITextToSpeechCallback.aidl
index f0287d4a3b0a..f0287d4a3b0a 100755..100644
--- a/core/java/android/speech/tts/ITextToSpeechCallback.aidl
+++ b/core/java/android/speech/tts/ITextToSpeechCallback.aidl
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java
index 5e367cb56aa1..5e367cb56aa1 100755..100644
--- a/core/java/android/speech/tts/TextToSpeech.java
+++ b/core/java/android/speech/tts/TextToSpeech.java
diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java
index bcce61dc00aa..8920b2482429 100644
--- a/core/java/android/text/format/DateUtils.java
+++ b/core/java/android/text/format/DateUtils.java
@@ -43,11 +43,6 @@ public class DateUtils
private static String sElapsedFormatMMSS;
private static String sElapsedFormatHMMSS;
- private static final String FAST_FORMAT_HMMSS = "%1$d:%2$02d:%3$02d";
- private static final String FAST_FORMAT_MMSS = "%1$02d:%2$02d";
- private static final char TIME_SEPARATOR = ':';
-
-
public static final long SECOND_IN_MILLIS = 1000;
public static final long MINUTE_IN_MILLIS = SECOND_IN_MILLIS * 60;
public static final long HOUR_IN_MILLIS = MINUTE_IN_MILLIS * 60;
@@ -640,19 +635,18 @@ public class DateUtils
}
/**
- * Formats an elapsed time in the form "MM:SS" or "H:MM:SS"
- * for display on the call-in-progress screen.
+ * Formats an elapsed time in a format like "MM:SS" or "H:MM:SS" (using a form
+ * suited to the current locale), similar to that used on the call-in-progress
+ * screen.
*
- * @param recycle {@link StringBuilder} to recycle, if possible
+ * @param recycle {@link StringBuilder} to recycle, or null to use a temporary one.
* @param elapsedSeconds the elapsed time in seconds.
*/
public static String formatElapsedTime(StringBuilder recycle, long elapsedSeconds) {
- initFormatStrings();
-
+ // Break the elapsed seconds into hours, minutes, and seconds.
long hours = 0;
long minutes = 0;
long seconds = 0;
-
if (elapsedSeconds >= 3600) {
hours = elapsedSeconds / 3600;
elapsedSeconds -= hours * 3600;
@@ -663,70 +657,23 @@ public class DateUtils
}
seconds = elapsedSeconds;
- String result;
- if (hours > 0) {
- return formatElapsedTime(recycle, sElapsedFormatHMMSS, hours, minutes, seconds);
+ // Create a StringBuilder if we weren't given one to recycle.
+ // TODO: if we cared, we could have a thread-local temporary StringBuilder.
+ StringBuilder sb = recycle;
+ if (sb == null) {
+ sb = new StringBuilder(8);
} else {
- return formatElapsedTime(recycle, sElapsedFormatMMSS, minutes, seconds);
+ sb.setLength(0);
}
- }
-
- private static void append(StringBuilder sb, long value, boolean pad, char zeroDigit) {
- if (value < 10) {
- if (pad) {
- sb.append(zeroDigit);
- }
- } else {
- sb.append((char) (zeroDigit + (value / 10)));
- }
- sb.append((char) (zeroDigit + (value % 10)));
- }
- /**
- * Fast formatting of h:mm:ss.
- */
- private static String formatElapsedTime(StringBuilder recycle, String format, long hours,
- long minutes, long seconds) {
- if (FAST_FORMAT_HMMSS.equals(format)) {
- char zeroDigit = LocaleData.get(Locale.getDefault()).zeroDigit;
-
- StringBuilder sb = recycle;
- if (sb == null) {
- sb = new StringBuilder(8);
- } else {
- sb.setLength(0);
- }
- append(sb, hours, false, zeroDigit);
- sb.append(TIME_SEPARATOR);
- append(sb, minutes, true, zeroDigit);
- sb.append(TIME_SEPARATOR);
- append(sb, seconds, true, zeroDigit);
- return sb.toString();
- } else {
- return String.format(format, hours, minutes, seconds);
- }
- }
-
- /**
- * Fast formatting of mm:ss.
- */
- private static String formatElapsedTime(StringBuilder recycle, String format, long minutes,
- long seconds) {
- if (FAST_FORMAT_MMSS.equals(format)) {
- char zeroDigit = LocaleData.get(Locale.getDefault()).zeroDigit;
-
- StringBuilder sb = recycle;
- if (sb == null) {
- sb = new StringBuilder(8);
- } else {
- sb.setLength(0);
- }
- append(sb, minutes, false, zeroDigit);
- sb.append(TIME_SEPARATOR);
- append(sb, seconds, true, zeroDigit);
- return sb.toString();
+ // Format the broken-down time in a locale-appropriate way.
+ // TODO: use icu4c when http://unicode.org/cldr/trac/ticket/3407 is fixed.
+ Formatter f = new Formatter(sb, Locale.getDefault());
+ initFormatStrings();
+ if (hours > 0) {
+ return f.format(sElapsedFormatHMMSS, hours, minutes, seconds).toString();
} else {
- return String.format(format, minutes, seconds);
+ return f.format(sElapsedFormatMMSS, minutes, seconds).toString();
}
}
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index 200b57b92886..5ef86b1a5456 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -411,6 +411,9 @@ public class Time {
* @throws android.util.TimeFormatException if s cannot be parsed.
*/
public boolean parse(String s) {
+ if (s == null) {
+ throw new NullPointerException("time string is null");
+ }
if (nativeParse(s)) {
timezone = TIMEZONE_UTC;
return true;
diff --git a/core/java/android/util/PropertyValueModel.java b/core/java/android/util/PropertyValueModel.java
deleted file mode 100755
index eb9c47d0c379..000000000000
--- a/core/java/android/util/PropertyValueModel.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-/**
- * A value model for a {@link Property property} of a host object. This class can be used for
- * both reflective and non-reflective property implementations.
- *
- * @param <H> the host type, where the host is the object that holds this property
- * @param <T> the value type
- *
- * @see Property
- * @see ValueModel
- */
-public class PropertyValueModel<H, T> extends ValueModel<T> {
- private final H mHost;
- private final Property<H, T> mProperty;
-
- private PropertyValueModel(H host, Property<H, T> property) {
- mProperty = property;
- mHost = host;
- }
-
- /**
- * Returns the host.
- *
- * @return the host
- */
- public H getHost() {
- return mHost;
- }
-
- /**
- * Returns the property.
- *
- * @return the property
- */
- public Property<H, T> getProperty() {
- return mProperty;
- }
-
- @Override
- public Class<T> getType() {
- return mProperty.getType();
- }
-
- @Override
- public T get() {
- return mProperty.get(mHost);
- }
-
- @Override
- public void set(T value) {
- mProperty.set(mHost, value);
- }
-
- /**
- * Return an appropriate PropertyValueModel for this host and property.
- *
- * @param host the host
- * @param property the property
- * @return the value model
- */
- public static <H, T> PropertyValueModel<H, T> of(H host, Property<H, T> property) {
- return new PropertyValueModel<H, T>(host, property);
- }
-
- /**
- * Return a PropertyValueModel for this {@code host} and a
- * reflective property, constructed from this {@code propertyType} and {@code propertyName}.
- *
- * @param host
- * @param propertyType the property type
- * @param propertyName the property name
- * @return a value model with this host and a reflective property with this type and name
- *
- * @see Property#of
- */
- public static <H, T> PropertyValueModel<H, T> of(H host, Class<T> propertyType,
- String propertyName) {
- return of(host, Property.of((Class<H>) host.getClass(), propertyType, propertyName));
- }
-
- private static Class getNullaryMethodReturnType(Class c, String name) {
- try {
- return c.getMethod(name).getReturnType();
- } catch (NoSuchMethodException e) {
- return null;
- }
- }
-
- private static Class getFieldType(Class c, String name) {
- try {
- return c.getField(name).getType();
- } catch (NoSuchFieldException e) {
- return null;
- }
- }
-
- private static String capitalize(String name) {
- if (name.isEmpty()) {
- return name;
- }
- return Character.toUpperCase(name.charAt(0)) + name.substring(1);
- }
-
- /**
- * Return a PropertyValueModel for this {@code host} and and {@code propertyName}.
- *
- * @param host the host
- * @param propertyName the property name
- * @return a value model with this host and a reflective property with this name
- */
- public static PropertyValueModel of(Object host, String propertyName) {
- Class clazz = host.getClass();
- String suffix = capitalize(propertyName);
- Class propertyType = getNullaryMethodReturnType(clazz, "get" + suffix);
- if (propertyType == null) {
- propertyType = getNullaryMethodReturnType(clazz, "is" + suffix);
- }
- if (propertyType == null) {
- propertyType = getFieldType(clazz, propertyName);
- }
- if (propertyType == null) {
- throw new NoSuchPropertyException(propertyName);
- }
- return of(host, propertyType, propertyName);
- }
-}
diff --git a/core/java/android/util/ValueModel.java b/core/java/android/util/ValueModel.java
deleted file mode 100755
index 4789682ea496..000000000000
--- a/core/java/android/util/ValueModel.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-/**
- * A ValueModel is an abstraction for a 'slot' or place in memory in which a value
- * may be stored and retrieved. A common implementation of ValueModel is a regular property of
- * an object, whose value may be retrieved by calling the appropriate <em>getter</em>
- * method and set by calling the corresponding <em>setter</em> method.
- *
- * @param <T> the value type
- *
- * @see PropertyValueModel
- */
-public abstract class ValueModel<T> {
- /**
- * The empty model should be used in place of {@code null} to indicate that a
- * model has not been set. The empty model has no value and does nothing when it is set.
- */
- public static final ValueModel EMPTY = new ValueModel() {
- @Override
- public Class getType() {
- return Object.class;
- }
-
- @Override
- public Object get() {
- return null;
- }
-
- @Override
- public void set(Object value) {
-
- }
- };
-
- protected ValueModel() {
- }
-
- /**
- * Returns the type of this property.
- *
- * @return the property type
- */
- public abstract Class<T> getType();
-
- /**
- * Returns the value of this property.
- *
- * @return the property value
- */
- public abstract T get();
-
- /**
- * Sets the value of this property.
- *
- * @param value the new value for this property
- */
- public abstract void set(T value);
-} \ No newline at end of file
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index 3bb9c01d3c3e..3bb9c01d3c3e 100755..100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
diff --git a/core/java/android/view/InputEvent.java b/core/java/android/view/InputEvent.java
index ef810a355749..ef810a355749 100755..100644
--- a/core/java/android/view/InputEvent.java
+++ b/core/java/android/view/InputEvent.java
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index c2a3e5816ea3..c2a3e5816ea3 100755..100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
diff --git a/core/java/android/view/OrientationEventListener.java b/core/java/android/view/OrientationEventListener.java
index cd48a4f884a8..cd48a4f884a8 100755..100644
--- a/core/java/android/view/OrientationEventListener.java
+++ b/core/java/android/view/OrientationEventListener.java
diff --git a/core/java/android/view/ViewStub.java b/core/java/android/view/ViewStub.java
index 69a26c25490e..a5dc3ae12bd7 100644
--- a/core/java/android/view/ViewStub.java
+++ b/core/java/android/view/ViewStub.java
@@ -212,7 +212,8 @@ public final class ViewStub extends View {
/**
* When visibility is set to {@link #VISIBLE} or {@link #INVISIBLE},
* {@link #inflate()} is invoked and this StubbedView is replaced in its parent
- * by the inflated layout resource.
+ * by the inflated layout resource. After that calls to this function are passed
+ * through to the inflated view.
*
* @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}.
*
diff --git a/core/java/android/view/WindowManager.aidl b/core/java/android/view/WindowManager.aidl
index 556dc72185a5..556dc72185a5 100755..100644
--- a/core/java/android/view/WindowManager.aidl
+++ b/core/java/android/view/WindowManager.aidl
diff --git a/core/java/android/view/WindowOrientationListener.java b/core/java/android/view/WindowOrientationListener.java
index 4c34dd4e5b8c..4c34dd4e5b8c 100755..100644
--- a/core/java/android/view/WindowOrientationListener.java
+++ b/core/java/android/view/WindowOrientationListener.java
diff --git a/core/java/android/view/animation/package.html b/core/java/android/view/animation/package.html
index 87c99bb2f2de..87c99bb2f2de 100755..100644
--- a/core/java/android/view/animation/package.html
+++ b/core/java/android/view/animation/package.html
diff --git a/core/java/android/webkit/DeviceMotionService.java b/core/java/android/webkit/DeviceMotionService.java
index 9121429206f5..9121429206f5 100755..100644
--- a/core/java/android/webkit/DeviceMotionService.java
+++ b/core/java/android/webkit/DeviceMotionService.java
diff --git a/core/java/android/webkit/DeviceOrientationService.java b/core/java/android/webkit/DeviceOrientationService.java
index a4d240dc9f3a..a4d240dc9f3a 100755..100644
--- a/core/java/android/webkit/DeviceOrientationService.java
+++ b/core/java/android/webkit/DeviceOrientationService.java
diff --git a/core/java/android/webkit/GeolocationPermissions.java b/core/java/android/webkit/GeolocationPermissions.java
index 9c0f7541fbcf..9c0f7541fbcf 100755..100644
--- a/core/java/android/webkit/GeolocationPermissions.java
+++ b/core/java/android/webkit/GeolocationPermissions.java
diff --git a/core/java/android/webkit/GeolocationPermissionsClassic.java b/core/java/android/webkit/GeolocationPermissionsClassic.java
index 8a9df3921fce..8a9df3921fce 100755..100644
--- a/core/java/android/webkit/GeolocationPermissionsClassic.java
+++ b/core/java/android/webkit/GeolocationPermissionsClassic.java
diff --git a/core/java/android/webkit/GeolocationService.java b/core/java/android/webkit/GeolocationService.java
index 225053bfd775..225053bfd775 100755..100644
--- a/core/java/android/webkit/GeolocationService.java
+++ b/core/java/android/webkit/GeolocationService.java
diff --git a/core/java/android/webkit/WebCoreThreadWatchdog.java b/core/java/android/webkit/WebCoreThreadWatchdog.java
index a22e6e85a454..c27bb5f3454c 100644
--- a/core/java/android/webkit/WebCoreThreadWatchdog.java
+++ b/core/java/android/webkit/WebCoreThreadWatchdog.java
@@ -270,7 +270,7 @@ class WebCoreThreadWatchdog implements Runnable {
SUBSEQUENT_TIMEOUT_PERIOD);
}
})
- .setIcon(android.R.drawable.ic_dialog_alert)
+ .setIconAttribute(android.R.attr.alertDialogIcon)
.show();
}
}
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 3fb3ec62c435..c35b76813048 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -1278,6 +1278,7 @@ public final class WebViewCore {
mBrowserFrame = null;
mSettings.onDestroyed();
mNativeClass = 0;
+ WebCoreThreadWatchdog.unregisterWebView(mWebViewClassic);
mWebViewClassic = null;
}
break;
@@ -1982,7 +1983,6 @@ public final class WebViewCore {
mEventHub.sendMessageAtFrontOfQueue(
Message.obtain(null, EventHub.DESTROY));
mEventHub.blockMessages();
- WebCoreThreadWatchdog.unregisterWebView(mWebViewClassic);
}
}
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 33a8531194ac..57bf0d3aee92 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2637,7 +2637,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
if (mTouchModeReset != null) {
removeCallbacks(mTouchModeReset);
- mTouchModeReset = null;
+ mTouchModeReset.run();
}
mIsAttached = false;
}
@@ -3416,6 +3416,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
mTouchModeReset = new Runnable() {
@Override
public void run() {
+ mTouchModeReset = null;
mTouchMode = TOUCH_MODE_REST;
child.setPressed(false);
setPressed(false);
diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java
index 06dadb0db924..06dadb0db924 100755..100644
--- a/core/java/android/widget/AppSecurityPermissions.java
+++ b/core/java/android/widget/AppSecurityPermissions.java
diff --git a/core/java/android/widget/CheckBox.java b/core/java/android/widget/CheckBox.java
index 41ab5f25f6db..f1804f8b97b2 100644
--- a/core/java/android/widget/CheckBox.java
+++ b/core/java/android/widget/CheckBox.java
@@ -20,7 +20,6 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
-import android.util.ValueModel;
/**
@@ -56,9 +55,7 @@ import android.util.ValueModel;
* {@link android.R.styleable#View View Attributes}
* </p>
*/
-public class CheckBox extends CompoundButton implements ValueEditor<Boolean> {
- private ValueModel<Boolean> mValueModel = ValueModel.EMPTY;
-
+public class CheckBox extends CompoundButton {
public CheckBox(Context context) {
this(context, null);
}
@@ -82,22 +79,4 @@ public class CheckBox extends CompoundButton implements ValueEditor<Boolean> {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(CheckBox.class.getName());
}
-
- @Override
- public ValueModel<Boolean> getValueModel() {
- return mValueModel;
- }
-
- @Override
- public void setValueModel(ValueModel<Boolean> valueModel) {
- mValueModel = valueModel;
- setChecked(mValueModel.get());
- }
-
- @Override
- public boolean performClick() {
- boolean handled = super.performClick();
- mValueModel.set(isChecked());
- return handled;
- }
}
diff --git a/core/java/android/widget/EditText.java b/core/java/android/widget/EditText.java
index ec812143e15e..57e51c259251 100644
--- a/core/java/android/widget/EditText.java
+++ b/core/java/android/widget/EditText.java
@@ -17,7 +17,6 @@
package android.widget;
import android.content.Context;
-import android.graphics.Rect;
import android.text.Editable;
import android.text.Selection;
import android.text.Spannable;
@@ -25,7 +24,6 @@ import android.text.TextUtils;
import android.text.method.ArrowKeyMovementMethod;
import android.text.method.MovementMethod;
import android.util.AttributeSet;
-import android.util.ValueModel;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
@@ -49,9 +47,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
* {@link android.R.styleable#TextView TextView Attributes},
* {@link android.R.styleable#View View Attributes}
*/
-public class EditText extends TextView implements ValueEditor<CharSequence> {
- private ValueModel<CharSequence> mValueModel = ValueModel.EMPTY;
-
+public class EditText extends TextView {
public EditText(Context context) {
this(context, null);
}
@@ -132,21 +128,4 @@ public class EditText extends TextView implements ValueEditor<CharSequence> {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(EditText.class.getName());
}
-
- @Override
- public ValueModel<CharSequence> getValueModel() {
- return mValueModel;
- }
-
- @Override
- public void setValueModel(ValueModel<CharSequence> valueModel) {
- mValueModel = valueModel;
- setText(mValueModel.get());
- }
-
- @Override
- void sendAfterTextChanged(Editable text) {
- super.sendAfterTextChanged(text);
- mValueModel.set(text);
- }
}
diff --git a/core/java/android/widget/HeaderViewListAdapter.java b/core/java/android/widget/HeaderViewListAdapter.java
index e2a269ea13ef..0685e613c073 100644
--- a/core/java/android/widget/HeaderViewListAdapter.java
+++ b/core/java/android/widget/HeaderViewListAdapter.java
@@ -79,7 +79,8 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable {
}
public boolean isEmpty() {
- return mAdapter == null || mAdapter.isEmpty();
+ return (mAdapter == null || mAdapter.isEmpty())
+ && getFootersCount() + getHeadersCount() == 0;
}
private boolean areAllListInfosSelectable(ArrayList<ListView.FixedViewInfo> infos) {
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 03507b5ffd8a..69e3177e74b1 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -2981,11 +2981,9 @@ public class ListView extends AbsListView {
while (first.getBottom() < listTop) {
AbsListView.LayoutParams layoutParams = (LayoutParams) first.getLayoutParams();
if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) {
- detachViewFromParent(first);
recycleBin.addScrapView(first, mFirstPosition);
- } else {
- removeViewInLayout(first);
}
+ detachViewFromParent(first);
first = getChildAt(0);
mFirstPosition++;
}
@@ -3012,11 +3010,9 @@ public class ListView extends AbsListView {
while (last.getTop() > listBottom) {
AbsListView.LayoutParams layoutParams = (LayoutParams) last.getLayoutParams();
if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) {
- detachViewFromParent(last);
recycleBin.addScrapView(last, mFirstPosition+lastIndex);
- } else {
- removeViewInLayout(last);
}
+ detachViewFromParent(last);
last = getChildAt(--lastIndex);
}
}
diff --git a/core/java/android/widget/SeekBar.java b/core/java/android/widget/SeekBar.java
index a6486a827af5..2737f9414c46 100644
--- a/core/java/android/widget/SeekBar.java
+++ b/core/java/android/widget/SeekBar.java
@@ -18,7 +18,6 @@ package android.widget;
import android.content.Context;
import android.util.AttributeSet;
-import android.util.ValueModel;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
@@ -34,7 +33,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
*
* @attr ref android.R.styleable#SeekBar_thumb
*/
-public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> {
+public class SeekBar extends AbsSeekBar {
/**
* A callback that notifies clients when the progress level has been
@@ -70,9 +69,8 @@ public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> {
void onStopTrackingTouch(SeekBar seekBar);
}
- private ValueModel<Integer> mValueModel = ValueModel.EMPTY;
private OnSeekBarChangeListener mOnSeekBarChangeListener;
-
+
public SeekBar(Context context) {
this(context, null);
}
@@ -91,23 +89,9 @@ public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> {
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onProgressChanged(this, getProgress(), fromUser);
- if (fromUser) {
- mValueModel.set(getProgress());
- }
}
}
- @Override
- public ValueModel<Integer> getValueModel() {
- return mValueModel;
- }
-
- @Override
- public void setValueModel(ValueModel<Integer> valueModel) {
- mValueModel = valueModel;
- setProgress(mValueModel.get());
- }
-
/**
* Sets a listener to receive notifications of changes to the SeekBar's progress level. Also
* provides notifications of when the user starts and stops a touch gesture within the SeekBar.
diff --git a/core/java/android/widget/ValueEditor.java b/core/java/android/widget/ValueEditor.java
deleted file mode 100755
index 2b91abf9b8ff..000000000000
--- a/core/java/android/widget/ValueEditor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import android.util.ValueModel;
-
-/**
- * An interface for editors of simple values. Classes implementing this interface are normally
- * UI controls (subclasses of {@link android.view.View View}) that can provide a suitable
- * user interface to display and edit values of the specified type. This interface is
- * intended to describe editors for simple types, like {@code boolean}, {@code int} or
- * {@code String}, where the values themselves are immutable.
- * <p>
- * For example, {@link android.widget.CheckBox CheckBox} implements
- * this interface for the Boolean type as it is capable of providing an appropriate
- * mechanism for displaying and changing the value of a Boolean property.
- *
- * @param <T> the value type that this editor supports
- */
-public interface ValueEditor<T> {
- /**
- * Return the last value model that was set. If no value model has been set, the editor
- * should return the value {@link android.util.ValueModel#EMPTY}.
- *
- * @return the value model
- */
- public ValueModel<T> getValueModel();
-
- /**
- * Sets the value model for this editor. When the value model is set, the editor should
- * retrieve the value from the value model, using {@link android.util.ValueModel#get()},
- * and set its internal state accordingly. Likewise, when the editor's internal state changes
- * it should update the value model by calling {@link android.util.ValueModel#set(T)}
- * with the appropriate value.
- *
- * @param valueModel the new value model for this editor.
- */
- public void setValueModel(ValueModel<T> valueModel);
-}
diff --git a/core/java/com/android/internal/app/IMediaContainerService.aidl b/core/java/com/android/internal/app/IMediaContainerService.aidl
index 03d3b226425e..03d3b226425e 100755..100644
--- a/core/java/com/android/internal/app/IMediaContainerService.aidl
+++ b/core/java/com/android/internal/app/IMediaContainerService.aidl
diff --git a/core/java/com/android/internal/app/IUsageStats.aidl b/core/java/com/android/internal/app/IUsageStats.aidl
index 1ea74090a419..1ea74090a419 100755..100644
--- a/core/java/com/android/internal/app/IUsageStats.aidl
+++ b/core/java/com/android/internal/app/IUsageStats.aidl
diff --git a/core/java/com/android/internal/app/NetInitiatedActivity.java b/core/java/com/android/internal/app/NetInitiatedActivity.java
index e1166f120197..e1166f120197 100755..100644
--- a/core/java/com/android/internal/app/NetInitiatedActivity.java
+++ b/core/java/com/android/internal/app/NetInitiatedActivity.java
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index e63c57f47d80..c22cd2646124 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -35,7 +35,6 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.PatternMatcher;
-import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Log;
@@ -64,6 +63,7 @@ import java.util.Set;
*/
public class ResolverActivity extends AlertActivity implements AdapterView.OnItemClickListener {
private static final String TAG = "ResolverActivity";
+ private static final boolean DEBUG = false;
private int mLaunchedFromUid;
private ResolveListAdapter mAdapter;
@@ -323,7 +323,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
|| (!"file".equals(data.getScheme())
&& !"content".equals(data.getScheme()))) {
filter.addDataScheme(data.getScheme());
-
+
// Look through the resolved filter to determine which part
// of it matched the original Intent.
Iterator<IntentFilter.AuthorityEntry> aIt = ri.filter.authoritiesIterator();
@@ -402,7 +402,6 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
private final int mLaunchedFromUid;
private final LayoutInflater mInflater;
- private List<ResolveInfo> mCurrentResolveList;
private List<DisplayResolveInfo> mList;
public ResolveListAdapter(Context context, Intent intent,
@@ -413,6 +412,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
mBaseResolveList = rList;
mLaunchedFromUid = launchedFromUid;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ mList = new ArrayList<DisplayResolveInfo>();
rebuildList();
}
@@ -420,22 +420,23 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
final int oldItemCount = getCount();
rebuildList();
notifyDataSetChanged();
- if (mList.size() <= 0) {
+ final int newItemCount = getCount();
+ if (newItemCount == 0) {
// We no longer have any items... just finish the activity.
finish();
- }
-
- final int newItemCount = getCount();
- if (newItemCount != oldItemCount) {
+ } else if (newItemCount != oldItemCount) {
resizeGrid();
}
}
private void rebuildList() {
+ List<ResolveInfo> currentResolveList;
+
+ mList.clear();
if (mBaseResolveList != null) {
- mCurrentResolveList = mBaseResolveList;
+ currentResolveList = mBaseResolveList;
} else {
- mCurrentResolveList = mPm.queryIntentActivities(
+ currentResolveList = mPm.queryIntentActivities(
mIntent, PackageManager.MATCH_DEFAULT_ONLY
| (mAlwaysUseOption ? PackageManager.GET_RESOLVED_FILTER : 0));
// Filter out any activities that the launched uid does not
@@ -443,36 +444,36 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
// list of resolved activities, because that only happens when
// we are being subclassed, so we can safely launch whatever
// they gave us.
- if (mCurrentResolveList != null) {
- for (int i=mCurrentResolveList.size()-1; i >= 0; i--) {
- ActivityInfo ai = mCurrentResolveList.get(i).activityInfo;
+ if (currentResolveList != null) {
+ for (int i=currentResolveList.size()-1; i >= 0; i--) {
+ ActivityInfo ai = currentResolveList.get(i).activityInfo;
int granted = ActivityManager.checkComponentPermission(
ai.permission, mLaunchedFromUid,
ai.applicationInfo.uid, ai.exported);
if (granted != PackageManager.PERMISSION_GRANTED) {
// Access not allowed!
- mCurrentResolveList.remove(i);
+ currentResolveList.remove(i);
}
}
}
}
int N;
- if ((mCurrentResolveList != null) && ((N = mCurrentResolveList.size()) > 0)) {
+ if ((currentResolveList != null) && ((N = currentResolveList.size()) > 0)) {
// Only display the first matches that are either of equal
// priority or have asked to be default options.
- ResolveInfo r0 = mCurrentResolveList.get(0);
+ ResolveInfo r0 = currentResolveList.get(0);
for (int i=1; i<N; i++) {
- ResolveInfo ri = mCurrentResolveList.get(i);
- if (false) Log.v(
+ ResolveInfo ri = currentResolveList.get(i);
+ if (DEBUG) Log.v(
"ResolveListActivity",
r0.activityInfo.name + "=" +
r0.priority + "/" + r0.isDefault + " vs " +
ri.activityInfo.name + "=" +
ri.priority + "/" + ri.isDefault);
- if (r0.priority != ri.priority ||
+ if (r0.priority != ri.priority ||
r0.isDefault != ri.isDefault) {
while (i < N) {
- mCurrentResolveList.remove(i);
+ currentResolveList.remove(i);
N--;
}
}
@@ -480,11 +481,8 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
if (N > 1) {
ResolveInfo.DisplayNameComparator rComparator =
new ResolveInfo.DisplayNameComparator(mPm);
- Collections.sort(mCurrentResolveList, rComparator);
+ Collections.sort(currentResolveList, rComparator);
}
-
- mList = new ArrayList<DisplayResolveInfo>();
-
// First put the initial items at the top.
if (mInitialIntents != null) {
for (int i=0; i<mInitialIntents.length; i++) {
@@ -512,10 +510,10 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
ri.loadLabel(getPackageManager()), null, ii));
}
}
-
+
// Check for applications with same name and use application name or
// package name if necessary
- r0 = mCurrentResolveList.get(0);
+ r0 = currentResolveList.get(0);
int start = 0;
CharSequence r0Label = r0.loadLabel(mPm);
mShowExtended = false;
@@ -523,7 +521,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
if (r0Label == null) {
r0Label = r0.activityInfo.packageName;
}
- ResolveInfo ri = mCurrentResolveList.get(i);
+ ResolveInfo ri = currentResolveList.get(i);
CharSequence riLabel = ri.loadLabel(mPm);
if (riLabel == null) {
riLabel = ri.activityInfo.packageName;
@@ -531,13 +529,13 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
if (riLabel.equals(r0Label)) {
continue;
}
- processGroup(mCurrentResolveList, start, (i-1), r0, r0Label);
+ processGroup(currentResolveList, start, (i-1), r0, r0Label);
r0 = ri;
r0Label = riLabel;
start = i;
}
// Process last group
- processGroup(mCurrentResolveList, start, (N-1), r0, r0Label);
+ processGroup(currentResolveList, start, (N-1), r0, r0Label);
}
}
@@ -589,18 +587,10 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
}
public ResolveInfo resolveInfoForPosition(int position) {
- if (mList == null) {
- return null;
- }
-
return mList.get(position).ri;
}
public Intent intentForPosition(int position) {
- if (mList == null) {
- return null;
- }
-
DisplayResolveInfo dri = mList.get(position);
Intent intent = new Intent(dri.origIntent != null
@@ -614,11 +604,11 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
}
public int getCount() {
- return mList != null ? mList.size() : 0;
+ return mList.size();
}
public Object getItem(int position) {
- return position;
+ return mList.get(position);
}
public long getItemId(int position) {
diff --git a/core/java/com/android/internal/os/PkgUsageStats.aidl b/core/java/com/android/internal/os/PkgUsageStats.aidl
index 83052717bf1f..83052717bf1f 100755..100644
--- a/core/java/com/android/internal/os/PkgUsageStats.aidl
+++ b/core/java/com/android/internal/os/PkgUsageStats.aidl
diff --git a/core/java/com/android/internal/os/PkgUsageStats.java b/core/java/com/android/internal/os/PkgUsageStats.java
index 8c2c4052d20a..8c2c4052d20a 100755..100644
--- a/core/java/com/android/internal/os/PkgUsageStats.java
+++ b/core/java/com/android/internal/os/PkgUsageStats.java
diff --git a/core/java/com/android/internal/util/AsyncChannel.java b/core/java/com/android/internal/util/AsyncChannel.java
index 5093b4da1ca6..52281d92fd7b 100644
--- a/core/java/com/android/internal/util/AsyncChannel.java
+++ b/core/java/com/android/internal/util/AsyncChannel.java
@@ -180,6 +180,9 @@ public class AsyncChannel {
/** CMD_FULLY_CONNECTED refused because a connection already exists*/
public static final int STATUS_FULL_CONNECTION_REFUSED_ALREADY_CONNECTED = 3;
+ /** Error indicating abnormal termination of destination messenger */
+ public static final int STATUS_REMOTE_DISCONNECTION = 4;
+
/** Service connection */
private AsyncChannelConnection mConnection;
@@ -195,6 +198,9 @@ public class AsyncChannel {
/** Messenger for destination */
private Messenger mDstMessenger;
+ /** Death Monitor for destination messenger */
+ private DeathMonitor mDeathMonitor;
+
/**
* AsyncChannel constructor
*/
@@ -434,6 +440,7 @@ public class AsyncChannel {
mSrcHandler = null;
mSrcMessenger = null;
mDstMessenger = null;
+ mDeathMonitor = null;
mConnection = null;
}
@@ -457,6 +464,10 @@ public class AsyncChannel {
if (mSrcHandler != null) {
replyDisconnected(STATUS_SUCCESSFUL);
}
+ // Unlink only when bindService isn't used
+ if (mConnection == null && mDstMessenger != null && mDeathMonitor!= null) {
+ mDstMessenger.getBinder().unlinkToDeath(mDeathMonitor, 0);
+ }
}
/**
@@ -832,6 +843,21 @@ public class AsyncChannel {
msg.arg1 = status;
msg.obj = this;
msg.replyTo = mDstMessenger;
+
+ /*
+ * Link to death only when bindService isn't used.
+ */
+ if (mConnection == null) {
+ mDeathMonitor = new DeathMonitor();
+ try {
+ mDstMessenger.getBinder().linkToDeath(mDeathMonitor, 0);
+ } catch (RemoteException e) {
+ mDeathMonitor = null;
+ // Override status to indicate failure
+ msg.arg1 = STATUS_BINDING_UNSUCCESSFUL;
+ }
+ }
+
mSrcHandler.sendMessage(msg);
}
@@ -877,4 +903,15 @@ public class AsyncChannel {
private static void log(String s) {
Slog.d(TAG, s);
}
+
+ private final class DeathMonitor implements IBinder.DeathRecipient {
+
+ DeathMonitor() {
+ }
+
+ public void binderDied() {
+ replyDisconnected(STATUS_REMOTE_DISCONNECTION);
+ }
+
+ }
}
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java
index 9f7441d6f1ec..7189610be9ab 100644
--- a/core/java/com/android/internal/view/menu/MenuItemImpl.java
+++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -93,6 +93,7 @@ public final class MenuItemImpl implements MenuItem {
*/
private ContextMenuInfo mMenuInfo;
+ private static String sLanguage;
private static String sPrependShortcutLabel;
private static String sEnterShortcutLabel;
private static String sDeleteShortcutLabel;
@@ -114,7 +115,9 @@ public final class MenuItemImpl implements MenuItem {
MenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering,
CharSequence title, int showAsAction) {
- if (sPrependShortcutLabel == null) {
+ String lang = menu.getContext().getResources().getConfiguration().locale.toString();
+ if (sPrependShortcutLabel == null || !lang.equals(sLanguage)) {
+ sLanguage = lang;
// This is instantiated from the UI thread, so no chance of sync issues
sPrependShortcutLabel = menu.getContext().getResources().getString(
com.android.internal.R.string.prepend_shortcut_label);
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index 3ca085b8ebd5..9b95be162361 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -11,10 +11,6 @@ else
LOCAL_CFLAGS += -DPACKED=""
endif
-ifeq ($(WITH_JIT),true)
- LOCAL_CFLAGS += -DWITH_JIT
-endif
-
ifneq ($(USE_CUSTOM_RUNTIME_HEAP_MAX),)
LOCAL_CFLAGS += -DCUSTOM_RUNTIME_HEAP_MAX=$(USE_CUSTOM_RUNTIME_HEAP_MAX)
endif
@@ -200,6 +196,7 @@ LOCAL_SHARED_LIBRARIES := \
libETC1 \
libhardware \
libhardware_legacy \
+ libselinux \
libsonivox \
libcrypto \
libssl \
@@ -213,12 +210,6 @@ LOCAL_SHARED_LIBRARIES := \
libharfbuzz \
libz
-ifeq ($(HAVE_SELINUX),true)
-LOCAL_C_INCLUDES += external/libselinux/include
-LOCAL_SHARED_LIBRARIES += libselinux
-LOCAL_CFLAGS += -DHAVE_SELINUX
-endif # HAVE_SELINUX
-
ifeq ($(USE_OPENGL_RENDERER),true)
LOCAL_SHARED_LIBRARIES += libhwui
endif
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 9820e60545d1..94324f8b374f 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -465,9 +465,7 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
kEMDefault,
kEMIntPortable,
kEMIntFast,
-#if defined(WITH_JIT)
kEMJitCompiler,
-#endif
} executionMode = kEMDefault;
@@ -487,10 +485,8 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
executionMode = kEMIntPortable;
} else if (strcmp(propBuf, "int:fast") == 0) {
executionMode = kEMIntFast;
-#if defined(WITH_JIT)
} else if (strcmp(propBuf, "int:jit") == 0) {
executionMode = kEMJitCompiler;
-#endif
}
property_get("dalvik.vm.stack-trace-file", stackTraceFileBuf, "");
@@ -660,7 +656,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
mOptions.add(opt);
}
-#if defined(WITH_JIT)
/* Force interpreter-only mode for selected opcodes. Eg "1-0a,3c,f1-ff" */
char jitOpBuf[sizeof("-Xjitop:") + PROPERTY_VALUE_MAX];
property_get("dalvik.vm.jit.op", propBuf, "");
@@ -680,7 +675,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
opt.optionString = jitMethodBuf;
mOptions.add(opt);
}
-#endif
if (executionMode == kEMIntPortable) {
opt.optionString = "-Xint:portable";
@@ -688,11 +682,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
} else if (executionMode == kEMIntFast) {
opt.optionString = "-Xint:fast";
mOptions.add(opt);
-#if defined(WITH_JIT)
} else if (executionMode == kEMJitCompiler) {
opt.optionString = "-Xint:jit";
mOptions.add(opt);
-#endif
}
if (checkDexSum) {
diff --git a/core/jni/android_emoji_EmojiFactory.cpp b/core/jni/android_emoji_EmojiFactory.cpp
index a658561b059f..43839972227d 100644
--- a/core/jni/android_emoji_EmojiFactory.cpp
+++ b/core/jni/android_emoji_EmojiFactory.cpp
@@ -3,8 +3,7 @@
#define LOG_TAG "EmojiFactory_jni"
#include <utils/Log.h>
-#include <utils/String8.h>
-#include <utils/String16.h>
+#include <ScopedUtfChars.h>
#include "EmojiFactory.h"
#include <nativehelper/JNIHelp.h>
@@ -125,16 +124,13 @@ static jobject android_emoji_EmojiFactory_newInstance(
return NULL;
}
- const jchar* jchars = env->GetStringChars(name, NULL);
- jsize len = env->GetStringLength(name);
- String8 str(String16(jchars, len));
+ ScopedUtfChars nameUtf(env, name);
- EmojiFactory *factory = gCaller->TryCallGetImplementation(str.string());
+ EmojiFactory *factory = gCaller->TryCallGetImplementation(nameUtf.c_str());
// EmojiFactory *factory = EmojiFactory::GetImplementation(str.string());
if (NULL == factory) {
return NULL;
}
- env->ReleaseStringChars(name, jchars);
return create_java_EmojiFactory(env, factory, name);
}
@@ -151,8 +147,8 @@ static jobject android_emoji_EmojiFactory_newAvailableInstance(
if (NULL == factory) {
return NULL;
}
- String16 name_16(String8(factory->Name()));
- jstring jname = env->NewString(name_16.string(), name_16.size());
+
+ jstring jname = env->NewStringUTF(factory->Name());
if (NULL == jname) {
return NULL;
}
diff --git a/core/jni/android_media_JetPlayer.cpp b/core/jni/android_media_JetPlayer.cpp
index a785f5213362..5795aba1cb67 100644
--- a/core/jni/android_media_JetPlayer.cpp
+++ b/core/jni/android_media_JetPlayer.cpp
@@ -130,9 +130,10 @@ android_media_JetPlayer_loadFromFile(JNIEnv *env, jobject thiz, jstring path)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for openFile()");
+ return JNI_FALSE;
}
// set up event callback function
@@ -166,9 +167,10 @@ android_media_JetPlayer_loadFromFileD(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for openFile()");
+ return JNI_FALSE;
}
// set up event callback function
@@ -195,9 +197,10 @@ android_media_JetPlayer_closeFile(JNIEnv *env, jobject thiz)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for closeFile()");
+ return JNI_FALSE;
}
if (lpJet->closeFile()==EAS_SUCCESS) {
@@ -216,9 +219,10 @@ android_media_JetPlayer_play(JNIEnv *env, jobject thiz)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for play()");
+ return JNI_FALSE;
}
EAS_RESULT result = lpJet->play();
@@ -239,9 +243,10 @@ android_media_JetPlayer_pause(JNIEnv *env, jobject thiz)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for pause()");
+ return JNI_FALSE;
}
EAS_RESULT result = lpJet->pause();
@@ -268,9 +273,10 @@ android_media_JetPlayer_queueSegment(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for queueSegment()");
+ return JNI_FALSE;
}
EAS_RESULT result
@@ -294,9 +300,10 @@ android_media_JetPlayer_queueSegmentMuteArray(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for queueSegmentMuteArray()");
+ return JNI_FALSE;
}
EAS_RESULT result=EAS_FAILURE;
@@ -339,9 +346,10 @@ android_media_JetPlayer_setMuteFlags(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for setMuteFlags()");
+ return JNI_FALSE;
}
EAS_RESULT result;
@@ -363,9 +371,10 @@ android_media_JetPlayer_setMuteArray(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for setMuteArray()");
+ return JNI_FALSE;
}
EAS_RESULT result=EAS_FAILURE;
@@ -408,9 +417,10 @@ android_media_JetPlayer_setMuteFlag(JNIEnv *env, jobject thiz,
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for setMuteFlag()");
+ return JNI_FALSE;
}
EAS_RESULT result;
@@ -433,9 +443,10 @@ android_media_JetPlayer_triggerClip(JNIEnv *env, jobject thiz, jint clipId)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for triggerClip()");
+ return JNI_FALSE;
}
EAS_RESULT result;
@@ -457,9 +468,10 @@ android_media_JetPlayer_clearQueue(JNIEnv *env, jobject thiz)
{
JetPlayer *lpJet = (JetPlayer *)env->GetIntField(
thiz, javaJetPlayerFields.nativePlayerInJavaObj);
- if (lpJet == NULL ) {
+ if (lpJet == NULL) {
jniThrowException(env, "java/lang/IllegalStateException",
"Unable to retrieve JetPlayer pointer for clearQueue()");
+ return JNI_FALSE;
}
EAS_RESULT result = lpJet->clearQueue();
diff --git a/core/jni/android_media_ToneGenerator.cpp b/core/jni/android_media_ToneGenerator.cpp
index da6f1ed4040d..de29b2834d99 100644
--- a/core/jni/android_media_ToneGenerator.cpp
+++ b/core/jni/android_media_ToneGenerator.cpp
@@ -103,6 +103,7 @@ static void android_media_ToneGenerator_native_setup(JNIEnv *env, jobject thiz,
if (!lpToneGen->isInited()) {
ALOGE("ToneGenerator init failed");
jniThrowRuntimeException(env, "Init failed");
+ delete lpToneGen;
return;
}
diff --git a/core/jni/android_os_SELinux.cpp b/core/jni/android_os_SELinux.cpp
index e813c3847589..b12fdfc9999b 100644
--- a/core/jni/android_os_SELinux.cpp
+++ b/core/jni/android_os_SELinux.cpp
@@ -20,10 +20,8 @@
#include "JNIHelp.h"
#include "jni.h"
#include "android_runtime/AndroidRuntime.h"
-#ifdef HAVE_SELINUX
#include "selinux/selinux.h"
#include "selinux/android.h"
-#endif
#include <errno.h>
namespace android {
@@ -56,11 +54,7 @@ namespace android {
* Exceptions: none
*/
static jboolean isSELinuxEnforced(JNIEnv *env, jobject clazz) {
-#ifdef HAVE_SELINUX
return (security_getenforce() == 1) ? true : false;
-#else
- return false;
-#endif
}
/*
@@ -71,16 +65,12 @@ namespace android {
* Exceptions: none
*/
static jboolean setSELinuxEnforce(JNIEnv *env, jobject clazz, jboolean value) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return false;
int enforce = (value) ? 1 : 0;
return (security_setenforce(enforce) != -1) ? true : false;
-#else
- return false;
-#endif
}
/*
@@ -92,7 +82,6 @@ namespace android {
* Exceptions: NullPointerException if fileDescriptor object is NULL
*/
static jstring getPeerCon(JNIEnv *env, jobject clazz, jobject fileDescriptor) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return NULL;
@@ -123,9 +112,6 @@ namespace android {
freecon(context);
return securityString;
-#else
- return NULL;
-#endif
}
/*
@@ -138,7 +124,6 @@ namespace android {
* Exception: none
*/
static jboolean setFSCreateCon(JNIEnv *env, jobject clazz, jstring context) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return false;
@@ -163,9 +148,6 @@ namespace android {
env->ReleaseStringUTFChars(context, constant_securityContext);
return (ret == 0) ? true : false;
-#else
- return false;
-#endif
}
/*
@@ -178,7 +160,6 @@ namespace android {
* Exception: NullPointerException is thrown if either path or context strign are NULL
*/
static jboolean setFileCon(JNIEnv *env, jobject clazz, jstring path, jstring con) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return false;
@@ -208,9 +189,6 @@ namespace android {
env->ReleaseStringUTFChars(path, objectPath);
env->ReleaseStringUTFChars(con, constant_con);
return (ret == 0) ? true : false;
-#else
- return false;
-#endif
}
/*
@@ -224,7 +202,6 @@ namespace android {
* Exceptions: NullPointerException if the path object is null
*/
static jstring getFileCon(JNIEnv *env, jobject clazz, jstring path) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return NULL;
@@ -252,9 +229,6 @@ namespace android {
env->ReleaseStringUTFChars(path, objectPath);
return securityString;
-#else
- return NULL;
-#endif
}
/*
@@ -266,7 +240,6 @@ namespace android {
* Exceptions: none
*/
static jstring getCon(JNIEnv *env, jobject clazz) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return NULL;
@@ -285,9 +258,6 @@ namespace android {
freecon(context);
return securityString;
-#else
- return NULL;
-#endif
}
/*
@@ -300,7 +270,6 @@ namespace android {
* Exceptions: none
*/
static jstring getPidCon(JNIEnv *env, jobject clazz, jint pid) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return NULL;
@@ -321,9 +290,6 @@ namespace android {
freecon(context);
return securityString;
-#else
- return NULL;
-#endif
}
/*
@@ -335,7 +301,6 @@ namespace android {
* Exceptions: None
*/
static jobjectArray getBooleanNames(JNIEnv *env, JNIEnv clazz) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return NULL;
@@ -359,9 +324,6 @@ namespace android {
free(list);
return stringArray;
-#else
- return NULL;
-#endif
}
/*
@@ -373,7 +335,6 @@ namespace android {
* Exceptions: None
*/
static jboolean getBooleanValue(JNIEnv *env, jobject clazz, jstring name) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return false;
@@ -386,9 +347,6 @@ namespace android {
ret = security_get_boolean_active(boolean_name);
env->ReleaseStringUTFChars(name, boolean_name);
return (ret == 1) ? true : false;
-#else
- return false;
-#endif
}
/*
@@ -401,7 +359,6 @@ namespace android {
* Exceptions: None
*/
static jboolean setBooleanValue(JNIEnv *env, jobject clazz, jstring name, jboolean value) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return false;
@@ -420,9 +377,6 @@ namespace android {
return false;
return true;
-#else
- return false;
-#endif
}
/*
@@ -436,7 +390,6 @@ namespace android {
* Exceptions: None
*/
static jboolean checkSELinuxAccess(JNIEnv *env, jobject clazz, jstring scon, jstring tcon, jstring tclass, jstring perm) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return true;
@@ -468,10 +421,6 @@ namespace android {
bail:
return (accessGranted == 0) ? true : false;
-
-#else
- return true;
-#endif
}
/*
@@ -482,7 +431,6 @@ namespace android {
* Exceptions: none
*/
static jboolean native_restorecon(JNIEnv *env, jobject clazz, jstring pathname) {
-#ifdef HAVE_SELINUX
if (isSELinuxDisabled)
return true;
@@ -490,9 +438,6 @@ namespace android {
int ret = selinux_android_restorecon(file);
env->ReleaseStringUTFChars(pathname, file);
return (ret == 0);
-#else
- return true;
-#endif
}
/*
@@ -526,14 +471,12 @@ namespace android {
}
int register_android_os_SELinux(JNIEnv *env) {
-#ifdef HAVE_SELINUX
union selinux_callback cb;
cb.func_log = log_callback;
selinux_set_callback(SELINUX_CB_LOG, cb);
isSELinuxDisabled = (is_selinux_enabled() != 1) ? true : false;
-#endif
return AndroidRuntime::registerNativeMethods(
env, "android/os/SELinux",
method_table, NELEM(method_table));
diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp
index 0a59ae7112dc..aa2c5f39ba8e 100644
--- a/core/jni/android_text_format_Time.cpp
+++ b/core/jni/android_text_format_Time.cpp
@@ -23,6 +23,7 @@
#include "jni.h"
#include "utils/misc.h"
#include "android_runtime/AndroidRuntime.h"
+#include "ScopedStringChars.h"
#include "TimeUtils.h"
#include <nativehelper/JNIHelp.h>
#include <cutils/tztime.h>
@@ -71,11 +72,10 @@ static inline bool java2time(JNIEnv* env, Time* t, jobject o)
t->t.tm_gmtoff = env->GetLongField(o, g_gmtoffField);
bool allDay = env->GetBooleanField(o, g_allDayField);
if (allDay &&
- ((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) {
- char msg[100];
- sprintf(msg, "allDay is true but sec, min, hour are not 0.");
- jniThrowException(env, "java/lang/IllegalArgumentException", msg);
- return false;
+ ((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "allDay is true but sec, min, hour are not 0.");
+ return false;
}
return true;
}
@@ -313,7 +313,7 @@ static jstring android_text_format_Time_format(JNIEnv* env, jobject This,
static jstring android_text_format_Time_toString(JNIEnv* env, jobject This)
{
Time t;
- if (!java2time(env, &t, This)) return env->NewStringUTF("");;
+ if (!java2time(env, &t, This)) return env->NewStringUTF("");
ACQUIRE_TIMEZONE(This, t)
String8 r = t.toString();
@@ -365,32 +365,30 @@ static void android_text_format_Time_set(JNIEnv* env, jobject This, jlong millis
// ============================================================================
// Just do this here because it's not worth recreating the strings
-static int get_char(JNIEnv* env, const jchar *s, int spos, int mul,
- bool *thrown)
+static int get_char(JNIEnv* env, const ScopedStringChars& s, int spos, int mul,
+ bool* thrown)
{
jchar c = s[spos];
if (c >= '0' && c <= '9') {
return (c - '0') * mul;
} else {
if (!*thrown) {
- char msg[100];
- sprintf(msg, "Parse error at pos=%d", spos);
- jniThrowException(env, "android/util/TimeFormatException", msg);
+ jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+ "Parse error at pos=%d", spos);
*thrown = true;
}
return 0;
}
}
-static bool check_char(JNIEnv* env, const jchar *s, int spos, jchar expected)
+static bool check_char(JNIEnv* env, const ScopedStringChars& s, int spos, jchar expected)
{
jchar c = s[spos];
if (c != expected) {
- char msg[100];
- sprintf(msg, "Unexpected character 0x%02x at pos=%d. Expected %c.", c, spos,
- expected);
- jniThrowException(env, "android/util/TimeFormatException", msg);
- return false;
+ jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+ "Unexpected character 0x%02x at pos=%d. Expected %c.",
+ c, spos, expected);
+ return false;
}
return true;
}
@@ -399,20 +397,19 @@ static bool check_char(JNIEnv* env, const jchar *s, int spos, jchar expected)
static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstring strObj)
{
jsize len = env->GetStringLength(strObj);
- const jchar *s = env->GetStringChars(strObj, NULL);
+ if (len < 8) {
+ jniThrowException(env, "android/util/TimeFormatException",
+ "String too short -- expected at least 8 characters.");
+ return false;
+ }
- bool thrown = false;
- int n;
jboolean inUtc = false;
- if (len < 8) {
- char msg[100];
- sprintf(msg, "String too short -- expected at least 8 characters.");
- jniThrowException(env, "android/util/TimeFormatException", msg);
- return false;
- }
+ ScopedStringChars s(env, strObj);
// year
+ int n;
+ bool thrown = false;
n = get_char(env, s, 0, 1000, &thrown);
n += get_char(env, s, 1, 100, &thrown);
n += get_char(env, s, 2, 10, &thrown);
@@ -459,7 +456,7 @@ static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstrin
if (len > 15) {
// Z
if (!check_char(env, s, 15, 'Z')) return false;
- inUtc = true;
+ inUtc = true;
}
} else {
env->SetBooleanField(This, g_allDayField, JNI_TRUE);
@@ -472,8 +469,7 @@ static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstrin
env->SetIntField(This, g_ydayField, 0);
env->SetIntField(This, g_isdstField, -1);
env->SetLongField(This, g_gmtoffField, 0);
-
- env->ReleaseStringChars(strObj, s);
+
return inUtc;
}
@@ -482,19 +478,19 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env,
jstring strObj)
{
jsize len = env->GetStringLength(strObj);
- const jchar *s = env->GetStringChars(strObj, NULL);
-
- bool thrown = false;
- int n;
- jboolean inUtc = false;
-
if (len < 10) {
jniThrowException(env, "android/util/TimeFormatException",
- "Time input is too short; must be at least 10 characters");
+ "String too short --- expected at least 10 characters.");
return false;
}
+ jboolean inUtc = false;
+
+ ScopedStringChars s(env, strObj);
+
// year
+ int n;
+ bool thrown = false;
n = get_char(env, s, 0, 1000, &thrown);
n += get_char(env, s, 1, 100, &thrown);
n += get_char(env, s, 2, 10, &thrown);
@@ -525,28 +521,28 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env,
// T
if (!check_char(env, s, 10, 'T')) return false;
- env->SetBooleanField(This, g_allDayField, JNI_FALSE);
+ env->SetBooleanField(This, g_allDayField, JNI_FALSE);
// hour
n = get_char(env, s, 11, 10, &thrown);
n += get_char(env, s, 12, 1, &thrown);
if (thrown) return false;
- int hour = n;
+ int hour = n;
// env->SetIntField(This, g_hourField, n);
-
- // :
- if (!check_char(env, s, 13, ':')) return false;
- // minute
+ // :
+ if (!check_char(env, s, 13, ':')) return false;
+
+ // minute
n = get_char(env, s, 14, 10, &thrown);
n += get_char(env, s, 15, 1, &thrown);
if (thrown) return false;
- int minute = n;
+ int minute = n;
// env->SetIntField(This, g_minField, n);
- // :
- if (!check_char(env, s, 16, ':')) return false;
+ // :
+ if (!check_char(env, s, 16, ':')) return false;
- // second
+ // second
n = get_char(env, s, 17, 10, &thrown);
n += get_char(env, s, 18, 1, &thrown);
if (thrown) return false;
@@ -566,64 +562,63 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env,
if (len > tz_index) {
char c = s[tz_index];
- // NOTE: the offset is meant to be subtracted to get from local time
- // to UTC. we therefore use 1 for '-' and -1 for '+'.
- switch (c) {
- case 'Z':
- // Zulu time -- UTC
- offset = 0;
- break;
- case '-':
+ // NOTE: the offset is meant to be subtracted to get from local time
+ // to UTC. we therefore use 1 for '-' and -1 for '+'.
+ switch (c) {
+ case 'Z':
+ // Zulu time -- UTC
+ offset = 0;
+ break;
+ case '-':
offset = 1;
- break;
- case '+':
+ break;
+ case '+':
offset = -1;
- break;
- default:
- char msg[100];
- sprintf(msg, "Unexpected character 0x%02x at position %d. Expected + or -",
- c, tz_index);
- jniThrowException(env, "android/util/TimeFormatException", msg);
- return false;
- }
+ break;
+ default:
+ jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+ "Unexpected character 0x%02x at position %d. Expected + or -",
+ c, tz_index);
+ return false;
+ }
inUtc = true;
- if (offset != 0) {
- if (len < tz_index + 6) {
- char msg[100];
- sprintf(msg, "Unexpected length; should be %d characters", tz_index + 6);
- jniThrowException(env, "android/util/TimeFormatException", msg);
- return false;
- }
-
- // hour
- n = get_char(env, s, tz_index + 1, 10, &thrown);
- n += get_char(env, s, tz_index + 2, 1, &thrown);
- if (thrown) return false;
- n *= offset;
- hour += n;
-
- // :
- if (!check_char(env, s, tz_index + 3, ':')) return false;
-
- // minute
- n = get_char(env, s, tz_index + 4, 10, &thrown);
- n += get_char(env, s, tz_index + 5, 1, &thrown);
- if (thrown) return false;
- n *= offset;
- minute += n;
- }
- }
- env->SetIntField(This, g_hourField, hour);
+ if (offset != 0) {
+ if (len < tz_index + 6) {
+ jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+ "Unexpected length; should be %d characters",
+ tz_index + 6);
+ return false;
+ }
+
+ // hour
+ n = get_char(env, s, tz_index + 1, 10, &thrown);
+ n += get_char(env, s, tz_index + 2, 1, &thrown);
+ if (thrown) return false;
+ n *= offset;
+ hour += n;
+
+ // :
+ if (!check_char(env, s, tz_index + 3, ':')) return false;
+
+ // minute
+ n = get_char(env, s, tz_index + 4, 10, &thrown);
+ n += get_char(env, s, tz_index + 5, 1, &thrown);
+ if (thrown) return false;
+ n *= offset;
+ minute += n;
+ }
+ }
+ env->SetIntField(This, g_hourField, hour);
env->SetIntField(This, g_minField, minute);
- if (offset != 0) {
- // we need to normalize after applying the hour and minute offsets
- android_text_format_Time_normalize(env, This, false /* use isdst */);
- // The timezone is set to UTC in the calling Java code.
- }
+ if (offset != 0) {
+ // we need to normalize after applying the hour and minute offsets
+ android_text_format_Time_normalize(env, This, false /* use isdst */);
+ // The timezone is set to UTC in the calling Java code.
+ }
} else {
- env->SetBooleanField(This, g_allDayField, JNI_TRUE);
+ env->SetBooleanField(This, g_allDayField, JNI_TRUE);
env->SetIntField(This, g_hourField, 0);
env->SetIntField(This, g_minField, 0);
env->SetIntField(This, g_secField, 0);
@@ -633,8 +628,7 @@ static jboolean android_text_format_Time_parse3339(JNIEnv* env,
env->SetIntField(This, g_ydayField, 0);
env->SetIntField(This, g_isdstField, -1);
env->SetLongField(This, g_gmtoffField, 0);
-
- env->ReleaseStringChars(strObj, s);
+
return inUtc;
}
diff --git a/core/jni/android_util_EventLog.cpp b/core/jni/android_util_EventLog.cpp
index a3981ce8ec00..6ee504dbff72 100644
--- a/core/jni/android_util_EventLog.cpp
+++ b/core/jni/android_util_EventLog.cpp
@@ -71,8 +71,8 @@ static jint android_util_EventLog_writeEvent_String(JNIEnv* env, jobject clazz,
// Don't throw NPE -- I feel like it's sort of mean for a logging function
// to be all crashy if you pass in NULL -- but make the NULL value explicit.
const char *str = value != NULL ? env->GetStringUTFChars(value, NULL) : "NULL";
- jint len = strlen(str);
- const int max = sizeof(buf) - sizeof(len) - 2; // Type byte, final newline
+ uint32_t len = strlen(str);
+ size_t max = sizeof(buf) - sizeof(len) - 2; // Type byte, final newline
if (len > max) len = max;
buf[0] = EVENT_TYPE_STRING;
diff --git a/core/jni/android_util_StringBlock.cpp b/core/jni/android_util_StringBlock.cpp
index 28746ce1eea4..463d3c0bd5cf 100644
--- a/core/jni/android_util_StringBlock.cpp
+++ b/core/jni/android_util_StringBlock.cpp
@@ -52,6 +52,7 @@ static jint android_content_StringBlock_nativeCreate(JNIEnv* env, jobject clazz,
if (osb == NULL || osb->getError() != NO_ERROR) {
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ delete osb;
return 0;
}
diff --git a/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png b/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png
index 569369e79927..569369e79927 100755..100644
--- a/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png
+++ b/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_disable.png b/core/res/res/drawable-hdpi/btn_circle_disable.png
index 39652a855800..39652a855800 100755..100644
--- a/core/res/res/drawable-hdpi/btn_circle_disable.png
+++ b/core/res/res/drawable-hdpi/btn_circle_disable.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_disable_focused.png b/core/res/res/drawable-hdpi/btn_circle_disable_focused.png
index 1aa7ffe69b11..1aa7ffe69b11 100755..100644
--- a/core/res/res/drawable-hdpi/btn_circle_disable_focused.png
+++ b/core/res/res/drawable-hdpi/btn_circle_disable_focused.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_normal.png b/core/res/res/drawable-hdpi/btn_circle_normal.png
index 6011219dc7a7..6011219dc7a7 100755..100644
--- a/core/res/res/drawable-hdpi/btn_circle_normal.png
+++ b/core/res/res/drawable-hdpi/btn_circle_normal.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_pressed.png b/core/res/res/drawable-hdpi/btn_circle_pressed.png
index 4942e50d8219..4942e50d8219 100755..100644
--- a/core/res/res/drawable-hdpi/btn_circle_pressed.png
+++ b/core/res/res/drawable-hdpi/btn_circle_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_selected.png b/core/res/res/drawable-hdpi/btn_circle_selected.png
index fe49a4040def..fe49a4040def 100755..100644
--- a/core/res/res/drawable-hdpi/btn_circle_selected.png
+++ b/core/res/res/drawable-hdpi/btn_circle_selected.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_normal.png b/core/res/res/drawable-hdpi/btn_close_normal.png
index 47f11e5bf67f..47f11e5bf67f 100755..100644
--- a/core/res/res/drawable-hdpi/btn_close_normal.png
+++ b/core/res/res/drawable-hdpi/btn_close_normal.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_pressed.png b/core/res/res/drawable-hdpi/btn_close_pressed.png
index 5b96b4e091be..5b96b4e091be 100755..100644
--- a/core/res/res/drawable-hdpi/btn_close_pressed.png
+++ b/core/res/res/drawable-hdpi/btn_close_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_selected.png b/core/res/res/drawable-hdpi/btn_close_selected.png
index e27d6847e784..e27d6847e784 100755..100644
--- a/core/res/res/drawable-hdpi/btn_close_selected.png
+++ b/core/res/res/drawable-hdpi/btn_close_selected.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal.9.png b/core/res/res/drawable-hdpi/btn_default_normal.9.png
index 803651bcd4ee..803651bcd4ee 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_normal.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png
index f4f01c754628..f4f01c754628 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png
index 5376db245791..5376db245791 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_pressed.9.png
index 4312c27f4d6d..4312c27f4d6d 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_selected.9.png b/core/res/res/drawable-hdpi/btn_default_selected.9.png
index 06b7790ffcab..06b7790ffcab 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_selected.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal.9.png
index 6d3ea9a24639..6d3ea9a24639 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_small_normal.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_small_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png
index 2646ba03f6b8..2646ba03f6b8 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
index 013210c35980..013210c35980 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png
index 24cefd4a44d6..24cefd4a44d6 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_selected.9.png b/core/res/res/drawable-hdpi/btn_default_small_selected.9.png
index bedbceb08d90..bedbceb08d90 100755..100644
--- a/core/res/res/drawable-hdpi/btn_default_small_selected.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_small_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_disable.png b/core/res/res/drawable-hdpi/btn_dialog_disable.png
index 4ff634bcc61f..4ff634bcc61f 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dialog_disable.png
+++ b/core/res/res/drawable-hdpi/btn_dialog_disable.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_normal.png b/core/res/res/drawable-hdpi/btn_dialog_normal.png
index e0cc33900a9c..e0cc33900a9c 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dialog_normal.png
+++ b/core/res/res/drawable-hdpi/btn_dialog_normal.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_pressed.png b/core/res/res/drawable-hdpi/btn_dialog_pressed.png
index ed8e0084b2a8..ed8e0084b2a8 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dialog_pressed.png
+++ b/core/res/res/drawable-hdpi/btn_dialog_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_selected.png b/core/res/res/drawable-hdpi/btn_dialog_selected.png
index 9b1a1000beb2..9b1a1000beb2 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dialog_selected.png
+++ b/core/res/res/drawable-hdpi/btn_dialog_selected.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png b/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png
index f10402fd4df2..f10402fd4df2 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png
+++ b/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png b/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png
index 366c6e0b8786..366c6e0b8786 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png
+++ b/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png b/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png
index f063c8d27184..f063c8d27184 100755..100644
--- a/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png
+++ b/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off.png b/core/res/res/drawable-hdpi/btn_radio_off.png
index 48ee2bae6678..48ee2bae6678 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_off.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed.png
index 5a4ad89a4297..5a4ad89a4297 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_pressed.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_selected.png b/core/res/res/drawable-hdpi/btn_radio_off_selected.png
index 7d5c676f1d8f..7d5c676f1d8f 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_selected.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_selected.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on.png b/core/res/res/drawable-hdpi/btn_radio_on.png
index 2472c2091e80..2472c2091e80 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_on.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed.png
index 98d74ce1bad5..98d74ce1bad5 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_pressed.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_selected.png b/core/res/res/drawable-hdpi/btn_radio_on_selected.png
index b6ab46cc2dd1..b6ab46cc2dd1 100755..100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_selected.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_selected.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/contact_header_bg.9.png b/core/res/res/drawable-hdpi/contact_header_bg.9.png
index 981b2e9f7aa1..981b2e9f7aa1 100755..100644
--- a/core/res/res/drawable-hdpi/contact_header_bg.9.png
+++ b/core/res/res/drawable-hdpi/contact_header_bg.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png b/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png
index 3f1176f2449d..3f1176f2449d 100755..100644
--- a/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png
+++ b/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png b/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png
index 8abda4d3b19a..8abda4d3b19a 100755..100644
--- a/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png
+++ b/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_2.png b/core/res/res/drawable-hdpi/ic_contact_picture_2.png
index 5e652764f77b..5e652764f77b 100755..100644
--- a/core/res/res/drawable-hdpi/ic_contact_picture_2.png
+++ b/core/res/res/drawable-hdpi/ic_contact_picture_2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_3.png b/core/res/res/drawable-hdpi/ic_contact_picture_3.png
index a8ec1e12caa7..a8ec1e12caa7 100755..100644
--- a/core/res/res/drawable-hdpi/ic_contact_picture_3.png
+++ b/core/res/res/drawable-hdpi/ic_contact_picture_3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png
index d73db482ff8d..d73db482ff8d 100755..100644
--- a/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png
+++ b/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png
index 90da6e3e26d9..90da6e3e26d9 100755..100644
--- a/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png
+++ b/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png
index a9af1aff0c3a..a9af1aff0c3a 100755..100644
--- a/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png
+++ b/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_settings_language.png b/core/res/res/drawable-hdpi/ic_settings_language.png
index f635b2e7a0b8..f635b2e7a0b8 100755..100644
--- a/core/res/res/drawable-hdpi/ic_settings_language.png
+++ b/core/res/res/drawable-hdpi/ic_settings_language.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png
index f19811e67c39..f19811e67c39 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png
index 0596035f627d..0596035f627d 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png
index 3ab2723e162d..3ab2723e162d 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png
index dd6899fa7e2a..dd6899fa7e2a 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png
index 27151e017076..27151e017076 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png
index 66d49bbb054f..66d49bbb054f 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png
index c47e17608646..c47e17608646 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png
index f5ea157f73e8..f5ea157f73e8 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png
+++ b/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_bg.png b/core/res/res/drawable-hdpi/jog_dial_bg.png
index 8adbfd8d8e22..8adbfd8d8e22 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_bg.png
+++ b/core/res/res/drawable-hdpi/jog_dial_bg.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_dimple.png b/core/res/res/drawable-hdpi/jog_dial_dimple.png
index 0eaea91de178..0eaea91de178 100755..100644
--- a/core/res/res/drawable-hdpi/jog_dial_dimple.png
+++ b/core/res/res/drawable-hdpi/jog_dial_dimple.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png
index 9599fb5bc200..9599fb5bc200 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png
+++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png
index 46d9ab36a32d..46d9ab36a32d 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png
+++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png
index 6c0dc0aee4c7..6c0dc0aee4c7 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png
+++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png
index 3f9fb8fd5b5f..3f9fb8fd5b5f 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png
+++ b/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_pressed.png b/core/res/res/drawable-hdpi/jog_tab_left_pressed.png
index ec9879008c82..ec9879008c82 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_left_pressed.png
+++ b/core/res/res/drawable-hdpi/jog_tab_left_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png
index 2861e8d782f8..2861e8d782f8 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png
+++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png
index e974bbc24bb0..e974bbc24bb0 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png
+++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png
index 9647fa6f2dad..9647fa6f2dad 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png
+++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png
index ad878e17b5c9..ad878e17b5c9 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png
+++ b/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_pressed.png b/core/res/res/drawable-hdpi/jog_tab_right_pressed.png
index 647e802f0c8d..647e802f0c8d 100755..100644
--- a/core/res/res/drawable-hdpi/jog_tab_right_pressed.png
+++ b/core/res/res/drawable-hdpi/jog_tab_right_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
index 197b34d75215..197b34d75215 100755..100644
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
index c6cf008eda17..c6cf008eda17 100755..100644
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
index bf129e03cd15..bf129e03cd15 100755..100644
--- a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
+++ b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_more.png b/core/res/res/drawable-hdpi/stat_notify_more.png
index f54b3d425833..f54b3d425833 100755..100644
--- a/core/res/res/drawable-hdpi/stat_notify_more.png
+++ b/core/res/res/drawable-hdpi/stat_notify_more.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_10.png b/core/res/res/drawable-hdpi/stat_sys_battery_10.png
index 4486553d7280..4486553d7280 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_10.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_10.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_20.png b/core/res/res/drawable-hdpi/stat_sys_battery_20.png
index c8f9c9231a28..c8f9c9231a28 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_20.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_20.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_40.png b/core/res/res/drawable-hdpi/stat_sys_battery_40.png
index 441bbfba9f03..441bbfba9f03 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_40.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_40.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_60.png b/core/res/res/drawable-hdpi/stat_sys_battery_60.png
index d9467eda963f..d9467eda963f 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_60.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_60.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_80.png b/core/res/res/drawable-hdpi/stat_sys_battery_80.png
index e3f48054a55e..e3f48054a55e 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_80.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_80.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png
index 997feb36658d..997feb36658d 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png
index 426a66b60223..426a66b60223 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png
index 21582ca14f4e..21582ca14f4e 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png
index 8a94763d5915..8a94763d5915 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png
index fad0d657a252..fad0d657a252 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png
+++ b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_phone_call.png
index 9b5f07576cc5..9b5f07576cc5 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_phone_call.png
+++ b/core/res/res/drawable-hdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png
index 032f8f15d8b9..032f8f15d8b9 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png
+++ b/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
index 5b0a68dd30e4..5b0a68dd30e4 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
+++ b/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png
index a3a6b6c13eb8..a3a6b6c13eb8 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png
index a2fa5472de24..a2fa5472de24 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png
index 17c8681ba3c5..17c8681ba3c5 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png
index 4a21fb6f4536..4a21fb6f4536 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png
index 5729f7db299e..5729f7db299e 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png
index af43e00a1d20..af43e00a1d20 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png
index 4ffe42116f0f..4ffe42116f0f 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png
index 6f27b96c3626..6f27b96c3626 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png
index ddc46b073663..ddc46b073663 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png
index fb3cfe96c4e6..fb3cfe96c4e6 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png
index b697ca447cfb..b697ca447cfb 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png
index a61de4d25dfa..a61de4d25dfa 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png
index 62e0393d9793..62e0393d9793 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png
index 09eae9d4f6fc..09eae9d4f6fc 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png
index 4012ac5d149c..4012ac5d149c 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png
+++ b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png
index 83e8ead7142b..83e8ead7142b 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png
+++ b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
index 9731c469b518..9731c469b518 100755..100644
--- a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
+++ b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png
index ca7637552b5e..ca7637552b5e 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png
index ae57299e4fea..ae57299e4fea 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png
index 4db31c849a08..4db31c849a08 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
index 3fd5659fd3ac..3fd5659fd3ac 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png
index 98266ee5240b..98266ee5240b 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_return.png b/core/res/res/drawable-hdpi/sym_keyboard_return.png
index 58505c5e0c41..58505c5e0c41 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_return.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_return.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_shift.png
index 8149081786d9..8149081786d9 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_shift.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_shift.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png
index 31ca277181ea..31ca277181ea 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_space.png b/core/res/res/drawable-hdpi/sym_keyboard_space.png
index 3e98b3014a42..3e98b3014a42 100755..100644
--- a/core/res/res/drawable-hdpi/sym_keyboard_space.png
+++ b/core/res/res/drawable-hdpi/sym_keyboard_space.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_default.9.png b/core/res/res/drawable-hdpi/textfield_default.9.png
index f7b6e9974324..f7b6e9974324 100755..100644
--- a/core/res/res/drawable-hdpi/textfield_default.9.png
+++ b/core/res/res/drawable-hdpi/textfield_default.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_disabled.9.png b/core/res/res/drawable-hdpi/textfield_disabled.9.png
index 30115027bf53..30115027bf53 100755..100644
--- a/core/res/res/drawable-hdpi/textfield_disabled.9.png
+++ b/core/res/res/drawable-hdpi/textfield_disabled.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png b/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png
index e0f82eb06d4b..e0f82eb06d4b 100755..100644
--- a/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png
+++ b/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_selected.9.png b/core/res/res/drawable-hdpi/textfield_selected.9.png
index cf2cae30bf42..cf2cae30bf42 100755..100644
--- a/core/res/res/drawable-hdpi/textfield_selected.9.png
+++ b/core/res/res/drawable-hdpi/textfield_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png
index 0ee834739fec..0ee834739fec 100755..100644
--- a/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png
+++ b/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png
index 0ee834739fec..0ee834739fec 100755..100644
--- a/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png
+++ b/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_press_bar_left.9.png b/core/res/res/drawable-ldpi/tab_press_bar_left.9.png
index ee129ba19f2c..ee129ba19f2c 100755..100644
--- a/core/res/res/drawable-ldpi/tab_press_bar_left.9.png
+++ b/core/res/res/drawable-ldpi/tab_press_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_press_bar_right.9.png b/core/res/res/drawable-ldpi/tab_press_bar_right.9.png
index ee129ba19f2c..ee129ba19f2c 100755..100644
--- a/core/res/res/drawable-ldpi/tab_press_bar_right.9.png
+++ b/core/res/res/drawable-ldpi/tab_press_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png
index 03bcc13b37d7..03bcc13b37d7 100755..100644
--- a/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png
+++ b/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png
index f2284454b199..f2284454b199 100755..100644
--- a/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png
+++ b/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_off.png b/core/res/res/drawable-mdpi/btn_check_buttonless_off.png
index f8972fc458f2..f8972fc458f2 100755..100644
--- a/core/res/res/drawable-mdpi/btn_check_buttonless_off.png
+++ b/core/res/res/drawable-mdpi/btn_check_buttonless_off.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_on.png b/core/res/res/drawable-mdpi/btn_check_buttonless_on.png
index a10a37ae5448..a10a37ae5448 100755..100644
--- a/core/res/res/drawable-mdpi/btn_check_buttonless_on.png
+++ b/core/res/res/drawable-mdpi/btn_check_buttonless_on.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_disable.png b/core/res/res/drawable-mdpi/btn_dialog_disable.png
index 3de98951e0e8..3de98951e0e8 100755..100644
--- a/core/res/res/drawable-mdpi/btn_dialog_disable.png
+++ b/core/res/res/drawable-mdpi/btn_dialog_disable.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_normal.png b/core/res/res/drawable-mdpi/btn_dialog_normal.png
index eca5828bf818..eca5828bf818 100755..100644
--- a/core/res/res/drawable-mdpi/btn_dialog_normal.png
+++ b/core/res/res/drawable-mdpi/btn_dialog_normal.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_pressed.png b/core/res/res/drawable-mdpi/btn_dialog_pressed.png
index f9c4551563e6..f9c4551563e6 100755..100644
--- a/core/res/res/drawable-mdpi/btn_dialog_pressed.png
+++ b/core/res/res/drawable-mdpi/btn_dialog_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_selected.png b/core/res/res/drawable-mdpi/btn_dialog_selected.png
index b0afd7f1f6e1..b0afd7f1f6e1 100755..100644
--- a/core/res/res/drawable-mdpi/btn_dialog_selected.png
+++ b/core/res/res/drawable-mdpi/btn_dialog_selected.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_default.9.png b/core/res/res/drawable-mdpi/btn_erase_default.9.png
index c3bf60c619bd..c3bf60c619bd 100755..100644
--- a/core/res/res/drawable-mdpi/btn_erase_default.9.png
+++ b/core/res/res/drawable-mdpi/btn_erase_default.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_pressed.9.png b/core/res/res/drawable-mdpi/btn_erase_pressed.9.png
index 727aafe0ad02..727aafe0ad02 100755..100644
--- a/core/res/res/drawable-mdpi/btn_erase_pressed.9.png
+++ b/core/res/res/drawable-mdpi/btn_erase_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_selected.9.png b/core/res/res/drawable-mdpi/btn_erase_selected.9.png
index c6bd02035cf2..c6bd02035cf2 100755..100644
--- a/core/res/res/drawable-mdpi/btn_erase_selected.9.png
+++ b/core/res/res/drawable-mdpi/btn_erase_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png
index 39b9314a1a69..39b9314a1a69 100755..100644
--- a/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png
+++ b/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player.9.png b/core/res/res/drawable-mdpi/btn_media_player.9.png
index 3ec3f6839848..3ec3f6839848 100755..100644
--- a/core/res/res/drawable-mdpi/btn_media_player.9.png
+++ b/core/res/res/drawable-mdpi/btn_media_player.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png
index e74335bfe885..e74335bfe885 100755..100644
--- a/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png
+++ b/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png
index 2c6517fdb896..2c6517fdb896 100755..100644
--- a/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png
+++ b/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png b/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png
index 40bee47092e1..40bee47092e1 100755..100644
--- a/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png
+++ b/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_selected.9.png
index 28d809fe11f6..28d809fe11f6 100755..100644
--- a/core/res/res/drawable-mdpi/btn_media_player_selected.9.png
+++ b/core/res/res/drawable-mdpi/btn_media_player_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off.png b/core/res/res/drawable-mdpi/btn_star_big_off.png
index 7e9342b5c33e..7e9342b5c33e 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_off.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_off.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable.png
index 066d92008793..066d92008793 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_off_disable.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_off_disable.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png
index 1855d2c973cf..1855d2c973cf 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png
index f1b8912f90c5..f1b8912f90c5 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_selected.png b/core/res/res/drawable-mdpi/btn_star_big_off_selected.png
index 0be64c416095..0be64c416095 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_off_selected.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_off_selected.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on.png b/core/res/res/drawable-mdpi/btn_star_big_on.png
index a9bdb052a970..a9bdb052a970 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_on.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_on.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable.png
index 5e65a2f91449..5e65a2f91449 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_on_disable.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_on_disable.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png
index de57571e388e..de57571e388e 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png
index 159a84bb8dc7..159a84bb8dc7 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_selected.png b/core/res/res/drawable-mdpi/btn_star_big_on_selected.png
index 0592d5180afd..0592d5180afd 100755..100644
--- a/core/res/res/drawable-mdpi/btn_star_big_on_selected.png
+++ b/core/res/res/drawable-mdpi/btn_star_big_on_selected.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png b/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png
index b69619b4bd0c..b69619b4bd0c 100755..100644
--- a/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png
+++ b/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png
index 804f6f386c51..804f6f386c51 100755..100644
--- a/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png
+++ b/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png
index e1ffa067a501..e1ffa067a501 100755..100644
--- a/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png
+++ b/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png
index 8bae9328c4db..8bae9328c4db 100755..100644
--- a/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png
+++ b/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_default.9.png b/core/res/res/drawable-mdpi/gallery_selected_default.9.png
index 22122b2b8496..22122b2b8496 100755..100644
--- a/core/res/res/drawable-mdpi/gallery_selected_default.9.png
+++ b/core/res/res/drawable-mdpi/gallery_selected_default.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_focused.9.png b/core/res/res/drawable-mdpi/gallery_selected_focused.9.png
index 13327451b146..13327451b146 100755..100644
--- a/core/res/res/drawable-mdpi/gallery_selected_focused.9.png
+++ b/core/res/res/drawable-mdpi/gallery_selected_focused.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png b/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png
index 306e54341c37..306e54341c37 100755..100644
--- a/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png
+++ b/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_unselected_default.9.png b/core/res/res/drawable-mdpi/gallery_unselected_default.9.png
index 0df06fa42550..0df06fa42550 100755..100644
--- a/core/res/res/drawable-mdpi/gallery_unselected_default.9.png
+++ b/core/res/res/drawable-mdpi/gallery_unselected_default.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_dialog_info.png b/core/res/res/drawable-mdpi/ic_dialog_info.png
index e8b022996c64..e8b022996c64 100755..100644
--- a/core/res/res/drawable-mdpi/ic_dialog_info.png
+++ b/core/res/res/drawable-mdpi/ic_dialog_info.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_dialog_time.png b/core/res/res/drawable-mdpi/ic_dialog_time.png
index dffec296d0ec..dffec296d0ec 100755..100644
--- a/core/res/res/drawable-mdpi/ic_dialog_time.png
+++ b/core/res/res/drawable-mdpi/ic_dialog_time.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png
index e697d91d2224..e697d91d2224 100755..100644
--- a/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png
+++ b/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png
index 20d632068c39..20d632068c39 100755..100644
--- a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png
+++ b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png
index 0206aeef6883..0206aeef6883 100755..100644
--- a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png
+++ b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png
index bb967829d234..bb967829d234 100755..100644
--- a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png
+++ b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_video_poster.png b/core/res/res/drawable-mdpi/ic_media_video_poster.png
index f457f2332d3c..f457f2332d3c 100755..100644
--- a/core/res/res/drawable-mdpi/ic_media_video_poster.png
+++ b/core/res/res/drawable-mdpi/ic_media_video_poster.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_add.png b/core/res/res/drawable-mdpi/ic_menu_add.png
index 361c7c460ef8..361c7c460ef8 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_add.png
+++ b/core/res/res/drawable-mdpi/ic_menu_add.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_agenda.png b/core/res/res/drawable-mdpi/ic_menu_agenda.png
index c63a12bf26af..c63a12bf26af 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_agenda.png
+++ b/core/res/res/drawable-mdpi/ic_menu_agenda.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_allfriends.png b/core/res/res/drawable-mdpi/ic_menu_allfriends.png
index 45256d1ae4b7..45256d1ae4b7 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_allfriends.png
+++ b/core/res/res/drawable-mdpi/ic_menu_allfriends.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_camera.png b/core/res/res/drawable-mdpi/ic_menu_camera.png
index f8cf93c7cb37..f8cf93c7cb37 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_camera.png
+++ b/core/res/res/drawable-mdpi/ic_menu_camera.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_crop.png b/core/res/res/drawable-mdpi/ic_menu_crop.png
index 30e40cf77bee..30e40cf77bee 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_crop.png
+++ b/core/res/res/drawable-mdpi/ic_menu_crop.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_day.png b/core/res/res/drawable-mdpi/ic_menu_day.png
index 88bc348d8822..88bc348d8822 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_day.png
+++ b/core/res/res/drawable-mdpi/ic_menu_day.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_delete.png b/core/res/res/drawable-mdpi/ic_menu_delete.png
index e2c8700c348f..e2c8700c348f 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_delete.png
+++ b/core/res/res/drawable-mdpi/ic_menu_delete.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_directions.png b/core/res/res/drawable-mdpi/ic_menu_directions.png
index d10e0b1e43d9..d10e0b1e43d9 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_directions.png
+++ b/core/res/res/drawable-mdpi/ic_menu_directions.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_edit.png b/core/res/res/drawable-mdpi/ic_menu_edit.png
index d0314e987ac2..d0314e987ac2 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_edit.png
+++ b/core/res/res/drawable-mdpi/ic_menu_edit.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_gallery.png b/core/res/res/drawable-mdpi/ic_menu_gallery.png
index d3a02009d502..d3a02009d502 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_gallery.png
+++ b/core/res/res/drawable-mdpi/ic_menu_gallery.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_info_details.png b/core/res/res/drawable-mdpi/ic_menu_info_details.png
index 18b15b5addaa..18b15b5addaa 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_info_details.png
+++ b/core/res/res/drawable-mdpi/ic_menu_info_details.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_manage.png b/core/res/res/drawable-mdpi/ic_menu_manage.png
index 8d3a9fa43e36..8d3a9fa43e36 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_manage.png
+++ b/core/res/res/drawable-mdpi/ic_menu_manage.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_month.png b/core/res/res/drawable-mdpi/ic_menu_month.png
index ff201df8d032..ff201df8d032 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_month.png
+++ b/core/res/res/drawable-mdpi/ic_menu_month.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_my_calendar.png b/core/res/res/drawable-mdpi/ic_menu_my_calendar.png
index 991dfb0e86a5..991dfb0e86a5 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_my_calendar.png
+++ b/core/res/res/drawable-mdpi/ic_menu_my_calendar.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_mylocation.png b/core/res/res/drawable-mdpi/ic_menu_mylocation.png
index 2a61a9778b78..2a61a9778b78 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_mylocation.png
+++ b/core/res/res/drawable-mdpi/ic_menu_mylocation.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_rotate.png b/core/res/res/drawable-mdpi/ic_menu_rotate.png
index 35fa56d5e98c..35fa56d5e98c 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_rotate.png
+++ b/core/res/res/drawable-mdpi/ic_menu_rotate.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_search.png b/core/res/res/drawable-mdpi/ic_menu_search.png
index 5d3155e02756..5d3155e02756 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_search.png
+++ b/core/res/res/drawable-mdpi/ic_menu_search.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png b/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png
index 5d3155e02756..5d3155e02756 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_send.png b/core/res/res/drawable-mdpi/ic_menu_send.png
index 06b471770963..06b471770963 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_send.png
+++ b/core/res/res/drawable-mdpi/ic_menu_send.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_set_as.png b/core/res/res/drawable-mdpi/ic_menu_set_as.png
index 98cc305ef990..98cc305ef990 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_set_as.png
+++ b/core/res/res/drawable-mdpi/ic_menu_set_as.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_share.png b/core/res/res/drawable-mdpi/ic_menu_share.png
index d89ca5fbd300..d89ca5fbd300 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_share.png
+++ b/core/res/res/drawable-mdpi/ic_menu_share.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png b/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png
index 19e8d1ba3bf7..19e8d1ba3bf7 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png
+++ b/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_star.png b/core/res/res/drawable-mdpi/ic_menu_star.png
index 0c22fe8684e9..0c22fe8684e9 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_star.png
+++ b/core/res/res/drawable-mdpi/ic_menu_star.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_today.png b/core/res/res/drawable-mdpi/ic_menu_today.png
index 8c248ae91876..8c248ae91876 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_today.png
+++ b/core/res/res/drawable-mdpi/ic_menu_today.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_upload.png b/core/res/res/drawable-mdpi/ic_menu_upload.png
index 9e8459a5a9b2..9e8459a5a9b2 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_upload.png
+++ b/core/res/res/drawable-mdpi/ic_menu_upload.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png b/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png
index a67c4092f825..a67c4092f825 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png
+++ b/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_view.png b/core/res/res/drawable-mdpi/ic_menu_view.png
index 082810d4fd84..082810d4fd84 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_view.png
+++ b/core/res/res/drawable-mdpi/ic_menu_view.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_week.png b/core/res/res/drawable-mdpi/ic_menu_week.png
index e11e5f1addd7..e11e5f1addd7 100755..100644
--- a/core/res/res/drawable-mdpi/ic_menu_week.png
+++ b/core/res/res/drawable-mdpi/ic_menu_week.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_popup_reminder.png b/core/res/res/drawable-mdpi/ic_popup_reminder.png
index af15279a33e3..af15279a33e3 100755..100644
--- a/core/res/res/drawable-mdpi/ic_popup_reminder.png
+++ b/core/res/res/drawable-mdpi/ic_popup_reminder.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_search_category_default.png b/core/res/res/drawable-mdpi/ic_search_category_default.png
index 94446db976cf..94446db976cf 100755..100644
--- a/core/res/res/drawable-mdpi/ic_search_category_default.png
+++ b/core/res/res/drawable-mdpi/ic_search_category_default.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/indicator_input_error.png b/core/res/res/drawable-mdpi/indicator_input_error.png
index 775e41756a4b..775e41756a4b 100755..100644
--- a/core/res/res/drawable-mdpi/indicator_input_error.png
+++ b/core/res/res/drawable-mdpi/indicator_input_error.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png
index 334a8e01d8c3..334a8e01d8c3 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png
index 2e011ca319bf..2e011ca319bf 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png
index 323745eab0ef..323745eab0ef 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png
index 1e97c9a9f778..1e97c9a9f778 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png
index 3536e5895764..3536e5895764 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png
index 4a4ab3ae9b16..4a4ab3ae9b16 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png
index 987cfa785dea..987cfa785dea 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png
index ee79875556cc..ee79875556cc 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png
+++ b/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_bg.png b/core/res/res/drawable-mdpi/jog_dial_bg.png
index 2f8f24d400e3..2f8f24d400e3 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_bg.png
+++ b/core/res/res/drawable-mdpi/jog_dial_bg.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_dimple.png b/core/res/res/drawable-mdpi/jog_dial_dimple.png
index 85d3a438c459..85d3a438c459 100755..100644
--- a/core/res/res/drawable-mdpi/jog_dial_dimple.png
+++ b/core/res/res/drawable-mdpi/jog_dial_dimple.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png
index 3dce4513d138..3dce4513d138 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png
+++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png
index 829b1462d228..829b1462d228 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png
+++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png
index 5a29262161b5..5a29262161b5 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png
+++ b/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_normal.png b/core/res/res/drawable-mdpi/jog_tab_left_normal.png
index eb91e97eae2c..eb91e97eae2c 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_left_normal.png
+++ b/core/res/res/drawable-mdpi/jog_tab_left_normal.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_pressed.png b/core/res/res/drawable-mdpi/jog_tab_left_pressed.png
index 99519929279f..99519929279f 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_left_pressed.png
+++ b/core/res/res/drawable-mdpi/jog_tab_left_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png
index d446480ded0a..d446480ded0a 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png
+++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png
index 96d7acbbe48e..96d7acbbe48e 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png
+++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png
index 8224c38eb3fc..8224c38eb3fc 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png
+++ b/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_normal.png b/core/res/res/drawable-mdpi/jog_tab_right_normal.png
index f2113f26e1cd..f2113f26e1cd 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_right_normal.png
+++ b/core/res/res/drawable-mdpi/jog_tab_right_normal.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_pressed.png b/core/res/res/drawable-mdpi/jog_tab_right_pressed.png
index 65cd51ea6d14..65cd51ea6d14 100755..100644
--- a/core/res/res/drawable-mdpi/jog_tab_right_pressed.png
+++ b/core/res/res/drawable-mdpi/jog_tab_right_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png b/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
index 29aa285bd544..29aa285bd544 100755..100644
--- a/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
+++ b/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png
index 596294b62080..596294b62080 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png
index 662cffd19081..662cffd19081 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png
index f17e8f942ac6..f17e8f942ac6 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png
index 777bcf5f35c5..777bcf5f35c5 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png
index b45db62121d4..b45db62121d4 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png
index f73658e73e57..f73658e73e57 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png
index 8032adac1441..8032adac1441 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png
index 30d8d5fa15af..30d8d5fa15af 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png
index 874f18f2bb02..874f18f2bb02 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png
index 327b0b5ad926..327b0b5ad926 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png
index 4c96680fefb9..4c96680fefb9 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png
index dcd26e0115e0..dcd26e0115e0 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png
index 7dac77868749..7dac77868749 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png
index 35dae8ef11a4..35dae8ef11a4 100755..100644
--- a/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png
+++ b/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png
index 8584d1f0adce..8584d1f0adce 100755..100644
--- a/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png
+++ b/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png
index 331a05dc760b..331a05dc760b 100755..100644
--- a/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png
+++ b/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/search_plate.9.png b/core/res/res/drawable-mdpi/search_plate.9.png
index 8c42f1038fcb..8c42f1038fcb 100755..100644
--- a/core/res/res/drawable-mdpi/search_plate.9.png
+++ b/core/res/res/drawable-mdpi/search_plate.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_black_20.png b/core/res/res/drawable-mdpi/spinner_black_20.png
index 86d7a205e867..86d7a205e867 100755..100644
--- a/core/res/res/drawable-mdpi/spinner_black_20.png
+++ b/core/res/res/drawable-mdpi/spinner_black_20.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
index 7194b30b0362..7194b30b0362 100755..100644
--- a/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
+++ b/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus.9.png b/core/res/res/drawable-mdpi/tab_focus.9.png
index d9bcc57a245a..d9bcc57a245a 100755..100644
--- a/core/res/res/drawable-mdpi/tab_focus.9.png
+++ b/core/res/res/drawable-mdpi/tab_focus.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png
index 2536d9450c2e..2536d9450c2e 100755..100644
--- a/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png
+++ b/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png
index 2536d9450c2e..2536d9450c2e 100755..100644
--- a/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png
+++ b/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press.9.png b/core/res/res/drawable-mdpi/tab_press.9.png
index 3332660c874f..3332660c874f 100755..100644
--- a/core/res/res/drawable-mdpi/tab_press.9.png
+++ b/core/res/res/drawable-mdpi/tab_press.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press_bar_left.9.png b/core/res/res/drawable-mdpi/tab_press_bar_left.9.png
index d2c75e3cc3d0..d2c75e3cc3d0 100755..100644
--- a/core/res/res/drawable-mdpi/tab_press_bar_left.9.png
+++ b/core/res/res/drawable-mdpi/tab_press_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press_bar_right.9.png b/core/res/res/drawable-mdpi/tab_press_bar_right.9.png
index d2c75e3cc3d0..d2c75e3cc3d0 100755..100644
--- a/core/res/res/drawable-mdpi/tab_press_bar_right.9.png
+++ b/core/res/res/drawable-mdpi/tab_press_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png
index d20f3a2e6217..d20f3a2e6217 100755..100644
--- a/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png
+++ b/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png
index d20f3a2e6217..d20f3a2e6217 100755..100644
--- a/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png
+++ b/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_default.9.png b/core/res/res/drawable-mdpi/textfield_search_default.9.png
index 7dc5b271f27a..7dc5b271f27a 100755..100644
--- a/core/res/res/drawable-mdpi/textfield_search_default.9.png
+++ b/core/res/res/drawable-mdpi/textfield_search_default.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_selected.9.png b/core/res/res/drawable-mdpi/textfield_search_selected.9.png
index a9fd3b28b20f..a9fd3b28b20f 100755..100644
--- a/core/res/res/drawable-mdpi/textfield_search_selected.9.png
+++ b/core/res/res/drawable-mdpi/textfield_search_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/toast_frame.9.png b/core/res/res/drawable-mdpi/toast_frame.9.png
index b9105deeefb8..b9105deeefb8 100755..100644
--- a/core/res/res/drawable-mdpi/toast_frame.9.png
+++ b/core/res/res/drawable-mdpi/toast_frame.9.png
Binary files differ
diff --git a/core/res/res/layout/app_perms_summary.xml b/core/res/res/layout/app_perms_summary.xml
index b8d93aca755b..b8d93aca755b 100755..100644
--- a/core/res/res/layout/app_perms_summary.xml
+++ b/core/res/res/layout/app_perms_summary.xml
diff --git a/core/res/res/raw/fallbackring.ogg b/core/res/res/raw/fallbackring.ogg
index a9adeb88930e..a9adeb88930e 100755..100644
--- a/core/res/res/raw/fallbackring.ogg
+++ b/core/res/res/raw/fallbackring.ogg
Binary files differ
diff --git a/core/res/res/values-mcc208-mnc01/config.xml b/core/res/res/values-mcc208-mnc01/config.xml
index c1489b199eb5..c1489b199eb5 100755..100644
--- a/core/res/res/values-mcc208-mnc01/config.xml
+++ b/core/res/res/values-mcc208-mnc01/config.xml
diff --git a/core/res/res/values-mcc208-mnc10/config.xml b/core/res/res/values-mcc208-mnc10/config.xml
index 99cc599fed8d..99cc599fed8d 100755..100644
--- a/core/res/res/values-mcc208-mnc10/config.xml
+++ b/core/res/res/values-mcc208-mnc10/config.xml
diff --git a/core/res/res/values-mcc214-mnc03/config.xml b/core/res/res/values-mcc214-mnc03/config.xml
index 02f1475acfad..02f1475acfad 100755..100644
--- a/core/res/res/values-mcc214-mnc03/config.xml
+++ b/core/res/res/values-mcc214-mnc03/config.xml
diff --git a/core/res/res/values-mcc214-mnc07/config.xml b/core/res/res/values-mcc214-mnc07/config.xml
index 4e3fa162cf62..4e3fa162cf62 100755..100644
--- a/core/res/res/values-mcc214-mnc07/config.xml
+++ b/core/res/res/values-mcc214-mnc07/config.xml
diff --git a/core/res/res/values-mcc222-mnc01/config.xml b/core/res/res/values-mcc222-mnc01/config.xml
index 6bb1196b5775..6bb1196b5775 100755..100644
--- a/core/res/res/values-mcc222-mnc01/config.xml
+++ b/core/res/res/values-mcc222-mnc01/config.xml
diff --git a/core/res/res/values-mcc222-mnc10/config.xml b/core/res/res/values-mcc222-mnc10/config.xml
index 24dd71cea13f..24dd71cea13f 100755..100644
--- a/core/res/res/values-mcc222-mnc10/config.xml
+++ b/core/res/res/values-mcc222-mnc10/config.xml
diff --git a/core/res/res/values-mcc234-mnc33/config.xml b/core/res/res/values-mcc234-mnc33/config.xml
index d79d212959f0..d79d212959f0 100755..100644
--- a/core/res/res/values-mcc234-mnc33/config.xml
+++ b/core/res/res/values-mcc234-mnc33/config.xml
diff --git a/core/res/res/values-mcc302-mnc370/config.xml b/core/res/res/values-mcc302-mnc370/config.xml
index b1d363fac070..b1d363fac070 100755..100644
--- a/core/res/res/values-mcc302-mnc370/config.xml
+++ b/core/res/res/values-mcc302-mnc370/config.xml
diff --git a/core/res/res/values-mcc302-mnc660/config.xml b/core/res/res/values-mcc302-mnc660/config.xml
index 37853cf88f92..37853cf88f92 100755..100644
--- a/core/res/res/values-mcc302-mnc660/config.xml
+++ b/core/res/res/values-mcc302-mnc660/config.xml
diff --git a/core/res/res/values-mcc302-mnc720/config.xml b/core/res/res/values-mcc302-mnc720/config.xml
index 40ef9391ffd8..40ef9391ffd8 100755..100644
--- a/core/res/res/values-mcc302-mnc720/config.xml
+++ b/core/res/res/values-mcc302-mnc720/config.xml
diff --git a/core/res/res/values-mcc340-mnc01/config.xml b/core/res/res/values-mcc340-mnc01/config.xml
index fb71f3bc894b..fb71f3bc894b 100755..100644
--- a/core/res/res/values-mcc340-mnc01/config.xml
+++ b/core/res/res/values-mcc340-mnc01/config.xml
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 48ee42957593..48ee42957593 100755..100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index cb7804ca3f61..cb7804ca3f61 100755..100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 99fbf951c77a..cb8d0e5e8a20 100755..100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2272,6 +2272,8 @@
<!-- Accessibility description sent when user completes drawing a pattern. [CHAR LIMIT=NONE] -->
<string name="lockscreen_access_pattern_detected">Pattern completed</string>
+ <!-- Accessibility description sent when user changes the current lock screen widget. [CHAR_LIMIT=none] -->
+ <string name="keyguard_accessibility_widget_changed">%1$s. Widget %2$d of %3$d.</string>
<!-- Accessibility description of the add widget button. [CHAR_LIMIT=none] -->
<string name="keyguard_accessibility_add_widget">Add widget.</string>
<!-- Accessibility description of the empty sidget slot (place holder for a new widget). [CHAR_LIMIT=none] -->
diff --git a/core/res/res/xml-land/password_kbd_qwerty.xml b/core/res/res/xml-land/password_kbd_qwerty.xml
index 988f9ffa6394..988f9ffa6394 100755..100644
--- a/core/res/res/xml-land/password_kbd_qwerty.xml
+++ b/core/res/res/xml-land/password_kbd_qwerty.xml
diff --git a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
index 4941946d27d1..4941946d27d1 100755..100644
--- a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty.xml b/core/res/res/xml-mdpi/password_kbd_qwerty.xml
index 265d7dcb49f9..265d7dcb49f9 100755..100644
--- a/core/res/res/xml-mdpi/password_kbd_qwerty.xml
+++ b/core/res/res/xml-mdpi/password_kbd_qwerty.xml
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
index 7379f6916a3f..7379f6916a3f 100755..100644
--- a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
diff --git a/core/res/res/xml-xlarge/password_kbd_numeric.xml b/core/res/res/xml-xlarge/password_kbd_numeric.xml
index b2704f609e0e..b2704f609e0e 100755..100644
--- a/core/res/res/xml-xlarge/password_kbd_numeric.xml
+++ b/core/res/res/xml-xlarge/password_kbd_numeric.xml
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty.xml b/core/res/res/xml-xlarge/password_kbd_qwerty.xml
index 76b60195f40b..76b60195f40b 100755..100644
--- a/core/res/res/xml-xlarge/password_kbd_qwerty.xml
+++ b/core/res/res/xml-xlarge/password_kbd_qwerty.xml
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
index 35c31423def3..35c31423def3 100755..100644
--- a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols.xml b/core/res/res/xml-xlarge/password_kbd_symbols.xml
index 106dd6ebd12f..106dd6ebd12f 100755..100644
--- a/core/res/res/xml-xlarge/password_kbd_symbols.xml
+++ b/core/res/res/xml-xlarge/password_kbd_symbols.xml
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
index 1233f78f4aa2..1233f78f4aa2 100755..100644
--- a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
+++ b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
diff --git a/core/res/res/xml/password_kbd_extension.xml b/core/res/res/xml/password_kbd_extension.xml
index e8d61fe80063..e8d61fe80063 100755..100644
--- a/core/res/res/xml/password_kbd_extension.xml
+++ b/core/res/res/xml/password_kbd_extension.xml
diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml
index 7593ad85ef31..7593ad85ef31 100755..100644
--- a/core/res/res/xml/password_kbd_numeric.xml
+++ b/core/res/res/xml/password_kbd_numeric.xml
diff --git a/core/res/res/xml/password_kbd_qwerty.xml b/core/res/res/xml/password_kbd_qwerty.xml
index dfe581ee3c28..dfe581ee3c28 100755..100644
--- a/core/res/res/xml/password_kbd_qwerty.xml
+++ b/core/res/res/xml/password_kbd_qwerty.xml
diff --git a/core/res/res/xml/password_kbd_qwerty_shifted.xml b/core/res/res/xml/password_kbd_qwerty_shifted.xml
index 1366c584e6ed..1366c584e6ed 100755..100644
--- a/core/res/res/xml/password_kbd_qwerty_shifted.xml
+++ b/core/res/res/xml/password_kbd_qwerty_shifted.xml
diff --git a/core/res/res/xml/password_kbd_symbols.xml b/core/res/res/xml/password_kbd_symbols.xml
index 5876b0dbce6b..5876b0dbce6b 100755..100644
--- a/core/res/res/xml/password_kbd_symbols.xml
+++ b/core/res/res/xml/password_kbd_symbols.xml
diff --git a/core/res/res/xml/password_kbd_symbols_shift.xml b/core/res/res/xml/password_kbd_symbols_shift.xml
index ee83544a4e3d..ee83544a4e3d 100755..100644
--- a/core/res/res/xml/password_kbd_symbols_shift.xml
+++ b/core/res/res/xml/password_kbd_symbols_shift.xml
diff --git a/core/tests/ConnectivityManagerTest/assets/accesspoints.xml b/core/tests/ConnectivityManagerTest/assets/accesspoints.xml
index 5e3252ca24df..5e3252ca24df 100755..100644
--- a/core/tests/ConnectivityManagerTest/assets/accesspoints.xml
+++ b/core/tests/ConnectivityManagerTest/assets/accesspoints.xml
diff --git a/core/tests/coretests/src/android/content/pm/AppCacheTest.java b/core/tests/coretests/src/android/content/pm/AppCacheTest.java
index aae55e87802d..aae55e87802d 100755..100644
--- a/core/tests/coretests/src/android/content/pm/AppCacheTest.java
+++ b/core/tests/coretests/src/android/content/pm/AppCacheTest.java
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index 04f8009a40d5..04f8009a40d5 100755..100644
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
diff --git a/core/tests/coretests/src/android/net/http/SslCertificateTest.java b/core/tests/coretests/src/android/net/http/SslCertificateTest.java
index 147816bff3a7..6a30c6c5afdf 100644
--- a/core/tests/coretests/src/android/net/http/SslCertificateTest.java
+++ b/core/tests/coretests/src/android/net/http/SslCertificateTest.java
@@ -45,11 +45,70 @@ public class SslCertificateTest extends TestCase {
@LargeTest
public void testSslCertificateWithEmptyIssuer() throws Exception {
- CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
- X509Certificate x509Certificate = (X509Certificate)
- certificateFactory.generateCertificate(new ByteArrayInputStream(Issue1597Certificate.getBytes()));
- assertEquals(x509Certificate.getIssuerDN().getName(), "");
+ X509Certificate x509Certificate = generateCertificate(Issue1597Certificate);
+ assertEquals("", x509Certificate.getSubjectDN().getName());
SslCertificate sslCertificate = new SslCertificate(x509Certificate);
- assertEquals(sslCertificate.getIssuedBy().getDName(), "");
+ assertEquals("", sslCertificate.getIssuedBy().getDName());
}
+
+ /**
+ * Problematic certificate from Issue 41662
+ * http://code.google.com/p/android/issues/detail?id=41662
+ */
+ private static final String Issue41662Certificate =
+ "-----BEGIN CERTIFICATE-----\n"+
+ "MIIG6jCCBdKgAwIBAgIESPx/LDANBgkqhkiG9w0BAQUFADCBrjESMBAGCgmSJomT\n"+
+ "8ixkARkWAnJzMRUwEwYKCZImiZPyLGQBGRYFcG9zdGExEjAQBgoJkiaJk/IsZAEZ\n"+
+ "FgJjYTEWMBQGA1UEAxMNQ29uZmlndXJhdGlvbjERMA8GA1UEAxMIU2VydmljZXMx\n"+
+ "HDAaBgNVBAMTE1B1YmxpYyBLZXkgU2VydmljZXMxDDAKBgNVBAMTA0FJQTEWMBQG\n"+
+ "A1UEAxMNUG9zdGEgQ0EgUm9vdDAeFw0wODEwMjAxNDExMzBaFw0yODEwMTQyMjAw\n"+
+ "MDBaMIGrMRIwEAYKCZImiZPyLGQBGRYCcnMxFTATBgoJkiaJk/IsZAEZFgVwb3N0\n"+
+ "YTESMBAGCgmSJomT8ixkARkWAmNhMRYwFAYDVQQDEw1Db25maWd1cmF0aW9uMREw\n"+
+ "DwYDVQQDEwhTZXJ2aWNlczEcMBoGA1UEAxMTUHVibGljIEtleSBTZXJ2aWNlczEM\n"+
+ "MAoGA1UEAxMDQUlBMRMwEQYDVQQDEwpQb3N0YSBDQSAxMIIBIjANBgkqhkiG9w0B\n"+
+ "AQEFAAOCAQ8AMIIBCgKCAQEAl5msW5MdLW/2aDlezrjU3jW58MKrcMPHs2szlGdL\n"+
+ "nsAcSyYFF1JbyA8iuqLp7mhvcTz9m4jK82XBz/1mPq8wJMU9ekGnLhgbKLGKXRBA\n"+
+ "sY9wzCvwpweQV6ui4vr2eOkS1j9Mk7ikatH8tNiIzkNrTj3npDpZv1w4G37iwtpb\n"+
+ "yjg+lkNIDY2nWV9roBsAZM8Lvbyi4vxP41YEQZ3hxaGGG0/RKHbugvGatgckxfin\n"+
+ "4gpFG2mDhS9uafGgqnLHLwpxgBbi3g6+2TsxOKatTxwxx9/4MND1GjhxKTjDNYPl\n"+
+ "5JHUvr9fcvQMxP21/jbO4EsCWG+F38R90kT37hFL3l1qiQIDAQABo4IDDzCCAwsw\n"+
+ "DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgcwGA1UdIASBxDCBwTCB\n"+
+ "vgYLKwYBBAH6OAoyAQEwga4wMAYIKwYBBQUHAgEWJGh0dHA6Ly93d3cuY2EucG9z\n"+
+ "dGEucnMvZG9rdW1lbnRhY2lqYTB6BggrBgEFBQcCAjBuGmxPdm8gamUgZWxla3Ry\n"+
+ "b25za2kgc2VydGlmaWthdCBpemRhdmFja29nIChwcm9kdWtjaW9ub2cpIENBIHNl\n"+
+ "cnZlcmEgU2VydGlmaWthY2lvbm9nIHRlbGEgUG9zdGU6ICJQb3N0YSBDQSAxIi4w\n"+
+ "ggG8BgNVHR8EggGzMIIBrzCByaCBxqCBw6SBwDCBvTESMBAGCgmSJomT8ixkARkW\n"+
+ "AnJzMRUwEwYKCZImiZPyLGQBGRYFcG9zdGExEjAQBgoJkiaJk/IsZAEZFgJjYTEW\n"+
+ "MBQGA1UEAxMNQ29uZmlndXJhdGlvbjERMA8GA1UEAxMIU2VydmljZXMxHDAaBgNV\n"+
+ "BAMTE1B1YmxpYyBLZXkgU2VydmljZXMxDDAKBgNVBAMTA0FJQTEWMBQGA1UEAxMN\n"+
+ "UG9zdGEgQ0EgUm9vdDENMAsGA1UEAxMEQ1JMMTCB4KCB3aCB2oaBo2xkYXA6Ly9s\n"+
+ "ZGFwLmNhLnBvc3RhLnJzL2NuPVBvc3RhJTIwQ0ElMjBSb290LGNuPUFJQSxjbj1Q\n"+
+ "dWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxjbj1TZXJ2aWNlcyxjbj1Db25maWd1cmF0\n"+
+ "aW9uLGRjPWNhLGRjPXBvc3RhLGRjPXJzP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxp\n"+
+ "c3QlM0JiaW5hcnmGMmh0dHA6Ly9zZXJ0aWZpa2F0aS5jYS5wb3N0YS5ycy9jcmwv\n"+
+ "UG9zdGFDQVJvb3QuY3JsMB8GA1UdIwQYMBaAFPLLjeI17xBDxNp7yvrriQOhIq+4\n"+
+ "MB0GA1UdDgQWBBQuZ6cm1uhncOeq+pAsMLzXYWUfhjAZBgkqhkiG9n0HQQAEDDAK\n"+
+ "GwRWNy4xAwIAgTANBgkqhkiG9w0BAQUFAAOCAQEAjpmoaebsvfjgwgCYArou/s8k\n"+
+ "Tr50TUdcJYxAYmCFQp531E1F+qUCWM/7bZApqByR3+EUz8goI5O2Cp/6ISxTR1HC\n"+
+ "Dn71ESg7/c8Bs2Obx0LGYPnlRPvw7LH31dYXpj4EMNAamhOfBXgY2htXHCd7daIe\n"+
+ "thvNkqWGDzmcoaGw/2BMNadlYkdXxudDBaiPDFm27yR7fPRibjxwkQVknzFezX/y\n"+
+ "46j+20LoGJ/IpneT209XzytiaqtZBy3yqz2qImVDqvn5doHw63LOUqt8vfDS1sbd\n"+
+ "zi3acAmPK1nERdCMJYJEEGNiGbkbw2cghwLw/4eYGXlj1VLXD3GU42uBr8QftA==\n"+
+ "-----END CERTIFICATE-----\n";
+
+ @LargeTest
+ public void testSslCertificateWithMultipleCN() throws Exception {
+ X509Certificate x509Certificate = generateCertificate(Issue41662Certificate);
+ String dn = x509Certificate.getSubjectDN().getName();
+ assertTrue(dn, dn.contains("Posta CA 1"));
+ assertTrue(dn, dn.contains("Configuration"));
+ SslCertificate sslCertificate = new SslCertificate(x509Certificate);
+ assertEquals(dn, "Posta CA 1", sslCertificate.getIssuedTo().getCName());
+ }
+
+ private static X509Certificate generateCertificate(String pem) throws Exception {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ return (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(pem.getBytes()));
+ }
+
}
diff --git a/core/tests/coretests/src/android/os/storage/AsecTests.java b/core/tests/coretests/src/android/os/storage/AsecTests.java
index abb8eaeb8f27..abb8eaeb8f27 100755..100644
--- a/core/tests/coretests/src/android/os/storage/AsecTests.java
+++ b/core/tests/coretests/src/android/os/storage/AsecTests.java
diff --git a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
index b9051e9af1c3..532b9d1b1566 100644
--- a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
+++ b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
@@ -22,6 +22,7 @@ import android.test.TouchUtils;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
import android.view.KeyEvent;
+import android.view.View;
import android.widget.AbsListView;
import android.widget.ListView;
import android.widget.listview.ListWithEditTextHeader;
@@ -63,4 +64,22 @@ public class ListWithEditTextHeaderTest extends ActivityInstrumentationTestCase2
assertTrue("header does not have focus", mListView.getChildAt(0).isFocused());
assertEquals("something is selected", AbsListView.INVALID_POSITION, mListView.getSelectedItemPosition());
}
+
+ @LargeTest
+ public void testScrollingDoesNotDetachHeaderViewFromWindow() {
+ View header = mListView.getChildAt(0);
+ assertNotNull("header is not attached to a window (?!)", header.getWindowToken());
+
+ // Scroll header off the screen and back onto the screen
+ int numItemsOnScreen = mListView.getChildCount();
+ for (int i = 0; i < numItemsOnScreen; i++) {
+ sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
+ }
+ for (int i = 0; i < numItemsOnScreen; i++) {
+ sendKeys(KeyEvent.KEYCODE_DPAD_UP);
+ }
+
+ // Make sure the header was not accidentally left detached from its window
+ assertNotNull("header has lost its window", header.getWindowToken());
+ }
}
diff --git a/data/fonts/DroidSansJapanese.ttf b/data/fonts/DroidSansJapanese.ttf
index 412fa3de05e8..412fa3de05e8 100755..100644
--- a/data/fonts/DroidSansJapanese.ttf
+++ b/data/fonts/DroidSansJapanese.ttf
Binary files differ
diff --git a/data/sounds/AudioPackage5.mk b/data/sounds/AudioPackage5.mk
index 5961f06a57c0..5961f06a57c0 100755..100644
--- a/data/sounds/AudioPackage5.mk
+++ b/data/sounds/AudioPackage5.mk
diff --git a/data/sounds/AudioPackage6.mk b/data/sounds/AudioPackage6.mk
index d113a29f59bb..d113a29f59bb 100755..100644
--- a/data/sounds/AudioPackage6.mk
+++ b/data/sounds/AudioPackage6.mk
diff --git a/data/sounds/AudioPackage7.mk b/data/sounds/AudioPackage7.mk
index 6ae624e916d0..6ae624e916d0 100755..100644
--- a/data/sounds/AudioPackage7.mk
+++ b/data/sounds/AudioPackage7.mk
diff --git a/data/sounds/AudioPackage7alt.mk b/data/sounds/AudioPackage7alt.mk
index 11409f2e83de..11409f2e83de 100755..100644
--- a/data/sounds/AudioPackage7alt.mk
+++ b/data/sounds/AudioPackage7alt.mk
diff --git a/data/sounds/alarms/ogg-jp/Argon.ogg b/data/sounds/alarms/ogg-jp/Argon.ogg
index 2ff6600f7b90..2ff6600f7b90 100755..100644
--- a/data/sounds/alarms/ogg-jp/Argon.ogg
+++ b/data/sounds/alarms/ogg-jp/Argon.ogg
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Carbon.ogg b/data/sounds/alarms/ogg-jp/Carbon.ogg
index c994f286e081..c994f286e081 100755..100644
--- a/data/sounds/alarms/ogg-jp/Carbon.ogg
+++ b/data/sounds/alarms/ogg-jp/Carbon.ogg
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Helium.ogg b/data/sounds/alarms/ogg-jp/Helium.ogg
index 94f13ce0ddb7..94f13ce0ddb7 100755..100644
--- a/data/sounds/alarms/ogg-jp/Helium.ogg
+++ b/data/sounds/alarms/ogg-jp/Helium.ogg
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Krypton.ogg b/data/sounds/alarms/ogg-jp/Krypton.ogg
index 48f956bc1b7a..48f956bc1b7a 100755..100644
--- a/data/sounds/alarms/ogg-jp/Krypton.ogg
+++ b/data/sounds/alarms/ogg-jp/Krypton.ogg
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Neon.ogg b/data/sounds/alarms/ogg-jp/Neon.ogg
index 3089a277c156..3089a277c156 100755..100644
--- a/data/sounds/alarms/ogg-jp/Neon.ogg
+++ b/data/sounds/alarms/ogg-jp/Neon.ogg
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Oxygen.ogg b/data/sounds/alarms/ogg-jp/Oxygen.ogg
index 4dc8ade219d7..4dc8ade219d7 100755..100644
--- a/data/sounds/alarms/ogg-jp/Oxygen.ogg
+++ b/data/sounds/alarms/ogg-jp/Oxygen.ogg
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressDelete.ogg b/data/sounds/effects/ogg/KeypressDelete.ogg
index 38c3244b0d12..38c3244b0d12 100755..100644
--- a/data/sounds/effects/ogg/KeypressDelete.ogg
+++ b/data/sounds/effects/ogg/KeypressDelete.ogg
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressReturn.ogg b/data/sounds/effects/ogg/KeypressReturn.ogg
index 1bd5b7358b8e..1bd5b7358b8e 100755..100644
--- a/data/sounds/effects/ogg/KeypressReturn.ogg
+++ b/data/sounds/effects/ogg/KeypressReturn.ogg
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressSpacebar.ogg b/data/sounds/effects/ogg/KeypressSpacebar.ogg
index 3a835949a8a5..3a835949a8a5 100755..100644
--- a/data/sounds/effects/ogg/KeypressSpacebar.ogg
+++ b/data/sounds/effects/ogg/KeypressSpacebar.ogg
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressStandard.ogg b/data/sounds/effects/ogg/KeypressStandard.ogg
index 4b8d128b00e1..4b8d128b00e1 100755..100644
--- a/data/sounds/effects/ogg/KeypressStandard.ogg
+++ b/data/sounds/effects/ogg/KeypressStandard.ogg
Binary files differ
diff --git a/data/sounds/notifications/aidos.ogg b/data/sounds/notifications/aidos.ogg
index d2aec756ccfe..d2aec756ccfe 100755..100644
--- a/data/sounds/notifications/aidos.ogg
+++ b/data/sounds/notifications/aidos.ogg
Binary files differ
diff --git a/data/sounds/notifications/circios.ogg b/data/sounds/notifications/circios.ogg
index 68a187120b30..68a187120b30 100755..100644
--- a/data/sounds/notifications/circios.ogg
+++ b/data/sounds/notifications/circios.ogg
Binary files differ
diff --git a/data/sounds/notifications/horkos.ogg b/data/sounds/notifications/horkos.ogg
index 171b3cb7c9ae..171b3cb7c9ae 100755..100644
--- a/data/sounds/notifications/horkos.ogg
+++ b/data/sounds/notifications/horkos.ogg
Binary files differ
diff --git a/data/sounds/notifications/hypnos1.ogg b/data/sounds/notifications/hypnos1.ogg
index 4a7fc260835b..4a7fc260835b 100755..100644
--- a/data/sounds/notifications/hypnos1.ogg
+++ b/data/sounds/notifications/hypnos1.ogg
Binary files differ
diff --git a/data/sounds/notifications/kratos1.ogg b/data/sounds/notifications/kratos1.ogg
index 3e1fe6404045..3e1fe6404045 100755..100644
--- a/data/sounds/notifications/kratos1.ogg
+++ b/data/sounds/notifications/kratos1.ogg
Binary files differ
diff --git a/data/sounds/notifications/kratos2.ogg b/data/sounds/notifications/kratos2.ogg
index 93d3149e852b..93d3149e852b 100755..100644
--- a/data/sounds/notifications/kratos2.ogg
+++ b/data/sounds/notifications/kratos2.ogg
Binary files differ
diff --git a/data/sounds/notifications/nomos1.ogg b/data/sounds/notifications/nomos1.ogg
index 5eb719a94dbd..5eb719a94dbd 100755..100644
--- a/data/sounds/notifications/nomos1.ogg
+++ b/data/sounds/notifications/nomos1.ogg
Binary files differ
diff --git a/data/sounds/notifications/nomos2.ogg b/data/sounds/notifications/nomos2.ogg
index 544cb4c53715..544cb4c53715 100755..100644
--- a/data/sounds/notifications/nomos2.ogg
+++ b/data/sounds/notifications/nomos2.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Adara.ogg b/data/sounds/notifications/ogg/Adara.ogg
index e87f3797b858..e87f3797b858 100755..100644
--- a/data/sounds/notifications/ogg/Adara.ogg
+++ b/data/sounds/notifications/ogg/Adara.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Argon.ogg b/data/sounds/notifications/ogg/Argon.ogg
index e58b3b642743..e58b3b642743 100755..100644
--- a/data/sounds/notifications/ogg/Argon.ogg
+++ b/data/sounds/notifications/ogg/Argon.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Beryllium.ogg b/data/sounds/notifications/ogg/Beryllium.ogg
index 2c5b4fe2129a..2c5b4fe2129a 100755..100644
--- a/data/sounds/notifications/ogg/Beryllium.ogg
+++ b/data/sounds/notifications/ogg/Beryllium.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Capella.ogg b/data/sounds/notifications/ogg/Capella.ogg
index 88a955d159bc..88a955d159bc 100755..100644
--- a/data/sounds/notifications/ogg/Capella.ogg
+++ b/data/sounds/notifications/ogg/Capella.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Cobalt.ogg b/data/sounds/notifications/ogg/Cobalt.ogg
index b6e253a3f416..b6e253a3f416 100755..100644
--- a/data/sounds/notifications/ogg/Cobalt.ogg
+++ b/data/sounds/notifications/ogg/Cobalt.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Fluorine.ogg b/data/sounds/notifications/ogg/Fluorine.ogg
index fd884f5a9367..fd884f5a9367 100755..100644
--- a/data/sounds/notifications/ogg/Fluorine.ogg
+++ b/data/sounds/notifications/ogg/Fluorine.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Gallium.ogg b/data/sounds/notifications/ogg/Gallium.ogg
index 3c7e1156a764..3c7e1156a764 100755..100644
--- a/data/sounds/notifications/ogg/Gallium.ogg
+++ b/data/sounds/notifications/ogg/Gallium.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Polaris.ogg b/data/sounds/notifications/ogg/Polaris.ogg
index 0f63a65bcdb0..0f63a65bcdb0 100755..100644
--- a/data/sounds/notifications/ogg/Polaris.ogg
+++ b/data/sounds/notifications/ogg/Polaris.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Procyon.ogg b/data/sounds/notifications/ogg/Procyon.ogg
index e5ffcdb15a2d..e5ffcdb15a2d 100755..100644
--- a/data/sounds/notifications/ogg/Procyon.ogg
+++ b/data/sounds/notifications/ogg/Procyon.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Radon.ogg b/data/sounds/notifications/ogg/Radon.ogg
index 550cddd3945f..550cddd3945f 100755..100644
--- a/data/sounds/notifications/ogg/Radon.ogg
+++ b/data/sounds/notifications/ogg/Radon.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Selenium.ogg b/data/sounds/notifications/ogg/Selenium.ogg
index 9d609177099a..9d609177099a 100755..100644
--- a/data/sounds/notifications/ogg/Selenium.ogg
+++ b/data/sounds/notifications/ogg/Selenium.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Shaula.ogg b/data/sounds/notifications/ogg/Shaula.ogg
index 1c0aa898261e..1c0aa898261e 100755..100644
--- a/data/sounds/notifications/ogg/Shaula.ogg
+++ b/data/sounds/notifications/ogg/Shaula.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Spica.ogg b/data/sounds/notifications/ogg/Spica.ogg
index a9e91cb7d546..a9e91cb7d546 100755..100644
--- a/data/sounds/notifications/ogg/Spica.ogg
+++ b/data/sounds/notifications/ogg/Spica.ogg
Binary files differ
diff --git a/data/sounds/notifications/ogg/Zirconium.ogg b/data/sounds/notifications/ogg/Zirconium.ogg
index d84b59e418fe..d84b59e418fe 100755..100644
--- a/data/sounds/notifications/ogg/Zirconium.ogg
+++ b/data/sounds/notifications/ogg/Zirconium.ogg
Binary files differ
diff --git a/data/sounds/notifications/ouranos.ogg b/data/sounds/notifications/ouranos.ogg
index d0efc3a2bd13..d0efc3a2bd13 100755..100644
--- a/data/sounds/notifications/ouranos.ogg
+++ b/data/sounds/notifications/ouranos.ogg
Binary files differ
diff --git a/data/sounds/notifications/phantasos.ogg b/data/sounds/notifications/phantasos.ogg
index ea198821c250..ea198821c250 100755..100644
--- a/data/sounds/notifications/phantasos.ogg
+++ b/data/sounds/notifications/phantasos.ogg
Binary files differ
diff --git a/data/sounds/notifications/poros.ogg b/data/sounds/notifications/poros.ogg
index 0a50a12e2dfe..0a50a12e2dfe 100755..100644
--- a/data/sounds/notifications/poros.ogg
+++ b/data/sounds/notifications/poros.ogg
Binary files differ
diff --git a/data/sounds/notifications/thrasos1.ogg b/data/sounds/notifications/thrasos1.ogg
index 9b7e62111a92..9b7e62111a92 100755..100644
--- a/data/sounds/notifications/thrasos1.ogg
+++ b/data/sounds/notifications/thrasos1.ogg
Binary files differ
diff --git a/data/sounds/ringtones/Carina.wav b/data/sounds/ringtones/Carina.wav
index ecaeb58651cf..ecaeb58651cf 100755..100644
--- a/data/sounds/ringtones/Carina.wav
+++ b/data/sounds/ringtones/Carina.wav
Binary files differ
diff --git a/data/sounds/testfiles/test.mid b/data/sounds/testfiles/test.mid
index d4ead5314181..d4ead5314181 100755..100644
--- a/data/sounds/testfiles/test.mid
+++ b/data/sounds/testfiles/test.mid
Binary files differ
diff --git a/data/videos/AndroidInSpace.480p.lq.mp4 b/data/videos/AndroidInSpace.480p.lq.mp4
index f1db6942ebd2..f1db6942ebd2 100755..100644
--- a/data/videos/AndroidInSpace.480p.lq.mp4
+++ b/data/videos/AndroidInSpace.480p.lq.mp4
Binary files differ
diff --git a/data/videos/AndroidInSpace.480p.mq.mp4 b/data/videos/AndroidInSpace.480p.mq.mp4
index 5f4cfb3c33b7..5f4cfb3c33b7 100755..100644
--- a/data/videos/AndroidInSpace.480p.mq.mp4
+++ b/data/videos/AndroidInSpace.480p.mq.mp4
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Downloads_20120814.zip b/docs/downloads/design/Android_Design_Downloads_20120814.zip
index 102b0117dee3..102b0117dee3 100755..100644
--- a/docs/downloads/design/Android_Design_Downloads_20120814.zip
+++ b/docs/downloads/design/Android_Design_Downloads_20120814.zip
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png b/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png
index 9a55143ee0ba..9a55143ee0ba 100755..100644
--- a/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png
+++ b/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip b/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip
index 295affdced81..295affdced81 100755..100644
--- a/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip
+++ b/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Icons_20120814.zip b/docs/downloads/design/Android_Design_Icons_20120814.zip
index 34714380c2a8..34714380c2a8 100755..100644
--- a/docs/downloads/design/Android_Design_Icons_20120814.zip
+++ b/docs/downloads/design/Android_Design_Icons_20120814.zip
Binary files differ
diff --git a/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle b/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle
index d575008eaa3c..d575008eaa3c 100755..100644
--- a/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle
+++ b/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_back.png b/docs/html/design/media/navigation_between_apps_back.png
index d5cd979de774..d5cd979de774 100755..100644
--- a/docs/html/design/media/navigation_between_apps_back.png
+++ b/docs/html/design/media/navigation_between_apps_back.png
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_inward.png b/docs/html/design/media/navigation_between_apps_inward.png
index 7394b1cd9e4c..7394b1cd9e4c 100755..100644
--- a/docs/html/design/media/navigation_between_apps_inward.png
+++ b/docs/html/design/media/navigation_between_apps_inward.png
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_up.png b/docs/html/design/media/navigation_between_apps_up.png
index 99c311204e90..99c311204e90 100755..100644
--- a/docs/html/design/media/navigation_between_apps_up.png
+++ b/docs/html/design/media/navigation_between_apps_up.png
Binary files differ
diff --git a/docs/html/design/media/navigation_between_siblings_market1.png b/docs/html/design/media/navigation_between_siblings_market1.png
index b12a43202ac4..b12a43202ac4 100755..100644
--- a/docs/html/design/media/navigation_between_siblings_market1.png
+++ b/docs/html/design/media/navigation_between_siblings_market1.png
Binary files differ
diff --git a/docs/html/design/media/navigation_between_siblings_market2.png b/docs/html/design/media/navigation_between_siblings_market2.png
index a09d9d7a6e08..a09d9d7a6e08 100755..100644
--- a/docs/html/design/media/navigation_between_siblings_market2.png
+++ b/docs/html/design/media/navigation_between_siblings_market2.png
Binary files differ
diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd
index cfa7a3074e32..cfa7a3074e32 100755..100644
--- a/docs/html/google/play/billing/billing_admin.jd
+++ b/docs/html/google/play/billing/billing_admin.jd
diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd
index 015e7c3d63c2..015e7c3d63c2 100755..100644
--- a/docs/html/google/play/billing/billing_best_practices.jd
+++ b/docs/html/google/play/billing/billing_best_practices.jd
diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd
index 405c58ab7ebd..405c58ab7ebd 100755..100644
--- a/docs/html/google/play/billing/billing_integrate.jd
+++ b/docs/html/google/play/billing/billing_integrate.jd
diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
index aa48fc8195f7..aa48fc8195f7 100755..100644
--- a/docs/html/google/play/billing/billing_overview.jd
+++ b/docs/html/google/play/billing/billing_overview.jd
diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd
index 758e21d7d29f..758e21d7d29f 100755..100644
--- a/docs/html/google/play/billing/billing_reference.jd
+++ b/docs/html/google/play/billing/billing_reference.jd
diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd
index d84814dcce52..d84814dcce52 100755..100644
--- a/docs/html/google/play/billing/billing_testing.jd
+++ b/docs/html/google/play/billing/billing_testing.jd
diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd
index b0d1d13f3776..b0d1d13f3776 100755..100644
--- a/docs/html/google/play/billing/index.jd
+++ b/docs/html/google/play/billing/index.jd
diff --git a/docs/html/google/play/billing/v2/billing_subscriptions.jd b/docs/html/google/play/billing/v2/billing_subscriptions.jd
index 82a662fc84fd..82a662fc84fd 100755..100644
--- a/docs/html/google/play/billing/v2/billing_subscriptions.jd
+++ b/docs/html/google/play/billing/v2/billing_subscriptions.jd
diff --git a/docs/html/guide/appendix/faq/troubleshooting.jd b/docs/html/guide/appendix/faq/troubleshooting.jd
index e3a9e4182c35..e3a9e4182c35 100755..100644
--- a/docs/html/guide/appendix/faq/troubleshooting.jd
+++ b/docs/html/guide/appendix/faq/troubleshooting.jd
diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd
index 810975e1e0df..810975e1e0df 100755..100644
--- a/docs/html/guide/topics/manifest/uses-configuration-element.jd
+++ b/docs/html/guide/topics/manifest/uses-configuration-element.jd
diff --git a/docs/html/guide/topics/resources/localization.jd b/docs/html/guide/topics/resources/localization.jd
index 983aef85dec8..983aef85dec8 100755..100644
--- a/docs/html/guide/topics/resources/localization.jd
+++ b/docs/html/guide/topics/resources/localization.jd
diff --git a/docs/html/guide/topics/resources/resources-i18n.jd b/docs/html/guide/topics/resources/resources-i18n.jd
index e1c96fb58182..e1c96fb58182 100755..100644
--- a/docs/html/guide/topics/resources/resources-i18n.jd
+++ b/docs/html/guide/topics/resources/resources-i18n.jd
diff --git a/docs/html/guide/topics/ui/images/hello-gallery.png b/docs/html/guide/topics/ui/images/hello-gallery.png
index 22d1eaf6d145..22d1eaf6d145 100755..100644
--- a/docs/html/guide/topics/ui/images/hello-gallery.png
+++ b/docs/html/guide/topics/ui/images/hello-gallery.png
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-gridview.png b/docs/html/guide/topics/ui/images/hello-gridview.png
index 2def0df666a4..2def0df666a4 100755..100644
--- a/docs/html/guide/topics/ui/images/hello-gridview.png
+++ b/docs/html/guide/topics/ui/images/hello-gridview.png
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-linearlayout.png b/docs/html/guide/topics/ui/images/hello-linearlayout.png
index dfef819ef9d1..dfef819ef9d1 100755..100644
--- a/docs/html/guide/topics/ui/images/hello-linearlayout.png
+++ b/docs/html/guide/topics/ui/images/hello-linearlayout.png
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-relativelayout.png b/docs/html/guide/topics/ui/images/hello-relativelayout.png
index ec4d9d44b0c6..ec4d9d44b0c6 100755..100644
--- a/docs/html/guide/topics/ui/images/hello-relativelayout.png
+++ b/docs/html/guide/topics/ui/images/hello-relativelayout.png
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-tablelayout.png b/docs/html/guide/topics/ui/images/hello-tablelayout.png
index 3d80e7f8a55a..3d80e7f8a55a 100755..100644
--- a/docs/html/guide/topics/ui/images/hello-tablelayout.png
+++ b/docs/html/guide/topics/ui/images/hello-tablelayout.png
Binary files differ
diff --git a/docs/html/images/billing_check_supported.png b/docs/html/images/billing_check_supported.png
index d661f7f2b3d6..d661f7f2b3d6 100755..100644
--- a/docs/html/images/billing_check_supported.png
+++ b/docs/html/images/billing_check_supported.png
Binary files differ
diff --git a/docs/html/images/billing_checkout_flow.png b/docs/html/images/billing_checkout_flow.png
index 5b446be64322..5b446be64322 100755..100644
--- a/docs/html/images/billing_checkout_flow.png
+++ b/docs/html/images/billing_checkout_flow.png
Binary files differ
diff --git a/docs/html/images/billing_list_form.png b/docs/html/images/billing_list_form.png
index de7ea220b5ac..de7ea220b5ac 100755..100644
--- a/docs/html/images/billing_list_form.png
+++ b/docs/html/images/billing_list_form.png
Binary files differ
diff --git a/docs/html/images/billing_list_form_2.png b/docs/html/images/billing_list_form_2.png
index d321a2068a09..d321a2068a09 100755..100644
--- a/docs/html/images/billing_list_form_2.png
+++ b/docs/html/images/billing_list_form_2.png
Binary files differ
diff --git a/docs/html/images/billing_product_list.png b/docs/html/images/billing_product_list.png
index a89f21b53b35..a89f21b53b35 100755..100644
--- a/docs/html/images/billing_product_list.png
+++ b/docs/html/images/billing_product_list.png
Binary files differ
diff --git a/docs/html/images/billing_product_list_entry.png b/docs/html/images/billing_product_list_entry.png
index df3f9a874952..df3f9a874952 100755..100644
--- a/docs/html/images/billing_product_list_entry.png
+++ b/docs/html/images/billing_product_list_entry.png
Binary files differ
diff --git a/docs/html/images/billing_public_key.png b/docs/html/images/billing_public_key.png
index a0620f882a89..a0620f882a89 100755..100644
--- a/docs/html/images/billing_public_key.png
+++ b/docs/html/images/billing_public_key.png
Binary files differ
diff --git a/docs/html/images/billing_refund.png b/docs/html/images/billing_refund.png
index 09fc33c30aa8..09fc33c30aa8 100755..100644
--- a/docs/html/images/billing_refund.png
+++ b/docs/html/images/billing_refund.png
Binary files differ
diff --git a/docs/html/images/billing_request_purchase.png b/docs/html/images/billing_request_purchase.png
index c84016e8f0a0..c84016e8f0a0 100755..100644
--- a/docs/html/images/billing_request_purchase.png
+++ b/docs/html/images/billing_request_purchase.png
Binary files differ
diff --git a/docs/html/images/billing_restore_transactions.png b/docs/html/images/billing_restore_transactions.png
index 7911304e5079..7911304e5079 100755..100644
--- a/docs/html/images/billing_restore_transactions.png
+++ b/docs/html/images/billing_restore_transactions.png
Binary files differ
diff --git a/docs/html/images/billing_test_flow.png b/docs/html/images/billing_test_flow.png
index 9db8cd94175e..9db8cd94175e 100755..100644
--- a/docs/html/images/billing_test_flow.png
+++ b/docs/html/images/billing_test_flow.png
Binary files differ
diff --git a/docs/html/images/custom_message.png b/docs/html/images/custom_message.png
index 00b763239c40..00b763239c40 100755..100644
--- a/docs/html/images/custom_message.png
+++ b/docs/html/images/custom_message.png
Binary files differ
diff --git a/docs/html/images/custom_toast.png b/docs/html/images/custom_toast.png
index 230625a85005..230625a85005 100755..100644
--- a/docs/html/images/custom_toast.png
+++ b/docs/html/images/custom_toast.png
Binary files differ
diff --git a/docs/html/images/developing/developing_overview.png b/docs/html/images/developing/developing_overview.png
index ab0940712ee1..ab0940712ee1 100755..100644
--- a/docs/html/images/developing/developing_overview.png
+++ b/docs/html/images/developing/developing_overview.png
Binary files differ
diff --git a/docs/html/images/drm_arch.png b/docs/html/images/drm_arch.png
index 1696a97781a2..1696a97781a2 100755..100644
--- a/docs/html/images/drm_arch.png
+++ b/docs/html/images/drm_arch.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/copy_res_files.png b/docs/html/images/hello_l10n/copy_res_files.png
index 9e704b255242..9e704b255242 100755..100644
--- a/docs/html/images/hello_l10n/copy_res_files.png
+++ b/docs/html/images/hello_l10n/copy_res_files.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/custom_locale_app.png b/docs/html/images/hello_l10n/custom_locale_app.png
index f89648ea62b8..f89648ea62b8 100755..100644
--- a/docs/html/images/hello_l10n/custom_locale_app.png
+++ b/docs/html/images/hello_l10n/custom_locale_app.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
index 2cc58c79f962..2cc58c79f962 100755..100644
--- a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
+++ b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
index b441d2e2ae64..b441d2e2ae64 100755..100644
--- a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
+++ b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
index 47a11792c4da..47a11792c4da 100755..100644
--- a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
+++ b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
index b441d2e2ae64..b441d2e2ae64 100755..100644
--- a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
+++ b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
index cdbe85fa90e5..cdbe85fa90e5 100755..100644
--- a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
+++ b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
index 7b93ee97613a..7b93ee97613a 100755..100644
--- a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
+++ b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/flag.png b/docs/html/images/hello_l10n/flag.png
index c2321326e70c..c2321326e70c 100755..100644
--- a/docs/html/images/hello_l10n/flag.png
+++ b/docs/html/images/hello_l10n/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/frenchCA_screenshot.png b/docs/html/images/hello_l10n/frenchCA_screenshot.png
index f8e65176aef9..f8e65176aef9 100755..100644
--- a/docs/html/images/hello_l10n/frenchCA_screenshot.png
+++ b/docs/html/images/hello_l10n/frenchCA_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/germanCH_screenshot.png b/docs/html/images/hello_l10n/germanCH_screenshot.png
index 240104aeeae7..240104aeeae7 100755..100644
--- a/docs/html/images/hello_l10n/germanCH_screenshot.png
+++ b/docs/html/images/hello_l10n/germanCH_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/german_screenshot.png b/docs/html/images/hello_l10n/german_screenshot.png
index 3d1b1979947e..3d1b1979947e 100755..100644
--- a/docs/html/images/hello_l10n/german_screenshot.png
+++ b/docs/html/images/hello_l10n/german_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/japanese_screenshot.png b/docs/html/images/hello_l10n/japanese_screenshot.png
index e1ffbf911d35..e1ffbf911d35 100755..100644
--- a/docs/html/images/hello_l10n/japanese_screenshot.png
+++ b/docs/html/images/hello_l10n/japanese_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_project.png b/docs/html/images/hello_l10n/nonlocalized_project.png
index 8df9a060ee7f..8df9a060ee7f 100755..100644
--- a/docs/html/images/hello_l10n/nonlocalized_project.png
+++ b/docs/html/images/hello_l10n/nonlocalized_project.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
index 02ace4b58a31..02ace4b58a31 100755..100644
--- a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
+++ b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
index e5a771b91be6..e5a771b91be6 100755..100644
--- a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
+++ b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/plain_project.png b/docs/html/images/hello_l10n/plain_project.png
index f3c2b576e565..f3c2b576e565 100755..100644
--- a/docs/html/images/hello_l10n/plain_project.png
+++ b/docs/html/images/hello_l10n/plain_project.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/romanshCH_screenshot.png b/docs/html/images/hello_l10n/romanshCH_screenshot.png
index a3fd1941298f..a3fd1941298f 100755..100644
--- a/docs/html/images/hello_l10n/romanshCH_screenshot.png
+++ b/docs/html/images/hello_l10n/romanshCH_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/using_custom_locale.png b/docs/html/images/hello_l10n/using_custom_locale.png
index 61b4c055bff8..61b4c055bff8 100755..100644
--- a/docs/html/images/hello_l10n/using_custom_locale.png
+++ b/docs/html/images/hello_l10n/using_custom_locale.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png b/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png
index f72554da657f..f72554da657f 100755..100644
--- a/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png
+++ b/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_wizard1.png b/docs/html/images/hello_l10n/xml_wizard1.png
index 35dc09fbb961..35dc09fbb961 100755..100644
--- a/docs/html/images/hello_l10n/xml_wizard1.png
+++ b/docs/html/images/hello_l10n/xml_wizard1.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_wizard2.png b/docs/html/images/hello_l10n/xml_wizard2.png
index 6bcd28b4e154..6bcd28b4e154 100755..100644
--- a/docs/html/images/hello_l10n/xml_wizard2.png
+++ b/docs/html/images/hello_l10n/xml_wizard2.png
Binary files differ
diff --git a/docs/html/images/jet/jc_audition_wnd.png b/docs/html/images/jet/jc_audition_wnd.png
index 43f0fb1043af..43f0fb1043af 100755..100644
--- a/docs/html/images/jet/jc_audition_wnd.png
+++ b/docs/html/images/jet/jc_audition_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_event_wnd.png b/docs/html/images/jet/jc_event_wnd.png
index 807797e871b9..807797e871b9 100755..100644
--- a/docs/html/images/jet/jc_event_wnd.png
+++ b/docs/html/images/jet/jc_event_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_main_wnd.png b/docs/html/images/jet/jc_main_wnd.png
index 29c47ec0c09c..29c47ec0c09c 100755..100644
--- a/docs/html/images/jet/jc_main_wnd.png
+++ b/docs/html/images/jet/jc_main_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_moveseg_wnd.png b/docs/html/images/jet/jc_moveseg_wnd.png
index 690dcadeb10f..690dcadeb10f 100755..100644
--- a/docs/html/images/jet/jc_moveseg_wnd.png
+++ b/docs/html/images/jet/jc_moveseg_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_open_dlg.png b/docs/html/images/jet/jc_open_dlg.png
index 0d5a14d230b1..0d5a14d230b1 100755..100644
--- a/docs/html/images/jet/jc_open_dlg.png
+++ b/docs/html/images/jet/jc_open_dlg.png
Binary files differ
diff --git a/docs/html/images/jet/jc_rep_wnd.png b/docs/html/images/jet/jc_rep_wnd.png
index ca200d1cbcf4..ca200d1cbcf4 100755..100644
--- a/docs/html/images/jet/jc_rep_wnd.png
+++ b/docs/html/images/jet/jc_rep_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_repseg_wnd.png b/docs/html/images/jet/jc_repseg_wnd.png
index 786790213486..786790213486 100755..100644
--- a/docs/html/images/jet/jc_repseg_wnd.png
+++ b/docs/html/images/jet/jc_repseg_wnd.png
Binary files differ
diff --git a/docs/html/images/jet/jc_seg_wnd.png b/docs/html/images/jet/jc_seg_wnd.png
index b0434d778d9b..b0434d778d9b 100755..100644
--- a/docs/html/images/jet/jc_seg_wnd.png
+++ b/docs/html/images/jet/jc_seg_wnd.png
Binary files differ
diff --git a/docs/html/images/notifications_window.png b/docs/html/images/notifications_window.png
index 78e0c8a52f23..78e0c8a52f23 100755..100644
--- a/docs/html/images/notifications_window.png
+++ b/docs/html/images/notifications_window.png
Binary files differ
diff --git a/docs/html/images/options_menu.png b/docs/html/images/options_menu.png
index 6c499069ed76..6c499069ed76 100755..100644
--- a/docs/html/images/options_menu.png
+++ b/docs/html/images/options_menu.png
Binary files differ
diff --git a/docs/html/images/publishing/publishing_android_market.png b/docs/html/images/publishing/publishing_android_market.png
index aa591efb70c3..aa591efb70c3 100755..100644
--- a/docs/html/images/publishing/publishing_android_market.png
+++ b/docs/html/images/publishing/publishing_android_market.png
Binary files differ
diff --git a/docs/html/images/publishing/publishing_overview.png b/docs/html/images/publishing/publishing_overview.png
index 0d88b4f6a061..0d88b4f6a061 100755..100644
--- a/docs/html/images/publishing/publishing_overview.png
+++ b/docs/html/images/publishing/publishing_overview.png
Binary files differ
diff --git a/docs/html/images/publishing/publishing_overview_prep.png b/docs/html/images/publishing/publishing_overview_prep.png
index 7a300f41d9b2..7a300f41d9b2 100755..100644
--- a/docs/html/images/publishing/publishing_overview_prep.png
+++ b/docs/html/images/publishing/publishing_overview_prep.png
Binary files differ
diff --git a/docs/html/images/publishing/publishing_preparing.png b/docs/html/images/publishing/publishing_preparing.png
index 40c0ac6ac985..40c0ac6ac985 100755..100644
--- a/docs/html/images/publishing/publishing_preparing.png
+++ b/docs/html/images/publishing/publishing_preparing.png
Binary files differ
diff --git a/docs/html/images/publishing/publishing_via_email.png b/docs/html/images/publishing/publishing_via_email.png
index d367747230b4..d367747230b4 100755..100644
--- a/docs/html/images/publishing/publishing_via_email.png
+++ b/docs/html/images/publishing/publishing_via_email.png
Binary files differ
diff --git a/docs/html/images/radio_buttons.png b/docs/html/images/radio_buttons.png
index 415ccca701a7..415ccca701a7 100755..100644
--- a/docs/html/images/radio_buttons.png
+++ b/docs/html/images/radio_buttons.png
Binary files differ
diff --git a/docs/html/images/resources/arrow.png b/docs/html/images/resources/arrow.png
index 78ad5421b97a..78ad5421b97a 100755..100644
--- a/docs/html/images/resources/arrow.png
+++ b/docs/html/images/resources/arrow.png
Binary files differ
diff --git a/docs/html/images/resources/right-arrow.png b/docs/html/images/resources/right-arrow.png
index 092f029a7ab1..092f029a7ab1 100755..100644
--- a/docs/html/images/resources/right-arrow.png
+++ b/docs/html/images/resources/right-arrow.png
Binary files differ
diff --git a/docs/html/images/status_bar.png b/docs/html/images/status_bar.png
index 420bb03be861..420bb03be861 100755..100644
--- a/docs/html/images/status_bar.png
+++ b/docs/html/images/status_bar.png
Binary files differ
diff --git a/docs/html/images/testing/android_test_framework.png b/docs/html/images/testing/android_test_framework.png
index 459975c06c12..459975c06c12 100755..100644
--- a/docs/html/images/testing/android_test_framework.png
+++ b/docs/html/images/testing/android_test_framework.png
Binary files differ
diff --git a/docs/html/images/training/ads-close-to-button.png b/docs/html/images/training/ads-close-to-button.png
index fcb65aa41a45..fcb65aa41a45 100755..100644
--- a/docs/html/images/training/ads-close-to-button.png
+++ b/docs/html/images/training/ads-close-to-button.png
Binary files differ
diff --git a/docs/html/images/training/ads-cover-content.png b/docs/html/images/training/ads-cover-content.png
index f284d65881b7..f284d65881b7 100755..100644
--- a/docs/html/images/training/ads-cover-content.png
+++ b/docs/html/images/training/ads-cover-content.png
Binary files differ
diff --git a/docs/html/images/training/ads-eclipse-build-path.png b/docs/html/images/training/ads-eclipse-build-path.png
index fe720fd3adfa..fe720fd3adfa 100755..100644
--- a/docs/html/images/training/ads-eclipse-build-path.png
+++ b/docs/html/images/training/ads-eclipse-build-path.png
Binary files differ
diff --git a/docs/html/images/training/ads-top-banner.png b/docs/html/images/training/ads-top-banner.png
index 8dffe8d2a43e..8dffe8d2a43e 100755..100644
--- a/docs/html/images/training/ads-top-banner.png
+++ b/docs/html/images/training/ads-top-banner.png
Binary files differ
diff --git a/docs/html/images/training/button.png b/docs/html/images/training/button.png
index 1a7944fc4c9e..1a7944fc4c9e 100755..100644
--- a/docs/html/images/training/button.png
+++ b/docs/html/images/training/button.png
Binary files differ
diff --git a/docs/html/images/training/button_with_marks.png b/docs/html/images/training/button_with_marks.png
index 06e0720a805d..06e0720a805d 100755..100644
--- a/docs/html/images/training/button_with_marks.png
+++ b/docs/html/images/training/button_with_marks.png
Binary files differ
diff --git a/docs/html/images/training/buttons_stretched.png b/docs/html/images/training/buttons_stretched.png
index bb6741997622..bb6741997622 100755..100644
--- a/docs/html/images/training/buttons_stretched.png
+++ b/docs/html/images/training/buttons_stretched.png
Binary files differ
diff --git a/docs/html/images/training/cool-places.png b/docs/html/images/training/cool-places.png
index 769b5b7daf2c..769b5b7daf2c 100755..100644
--- a/docs/html/images/training/cool-places.png
+++ b/docs/html/images/training/cool-places.png
Binary files differ
diff --git a/docs/html/images/training/device-mgmt-activate-device-admin.png b/docs/html/images/training/device-mgmt-activate-device-admin.png
index 1be1831e39c1..1be1831e39c1 100755..100644
--- a/docs/html/images/training/device-mgmt-activate-device-admin.png
+++ b/docs/html/images/training/device-mgmt-activate-device-admin.png
Binary files differ
diff --git a/docs/html/images/training/panoramio-grid.png b/docs/html/images/training/panoramio-grid.png
index 45c0eb5e548d..45c0eb5e548d 100755..100644
--- a/docs/html/images/training/panoramio-grid.png
+++ b/docs/html/images/training/panoramio-grid.png
Binary files differ
diff --git a/docs/html/images/ui/clipboard/copy_paste_framework.png b/docs/html/images/ui/clipboard/copy_paste_framework.png
index 57facaab9018..57facaab9018 100755..100644
--- a/docs/html/images/ui/clipboard/copy_paste_framework.png
+++ b/docs/html/images/ui/clipboard/copy_paste_framework.png
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo2.png b/docs/html/resources/images/KeyChainDemo2.png
index e181e5877a5e..e181e5877a5e 100755..100644
--- a/docs/html/resources/images/KeyChainDemo2.png
+++ b/docs/html/resources/images/KeyChainDemo2.png
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo3.png b/docs/html/resources/images/KeyChainDemo3.png
index acfdd89f1a07..acfdd89f1a07 100755..100644
--- a/docs/html/resources/images/KeyChainDemo3.png
+++ b/docs/html/resources/images/KeyChainDemo3.png
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo4.png b/docs/html/resources/images/KeyChainDemo4.png
index a9101abaee61..a9101abaee61 100755..100644
--- a/docs/html/resources/images/KeyChainDemo4.png
+++ b/docs/html/resources/images/KeyChainDemo4.png
Binary files differ
diff --git a/docs/html/resources/images/SipDemo.png b/docs/html/resources/images/SipDemo.png
index 999bea944719..999bea944719 100755..100644
--- a/docs/html/resources/images/SipDemo.png
+++ b/docs/html/resources/images/SipDemo.png
Binary files differ
diff --git a/docs/html/resources/images/vpn-confirmation.png b/docs/html/resources/images/vpn-confirmation.png
index ae2e58332089..ae2e58332089 100755..100644
--- a/docs/html/resources/images/vpn-confirmation.png
+++ b/docs/html/resources/images/vpn-confirmation.png
Binary files differ
diff --git a/docs/html/tools/publishing/publishing_overview.jd b/docs/html/tools/publishing/publishing_overview.jd
index ea01e20530a2..ea01e20530a2 100755..100644
--- a/docs/html/tools/publishing/publishing_overview.jd
+++ b/docs/html/tools/publishing/publishing_overview.jd
diff --git a/docs/html/tools/testing/testing_android.jd b/docs/html/tools/testing/testing_android.jd
index acf5ec2ef1eb..acf5ec2ef1eb 100755..100644
--- a/docs/html/tools/testing/testing_android.jd
+++ b/docs/html/tools/testing/testing_android.jd
diff --git a/docs/html/tools/workflow/publishing/publishing_overview.jd b/docs/html/tools/workflow/publishing/publishing_overview.jd
index a1973c90d90a..a1973c90d90a 100755..100644
--- a/docs/html/tools/workflow/publishing/publishing_overview.jd
+++ b/docs/html/tools/workflow/publishing/publishing_overview.jd
diff --git a/docs/html/tools/workflow/publishing_overview.jd b/docs/html/tools/workflow/publishing_overview.jd
index a1973c90d90a..a1973c90d90a 100755..100644
--- a/docs/html/tools/workflow/publishing_overview.jd
+++ b/docs/html/tools/workflow/publishing_overview.jd
diff --git a/docs/html/training/basics/activity-lifecycle/recreating.jd b/docs/html/training/basics/activity-lifecycle/recreating.jd
index 1b88e199b30c..1a65e71f98dd 100644
--- a/docs/html/training/basics/activity-lifecycle/recreating.jd
+++ b/docs/html/training/basics/activity-lifecycle/recreating.jd
@@ -39,7 +39,7 @@ resources so the system must shut down background processes to recover memory.</
<p>When your activity is destroyed because the user presses <em>Back</em> or the activity finishes
itself, the system's concept of that {@link android.app.Activity} instance is gone forever because
the behavior indicates the activity is no longer needed. However, if the system destroys
-the activity due to system constraints (rather than normal app behavior), then althought the actual
+the activity due to system constraints (rather than normal app behavior), then although the actual
{@link android.app.Activity} instance is gone, the system remembers that it existed such that if
the user navigates back to it, the system creates a new instance of the activity using a set of
saved data that describes the state of the activity when it was destroyed. The saved data that the
diff --git a/docs/image_sources/fundamentals/fragments.graffle b/docs/image_sources/fundamentals/fragments.graffle
index c14282bc491d..c14282bc491d 100755..100644
--- a/docs/image_sources/fundamentals/fragments.graffle
+++ b/docs/image_sources/fundamentals/fragments.graffle
diff --git a/drm/java/android/drm/DrmConvertedStatus.java b/drm/java/android/drm/DrmConvertedStatus.java
index f6e570a76af0..f6e570a76af0 100755..100644
--- a/drm/java/android/drm/DrmConvertedStatus.java
+++ b/drm/java/android/drm/DrmConvertedStatus.java
diff --git a/drm/java/android/drm/DrmErrorEvent.java b/drm/java/android/drm/DrmErrorEvent.java
index c61819dacd99..c61819dacd99 100755..100644
--- a/drm/java/android/drm/DrmErrorEvent.java
+++ b/drm/java/android/drm/DrmErrorEvent.java
diff --git a/drm/java/android/drm/DrmEvent.java b/drm/java/android/drm/DrmEvent.java
index 1a19f5c62b94..1a19f5c62b94 100755..100644
--- a/drm/java/android/drm/DrmEvent.java
+++ b/drm/java/android/drm/DrmEvent.java
diff --git a/drm/java/android/drm/DrmInfo.java b/drm/java/android/drm/DrmInfo.java
index 22d06c7bd20e..22d06c7bd20e 100755..100644
--- a/drm/java/android/drm/DrmInfo.java
+++ b/drm/java/android/drm/DrmInfo.java
diff --git a/drm/java/android/drm/DrmInfoEvent.java b/drm/java/android/drm/DrmInfoEvent.java
index 2826dcee4f67..2826dcee4f67 100755..100644
--- a/drm/java/android/drm/DrmInfoEvent.java
+++ b/drm/java/android/drm/DrmInfoEvent.java
diff --git a/drm/java/android/drm/DrmInfoRequest.java b/drm/java/android/drm/DrmInfoRequest.java
index 621da413bf97..621da413bf97 100755..100644
--- a/drm/java/android/drm/DrmInfoRequest.java
+++ b/drm/java/android/drm/DrmInfoRequest.java
diff --git a/drm/java/android/drm/DrmInfoStatus.java b/drm/java/android/drm/DrmInfoStatus.java
index 9a3a7df66185..9a3a7df66185 100755..100644
--- a/drm/java/android/drm/DrmInfoStatus.java
+++ b/drm/java/android/drm/DrmInfoStatus.java
diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java
index 2907f10fda61..2907f10fda61 100755..100644
--- a/drm/java/android/drm/DrmManagerClient.java
+++ b/drm/java/android/drm/DrmManagerClient.java
diff --git a/drm/java/android/drm/DrmRights.java b/drm/java/android/drm/DrmRights.java
index a9b4f0575bf1..a9b4f0575bf1 100755..100644
--- a/drm/java/android/drm/DrmRights.java
+++ b/drm/java/android/drm/DrmRights.java
diff --git a/drm/java/android/drm/DrmStore.java b/drm/java/android/drm/DrmStore.java
index 3a77ea19a19b..3a77ea19a19b 100755..100644
--- a/drm/java/android/drm/DrmStore.java
+++ b/drm/java/android/drm/DrmStore.java
diff --git a/drm/java/android/drm/DrmSupportInfo.java b/drm/java/android/drm/DrmSupportInfo.java
index 3694ff4304c4..3694ff4304c4 100755..100644
--- a/drm/java/android/drm/DrmSupportInfo.java
+++ b/drm/java/android/drm/DrmSupportInfo.java
diff --git a/drm/java/android/drm/DrmUtils.java b/drm/java/android/drm/DrmUtils.java
index 4f7cb224fd65..4f7cb224fd65 100755..100644
--- a/drm/java/android/drm/DrmUtils.java
+++ b/drm/java/android/drm/DrmUtils.java
diff --git a/drm/java/android/drm/ProcessedData.java b/drm/java/android/drm/ProcessedData.java
index 06e03e73be91..06e03e73be91 100755..100644
--- a/drm/java/android/drm/ProcessedData.java
+++ b/drm/java/android/drm/ProcessedData.java
diff --git a/drm/java/android/drm/package.html b/drm/java/android/drm/package.html
index 161d6e0bd1bf..161d6e0bd1bf 100755..100644
--- a/drm/java/android/drm/package.html
+++ b/drm/java/android/drm/package.html
diff --git a/graphics/java/android/graphics/Bitmap.aidl b/graphics/java/android/graphics/Bitmap.aidl
index ce97b955ee9a..ce97b955ee9a 100755..100644
--- a/graphics/java/android/graphics/Bitmap.aidl
+++ b/graphics/java/android/graphics/Bitmap.aidl
diff --git a/include/androidfw/KeycodeLabels.h b/include/androidfw/KeycodeLabels.h
index 538949d5bc6c..538949d5bc6c 100755..100644
--- a/include/androidfw/KeycodeLabels.h
+++ b/include/androidfw/KeycodeLabels.h
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index 4637991af134..44be8042c58d 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -16,17 +16,9 @@
package android.security;
-import android.net.LocalSocketAddress;
-import android.net.LocalSocket;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UTFDataFormatException;
-import java.nio.charset.Charsets;
-import java.nio.charset.ModifiedUtf8;
-import java.util.ArrayList;
-import java.util.Date;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.util.Log;
/**
* @hide This should not be made public in its present form because it
@@ -34,6 +26,7 @@ import java.util.Date;
* preclude the use of hardware crypto.
*/
public class KeyStore {
+ private static final String TAG = "KeyStore";
// ResponseCodes
public static final int NO_ERROR = 1;
@@ -50,20 +43,30 @@ public class KeyStore {
// States
public enum State { UNLOCKED, LOCKED, UNINITIALIZED };
- private static final LocalSocketAddress sAddress = new LocalSocketAddress(
- "keystore", LocalSocketAddress.Namespace.RESERVED);
-
private int mError = NO_ERROR;
- private KeyStore() {}
+ private final IKeystoreService mBinder;
+
+ private KeyStore(IKeystoreService binder) {
+ mBinder = binder;
+ }
public static KeyStore getInstance() {
- return new KeyStore();
+ IKeystoreService keystore = IKeystoreService.Stub.asInterface(ServiceManager
+ .getService("android.security.keystore"));
+ return new KeyStore(keystore);
}
public State state() {
- execute('t');
- switch (mError) {
+ final int ret;
+ try {
+ ret = mBinder.test();
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ throw new AssertionError(e);
+ }
+
+ switch (ret) {
case NO_ERROR: return State.UNLOCKED;
case LOCKED: return State.LOCKED;
case UNINITIALIZED: return State.UNINITIALIZED;
@@ -71,171 +74,167 @@ public class KeyStore {
}
}
- private byte[] get(byte[] key) {
- ArrayList<byte[]> values = execute('g', key);
- return (values == null || values.isEmpty()) ? null : values.get(0);
- }
-
public byte[] get(String key) {
- return get(getKeyBytes(key));
- }
-
- private boolean put(byte[] key, byte[] value) {
- execute('i', key, value);
- return mError == NO_ERROR;
+ try {
+ return mBinder.get(key);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return null;
+ }
}
public boolean put(String key, byte[] value) {
- return put(getKeyBytes(key), value);
- }
-
- private boolean delete(byte[] key) {
- execute('d', key);
- return mError == NO_ERROR;
+ try {
+ return mBinder.insert(key, value) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean delete(String key) {
- return delete(getKeyBytes(key));
- }
-
- private boolean contains(byte[] key) {
- execute('e', key);
- return mError == NO_ERROR;
+ try {
+ return mBinder.del(key) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean contains(String key) {
- return contains(getKeyBytes(key));
- }
-
- public byte[][] saw(byte[] prefix) {
- ArrayList<byte[]> values = execute('s', prefix);
- return (values == null) ? null : values.toArray(new byte[values.size()][]);
+ try {
+ return mBinder.exist(key) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public String[] saw(String prefix) {
- byte[][] values = saw(getKeyBytes(prefix));
- if (values == null) {
+ try {
+ return mBinder.saw(prefix);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
return null;
}
- String[] strings = new String[values.length];
- for (int i = 0; i < values.length; ++i) {
- strings[i] = toKeyString(values[i]);
- }
- return strings;
}
public boolean reset() {
- execute('r');
- return mError == NO_ERROR;
- }
-
- private boolean password(byte[] password) {
- execute('p', password);
- return mError == NO_ERROR;
+ try {
+ return mBinder.reset() == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean password(String password) {
- return password(getPasswordBytes(password));
+ try {
+ return mBinder.password(password) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean lock() {
- execute('l');
- return mError == NO_ERROR;
- }
-
- private boolean unlock(byte[] password) {
- execute('u', password);
- return mError == NO_ERROR;
+ try {
+ return mBinder.lock() == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean unlock(String password) {
- return unlock(getPasswordBytes(password));
+ try {
+ mError = mBinder.unlock(password);
+ return mError == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean isEmpty() {
- execute('z');
- return mError == KEY_NOT_FOUND;
- }
-
- private boolean generate(byte[] key) {
- execute('a', key);
- return mError == NO_ERROR;
+ try {
+ return mBinder.zero() == KEY_NOT_FOUND;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean generate(String key) {
- return generate(getKeyBytes(key));
- }
-
- private boolean importKey(byte[] keyName, byte[] key) {
- execute('m', keyName, key);
- return mError == NO_ERROR;
+ try {
+ return mBinder.generate(key) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean importKey(String keyName, byte[] key) {
- return importKey(getKeyBytes(keyName), key);
- }
-
- private byte[] getPubkey(byte[] key) {
- ArrayList<byte[]> values = execute('b', key);
- return (values == null || values.isEmpty()) ? null : values.get(0);
+ try {
+ return mBinder.import_key(keyName, key) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public byte[] getPubkey(String key) {
- return getPubkey(getKeyBytes(key));
- }
-
- private boolean delKey(byte[] key) {
- execute('k', key);
- return mError == NO_ERROR;
+ try {
+ return mBinder.get_pubkey(key);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return null;
+ }
}
public boolean delKey(String key) {
- return delKey(getKeyBytes(key));
- }
-
- private byte[] sign(byte[] keyName, byte[] data) {
- final ArrayList<byte[]> values = execute('n', keyName, data);
- return (values == null || values.isEmpty()) ? null : values.get(0);
+ try {
+ return mBinder.del_key(key) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public byte[] sign(String key, byte[] data) {
- return sign(getKeyBytes(key), data);
- }
-
- private boolean verify(byte[] keyName, byte[] data, byte[] signature) {
- execute('v', keyName, data, signature);
- return mError == NO_ERROR;
+ try {
+ return mBinder.sign(key, data);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return null;
+ }
}
public boolean verify(String key, byte[] data, byte[] signature) {
- return verify(getKeyBytes(key), data, signature);
- }
-
- private boolean grant(byte[] key, byte[] uid) {
- execute('x', key, uid);
- return mError == NO_ERROR;
+ try {
+ return mBinder.verify(key, data, signature) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean grant(String key, int uid) {
- return grant(getKeyBytes(key), getUidBytes(uid));
- }
-
- private boolean ungrant(byte[] key, byte[] uid) {
- execute('y', key, uid);
- return mError == NO_ERROR;
+ try {
+ return mBinder.grant(key, uid) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
+ }
}
public boolean ungrant(String key, int uid) {
- return ungrant(getKeyBytes(key), getUidBytes(uid));
- }
-
- private long getmtime(byte[] key) {
- final ArrayList<byte[]> values = execute('c', key);
- if (values == null || values.isEmpty()) {
- return -1L;
+ try {
+ return mBinder.ungrant(key, uid) == NO_ERROR;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return false;
}
-
- return Long.parseLong(new String(values.get(0))) * 1000L;
}
/**
@@ -243,101 +242,15 @@ public class KeyStore {
* epoch. Will return -1L if the key could not be found or other error.
*/
public long getmtime(String key) {
- return getmtime(getKeyBytes(key));
- }
-
- public int getLastError() {
- return mError;
- }
-
- private ArrayList<byte[]> execute(int code, byte[]... parameters) {
- mError = PROTOCOL_ERROR;
-
- for (byte[] parameter : parameters) {
- if (parameter == null || parameter.length > 65535) {
- return null;
- }
- }
-
- LocalSocket socket = new LocalSocket();
- try {
- socket.connect(sAddress);
-
- OutputStream out = socket.getOutputStream();
- out.write(code);
- for (byte[] parameter : parameters) {
- out.write(parameter.length >> 8);
- out.write(parameter.length);
- out.write(parameter);
- }
- out.flush();
- socket.shutdownOutput();
-
- InputStream in = socket.getInputStream();
- if ((code = in.read()) != NO_ERROR) {
- if (code != -1) {
- mError = code;
- }
- return null;
- }
-
- ArrayList<byte[]> values = new ArrayList<byte[]>();
- while (true) {
- int i, j;
- if ((i = in.read()) == -1) {
- break;
- }
- if ((j = in.read()) == -1) {
- return null;
- }
- byte[] value = new byte[i << 8 | j];
- for (i = 0; i < value.length; i += j) {
- if ((j = in.read(value, i, value.length - i)) == -1) {
- return null;
- }
- }
- values.add(value);
- }
- mError = NO_ERROR;
- return values;
- } catch (IOException e) {
- // ignore
- } finally {
- try {
- socket.close();
- } catch (IOException e) {}
- }
- return null;
- }
-
- /**
- * ModifiedUtf8 is used for key encoding to match the
- * implementation of NativeCrypto.ENGINE_load_private_key.
- */
- private static byte[] getKeyBytes(String string) {
try {
- int utfCount = (int) ModifiedUtf8.countBytes(string, false);
- byte[] result = new byte[utfCount];
- ModifiedUtf8.encode(result, 0, string);
- return result;
- } catch (UTFDataFormatException e) {
- throw new RuntimeException(e);
- }
- }
-
- private static String toKeyString(byte[] bytes) {
- try {
- return ModifiedUtf8.decode(bytes, new char[bytes.length], 0, bytes.length);
- } catch (UTFDataFormatException e) {
- throw new RuntimeException(e);
+ return mBinder.getmtime(key);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Cannot connect to keystore", e);
+ return -1L;
}
}
- private static byte[] getPasswordBytes(String password) {
- return password.getBytes(Charsets.UTF_8);
- }
-
- private static byte[] getUidBytes(int uid) {
- return Integer.toString(uid).getBytes(Charsets.UTF_8);
+ public int getLastError() {
+ return mError;
}
}
diff --git a/keystore/tests/src/android/security/KeyStoreTest.java b/keystore/tests/src/android/security/KeyStoreTest.java
index 07a2d7b9a828..07a2d7b9a828 100755..100644
--- a/keystore/tests/src/android/security/KeyStoreTest.java
+++ b/keystore/tests/src/android/security/KeyStoreTest.java
diff --git a/libs/androidfw/BackupHelpers.cpp b/libs/androidfw/BackupHelpers.cpp
index 7a817a78995a..dcf41b70d792 100644
--- a/libs/androidfw/BackupHelpers.cpp
+++ b/libs/androidfw/BackupHelpers.cpp
@@ -710,7 +710,7 @@ int write_tarfile(const String8& packageName, const String8& domain,
}
cleanup:
- delete [] buf;
+ free(buf);
done:
close(fd);
return err;
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index dfef47e9cafd..a7300652077b 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -506,10 +506,6 @@ status_t ResStringPool::getError() const
void ResStringPool::uninit()
{
mError = NO_INIT;
- if (mOwnedData) {
- free(mOwnedData);
- mOwnedData = NULL;
- }
if (mHeader != NULL && mCache != NULL) {
for (size_t x = 0; x < mHeader->stringCount; x++) {
if (mCache[x] != NULL) {
@@ -520,6 +516,10 @@ void ResStringPool::uninit()
free(mCache);
mCache = NULL;
}
+ if (mOwnedData) {
+ free(mOwnedData);
+ mOwnedData = NULL;
+ }
}
/**
@@ -1209,6 +1209,10 @@ status_t ResXMLTree::setTo(const void* data, size_t size, bool copyData)
uninit();
mEventCode = START_DOCUMENT;
+ if (!data || !size) {
+ return (mError=BAD_TYPE);
+ }
+
if (copyData) {
mOwnedData = malloc(size);
if (mOwnedData == NULL) {
diff --git a/libs/androidfw/tests/Android.mk b/libs/androidfw/tests/Android.mk
index 39009b8ea3ba..4ae23ec33dfb 100644
--- a/libs/androidfw/tests/Android.mk
+++ b/libs/androidfw/tests/Android.mk
@@ -10,36 +10,25 @@ test_src_files := \
ObbFile_test.cpp
shared_libraries := \
- libandroidfw \
- libcutils \
- libutils \
- libbinder \
- libui \
- libstlport \
- libskia
+ libandroidfw \
+ libcutils \
+ libutils \
+ libbinder \
+ libui \
+ libstlport \
+ libskia
static_libraries := \
- libgtest \
- libgtest_main
-
-c_includes := \
- bionic \
- bionic/libstdc++/include \
- external/gtest/include \
- external/stlport/stlport \
- external/skia/include/core
-
-module_tags := eng tests
+ libgtest \
+ libgtest_main
$(foreach file,$(test_src_files), \
$(eval include $(CLEAR_VARS)) \
$(eval LOCAL_SHARED_LIBRARIES := $(shared_libraries)) \
$(eval LOCAL_STATIC_LIBRARIES := $(static_libraries)) \
- $(eval LOCAL_C_INCLUDES := $(c_includes)) \
$(eval LOCAL_SRC_FILES := $(file)) \
$(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \
- $(eval LOCAL_MODULE_TAGS := $(module_tags)) \
- $(eval include $(BUILD_EXECUTABLE)) \
+ $(eval include $(BUILD_NATIVE_TEST)) \
)
# Build the manual test programs.
diff --git a/libs/androidfw/tests/InputEvent_test.cpp b/libs/androidfw/tests/InputEvent_test.cpp
index ac5549cdd6dd..e9164d17c245 100644
--- a/libs/androidfw/tests/InputEvent_test.cpp
+++ b/libs/androidfw/tests/InputEvent_test.cpp
@@ -19,7 +19,7 @@
#include <binder/Parcel.h>
#include <math.h>
-#include <SkMatrix.h>
+#include <core/SkMatrix.h>
namespace android {
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 4e97c8862d7f..47784a41dcae 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -45,10 +45,10 @@ FontRenderer::FontRenderer() {
mInitialized = false;
mMaxNumberOfQuads = 1024;
mCurrentQuadIndex = 0;
+ mLastQuadIndex = 0;
mTextMesh = NULL;
mCurrentCacheTexture = NULL;
- mLastCacheTexture = NULL;
mLinearFiltering = false;
@@ -116,7 +116,6 @@ FontRenderer::~FontRenderer() {
void FontRenderer::flushAllAndInvalidate() {
if (mCurrentQuadIndex != 0) {
issueDrawCommand();
- mCurrentQuadIndex = 0;
}
for (uint32_t i = 0; i < mActiveFonts.size(); i++) {
@@ -320,8 +319,17 @@ void FontRenderer::checkInit() {
mInitialized = true;
}
+void FontRenderer::updateDrawParams() {
+ if (mCurrentQuadIndex != mLastQuadIndex) {
+ mDrawOffsets.add((uint16_t*)(mLastQuadIndex * sizeof(uint16_t) * 6));
+ mDrawCounts.add(mCurrentQuadIndex - mLastQuadIndex);
+ mDrawCacheTextures.add(mCurrentCacheTexture);
+ mLastQuadIndex = mCurrentQuadIndex;
+ }
+}
+
void FontRenderer::checkTextureUpdate() {
- if (!mUploadTexture && mLastCacheTexture == mCurrentCacheTexture) {
+ if (!mUploadTexture) {
return;
}
@@ -355,16 +363,11 @@ void FontRenderer::checkTextureUpdate() {
}
}
- caches.activeTexture(0);
- glBindTexture(GL_TEXTURE_2D, mCurrentCacheTexture->getTextureId());
-
- mCurrentCacheTexture->setLinearFiltering(mLinearFiltering, false);
- mLastCacheTexture = mCurrentCacheTexture;
-
mUploadTexture = false;
}
void FontRenderer::issueDrawCommand() {
+ updateDrawParams();
checkTextureUpdate();
Caches& caches = Caches::getInstance();
@@ -378,20 +381,33 @@ void FontRenderer::issueDrawCommand() {
caches.bindTexCoordsVertexPointer(force, buffer + offset);
}
- glDrawElements(GL_TRIANGLES, mCurrentQuadIndex * 6, GL_UNSIGNED_SHORT, NULL);
+ for (uint32_t i = 0; i < mDrawOffsets.size(); i++) {
+ uint16_t* offset = mDrawOffsets[i];
+ uint32_t count = mDrawCounts[i];
+ CacheTexture* texture = mDrawCacheTextures[i];
+
+ caches.activeTexture(0);
+ glBindTexture(GL_TEXTURE_2D, texture->getTextureId());
+
+ texture->setLinearFiltering(mLinearFiltering, false);
+
+ glDrawElements(GL_TRIANGLES, count * 6, GL_UNSIGNED_SHORT, offset);
+ }
mDrawn = true;
+
+ mCurrentQuadIndex = 0;
+ mLastQuadIndex = 0;
+ mDrawOffsets.clear();
+ mDrawCounts.clear();
+ mDrawCacheTextures.clear();
}
void FontRenderer::appendMeshQuadNoClip(float x1, float y1, float u1, float v1,
float x2, float y2, float u2, float v2, float x3, float y3, float u3, float v3,
float x4, float y4, float u4, float v4, CacheTexture* texture) {
if (texture != mCurrentCacheTexture) {
- if (mCurrentQuadIndex != 0) {
- // First, draw everything stored already which uses the previous texture
- issueDrawCommand();
- mCurrentQuadIndex = 0;
- }
+ updateDrawParams();
// Now use the new texture id
mCurrentCacheTexture = texture;
}
@@ -443,7 +459,6 @@ void FontRenderer::appendMeshQuad(float x1, float y1, float u1, float v1,
if (mCurrentQuadIndex == mMaxNumberOfQuads) {
issueDrawCommand();
- mCurrentQuadIndex = 0;
}
}
@@ -462,7 +477,6 @@ void FontRenderer::appendRotatedMeshQuad(float x1, float y1, float u1, float v1,
if (mCurrentQuadIndex == mMaxNumberOfQuads) {
issueDrawCommand();
- mCurrentQuadIndex = 0;
}
}
@@ -544,7 +558,6 @@ void FontRenderer::finishRender() {
if (mCurrentQuadIndex != 0) {
issueDrawCommand();
- mCurrentQuadIndex = 0;
}
}
diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h
index 405db09c1776..09a3c2591c6e 100644
--- a/libs/hwui/FontRenderer.h
+++ b/libs/hwui/FontRenderer.h
@@ -138,6 +138,7 @@ private:
void removeFont(const Font* font);
+ void updateDrawParams();
void checkTextureUpdate();
void setTextureDirty() {
@@ -155,13 +156,13 @@ private:
Vector<Font*> mActiveFonts;
CacheTexture* mCurrentCacheTexture;
- CacheTexture* mLastCacheTexture;
bool mUploadTexture;
// Pointer to vertex data to speed up frame to frame work
float* mTextMesh;
uint32_t mCurrentQuadIndex;
+ uint32_t mLastQuadIndex;
uint32_t mMaxNumberOfQuads;
uint32_t mIndexBufferID;
@@ -174,6 +175,10 @@ private:
bool mLinearFiltering;
+ Vector<uint16_t*> mDrawOffsets;
+ Vector<uint32_t> mDrawCounts;
+ Vector<CacheTexture*> mDrawCacheTextures;
+
/** We should consider multi-threading this code or using Renderscript **/
static void computeGaussianWeights(float* weights, int32_t radius);
static void horizontalBlur(float* weights, int32_t radius, const uint8_t *source, uint8_t *dest,
diff --git a/location/java/android/location/Country.java b/location/java/android/location/Country.java
index 7c1485d88a3e..7c1485d88a3e 100755..100644
--- a/location/java/android/location/Country.java
+++ b/location/java/android/location/Country.java
diff --git a/location/java/android/location/INetInitiatedListener.aidl b/location/java/android/location/INetInitiatedListener.aidl
index f2f5a32f7098..f2f5a32f7098 100755..100644
--- a/location/java/android/location/INetInitiatedListener.aidl
+++ b/location/java/android/location/INetInitiatedListener.aidl
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
index 57e2786213bb..57e2786213bb 100755..100644
--- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
+++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
diff --git a/media/java/android/media/IAudioFocusDispatcher.aidl b/media/java/android/media/IAudioFocusDispatcher.aidl
index 09575f733e32..09575f733e32 100755..100644
--- a/media/java/android/media/IAudioFocusDispatcher.aidl
+++ b/media/java/android/media/IAudioFocusDispatcher.aidl
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 99db0663b032..d5515eb7839f 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -16,6 +16,8 @@
package android.media;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
import android.media.MediaCrypto;
import android.media.MediaFormat;
import android.view.Surface;
@@ -498,6 +500,22 @@ final public class MediaCodec {
*/
public native final void setVideoScalingMode(int mode);
+ /**
+ * Get the component name. If the codec was created by createDecoderByType
+ * or createEncoderByType, what component is chosen is not known beforehand.
+ */
+ public native final String getName();
+
+ /**
+ * Get the codec info. If the codec was created by createDecoderByType
+ * or createEncoderByType, what component is chosen is not known beforehand,
+ * and thus the caller does not have the MediaCodecInfo.
+ */
+ public MediaCodecInfo getCodecInfo() {
+ return MediaCodecList.getCodecInfoAt(
+ MediaCodecList.findCodecByName(getName()));
+ }
+
private native final ByteBuffer[] getBuffers(boolean input);
private static native final void native_init();
diff --git a/media/java/android/media/MediaCodecList.java b/media/java/android/media/MediaCodecList.java
index 174993434b25..2a601133fdb6 100644
--- a/media/java/android/media/MediaCodecList.java
+++ b/media/java/android/media/MediaCodecList.java
@@ -46,6 +46,8 @@ final public class MediaCodecList {
/* package private */ static native final MediaCodecInfo.CodecCapabilities
getCodecCapabilities(int index, String type);
+ /* package private */ static native final int findCodecByName(String codec);
+
private static native final void native_init();
private MediaCodecList() {}
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 88cf4acdccf7..0f01aaee227d 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -283,7 +283,7 @@ public class MediaScanner
"Terror",
"Indie",
"Britpop",
- "Negerpunk",
+ null,
"Polsk Punk",
"Beat",
"Christian Gangsta",
@@ -441,6 +441,7 @@ public class MediaScanner
mMimeType = mimeType;
mFileType = 0;
mFileSize = fileSize;
+ mIsDrm = false;
if (!isDirectory) {
if (!noMedia && isNoMediaFile(path)) {
@@ -503,7 +504,6 @@ public class MediaScanner
mLastModified = lastModified;
mWriter = null;
mCompilation = 0;
- mIsDrm = false;
mWidth = 0;
mHeight = 0;
@@ -700,7 +700,7 @@ public class MediaScanner
try {
short genreIndex = Short.parseShort(number.toString());
if (genreIndex >= 0) {
- if (genreIndex < ID3_GENRES.length) {
+ if (genreIndex < ID3_GENRES.length && ID3_GENRES[genreIndex] != null) {
return ID3_GENRES[genreIndex];
} else if (genreIndex == 0xFF) {
return null;
@@ -1039,6 +1039,7 @@ public class MediaScanner
}
if (mDrmManagerClient.canHandle(path, null)) {
+ mIsDrm = true;
String drmMimetype = mDrmManagerClient.getOriginalMimeType(path);
if (drmMimetype != null) {
mMimeType = drmMimetype;
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java
index f190eb978423..ebbfad96d94d 100644
--- a/media/java/android/media/Ringtone.java
+++ b/media/java/android/media/Ringtone.java
@@ -18,6 +18,8 @@ package android.media;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources.NotFoundException;
import android.database.Cursor;
import android.net.Uri;
import android.os.Binder;
@@ -229,10 +231,14 @@ public class Ringtone {
try {
mRemotePlayer.play(mRemoteToken, canonicalUri, mStreamType);
} catch (RemoteException e) {
- Log.w(TAG, "Problem playing ringtone: " + e);
+ if (!playFallbackRingtone()) {
+ Log.w(TAG, "Problem playing ringtone: " + e);
+ }
}
} else {
- Log.w(TAG, "Neither local nor remote playback available");
+ if (!playFallbackRingtone()) {
+ Log.w(TAG, "Neither local nor remote playback available");
+ }
}
}
@@ -280,6 +286,43 @@ public class Ringtone {
}
}
+ private boolean playFallbackRingtone() {
+ if (mAudioManager.getStreamVolume(mStreamType) != 0) {
+ int ringtoneType = RingtoneManager.getDefaultType(mUri);
+ if (ringtoneType != -1 &&
+ RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) {
+ // Default ringtone, try fallback ringtone.
+ try {
+ AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(
+ com.android.internal.R.raw.fallbackring);
+ if (afd != null) {
+ mLocalPlayer = new MediaPlayer();
+ if (afd.getDeclaredLength() < 0) {
+ mLocalPlayer.setDataSource(afd.getFileDescriptor());
+ } else {
+ mLocalPlayer.setDataSource(afd.getFileDescriptor(),
+ afd.getStartOffset(),
+ afd.getDeclaredLength());
+ }
+ mLocalPlayer.setAudioStreamType(mStreamType);
+ mLocalPlayer.prepare();
+ mLocalPlayer.start();
+ afd.close();
+ return true;
+ } else {
+ Log.e(TAG, "Could not load fallback ringtone");
+ }
+ } catch (IOException ioe) {
+ destroyLocalPlayer();
+ Log.e(TAG, "Failed to open fallback ringtone");
+ } catch (NotFoundException nfe) {
+ Log.e(TAG, "Fallback ringtone does not exist");
+ }
+ }
+ }
+ return false;
+ }
+
void setTitle(String title) {
mTitle = title;
}
diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java
index 9197ed8e02c6..9197ed8e02c6 100755..100644
--- a/media/java/android/media/audiofx/Visualizer.java
+++ b/media/java/android/media/audiofx/Visualizer.java
diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java
index c5cc2cad05de..c5cc2cad05de 100755..100644
--- a/media/java/android/media/videoeditor/AudioTrack.java
+++ b/media/java/android/media/videoeditor/AudioTrack.java
diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java
index 2f7ae03c7813..2f7ae03c7813 100755..100644
--- a/media/java/android/media/videoeditor/Effect.java
+++ b/media/java/android/media/videoeditor/Effect.java
diff --git a/media/java/android/media/videoeditor/EffectColor.java b/media/java/android/media/videoeditor/EffectColor.java
index 6c5ac2dc123c..6c5ac2dc123c 100755..100644
--- a/media/java/android/media/videoeditor/EffectColor.java
+++ b/media/java/android/media/videoeditor/EffectColor.java
diff --git a/media/java/android/media/videoeditor/EffectKenBurns.java b/media/java/android/media/videoeditor/EffectKenBurns.java
index 64be6b8e488e..64be6b8e488e 100755..100644
--- a/media/java/android/media/videoeditor/EffectKenBurns.java
+++ b/media/java/android/media/videoeditor/EffectKenBurns.java
diff --git a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java
index 7ba7de3dc8d7..7ba7de3dc8d7 100755..100644
--- a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java
+++ b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
index 590b4ae223d5..590b4ae223d5 100755..100644
--- a/media/java/android/media/videoeditor/MediaImageItem.java
+++ b/media/java/android/media/videoeditor/MediaImageItem.java
diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java
index 4e9ea75a23a6..4e9ea75a23a6 100755..100644
--- a/media/java/android/media/videoeditor/MediaItem.java
+++ b/media/java/android/media/videoeditor/MediaItem.java
diff --git a/media/java/android/media/videoeditor/MediaProperties.java b/media/java/android/media/videoeditor/MediaProperties.java
index cf518a5f3d7a..cf518a5f3d7a 100755..100644
--- a/media/java/android/media/videoeditor/MediaProperties.java
+++ b/media/java/android/media/videoeditor/MediaProperties.java
diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java
index bbcdf57dd2b3..bbcdf57dd2b3 100755..100644
--- a/media/java/android/media/videoeditor/MediaVideoItem.java
+++ b/media/java/android/media/videoeditor/MediaVideoItem.java
diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java
index a070eb46e835..a070eb46e835 100755..100644
--- a/media/java/android/media/videoeditor/Overlay.java
+++ b/media/java/android/media/videoeditor/Overlay.java
diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java
index d159df263637..d159df263637 100755..100644
--- a/media/java/android/media/videoeditor/OverlayFrame.java
+++ b/media/java/android/media/videoeditor/OverlayFrame.java
diff --git a/media/java/android/media/videoeditor/Transition.java b/media/java/android/media/videoeditor/Transition.java
index fa9d26d6a2c2..fa9d26d6a2c2 100755..100644
--- a/media/java/android/media/videoeditor/Transition.java
+++ b/media/java/android/media/videoeditor/Transition.java
diff --git a/media/java/android/media/videoeditor/TransitionAlpha.java b/media/java/android/media/videoeditor/TransitionAlpha.java
index 22788d403c1c..22788d403c1c 100755..100644
--- a/media/java/android/media/videoeditor/TransitionAlpha.java
+++ b/media/java/android/media/videoeditor/TransitionAlpha.java
diff --git a/media/java/android/media/videoeditor/TransitionCrossfade.java b/media/java/android/media/videoeditor/TransitionCrossfade.java
index 417c64e06edd..417c64e06edd 100755..100644
--- a/media/java/android/media/videoeditor/TransitionCrossfade.java
+++ b/media/java/android/media/videoeditor/TransitionCrossfade.java
diff --git a/media/java/android/media/videoeditor/TransitionFadeBlack.java b/media/java/android/media/videoeditor/TransitionFadeBlack.java
index da07cf0fab48..da07cf0fab48 100755..100644
--- a/media/java/android/media/videoeditor/TransitionFadeBlack.java
+++ b/media/java/android/media/videoeditor/TransitionFadeBlack.java
diff --git a/media/java/android/media/videoeditor/TransitionSliding.java b/media/java/android/media/videoeditor/TransitionSliding.java
index 57610ab05634..57610ab05634 100755..100644
--- a/media/java/android/media/videoeditor/TransitionSliding.java
+++ b/media/java/android/media/videoeditor/TransitionSliding.java
diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java
index 08d27d461f10..08d27d461f10 100755..100644
--- a/media/java/android/media/videoeditor/VideoEditor.java
+++ b/media/java/android/media/videoeditor/VideoEditor.java
diff --git a/media/java/android/media/videoeditor/VideoEditorFactory.java b/media/java/android/media/videoeditor/VideoEditorFactory.java
index 85c329fe4fdb..85c329fe4fdb 100755..100644
--- a/media/java/android/media/videoeditor/VideoEditorFactory.java
+++ b/media/java/android/media/videoeditor/VideoEditorFactory.java
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
index 2446c2fd092f..2446c2fd092f 100755..100644
--- a/media/java/android/media/videoeditor/VideoEditorImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorImpl.java
diff --git a/media/java/android/media/videoeditor/VideoEditorProfile.java b/media/java/android/media/videoeditor/VideoEditorProfile.java
index 202a2dfaba51..202a2dfaba51 100755..100644
--- a/media/java/android/media/videoeditor/VideoEditorProfile.java
+++ b/media/java/android/media/videoeditor/VideoEditorProfile.java
diff --git a/media/java/android/media/videoeditor/WaveformData.java b/media/java/android/media/videoeditor/WaveformData.java
index 6c10e3c2d009..6c10e3c2d009 100755..100644
--- a/media/java/android/media/videoeditor/WaveformData.java
+++ b/media/java/android/media/videoeditor/WaveformData.java
diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java
index 487585e96c46..487585e96c46 100755..100644
--- a/media/java/android/mtp/MtpDatabase.java
+++ b/media/java/android/mtp/MtpDatabase.java
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index f91c9a001236..dab2de1b6b9e 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -264,6 +264,20 @@ status_t JMediaCodec::getBuffers(
return OK;
}
+status_t JMediaCodec::getName(JNIEnv *env, jstring *nameStr) const {
+ AString name;
+
+ status_t err = mCodec->getName(&name);
+
+ if (err != OK) {
+ return err;
+ }
+
+ *nameStr = env->NewStringUTF(name.c_str());
+
+ return OK;
+}
+
void JMediaCodec::setVideoScalingMode(int mode) {
if (mSurfaceTextureClient != NULL) {
native_window_set_scaling_mode(mSurfaceTextureClient.get(), mode);
@@ -706,6 +720,29 @@ static jobjectArray android_media_MediaCodec_getBuffers(
return NULL;
}
+static jobject android_media_MediaCodec_getName(
+ JNIEnv *env, jobject thiz) {
+ ALOGV("android_media_MediaCodec_getName");
+
+ sp<JMediaCodec> codec = getMediaCodec(env, thiz);
+
+ if (codec == NULL) {
+ jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ return NULL;
+ }
+
+ jstring name;
+ status_t err = codec->getName(env, &name);
+
+ if (err == OK) {
+ return name;
+ }
+
+ throwExceptionAsNecessary(env, err);
+
+ return NULL;
+}
+
static void android_media_MediaCodec_setVideoScalingMode(
JNIEnv *env, jobject thiz, jint mode) {
sp<JMediaCodec> codec = getMediaCodec(env, thiz);
@@ -826,6 +863,9 @@ static JNINativeMethod gMethods[] = {
{ "getBuffers", "(Z)[Ljava/nio/ByteBuffer;",
(void *)android_media_MediaCodec_getBuffers },
+ { "getName", "()Ljava/lang/String;",
+ (void *)android_media_MediaCodec_getName },
+
{ "setVideoScalingMode", "(I)V",
(void *)android_media_MediaCodec_setVideoScalingMode },
diff --git a/media/jni/android_media_MediaCodec.h b/media/jni/android_media_MediaCodec.h
index 4936b53b978f..bc9ad50c4961 100644
--- a/media/jni/android_media_MediaCodec.h
+++ b/media/jni/android_media_MediaCodec.h
@@ -81,6 +81,8 @@ struct JMediaCodec : public RefBase {
status_t getBuffers(
JNIEnv *env, bool input, jobjectArray *bufArray) const;
+ status_t getName(JNIEnv *env, jstring *name) const;
+
void setVideoScalingMode(int mode);
protected:
diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp
index 0638b4ab7dda..04430ec26609 100644
--- a/media/jni/android_media_MediaCodecList.cpp
+++ b/media/jni/android_media_MediaCodecList.cpp
@@ -44,6 +44,25 @@ static jstring android_media_MediaCodecList_getCodecName(
return env->NewStringUTF(name);
}
+static jint android_media_MediaCodecList_findCodecByName(
+ JNIEnv *env, jobject thiz, jstring name) {
+ if (name == NULL) {
+ jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ return -ENOENT;
+ }
+
+ const char *nameStr = env->GetStringUTFChars(name, NULL);
+
+ if (nameStr == NULL) {
+ // Out of memory exception already pending.
+ return -ENOENT;
+ }
+
+ jint ret = MediaCodecList::getInstance()->findCodecByName(nameStr);
+ env->ReleaseStringUTFChars(name, nameStr);
+ return ret;
+}
+
static jboolean android_media_MediaCodecList_isEncoder(
JNIEnv *env, jobject thiz, jint index) {
return MediaCodecList::getInstance()->isEncoder(index);
@@ -180,6 +199,9 @@ static JNINativeMethod gMethods[] = {
"(ILjava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;",
(void *)android_media_MediaCodecList_getCodecCapabilities },
+ { "findCodecByName", "(Ljava/lang/String;)I",
+ (void *)android_media_MediaCodecList_findCodecByName },
+
{ "native_init", "()V", (void *)android_media_MediaCodecList_native_init },
};
diff --git a/media/jni/audioeffect/android_media_AudioEffect.cpp b/media/jni/audioeffect/android_media_AudioEffect.cpp
index 3b325b7d4e74..bcab4f3c363a 100644
--- a/media/jni/audioeffect/android_media_AudioEffect.cpp
+++ b/media/jni/audioeffect/android_media_AudioEffect.cpp
@@ -705,7 +705,7 @@ android_media_AudioEffect_native_queryEffects(JNIEnv *env, jclass clazz)
{
effect_descriptor_t desc;
char str[EFFECT_STRING_LEN_MAX];
- uint32_t numEffects;
+ uint32_t numEffects = 0;
uint32_t i = 0;
jstring jdescType;
jstring jdescUuid;
@@ -714,7 +714,10 @@ android_media_AudioEffect_native_queryEffects(JNIEnv *env, jclass clazz)
jstring jdescImplementor;
jobject jdesc;
- AudioEffect::queryNumberEffects(&numEffects);
+ if (AudioEffect::queryNumberEffects(&numEffects) != NO_ERROR) {
+ return NULL;
+ }
+
jobjectArray ret = env->NewObjectArray(numEffects, fields.clazzDesc, NULL);
if (ret == NULL) {
return ret;
diff --git a/media/jni/mediaeditor/Android.mk b/media/jni/mediaeditor/Android.mk
index 040d2abe530e..040d2abe530e 100755..100644
--- a/media/jni/mediaeditor/Android.mk
+++ b/media/jni/mediaeditor/Android.mk
diff --git a/media/jni/mediaeditor/VideoBrowserInternal.h b/media/jni/mediaeditor/VideoBrowserInternal.h
index f4eaab8a6df3..f4eaab8a6df3 100755..100644
--- a/media/jni/mediaeditor/VideoBrowserInternal.h
+++ b/media/jni/mediaeditor/VideoBrowserInternal.h
diff --git a/media/jni/mediaeditor/VideoBrowserMain.h b/media/jni/mediaeditor/VideoBrowserMain.h
index 00b5e050a232..00b5e050a232 100755..100644
--- a/media/jni/mediaeditor/VideoBrowserMain.h
+++ b/media/jni/mediaeditor/VideoBrowserMain.h
diff --git a/media/jni/mediaeditor/VideoEditorClasses.cpp b/media/jni/mediaeditor/VideoEditorClasses.cpp
index 4982a472571b..4982a472571b 100755..100644
--- a/media/jni/mediaeditor/VideoEditorClasses.cpp
+++ b/media/jni/mediaeditor/VideoEditorClasses.cpp
diff --git a/media/jni/mediaeditor/VideoEditorClasses.h b/media/jni/mediaeditor/VideoEditorClasses.h
index a4c82a87c486..a4c82a87c486 100755..100644
--- a/media/jni/mediaeditor/VideoEditorClasses.h
+++ b/media/jni/mediaeditor/VideoEditorClasses.h
diff --git a/media/jni/mediaeditor/VideoEditorJava.cpp b/media/jni/mediaeditor/VideoEditorJava.cpp
index bcf9099081ce..bcf9099081ce 100755..100644
--- a/media/jni/mediaeditor/VideoEditorJava.cpp
+++ b/media/jni/mediaeditor/VideoEditorJava.cpp
diff --git a/media/jni/mediaeditor/VideoEditorJava.h b/media/jni/mediaeditor/VideoEditorJava.h
index 0a2db08adb2c..0a2db08adb2c 100755..100644
--- a/media/jni/mediaeditor/VideoEditorJava.h
+++ b/media/jni/mediaeditor/VideoEditorJava.h
diff --git a/media/jni/mediaeditor/VideoEditorLogging.h b/media/jni/mediaeditor/VideoEditorLogging.h
index 479d8b6f9847..479d8b6f9847 100755..100644
--- a/media/jni/mediaeditor/VideoEditorLogging.h
+++ b/media/jni/mediaeditor/VideoEditorLogging.h
diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp
index 41c28c0d8630..41c28c0d8630 100755..100644
--- a/media/jni/mediaeditor/VideoEditorMain.cpp
+++ b/media/jni/mediaeditor/VideoEditorMain.cpp
diff --git a/media/jni/mediaeditor/VideoEditorOsal.cpp b/media/jni/mediaeditor/VideoEditorOsal.cpp
index a8c08ac936bd..a8c08ac936bd 100755..100644
--- a/media/jni/mediaeditor/VideoEditorOsal.cpp
+++ b/media/jni/mediaeditor/VideoEditorOsal.cpp
diff --git a/media/jni/mediaeditor/VideoEditorOsal.h b/media/jni/mediaeditor/VideoEditorOsal.h
index 7a6f5ea59227..7a6f5ea59227 100755..100644
--- a/media/jni/mediaeditor/VideoEditorOsal.h
+++ b/media/jni/mediaeditor/VideoEditorOsal.h
diff --git a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
index c8fb26336e27..c8fb26336e27 100755..100644
--- a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
+++ b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp b/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp
index 1508246361aa..1508246361aa 100755..100644
--- a/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp
+++ b/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp
diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.h b/media/jni/mediaeditor/VideoEditorThumbnailMain.h
index 0b3b0c8a8211..0b3b0c8a8211 100755..100644
--- a/media/jni/mediaeditor/VideoEditorThumbnailMain.h
+++ b/media/jni/mediaeditor/VideoEditorThumbnailMain.h
diff --git a/media/mca/filterfw/jni/jni_gl_frame.cpp b/media/mca/filterfw/jni/jni_gl_frame.cpp
index 61340f950fdd..b55bc5d0ef71 100644
--- a/media/mca/filterfw/jni/jni_gl_frame.cpp
+++ b/media/mca/filterfw/jni/jni_gl_frame.cpp
@@ -221,10 +221,10 @@ jboolean Java_android_filterfw_core_GLFrame_setNativeBitmap(JNIEnv* env,
if (frame && bitmap) {
uint8_t* pixels;
const int result = AndroidBitmap_lockPixels(env, bitmap, reinterpret_cast<void**>(&pixels));
- if (result == ANDROID_BITMAP_RESUT_SUCCESS) {
+ if (result == ANDROID_BITMAP_RESULT_SUCCESS) {
const bool success = frame->WriteData(pixels, size);
return ToJBool(success &&
- AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESUT_SUCCESS);
+ AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESULT_SUCCESS);
}
}
return JNI_FALSE;
@@ -237,9 +237,9 @@ jboolean Java_android_filterfw_core_GLFrame_getNativeBitmap(JNIEnv* env,
if (frame && bitmap) {
uint8_t* pixels;
const int result = AndroidBitmap_lockPixels(env, bitmap, reinterpret_cast<void**>(&pixels));
- if (result == ANDROID_BITMAP_RESUT_SUCCESS) {
+ if (result == ANDROID_BITMAP_RESULT_SUCCESS) {
frame->CopyDataTo(pixels, frame->Size());
- return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESUT_SUCCESS);
+ return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESULT_SUCCESS);
}
}
return JNI_FALSE;
diff --git a/media/mca/filterfw/jni/jni_native_frame.cpp b/media/mca/filterfw/jni/jni_native_frame.cpp
index 1dfa3e6557bb..c8f235271c43 100644
--- a/media/mca/filterfw/jni/jni_native_frame.cpp
+++ b/media/mca/filterfw/jni/jni_native_frame.cpp
@@ -178,7 +178,7 @@ jboolean Java_android_filterfw_core_NativeFrame_setNativeBitmap(JNIEnv* env,
Pixel* src_ptr;
const int result = AndroidBitmap_lockPixels(env, bitmap, reinterpret_cast<void**>(&src_ptr));
- if (result == ANDROID_BITMAP_RESUT_SUCCESS) {
+ if (result == ANDROID_BITMAP_RESULT_SUCCESS) {
// Create destination pointers
uint8_t* dst_ptr = reinterpret_cast<uint8_t*>(frame->MutableData());
const uint8_t* end_ptr = dst_ptr + frame->Size();
@@ -207,7 +207,7 @@ jboolean Java_android_filterfw_core_NativeFrame_setNativeBitmap(JNIEnv* env,
ALOGE("Unsupported bytes-per-pixel %d in setBitmap!", bytes_per_sample);
break;
}
- return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESUT_SUCCESS);
+ return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESULT_SUCCESS);
}
}
return JNI_FALSE;
@@ -222,7 +222,7 @@ jboolean Java_android_filterfw_core_NativeFrame_getNativeBitmap(JNIEnv* env,
if (frame && bitmap) {
Pixel* dst_ptr;
const int result = AndroidBitmap_lockPixels(env, bitmap, reinterpret_cast<void**>(&dst_ptr));
- if (result == ANDROID_BITMAP_RESUT_SUCCESS) {
+ if (result == ANDROID_BITMAP_RESULT_SUCCESS) {
// Make sure frame size matches bitmap size
if ((size / 4) != (frame->Size() / bytes_per_sample)) {
ALOGE("Size mismatch in native getBitmap()!");
@@ -259,7 +259,7 @@ jboolean Java_android_filterfw_core_NativeFrame_getNativeBitmap(JNIEnv* env,
ALOGE("Unsupported bytes-per-pixel %d in getBitmap!", bytes_per_sample);
break;
}
- return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESUT_SUCCESS);
+ return (AndroidBitmap_unlockPixels(env, bitmap) == ANDROID_BITMAP_RESULT_SUCCESS);
}
}
return JNI_FALSE;
diff --git a/media/mca/structgen.py b/media/mca/structgen.py
index 437326ca2c28..437326ca2c28 100644..100755
--- a/media/mca/structgen.py
+++ b/media/mca/structgen.py
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java
index 3d5905daac54..3d5905daac54 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java
index 34db4dbd3bde..34db4dbd3bde 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java
index 92ac9eb09766..92ac9eb09766 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java
index 62af3f32a079..62af3f32a079 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java
index f3a91c568d8f..f3a91c568d8f 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java
index 0cd784cbce77..0cd784cbce77 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
index 5c74552b5589..5c74552b5589 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java
index a80fc13b81fc..a80fc13b81fc 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java
index 7dfab7d7fa29..7dfab7d7fa29 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java
index 34cf9f0aceb8..34cf9f0aceb8 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java
index 69ecf0db6329..69ecf0db6329 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java
index 7784c7b6ad09..7784c7b6ad09 100755..100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java
diff --git a/media/tests/ScoAudioTest/Android.mk b/media/tests/ScoAudioTest/Android.mk
index ab12865bc950..ab12865bc950 100755..100644
--- a/media/tests/ScoAudioTest/Android.mk
+++ b/media/tests/ScoAudioTest/Android.mk
diff --git a/media/tests/ScoAudioTest/AndroidManifest.xml b/media/tests/ScoAudioTest/AndroidManifest.xml
index 8ff973ef02de..8ff973ef02de 100755..100644
--- a/media/tests/ScoAudioTest/AndroidManifest.xml
+++ b/media/tests/ScoAudioTest/AndroidManifest.xml
diff --git a/media/tests/ScoAudioTest/res/drawable/icon.png b/media/tests/ScoAudioTest/res/drawable/icon.png
index 64e3601c234d..64e3601c234d 100755..100644
--- a/media/tests/ScoAudioTest/res/drawable/icon.png
+++ b/media/tests/ScoAudioTest/res/drawable/icon.png
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/drawable/record.png b/media/tests/ScoAudioTest/res/drawable/record.png
index ae518d508f56..ae518d508f56 100755..100644
--- a/media/tests/ScoAudioTest/res/drawable/record.png
+++ b/media/tests/ScoAudioTest/res/drawable/record.png
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/drawable/stop.png b/media/tests/ScoAudioTest/res/drawable/stop.png
index 83f012ca2b56..83f012ca2b56 100755..100644
--- a/media/tests/ScoAudioTest/res/drawable/stop.png
+++ b/media/tests/ScoAudioTest/res/drawable/stop.png
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml b/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml
index b769a0c6a092..b769a0c6a092 100755..100644
--- a/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml
+++ b/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml
diff --git a/media/tests/ScoAudioTest/res/values/strings.xml b/media/tests/ScoAudioTest/res/values/strings.xml
index c3ff6d5b0fe5..c3ff6d5b0fe5 100755..100644
--- a/media/tests/ScoAudioTest/res/values/strings.xml
+++ b/media/tests/ScoAudioTest/res/values/strings.xml
diff --git a/media/tests/contents/media_api/goldenThumbnail.png b/media/tests/contents/media_api/goldenThumbnail.png
index 3bb6ed245dc7..3bb6ed245dc7 100755..100644
--- a/media/tests/contents/media_api/goldenThumbnail.png
+++ b/media/tests/contents/media_api/goldenThumbnail.png
Binary files differ
diff --git a/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 b/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3
index e0d6a1799b3b..e0d6a1799b3b 100755..100644
--- a/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3
+++ b/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3
Binary files differ
diff --git a/media/tests/contents/media_api/music/SHORTMP3.mp3 b/media/tests/contents/media_api/music/SHORTMP3.mp3
index 8b51b5d9f932..8b51b5d9f932 100755..100644
--- a/media/tests/contents/media_api/music/SHORTMP3.mp3
+++ b/media/tests/contents/media_api/music/SHORTMP3.mp3
Binary files differ
diff --git a/media/tests/contents/media_api/music/ants.mid b/media/tests/contents/media_api/music/ants.mid
index d4ead5314181..d4ead5314181 100755..100644
--- a/media/tests/contents/media_api/music/ants.mid
+++ b/media/tests/contents/media_api/music/ants.mid
Binary files differ
diff --git a/media/tests/contents/media_api/music/bzk_chic.wav b/media/tests/contents/media_api/music/bzk_chic.wav
index bab1a6b4bfb5..bab1a6b4bfb5 100755..100644
--- a/media/tests/contents/media_api/music/bzk_chic.wav
+++ b/media/tests/contents/media_api/music/bzk_chic.wav
Binary files differ
diff --git a/media/tests/contents/media_api/music/test_amr_ietf.amr b/media/tests/contents/media_api/music/test_amr_ietf.amr
index 540794cf573c..540794cf573c 100755..100644
--- a/media/tests/contents/media_api/music/test_amr_ietf.amr
+++ b/media/tests/contents/media_api/music/test_amr_ietf.amr
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp b/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp
index 46bb2b1511de..46bb2b1511de 100755..100644
--- a/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp
+++ b/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_56_AAC_24.3gp b/media/tests/contents/media_api/video/H263_56_AAC_24.3gp
index 1fb11925fee8..1fb11925fee8 100755..100644
--- a/media/tests/contents/media_api/video/H263_56_AAC_24.3gp
+++ b/media/tests/contents/media_api/video/H263_56_AAC_24.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp b/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp
index b6eb6a18982f..b6eb6a18982f 100755..100644
--- a/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp
+++ b/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_320_AAC_64.3gp b/media/tests/contents/media_api/video/H264_320_AAC_64.3gp
index 04680ce3c2be..04680ce3c2be 100755..100644
--- a/media/tests/contents/media_api/video/H264_320_AAC_64.3gp
+++ b/media/tests/contents/media_api/video/H264_320_AAC_64.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp b/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp
index bc533a221958..bc533a221958 100755..100644
--- a/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp
+++ b/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_500_AAC_128.3gp b/media/tests/contents/media_api/video/H264_500_AAC_128.3gp
index 05d67eaeed92..05d67eaeed92 100755..100644
--- a/media/tests/contents/media_api/video/H264_500_AAC_128.3gp
+++ b/media/tests/contents/media_api/video/H264_500_AAC_128.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp
index 13642b25ef1e..13642b25ef1e 100755..100644
--- a/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp
+++ b/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp
index 13642b25ef1e..13642b25ef1e 100755..100644
--- a/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp
+++ b/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 b/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4
index 90f185606d0f..90f185606d0f 100755..100644
--- a/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4
+++ b/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4
Binary files differ
diff --git a/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm b/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm
index 6a17395f67d3..6a17395f67d3 100755..100644
--- a/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm
+++ b/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm
Binary files differ
diff --git a/media/tests/contents/media_api/video/border_large.3gp b/media/tests/contents/media_api/video/border_large.3gp
index e6221604bda4..e6221604bda4 100755..100644
--- a/media/tests/contents/media_api/video/border_large.3gp
+++ b/media/tests/contents/media_api/video/border_large.3gp
Binary files differ
diff --git a/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 b/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4
index be050dc2a006..be050dc2a006 100755..100644
--- a/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4
+++ b/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4
Binary files differ
diff --git a/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png b/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png
index 0f32131a632e..0f32131a632e 100755..100644
--- a/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png
+++ b/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png
Binary files differ
diff --git a/native/copy-to-ndk.sh b/native/copy-to-ndk.sh
index 90ff556db986..90ff556db986 100644..100755
--- a/native/copy-to-ndk.sh
+++ b/native/copy-to-ndk.sh
diff --git a/native/graphics/jni/bitmap.cpp b/native/graphics/jni/bitmap.cpp
index 51a631fa6875..eaa2cbe3a55f 100644
--- a/native/graphics/jni/bitmap.cpp
+++ b/native/graphics/jni/bitmap.cpp
@@ -52,7 +52,7 @@ int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,
break;
}
}
- return ANDROID_BITMAP_RESUT_SUCCESS;
+ return ANDROID_BITMAP_RESULT_SUCCESS;
}
int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr) {
@@ -75,7 +75,7 @@ int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr) {
if (addrPtr) {
*addrPtr = addr;
}
- return ANDROID_BITMAP_RESUT_SUCCESS;
+ return ANDROID_BITMAP_RESULT_SUCCESS;
}
int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap) {
@@ -95,6 +95,6 @@ int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap) {
bm->notifyPixelsChanged();
bm->unlockPixels();
- return ANDROID_BITMAP_RESUT_SUCCESS;
+ return ANDROID_BITMAP_RESULT_SUCCESS;
}
diff --git a/packages/DefaultContainerService/Android.mk b/packages/DefaultContainerService/Android.mk
index 56b800504db3..56b800504db3 100755..100644
--- a/packages/DefaultContainerService/Android.mk
+++ b/packages/DefaultContainerService/Android.mk
diff --git a/packages/DefaultContainerService/AndroidManifest.xml b/packages/DefaultContainerService/AndroidManifest.xml
index 3dcd232915a4..3dcd232915a4 100755..100644
--- a/packages/DefaultContainerService/AndroidManifest.xml
+++ b/packages/DefaultContainerService/AndroidManifest.xml
diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
index 2b02049dcb86..ac4795e449b7 100644
--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -79,6 +79,7 @@
<bool name="def_lockscreen_disabled">false</bool>
<bool name="def_device_provisioned">false</bool>
+ <integer name="def_dock_audio_media_enabled">1</integer>
<!-- Notifications use ringer volume -->
<bool name="def_notifications_use_ring_volume">true</bool>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 2454fb0ceafa..8c0848cb6ae4 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2213,6 +2213,9 @@ public class DatabaseHelper extends SQLiteOpenHelper {
loadStringSetting(stmt, Settings.Global.WIRELESS_CHARGING_STARTED_SOUND,
R.string.def_wireless_charging_started_sound);
+ loadIntegerSetting(stmt, Settings.Global.DOCK_AUDIO_MEDIA_ENABLED,
+ R.integer.def_dock_audio_media_enabled);
+
loadSetting(stmt, Settings.Global.SET_INSTALL_LOCATION, 0);
loadSetting(stmt, Settings.Global.DEFAULT_INSTALL_LOCATION,
PackageHelper.APP_INSTALL_AUTO);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java
index d4491d814c19..78226c5f24d4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/AnimatedImageView.java
@@ -70,6 +70,7 @@ public class AnimatedImageView extends ImageView {
public void onAttachedToWindow() {
super.onAttachedToWindow();
mAttached = true;
+ updateAnim();
}
@Override
diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
index 13d8019cac0e..7a1e66c9cde4 100644
--- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
+++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
@@ -66,7 +66,7 @@ public class ConfirmDialog extends AlertActivity implements
getString(R.string.prompt, app.loadLabel(pm)));
((CompoundButton) view.findViewById(R.id.check)).setOnCheckedChangeListener(this);
- mAlertParams.mIconId = android.R.drawable.ic_dialog_alert;
+ mAlertParams.mIconAttrId = android.R.attr.alertDialogIcon;
mAlertParams.mTitle = getText(android.R.string.dialog_alert_title);
mAlertParams.mPositiveButtonText = getText(android.R.string.ok);
mAlertParams.mPositiveButtonListener = this;
diff --git a/packages/WAPPushManager/tests/src/com/android/smspush/unitTests/WapPushTest.java b/packages/WAPPushManager/tests/src/com/android/smspush/unitTests/WapPushTest.java
index f436cb4824a3..305ee3788303 100644
--- a/packages/WAPPushManager/tests/src/com/android/smspush/unitTests/WapPushTest.java
+++ b/packages/WAPPushManager/tests/src/com/android/smspush/unitTests/WapPushTest.java
@@ -27,10 +27,10 @@ import android.provider.Telephony.Sms.Intents;
import android.test.ServiceTestCase;
import android.util.Log;
-import com.android.internal.telephony.IccUtils;
import com.android.internal.telephony.IWapPushManager;
import com.android.internal.telephony.WapPushManagerParams;
import com.android.internal.telephony.WspTypeDecoder;
+import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.util.HexDump;
import com.android.smspush.WapPushManager;
diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java
index d1f8ef15b734..3dc77d49feab 100644..100755
--- a/policy/src/com/android/internal/policy/impl/GlobalActions.java
+++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java
@@ -408,7 +408,12 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
/** {@inheritDoc} */
public void onDismiss(DialogInterface dialog) {
if (SHOW_SILENT_TOGGLE) {
- mContext.unregisterReceiver(mRingerModeReceiver);
+ try {
+ mContext.unregisterReceiver(mRingerModeReceiver);
+ } catch (IllegalArgumentException ie) {
+ // ignore this
+ Log.w(TAG, ie);
+ }
}
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 242fb97c09bc..242fb97c09bc 100755..100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index a7c4d7301390..cccaf1cc483d 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -1183,8 +1183,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
log("startUsingNetworkFeature reconnecting to " + networkType + ": " +
feature);
}
- network.reconnect();
- return PhoneConstants.APN_REQUEST_STARTED;
+ if (network.reconnect()) {
+ return PhoneConstants.APN_REQUEST_STARTED;
+ } else {
+ return PhoneConstants.APN_REQUEST_FAILED;
+ }
} else {
// need to remember this unsupported request so we respond appropriately on stop
synchronized(this) {
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index f21f826d9fd8..0f08c561b567 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -1885,13 +1885,12 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
public void removeTestProvider(String provider) {
checkMockPermissionsSafe();
synchronized (mLock) {
- MockProvider mockProvider = mMockProviders.get(provider);
+ MockProvider mockProvider = mMockProviders.remove(provider);
if (mockProvider == null) {
throw new IllegalArgumentException("Provider \"" + provider + "\" unknown");
}
long identity = Binder.clearCallingIdentity();
removeProviderLocked(mProvidersByName.get(provider));
- mMockProviders.remove(mockProvider);
// reinstate real provider if available
LocationProviderInterface realProvider = mRealProviders.get(provider);
diff --git a/services/java/com/android/server/NativeDaemonEvent.java b/services/java/com/android/server/NativeDaemonEvent.java
index f11ae1d391eb..209515279bf8 100644
--- a/services/java/com/android/server/NativeDaemonEvent.java
+++ b/services/java/com/android/server/NativeDaemonEvent.java
@@ -223,8 +223,8 @@ public class NativeDaemonEvent {
current++; // skip the trailing quote
}
// unescape stuff within the word
- word.replace("\\\\", "\\");
- word.replace("\\\"", "\"");
+ word = word.replace("\\\\", "\\");
+ word = word.replace("\\\"", "\"");
if (DEBUG_ROUTINE) Slog.e(LOGTAG, "found '" + word + "'");
parsed.add(word);
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 37d7ce7baac8..37d7ce7baac8 100755..100644
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
diff --git a/services/java/com/android/server/NsdService.java b/services/java/com/android/server/NsdService.java
index 1b9742cae6c1..faa72a2c85cc 100644
--- a/services/java/com/android/server/NsdService.java
+++ b/services/java/com/android/server/NsdService.java
@@ -389,8 +389,10 @@ public class NsdService extends INsdManager.Stub {
break;
case NsdManager.NATIVE_DAEMON_EVENT:
NativeEvent event = (NativeEvent) msg.obj;
- handleNativeEvent(event.code, event.raw,
- NativeDaemonEvent.unescapeArgs(event.raw));
+ if (!handleNativeEvent(event.code, event.raw,
+ NativeDaemonEvent.unescapeArgs(event.raw))) {
+ result = NOT_HANDLED;
+ }
break;
default:
result = NOT_HANDLED;
@@ -398,6 +400,127 @@ public class NsdService extends INsdManager.Stub {
}
return result;
}
+
+ private boolean handleNativeEvent(int code, String raw, String[] cooked) {
+ boolean handled = true;
+ NsdServiceInfo servInfo;
+ int id = Integer.parseInt(cooked[1]);
+ ClientInfo clientInfo = mIdToClientInfoMap.get(id);
+ if (clientInfo == null) {
+ Slog.e(TAG, "Unique id with no client mapping: " + id);
+ handled = false;
+ return handled;
+ }
+
+ /* This goes in response as msg.arg2 */
+ int clientId = -1;
+ int keyId = clientInfo.mClientIds.indexOfValue(id);
+ if (keyId != -1) {
+ clientId = clientInfo.mClientIds.keyAt(keyId);
+ }
+ switch (code) {
+ case NativeResponseCode.SERVICE_FOUND:
+ /* NNN uniqueId serviceName regType domain */
+ if (DBG) Slog.d(TAG, "SERVICE_FOUND Raw: " + raw);
+ servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
+ clientInfo.mChannel.sendMessage(NsdManager.SERVICE_FOUND, 0,
+ clientId, servInfo);
+ break;
+ case NativeResponseCode.SERVICE_LOST:
+ /* NNN uniqueId serviceName regType domain */
+ if (DBG) Slog.d(TAG, "SERVICE_LOST Raw: " + raw);
+ servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
+ clientInfo.mChannel.sendMessage(NsdManager.SERVICE_LOST, 0,
+ clientId, servInfo);
+ break;
+ case NativeResponseCode.SERVICE_DISCOVERY_FAILED:
+ /* NNN uniqueId errorCode */
+ if (DBG) Slog.d(TAG, "SERVICE_DISC_FAILED Raw: " + raw);
+ clientInfo.mChannel.sendMessage(NsdManager.DISCOVER_SERVICES_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ break;
+ case NativeResponseCode.SERVICE_REGISTERED:
+ /* NNN regId serviceName regType */
+ if (DBG) Slog.d(TAG, "SERVICE_REGISTERED Raw: " + raw);
+ servInfo = new NsdServiceInfo(cooked[2], null, null);
+ clientInfo.mChannel.sendMessage(NsdManager.REGISTER_SERVICE_SUCCEEDED,
+ id, clientId, servInfo);
+ break;
+ case NativeResponseCode.SERVICE_REGISTRATION_FAILED:
+ /* NNN regId errorCode */
+ if (DBG) Slog.d(TAG, "SERVICE_REGISTER_FAILED Raw: " + raw);
+ clientInfo.mChannel.sendMessage(NsdManager.REGISTER_SERVICE_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ break;
+ case NativeResponseCode.SERVICE_UPDATED:
+ /* NNN regId */
+ break;
+ case NativeResponseCode.SERVICE_UPDATE_FAILED:
+ /* NNN regId errorCode */
+ break;
+ case NativeResponseCode.SERVICE_RESOLVED:
+ /* NNN resolveId fullName hostName port txtlen txtdata */
+ if (DBG) Slog.d(TAG, "SERVICE_RESOLVED Raw: " + raw);
+ int index = cooked[2].indexOf(".");
+ if (index == -1) {
+ Slog.e(TAG, "Invalid service found " + raw);
+ break;
+ }
+ String name = cooked[2].substring(0, index);
+ String rest = cooked[2].substring(index);
+ String type = rest.replace(".local.", "");
+
+ clientInfo.mResolvedService.setServiceName(name);
+ clientInfo.mResolvedService.setServiceType(type);
+ clientInfo.mResolvedService.setPort(Integer.parseInt(cooked[4]));
+
+ stopResolveService(id);
+ if (!getAddrInfo(id, cooked[3])) {
+ clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ removeRequestMap(clientId, id, clientInfo);
+ clientInfo.mResolvedService = null;
+ }
+ break;
+ case NativeResponseCode.SERVICE_RESOLUTION_FAILED:
+ /* NNN resolveId errorCode */
+ if (DBG) Slog.d(TAG, "SERVICE_RESOLVE_FAILED Raw: " + raw);
+ stopResolveService(id);
+ removeRequestMap(clientId, id, clientInfo);
+ clientInfo.mResolvedService = null;
+ clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ break;
+ case NativeResponseCode.SERVICE_GET_ADDR_FAILED:
+ /* NNN resolveId errorCode */
+ stopGetAddrInfo(id);
+ removeRequestMap(clientId, id, clientInfo);
+ clientInfo.mResolvedService = null;
+ if (DBG) Slog.d(TAG, "SERVICE_RESOLVE_FAILED Raw: " + raw);
+ clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ break;
+ case NativeResponseCode.SERVICE_GET_ADDR_SUCCESS:
+ /* NNN resolveId hostname ttl addr */
+ if (DBG) Slog.d(TAG, "SERVICE_GET_ADDR_SUCCESS Raw: " + raw);
+ try {
+ clientInfo.mResolvedService.setHost(InetAddress.getByName(cooked[4]));
+ clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_SUCCEEDED,
+ 0, clientId, clientInfo.mResolvedService);
+ } catch (java.net.UnknownHostException e) {
+ clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
+ NsdManager.FAILURE_INTERNAL_ERROR, clientId);
+ }
+ stopGetAddrInfo(id);
+ removeRequestMap(clientId, id, clientInfo);
+ clientInfo.mResolvedService = null;
+ break;
+ default:
+ handled = false;
+ break;
+ }
+ return handled;
+ }
}
}
@@ -483,8 +606,8 @@ public class NsdService extends INsdManager.Stub {
}
private class NativeEvent {
- int code;
- String raw;
+ final int code;
+ final String raw;
NativeEvent(int code, String raw) {
this.code = code;
@@ -506,123 +629,6 @@ public class NsdService extends INsdManager.Stub {
}
}
- private void handleNativeEvent(int code, String raw, String[] cooked) {
- NsdServiceInfo servInfo;
- int id = Integer.parseInt(cooked[1]);
- ClientInfo clientInfo = mIdToClientInfoMap.get(id);
- if (clientInfo == null) {
- Slog.e(TAG, "Unique id with no client mapping: " + id);
- return;
- }
-
- /* This goes in response as msg.arg2 */
- int clientId = -1;
- int keyId = clientInfo.mClientIds.indexOfValue(id);
- if (keyId != -1) {
- clientId = clientInfo.mClientIds.keyAt(keyId);
- }
- switch (code) {
- case NativeResponseCode.SERVICE_FOUND:
- /* NNN uniqueId serviceName regType domain */
- if (DBG) Slog.d(TAG, "SERVICE_FOUND Raw: " + raw);
- servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
- clientInfo.mChannel.sendMessage(NsdManager.SERVICE_FOUND, 0,
- clientId, servInfo);
- break;
- case NativeResponseCode.SERVICE_LOST:
- /* NNN uniqueId serviceName regType domain */
- if (DBG) Slog.d(TAG, "SERVICE_LOST Raw: " + raw);
- servInfo = new NsdServiceInfo(cooked[2], cooked[3], null);
- clientInfo.mChannel.sendMessage(NsdManager.SERVICE_LOST, 0,
- clientId, servInfo);
- break;
- case NativeResponseCode.SERVICE_DISCOVERY_FAILED:
- /* NNN uniqueId errorCode */
- if (DBG) Slog.d(TAG, "SERVICE_DISC_FAILED Raw: " + raw);
- clientInfo.mChannel.sendMessage(NsdManager.DISCOVER_SERVICES_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- break;
- case NativeResponseCode.SERVICE_REGISTERED:
- /* NNN regId serviceName regType */
- if (DBG) Slog.d(TAG, "SERVICE_REGISTERED Raw: " + raw);
- servInfo = new NsdServiceInfo(cooked[2], null, null);
- clientInfo.mChannel.sendMessage(NsdManager.REGISTER_SERVICE_SUCCEEDED,
- id, clientId, servInfo);
- break;
- case NativeResponseCode.SERVICE_REGISTRATION_FAILED:
- /* NNN regId errorCode */
- if (DBG) Slog.d(TAG, "SERVICE_REGISTER_FAILED Raw: " + raw);
- clientInfo.mChannel.sendMessage(NsdManager.REGISTER_SERVICE_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- break;
- case NativeResponseCode.SERVICE_UPDATED:
- /* NNN regId */
- break;
- case NativeResponseCode.SERVICE_UPDATE_FAILED:
- /* NNN regId errorCode */
- break;
- case NativeResponseCode.SERVICE_RESOLVED:
- /* NNN resolveId fullName hostName port txtlen txtdata */
- if (DBG) Slog.d(TAG, "SERVICE_RESOLVED Raw: " + raw);
- int index = cooked[2].indexOf(".");
- if (index == -1) {
- Slog.e(TAG, "Invalid service found " + raw);
- break;
- }
- String name = cooked[2].substring(0, index);
- String rest = cooked[2].substring(index);
- String type = rest.replace(".local.", "");
-
- clientInfo.mResolvedService.setServiceName(name);
- clientInfo.mResolvedService.setServiceType(type);
- clientInfo.mResolvedService.setPort(Integer.parseInt(cooked[4]));
-
- stopResolveService(id);
- if (!getAddrInfo(id, cooked[3])) {
- clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- mIdToClientInfoMap.remove(id);
- clientInfo.mResolvedService = null;
- }
- break;
- case NativeResponseCode.SERVICE_RESOLUTION_FAILED:
- /* NNN resolveId errorCode */
- if (DBG) Slog.d(TAG, "SERVICE_RESOLVE_FAILED Raw: " + raw);
- stopResolveService(id);
- mIdToClientInfoMap.remove(id);
- clientInfo.mResolvedService = null;
- clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- break;
- case NativeResponseCode.SERVICE_GET_ADDR_FAILED:
- /* NNN resolveId errorCode */
- stopGetAddrInfo(id);
- mIdToClientInfoMap.remove(id);
- clientInfo.mResolvedService = null;
- if (DBG) Slog.d(TAG, "SERVICE_RESOLVE_FAILED Raw: " + raw);
- clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- break;
- case NativeResponseCode.SERVICE_GET_ADDR_SUCCESS:
- /* NNN resolveId hostname ttl addr */
- if (DBG) Slog.d(TAG, "SERVICE_GET_ADDR_SUCCESS Raw: " + raw);
- try {
- clientInfo.mResolvedService.setHost(InetAddress.getByName(cooked[4]));
- clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_SUCCEEDED,
- 0, clientId, clientInfo.mResolvedService);
- } catch (java.net.UnknownHostException e) {
- clientInfo.mChannel.sendMessage(NsdManager.RESOLVE_SERVICE_FAILED,
- NsdManager.FAILURE_INTERNAL_ERROR, clientId);
- }
- stopGetAddrInfo(id);
- mIdToClientInfoMap.remove(id);
- clientInfo.mResolvedService = null;
- break;
- default:
- break;
- }
- }
-
private boolean startMDnsDaemon() {
if (DBG) Slog.d(TAG, "startMDnsDaemon");
try {
@@ -801,8 +807,8 @@ public class NsdService extends INsdManager.Stub {
private class ClientInfo {
private static final int MAX_LIMIT = 10;
- private AsyncChannel mChannel;
- private Messenger mMessenger;
+ private final AsyncChannel mChannel;
+ private final Messenger mMessenger;
/* Remembers a resolved service until getaddrinfo completes */
private NsdServiceInfo mResolvedService;
diff --git a/services/java/com/android/server/VibratorService.java b/services/java/com/android/server/VibratorService.java
index df91decb31ed..df91decb31ed 100755..100644
--- a/services/java/com/android/server/VibratorService.java
+++ b/services/java/com/android/server/VibratorService.java
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index 98794c923f7c..dfcc72be84a9 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -1577,7 +1577,7 @@ public class WifiService extends IWifiManager.Stub {
}
int uid = Binder.getCallingUid();
- Long ident = Binder.clearCallingIdentity();
+ final long ident = Binder.clearCallingIdentity();
try {
mBatteryStats.noteWifiMulticastEnabled(uid);
} catch (RemoteException e) {
@@ -1613,7 +1613,7 @@ public class WifiService extends IWifiManager.Stub {
mWifiStateMachine.startFilteringMulticastV4Packets();
}
- Long ident = Binder.clearCallingIdentity();
+ final long ident = Binder.clearCallingIdentity();
try {
mBatteryStats.noteWifiMulticastDisabled(uid);
} catch (RemoteException e) {
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 671cbfe4cab7..a34d44ccb6e4 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -1123,7 +1123,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
return;
}
mEnableTouchExplorationDialog = new AlertDialog.Builder(mContext)
- .setIcon(android.R.drawable.ic_dialog_alert)
+ .setIconAttribute(android.R.attr.alertDialogIcon)
.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 27dd7327a186..27dd7327a186 100755..100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
diff --git a/services/java/com/android/server/am/package.html b/services/java/com/android/server/am/package.html
index c9f96a66ab3b..c9f96a66ab3b 100755..100644
--- a/services/java/com/android/server/am/package.html
+++ b/services/java/com/android/server/am/package.html
diff --git a/services/java/com/android/server/location/ComprehensiveCountryDetector.java b/services/java/com/android/server/location/ComprehensiveCountryDetector.java
index 354858b15368..354858b15368 100755..100644
--- a/services/java/com/android/server/location/ComprehensiveCountryDetector.java
+++ b/services/java/com/android/server/location/ComprehensiveCountryDetector.java
diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java
index c272da4b420f..c272da4b420f 100755..100644
--- a/services/java/com/android/server/location/GpsLocationProvider.java
+++ b/services/java/com/android/server/location/GpsLocationProvider.java
diff --git a/services/java/com/android/server/location/LocationBasedCountryDetector.java b/services/java/com/android/server/location/LocationBasedCountryDetector.java
index 03db621c03a8..03db621c03a8 100755..100644
--- a/services/java/com/android/server/location/LocationBasedCountryDetector.java
+++ b/services/java/com/android/server/location/LocationBasedCountryDetector.java
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java
index b83933152eff..b09390c05303 100644
--- a/services/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -425,11 +425,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
private BroadcastReceiver mScreenReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- synchronized (mRulesLock) {
- // screen-related broadcasts are protected by system, no need
- // for permissions check.
- mHandler.obtainMessage(MSG_SCREEN_ON_CHANGED).sendToTarget();
- }
+ // screen-related broadcasts are protected by system, no need
+ // for permissions check.
+ mHandler.obtainMessage(MSG_SCREEN_ON_CHANGED).sendToTarget();
}
};
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index 546f2be0770a..74be472d382d 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -940,14 +940,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
}
private void performPoll(int flags) {
+ // try refreshing time source when stale
+ if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) {
+ mTime.forceRefresh();
+ }
+
synchronized (mStatsLock) {
mWakeLock.acquire();
- // try refreshing time source when stale
- if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) {
- mTime.forceRefresh();
- }
-
try {
performPollLocked(flags);
} finally {
diff --git a/services/java/com/android/server/updates/CertPinInstallReceiver.java b/services/java/com/android/server/updates/CertPinInstallReceiver.java
new file mode 100644
index 000000000000..c03fbc3d0aed
--- /dev/null
+++ b/services/java/com/android/server/updates/CertPinInstallReceiver.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.updates;
+
+public class CertPinInstallReceiver extends ConfigUpdateInstallReceiver {
+
+ public CertPinInstallReceiver() {
+ super("/data/misc/keychain/", "pins", "metadata/", "version");
+ }
+}
diff --git a/services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java b/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
index 4480151b21e6..4480151b21e6 100644
--- a/services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java
+++ b/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 5b9fc9afb33d..0466c15473f5 100755..100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4153,8 +4153,7 @@ public class WindowManagerService extends IWindowManager.Stub
mStartingIconInTransition = false;
mSkipAppTransitionAnimation = false;
mH.removeMessages(H.APP_TRANSITION_TIMEOUT);
- mH.sendMessageDelayed(mH.obtainMessage(H.APP_TRANSITION_TIMEOUT),
- 5000);
+ mH.sendEmptyMessageDelayed(H.APP_TRANSITION_TIMEOUT, 5000);
}
}
}
@@ -4725,8 +4724,7 @@ public class WindowManagerService extends IWindowManager.Stub
if (mAppsFreezingScreen == 1) {
startFreezingDisplayLocked(false, 0, 0);
mH.removeMessages(H.APP_FREEZE_TIMEOUT);
- mH.sendMessageDelayed(mH.obtainMessage(H.APP_FREEZE_TIMEOUT),
- 5000);
+ mH.sendEmptyMessageDelayed(H.APP_FREEZE_TIMEOUT, 5000);
}
}
final int N = wtoken.allAppWindows.size();
@@ -5246,8 +5244,7 @@ public class WindowManagerService extends IWindowManager.Stub
try {
startFreezingDisplayLocked(false, exitAnim, enterAnim);
mH.removeMessages(H.CLIENT_FREEZE_TIMEOUT);
- mH.sendMessageDelayed(mH.obtainMessage(H.CLIENT_FREEZE_TIMEOUT),
- 5000);
+ mH.sendEmptyMessageDelayed(H.CLIENT_FREEZE_TIMEOUT, 5000);
} finally {
Binder.restoreCallingIdentity(origId);
}
@@ -5375,7 +5372,7 @@ public class WindowManagerService extends IWindowManager.Stub
}
// Persist setting
- mH.obtainMessage(H.PERSIST_ANIMATION_SCALE).sendToTarget();
+ mH.sendEmptyMessage(H.PERSIST_ANIMATION_SCALE);
}
public void setAnimationScales(float[] scales) {
@@ -5397,7 +5394,7 @@ public class WindowManagerService extends IWindowManager.Stub
}
// Persist setting
- mH.obtainMessage(H.PERSIST_ANIMATION_SCALE).sendToTarget();
+ mH.sendEmptyMessage(H.PERSIST_ANIMATION_SCALE);
}
private void setAnimatorDurationScale(float scale) {
@@ -5507,8 +5504,7 @@ public class WindowManagerService extends IWindowManager.Stub
hideBootMessagesLocked();
// If the screen still doesn't come up after 30 seconds, give
// up and turn it on.
- Message msg = mH.obtainMessage(H.BOOT_TIMEOUT);
- mH.sendMessageDelayed(msg, 30*1000);
+ mH.sendEmptyMessageDelayed(H.BOOT_TIMEOUT, 30*1000);
}
mPolicy.systemBooted();
@@ -5531,7 +5527,7 @@ public class WindowManagerService extends IWindowManager.Stub
if (!mSystemBooted && !mShowingBootMessages) {
return;
}
- mH.sendMessage(mH.obtainMessage(H.ENABLE_SCREEN));
+ mH.sendEmptyMessage(H.ENABLE_SCREEN);
}
public void performBootTimeout() {
@@ -6107,7 +6103,7 @@ public class WindowManagerService extends IWindowManager.Stub
mWindowsFreezingScreen = true;
mH.removeMessages(H.WINDOW_FREEZE_TIMEOUT);
- mH.sendMessageDelayed(mH.obtainMessage(H.WINDOW_FREEZE_TIMEOUT),
+ mH.sendEmptyMessageDelayed(H.WINDOW_FREEZE_TIMEOUT,
WINDOW_FREEZE_TIMEOUT_DURATION);
mWaitingForConfig = true;
getDefaultDisplayContentLocked().layoutNeeded = true;
@@ -7636,8 +7632,7 @@ public class WindowManagerService extends IWindowManager.Stub
if (mAnimator.mAnimating || mLayoutToAnim.mAnimationScheduled) {
// If we are animating, don't do the gc now but
// delay a bit so we don't interrupt the animation.
- mH.sendMessageDelayed(mH.obtainMessage(H.FORCE_GC),
- 2000);
+ sendEmptyMessageDelayed(H.FORCE_GC, 2000);
return;
}
// If we are currently rotating the display, it will
@@ -7762,7 +7757,7 @@ public class WindowManagerService extends IWindowManager.Stub
// Used to send multiple changes from the animation side to the layout side.
synchronized (mWindowMap) {
if (copyAnimToLayoutParamsLocked()) {
- mH.sendEmptyMessage(CLEAR_PENDING_ACTIONS);
+ sendEmptyMessage(CLEAR_PENDING_ACTIONS);
performLayoutAndPlaceSurfacesLocked();
}
}
@@ -8351,7 +8346,7 @@ public class WindowManagerService extends IWindowManager.Stub
if (mWindowsChanged && !mWindowChangeListeners.isEmpty()) {
mH.removeMessages(H.REPORT_WINDOWS_CHANGE);
- mH.sendMessage(mH.obtainMessage(H.REPORT_WINDOWS_CHANGE));
+ mH.sendEmptyMessage(H.REPORT_WINDOWS_CHANGE);
}
} catch (RuntimeException e) {
mInLayout = false;
@@ -8547,8 +8542,8 @@ public class WindowManagerService extends IWindowManager.Stub
// XXX should probably keep timeout from
// when we first froze the display.
mH.removeMessages(H.WINDOW_FREEZE_TIMEOUT);
- mH.sendMessageDelayed(mH.obtainMessage(
- H.WINDOW_FREEZE_TIMEOUT), WINDOW_FREEZE_TIMEOUT_DURATION);
+ mH.sendEmptyMessageDelayed(H.WINDOW_FREEZE_TIMEOUT,
+ WINDOW_FREEZE_TIMEOUT_DURATION);
}
}
}
@@ -10225,8 +10220,7 @@ public class WindowManagerService extends IWindowManager.Stub
// processes holds on others can be released if they are
// no longer needed.
mH.removeMessages(H.FORCE_GC);
- mH.sendMessageDelayed(mH.obtainMessage(H.FORCE_GC),
- 2000);
+ mH.sendEmptyMessageDelayed(H.FORCE_GC, 2000);
mScreenFrozenLock.release();
diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp
index 50bd46e704e4..036fc43a0e1d 100755..100644
--- a/services/jni/com_android_server_location_GpsLocationProvider.cpp
+++ b/services/jni/com_android_server_location_GpsLocationProvider.cpp
@@ -490,7 +490,7 @@ static void android_location_GpsLocationProvider_agps_data_conn_open(JNIEnv* env
static void android_location_GpsLocationProvider_agps_data_conn_closed(JNIEnv* env, jobject obj)
{
if (!sAGpsInterface) {
- ALOGE("no AGPS interface in agps_data_conn_open");
+ ALOGE("no AGPS interface in agps_data_conn_closed");
return;
}
sAGpsInterface->data_conn_closed();
@@ -499,7 +499,7 @@ static void android_location_GpsLocationProvider_agps_data_conn_closed(JNIEnv* e
static void android_location_GpsLocationProvider_agps_data_conn_failed(JNIEnv* env, jobject obj)
{
if (!sAGpsInterface) {
- ALOGE("no AGPS interface in agps_data_conn_open");
+ ALOGE("no AGPS interface in agps_data_conn_failed");
return;
}
sAGpsInterface->data_conn_failed();
@@ -509,7 +509,7 @@ static void android_location_GpsLocationProvider_set_agps_server(JNIEnv* env, jo
jint type, jstring hostname, jint port)
{
if (!sAGpsInterface) {
- ALOGE("no AGPS interface in agps_data_conn_open");
+ ALOGE("no AGPS interface in set_agps_server");
return;
}
const char *c_hostname = env->GetStringUTFChars(hostname, NULL);
diff --git a/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java b/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java
index 5f5d6684f383..5f5d6684f383 100755..100644
--- a/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java
+++ b/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java
diff --git a/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java
new file mode 100644
index 000000000000..b6742a104c30
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java
@@ -0,0 +1,243 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.updates;
+
+import android.content.Context;
+import android.content.Intent;
+import android.test.AndroidTestCase;
+import android.provider.Settings;
+import android.util.Base64;
+import android.util.Log;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.cert.CertificateFactory;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.Signature;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.KeyFactory;
+import java.util.HashSet;
+import java.io.*;
+import libcore.io.IoUtils;
+
+/**
+ * Tests for {@link com.android.server.CertPinInstallReceiver}
+ */
+public class CertPinInstallReceiverTest extends AndroidTestCase {
+
+ private static final String TAG = "CertPinInstallReceiverTest";
+
+ private static final String PINLIST_ROOT = System.getenv("ANDROID_DATA") + "/misc/keychain/";
+
+ public static final String PINLIST_CONTENT_PATH = PINLIST_ROOT + "pins";
+ public static final String PINLIST_METADATA_PATH = PINLIST_CONTENT_PATH + "metadata";
+
+ public static final String PINLIST_CONTENT_URL_KEY = "pinlist_content_url";
+ public static final String PINLIST_METADATA_URL_KEY = "pinlist_metadata_url";
+ public static final String PINLIST_CERTIFICATE_KEY = "config_update_certificate";
+ public static final String PINLIST_VERSION_KEY = "pinlist_version";
+
+ private static final String EXTRA_CONTENT_PATH = "CONTENT_PATH";
+ private static final String EXTRA_REQUIRED_HASH = "REQUIRED_HASH";
+ private static final String EXTRA_SIGNATURE = "SIGNATURE";
+ private static final String EXTRA_VERSION_NUMBER = "VERSION";
+
+ public static final String TEST_CERT = "" +
+ "MIIDsjCCAxugAwIBAgIJAPLf2gS0zYGUMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYDVQQGEwJVUzET" +
+ "MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEPMA0GA1UEChMGR29v" +
+ "Z2xlMRAwDgYDVQQLEwd0ZXN0aW5nMRYwFAYDVQQDEw1HZXJlbXkgQ29uZHJhMSEwHwYJKoZIhvcN" +
+ "AQkBFhJnY29uZHJhQGdvb2dsZS5jb20wHhcNMTIwNzE0MTc1MjIxWhcNMTIwODEzMTc1MjIxWjCB" +
+ "mDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZp" +
+ "ZXcxDzANBgNVBAoTBkdvb2dsZTEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNR2VyZW15IENv" +
+ "bmRyYTEhMB8GCSqGSIb3DQEJARYSZ2NvbmRyYUBnb29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUA" +
+ "A4GNADCBiQKBgQCjGGHATBYlmas+0sEECkno8LZ1KPglb/mfe6VpCT3GhSr+7br7NG/ZwGZnEhLq" +
+ "E7YIH4fxltHmQC3Tz+jM1YN+kMaQgRRjo/LBCJdOKaMwUbkVynAH6OYsKevjrOPk8lfM5SFQzJMG" +
+ "sA9+Tfopr5xg0BwZ1vA/+E3mE7Tr3M2UvwIDAQABo4IBADCB/TAdBgNVHQ4EFgQUhzkS9E6G+x8W" +
+ "L4EsmRjDxu28tHUwgc0GA1UdIwSBxTCBwoAUhzkS9E6G+x8WL4EsmRjDxu28tHWhgZ6kgZswgZgx" +
+ "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3" +
+ "MQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNVBAsTB3Rlc3RpbmcxFjAUBgNVBAMTDUdlcmVteSBDb25k" +
+ "cmExITAfBgkqhkiG9w0BCQEWEmdjb25kcmFAZ29vZ2xlLmNvbYIJAPLf2gS0zYGUMAwGA1UdEwQF" +
+ "MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAYiugFDmbDOQ2U/+mqNt7o8ftlEo9SJrns6O8uTtK6AvR" +
+ "orDrR1AXTXkuxwLSbmVfedMGOZy7Awh7iZa8hw5x9XmUudfNxvmrKVEwGQY2DZ9PXbrnta/dwbhK" +
+ "mWfoepESVbo7CKIhJp8gRW0h1Z55ETXD57aGJRvQS4pxkP8ANhM=";
+
+
+ public static final String TEST_KEY = "" +
+ "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKMYYcBMFiWZqz7SwQQKSejwtnUo" +
+ "+CVv+Z97pWkJPcaFKv7tuvs0b9nAZmcSEuoTtggfh/GW0eZALdPP6MzVg36QxpCBFGOj8sEIl04p" +
+ "ozBRuRXKcAfo5iwp6+Os4+TyV8zlIVDMkwawD35N+imvnGDQHBnW8D/4TeYTtOvczZS/AgMBAAEC" +
+ "gYBxwFalNSwZK3WJipq+g6KLCiBn1JxGGDQlLKrweFaSuFyFky9fd3IvkIabirqQchD612sMb+GT" +
+ "0t1jptW6z4w2w6++IW0A3apDOCwoD+uvDBXrbFqI0VbyAWUNqHVdaFFIRk2IHGEE6463mGRdmILX" +
+ "IlCd/85RTHReg4rl/GFqWQJBANgLAIR4pWbl5Gm+DtY18wp6Q3pJAAMkmP/lISCBIidu1zcqYIKt" +
+ "PoDW4Knq9xnhxPbXrXKv4YzZWHBK8GkKhQ0CQQDBQnXufQcMew+PwiS0oJvS+eQ6YJwynuqG2ejg" +
+ "WE+T7489jKtscRATpUXpZUYmDLGg9bLt7L62hFvFSj2LO2X7AkBcdrD9AWnBFWlh/G77LVHczSEu" +
+ "KCoyLiqxcs5vy/TjLaQ8vw1ZQG580/qJnr+tOxyCjSJ18GK3VppsTRaBznfNAkB3nuCKNp9HTWCL" +
+ "dfrsRsFMrFpk++mSt6SoxXaMbn0LL2u1CD4PCEiQMGt+lK3/3TmRTKNs+23sYS7Ahjxj0udDAkEA" +
+ "p57Nj65WNaWeYiOfTwKXkLj8l29H5NbaGWxPT0XkWr4PvBOFZVH/wj0/qc3CMVGnv11+DyO+QUCN" +
+ "SqBB5aRe8g==";
+
+ private void overrideSettings(String key, String value) throws Exception {
+ assertTrue(Settings.Secure.putString(mContext.getContentResolver(), key, value));
+ Thread.sleep(1000);
+ }
+
+ private void overrideCert(String value) throws Exception {
+ overrideSettings(PINLIST_CERTIFICATE_KEY, value);
+ }
+
+ private String readPins() throws Exception {
+ return IoUtils.readFileAsString(PINLIST_CONTENT_PATH);
+ }
+
+ private String readCurrentVersion() throws Exception {
+ return IoUtils.readFileAsString("/data/misc/keychain/metadata/version");
+ }
+
+ private String getNextVersion() throws Exception {
+ int currentVersion = Integer.parseInt(readCurrentVersion());
+ return Integer.toString(currentVersion + 1);
+ }
+
+ private static String getCurrentHash(String content) throws Exception {
+ if (content == null) {
+ return "0";
+ }
+ MessageDigest dgst = MessageDigest.getInstance("SHA512");
+ byte[] encoded = content.getBytes();
+ byte[] fingerprint = dgst.digest(encoded);
+ return IntegralToString.bytesToHexString(fingerprint, false);
+ }
+
+ private static String getHashOfCurrentContent() throws Exception {
+ String content = IoUtils.readFileAsString("/data/misc/keychain/pins");
+ return getCurrentHash(content);
+ }
+
+ private PrivateKey createKey() throws Exception {
+ byte[] derKey = Base64.decode(TEST_KEY.getBytes(), Base64.DEFAULT);
+ PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(derKey);
+ KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+ return (PrivateKey) keyFactory.generatePrivate(keySpec);
+ }
+
+ private X509Certificate createCertificate() throws Exception {
+ byte[] derCert = Base64.decode(TEST_CERT.getBytes(), Base64.DEFAULT);
+ InputStream istream = new ByteArrayInputStream(derCert);
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ return (X509Certificate) cf.generateCertificate(istream);
+ }
+
+ private String makeTemporaryContentFile(String content) throws Exception {
+ FileOutputStream fw = mContext.openFileOutput("content.txt", mContext.MODE_WORLD_READABLE);
+ fw.write(content.getBytes(), 0, content.length());
+ fw.close();
+ return mContext.getFilesDir() + "/content.txt";
+ }
+
+ private String createSignature(String content, String version, String requiredHash)
+ throws Exception {
+ Signature signer = Signature.getInstance("SHA512withRSA");
+ signer.initSign(createKey());
+ signer.update(content.trim().getBytes());
+ signer.update(version.trim().getBytes());
+ signer.update(requiredHash.getBytes());
+ String sig = new String(Base64.encode(signer.sign(), Base64.DEFAULT));
+ assertEquals(true,
+ verifySignature(content, version, requiredHash, sig, createCertificate()));
+ return sig;
+ }
+
+ public boolean verifySignature(String content, String version, String requiredPrevious,
+ String signature, X509Certificate cert) throws Exception {
+ Signature signer = Signature.getInstance("SHA512withRSA");
+ signer.initVerify(cert);
+ signer.update(content.trim().getBytes());
+ signer.update(version.trim().getBytes());
+ signer.update(requiredPrevious.trim().getBytes());
+ return signer.verify(Base64.decode(signature.getBytes(), Base64.DEFAULT));
+ }
+
+ private void sendIntent(String contentPath, String version, String required, String sig) {
+ Intent i = new Intent();
+ i.setAction("android.intent.action.UPDATE_PINS");
+ i.putExtra(EXTRA_CONTENT_PATH, contentPath);
+ i.putExtra(EXTRA_VERSION_NUMBER, version);
+ i.putExtra(EXTRA_REQUIRED_HASH, required);
+ i.putExtra(EXTRA_SIGNATURE, sig);
+ mContext.sendBroadcast(i);
+ }
+
+ private String runTest(String cert, String content, String version, String required, String sig)
+ throws Exception {
+ Log.e(TAG, "started test");
+ overrideCert(cert);
+ String contentPath = makeTemporaryContentFile(content);
+ sendIntent(contentPath, version, required, sig);
+ Thread.sleep(1000);
+ return readPins();
+ }
+
+ private String runTestWithoutSig(String cert, String content, String version, String required)
+ throws Exception {
+ String sig = createSignature(content, version, required);
+ return runTest(cert, content, version, required, sig);
+ }
+
+ public void testOverwritePinlist() throws Exception {
+ Log.e(TAG, "started testOverwritePinList");
+ assertEquals("abcde", runTestWithoutSig(TEST_CERT, "abcde", getNextVersion(), getHashOfCurrentContent()));
+ Log.e(TAG, "started testOverwritePinList");
+ }
+
+ public void testBadSignatureFails() throws Exception {
+ Log.e(TAG, "started testOverwritePinList");
+ String text = "blahblah";
+ runTestWithoutSig(TEST_CERT, text, getNextVersion(), getHashOfCurrentContent());
+ assertEquals(text, runTest(TEST_CERT, "bcdef", getNextVersion(), getCurrentHash(text), ""));
+ Log.e(TAG, "started testOverwritePinList");
+ }
+
+ public void testBadRequiredHashFails() throws Exception {
+ runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent());
+ assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", getNextVersion(), "0"));
+ Log.e(TAG, "started testOverwritePinList");
+ }
+
+ public void testBadVersionFails() throws Exception {
+ String text = "blahblahblahblah";
+ String version = getNextVersion();
+ runTestWithoutSig(TEST_CERT, text, version, getHashOfCurrentContent());
+ assertEquals(text, runTestWithoutSig(TEST_CERT, "defgh", version, getCurrentHash(text)));
+ Log.e(TAG, "started testOverwritePinList");
+ }
+
+ public void testOverrideRequiredHash() throws Exception {
+ runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent());
+ assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", "NONE", "0"));
+ Log.e(TAG, "started testOverwritePinList");
+ }
+
+}
diff --git a/telephony/java/android/telephony/CellIdentityCdma.java b/telephony/java/android/telephony/CellIdentityCdma.java
index 9579b917f134..6e2a70d64856 100644
--- a/telephony/java/android/telephony/CellIdentityCdma.java
+++ b/telephony/java/android/telephony/CellIdentityCdma.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* CellIdentity is to represent a unique CDMA cell
@@ -219,6 +219,6 @@ public final class CellIdentityCdma implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java
index 21cb790cfb53..bda96be22931 100644
--- a/telephony/java/android/telephony/CellIdentityGsm.java
+++ b/telephony/java/android/telephony/CellIdentityGsm.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* CellIdentity to represent a unique GSM or UMTS cell
@@ -204,6 +204,6 @@ public final class CellIdentityGsm implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java
index ad822bb30fce..f72d5836d054 100644
--- a/telephony/java/android/telephony/CellIdentityLte.java
+++ b/telephony/java/android/telephony/CellIdentityLte.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* CellIdentity is to represent a unique LTE cell
@@ -199,6 +199,6 @@ public final class CellIdentityLte implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java
index ea48e2e2313b..a5d6e9ce8178 100644
--- a/telephony/java/android/telephony/CellInfoCdma.java
+++ b/telephony/java/android/telephony/CellInfoCdma.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Immutable cell information from a point in time.
@@ -143,6 +143,6 @@ public final class CellInfoCdma extends CellInfo implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java
index bd14d45a2d1a..bf0eca8de867 100644
--- a/telephony/java/android/telephony/CellInfoGsm.java
+++ b/telephony/java/android/telephony/CellInfoGsm.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Immutable cell information from a point in time.
@@ -142,6 +142,6 @@ public final class CellInfoGsm extends CellInfo implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java
index 2f81b65607be..35dea240e23e 100644
--- a/telephony/java/android/telephony/CellInfoLte.java
+++ b/telephony/java/android/telephony/CellInfoLte.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Immutable cell information from a point in time.
@@ -148,6 +148,6 @@ public final class CellInfoLte extends CellInfo implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellSignalStrengthCdma.java b/telephony/java/android/telephony/CellSignalStrengthCdma.java
index 660326c4bffe..190fea2b13ab 100644
--- a/telephony/java/android/telephony/CellSignalStrengthCdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthCdma.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* LTE signal strength related information.
@@ -376,6 +376,6 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java
index 4108f615ec71..2c36344bb9c8 100644
--- a/telephony/java/android/telephony/CellSignalStrengthGsm.java
+++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* LTE signal strength related information.
@@ -229,6 +229,6 @@ public final class CellSignalStrengthGsm extends CellSignalStrength implements P
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java
index 925f4d4d1e77..55680c8a9a30 100644
--- a/telephony/java/android/telephony/CellSignalStrengthLte.java
+++ b/telephony/java/android/telephony/CellSignalStrengthLte.java
@@ -18,7 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* LTE signal strength related information.
@@ -293,6 +293,6 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index f74071861967..8b85d8ca7d88 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -33,7 +33,7 @@ import android.provider.ContactsContract;
import android.text.Editable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
-import android.util.Log;
+import android.telephony.Rlog;
import android.util.SparseIntArray;
import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY;
@@ -353,7 +353,7 @@ public class PhoneNumberUtils
}
private static void log(String msg) {
- Log.d(LOG_TAG, msg);
+ Rlog.d(LOG_TAG, msg);
}
/** index of the last character of the network portion
* (eg anything after is a post-dial string)
@@ -1711,7 +1711,7 @@ public class PhoneNumberUtils
return false;
}
- Log.d(LOG_TAG, "System property doesn't provide any emergency numbers."
+ Rlog.d(LOG_TAG, "System property doesn't provide any emergency numbers."
+ " Use embedded logic for determining ones.");
// No ecclist system property, so use our own list.
@@ -1805,7 +1805,7 @@ public class PhoneNumberUtils
} else {
Locale locale = context.getResources().getConfiguration().locale;
countryIso = locale.getCountry();
- Log.w(LOG_TAG, "No CountryDetector; falling back to countryIso based on locale: "
+ Rlog.w(LOG_TAG, "No CountryDetector; falling back to countryIso based on locale: "
+ countryIso);
}
return isEmergencyNumberInternal(number, countryIso, useExactMatch);
@@ -2015,7 +2015,7 @@ public class PhoneNumberUtils
// This should never happen since we checked the if dialStr is null
// and if it contains the plus sign in the beginning of this function.
// The plus sign is part of the network portion.
- Log.e("checkAndProcessPlusCode: null newDialStr", networkDialStr);
+ Rlog.e("checkAndProcessPlusCode: null newDialStr", networkDialStr);
return dialStr;
}
postDialStr = extractPostDialPortion(tempDialStr);
@@ -2035,7 +2035,7 @@ public class PhoneNumberUtils
if (dialableIndex < 0) {
postDialStr = "";
}
- Log.e("wrong postDialStr=", postDialStr);
+ Rlog.e("wrong postDialStr=", postDialStr);
}
}
if (DBG) log("checkAndProcessPlusCode,postDialStr=" + postDialStr);
@@ -2044,7 +2044,7 @@ public class PhoneNumberUtils
// TODO: Support NANP international conversion and other telephone numbering plans.
// Currently the phone is never used in non-NANP system, so return the original
// dial string.
- Log.e("checkAndProcessPlusCode:non-NANP not supported", dialStr);
+ Rlog.e("checkAndProcessPlusCode:non-NANP not supported", dialStr);
}
}
return retStr;
@@ -2103,7 +2103,7 @@ public class PhoneNumberUtils
}
}
} else {
- Log.e("isNanp: null dialStr passed in", dialStr);
+ Rlog.e("isNanp: null dialStr passed in", dialStr);
}
return retVal;
}
@@ -2119,7 +2119,7 @@ public class PhoneNumberUtils
retVal = true;
}
} else {
- Log.e("isOneNanp: null dialStr passed in", dialStr);
+ Rlog.e("isOneNanp: null dialStr passed in", dialStr);
}
return retVal;
}
@@ -2158,7 +2158,7 @@ public class PhoneNumberUtils
delimiterIndex = number.indexOf("%40");
}
if (delimiterIndex < 0) {
- Log.w(LOG_TAG,
+ Rlog.w(LOG_TAG,
"getUsernameFromUriNumber: no delimiter found in SIP addr '" + number + "'");
delimiterIndex = number.length();
}
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java
index f3ccae62bc80..ff77fc012f5c 100644
--- a/telephony/java/android/telephony/PhoneStateListener.java
+++ b/telephony/java/android/telephony/PhoneStateListener.java
@@ -23,7 +23,7 @@ import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.CellLocation;
import android.telephony.CellInfo;
-import android.util.Log;
+import android.telephony.Rlog;
import com.android.internal.telephony.IPhoneStateListener;
@@ -348,7 +348,7 @@ public class PhoneStateListener {
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
- //Log.d("TelephonyRegistry", "what=0x" + Integer.toHexString(msg.what) + " msg=" + msg);
+ //Rlog.d("TelephonyRegistry", "what=0x" + Integer.toHexString(msg.what) + " msg=" + msg);
switch (msg.what) {
case LISTEN_SERVICE_STATE:
PhoneStateListener.this.onServiceStateChanged((ServiceState)msg.obj);
diff --git a/telephony/java/android/telephony/Rlog.java b/telephony/java/android/telephony/Rlog.java
new file mode 100644
index 000000000000..9ac7bdaeaacc
--- /dev/null
+++ b/telephony/java/android/telephony/Rlog.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.telephony;
+
+import com.android.internal.os.RuntimeInit;
+
+import android.util.Log;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+/**
+ * A class to log strings to the RADIO LOG.
+ *
+ * @hide
+ */
+public final class Rlog {
+
+ private Rlog() {
+ }
+
+ public static int v(String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.VERBOSE, tag, msg);
+ }
+
+ public static int v(String tag, String msg, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.VERBOSE, tag,
+ msg + '\n' + Log.getStackTraceString(tr));
+ }
+
+ public static int d(String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg);
+ }
+
+ public static int d(String tag, String msg, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag,
+ msg + '\n' + Log.getStackTraceString(tr));
+ }
+
+ public static int i(String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.INFO, tag, msg);
+ }
+
+ public static int i(String tag, String msg, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.INFO, tag,
+ msg + '\n' + Log.getStackTraceString(tr));
+ }
+
+ public static int w(String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag, msg);
+ }
+
+ public static int w(String tag, String msg, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag,
+ msg + '\n' + Log.getStackTraceString(tr));
+ }
+
+ public static int w(String tag, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.WARN, tag, Log.getStackTraceString(tr));
+ }
+
+ public static int e(String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.ERROR, tag, msg);
+ }
+
+ public static int e(String tag, String msg, Throwable tr) {
+ return Log.println_native(Log.LOG_ID_RADIO, Log.ERROR, tag,
+ msg + '\n' + Log.getStackTraceString(tr));
+ }
+
+ public static int println(int priority, String tag, String msg) {
+ return Log.println_native(Log.LOG_ID_RADIO, priority, tag, msg);
+ }
+
+ public static boolean isLoggable(String tag, int level) {
+ return Log.isLoggable(tag, level);
+ }
+
+}
+
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index a9a5e905fb8c..dcb73dc05356 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -19,7 +19,7 @@ package android.telephony;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Contains phone state and service related information.
@@ -460,7 +460,7 @@ public class ServiceState implements Parcelable {
break;
default:
rtString = "Unexpected";
- Log.w(LOG_TAG, "Unexpected radioTechnology=" + rt);
+ Rlog.w(LOG_TAG, "Unexpected radioTechnology=" + rt);
break;
}
return rtString;
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
index f99893529bba..e2da53ee45dc 100644
--- a/telephony/java/android/telephony/SignalStrength.java
+++ b/telephony/java/android/telephony/SignalStrength.java
@@ -19,7 +19,7 @@ package android.telephony;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Contains phone signal strength related information.
@@ -919,6 +919,6 @@ public class SignalStrength implements Parcelable {
* log
*/
private static void log(String s) {
- Log.w(LOG_TAG, s);
+ Rlog.w(LOG_TAG, s);
}
}
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 2fa41e77758b..b0349be54bf5 100755..100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -23,7 +23,7 @@ import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
-import android.util.Log;
+import android.telephony.Rlog;
import com.android.internal.telephony.IPhoneSubInfo;
import com.android.internal.telephony.ITelephony;
@@ -377,6 +377,8 @@ public class TelephonyManager {
case RILConstants.NETWORK_MODE_GSM_ONLY:
case RILConstants.NETWORK_MODE_WCDMA_ONLY:
case RILConstants.NETWORK_MODE_GSM_UMTS:
+ case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA:
+ case RILConstants.NETWORK_MODE_LTE_WCDMA:
return PhoneConstants.PHONE_TYPE_GSM;
// Use CDMA Phone for the global mode including CDMA
@@ -411,7 +413,7 @@ public class TelephonyManager {
cmdline = new String(buffer, 0, count);
}
} catch (IOException e) {
- Log.d(TAG, "No /proc/cmdline exception=" + e);
+ Rlog.d(TAG, "No /proc/cmdline exception=" + e);
} finally {
if (is != null) {
try {
@@ -420,7 +422,7 @@ public class TelephonyManager {
}
}
}
- Log.d(TAG, "/proc/cmdline=" + cmdline);
+ Rlog.d(TAG, "/proc/cmdline=" + cmdline);
return cmdline;
}
@@ -467,7 +469,7 @@ public class TelephonyManager {
}
}
- Log.d(TAG, "getLteOnCdmaMode=" + retVal + " curVal=" + curVal +
+ Rlog.d(TAG, "getLteOnCdmaMode=" + retVal + " curVal=" + curVal +
" product_type='" + productType +
"' lteOnCdmaProductType='" + sLteOnCdmaProductType + "'");
return retVal;
diff --git a/telephony/java/com/android/internal/telephony/CallerInfo.java b/telephony/java/com/android/internal/telephony/CallerInfo.java
index b1a587255084..228a630e40d8 100644
--- a/telephony/java/com/android/internal/telephony/CallerInfo.java
+++ b/telephony/java/com/android/internal/telephony/CallerInfo.java
@@ -29,6 +29,7 @@ import android.provider.ContactsContract.RawContacts;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
+import android.telephony.Rlog;
import android.util.Log;
import com.android.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
@@ -46,7 +47,7 @@ import java.util.Locale;
*/
public class CallerInfo {
private static final String TAG = "CallerInfo";
- private static final boolean VDBG = Log.isLoggable(TAG, Log.VERBOSE);
+ private static final boolean VDBG = Rlog.isLoggable(TAG, Log.VERBOSE);
public static final String UNKNOWN_NUMBER = "-1";
public static final String PRIVATE_NUMBER = "-2";
@@ -164,7 +165,7 @@ public class CallerInfo {
info.isCachedPhotoCurrent = false;
info.contactExists = false;
- if (VDBG) Log.v(TAG, "getCallerInfo() based on cursor...");
+ if (VDBG) Rlog.v(TAG, "getCallerInfo() based on cursor...");
if (cursor != null) {
if (cursor.moveToFirst()) {
@@ -209,10 +210,10 @@ public class CallerInfo {
columnIndex = getColumnIndexForPersonId(contactRef, cursor);
if (columnIndex != -1) {
info.person_id = cursor.getLong(columnIndex);
- if (VDBG) Log.v(TAG, "==> got info.person_id: " + info.person_id);
+ if (VDBG) Rlog.v(TAG, "==> got info.person_id: " + info.person_id);
} else {
// No valid columnIndex, so we can't look up person_id.
- Log.w(TAG, "Couldn't find person_id column for " + contactRef);
+ Rlog.w(TAG, "Couldn't find person_id column for " + contactRef);
// Watch out: this means that anything that depends on
// person_id will be broken (like contact photo lookups in
// the in-call UI, for example.)
@@ -269,7 +270,7 @@ public class CallerInfo {
* with all relevant fields empty or null.
*/
public static CallerInfo getCallerInfo(Context context, String number) {
- if (VDBG) Log.v(TAG, "getCallerInfo() based on number...");
+ if (VDBG) Rlog.v(TAG, "getCallerInfo() based on number...");
if (TextUtils.isEmpty(number)) {
return null;
@@ -414,7 +415,7 @@ public class CallerInfo {
// permission to retrieve VM number and would not call
// this method.
// Leave phoneNumber untouched.
- Log.e(TAG, "Cannot access VoiceMail.", se);
+ Rlog.e(TAG, "Cannot access VoiceMail.", se);
}
// TODO: There is no voicemail picture?
// FIXME: FIND ANOTHER ICON
@@ -473,10 +474,10 @@ public class CallerInfo {
// So instead, figure out the column to use for person_id by just
// looking at the URI itself.
- if (VDBG) Log.v(TAG, "- getColumnIndexForPersonId: contactRef URI = '"
+ if (VDBG) Rlog.v(TAG, "- getColumnIndexForPersonId: contactRef URI = '"
+ contactRef + "'...");
// Warning: Do not enable the following logging (due to ANR risk.)
- // if (VDBG) Log.v(TAG, "- MIME type: "
+ // if (VDBG) Rlog.v(TAG, "- MIME type: "
// + context.getContentResolver().getType(contactRef));
String url = contactRef.toString();
@@ -484,25 +485,25 @@ public class CallerInfo {
if (url.startsWith("content://com.android.contacts/data/phones")) {
// Direct lookup in the Phone table.
// MIME type: Phone.CONTENT_ITEM_TYPE (= "vnd.android.cursor.item/phone_v2")
- if (VDBG) Log.v(TAG, "'data/phones' URI; using RawContacts.CONTACT_ID");
+ if (VDBG) Rlog.v(TAG, "'data/phones' URI; using RawContacts.CONTACT_ID");
columnName = RawContacts.CONTACT_ID;
} else if (url.startsWith("content://com.android.contacts/data")) {
// Direct lookup in the Data table.
// MIME type: Data.CONTENT_TYPE (= "vnd.android.cursor.dir/data")
- if (VDBG) Log.v(TAG, "'data' URI; using Data.CONTACT_ID");
+ if (VDBG) Rlog.v(TAG, "'data' URI; using Data.CONTACT_ID");
// (Note Data.CONTACT_ID and RawContacts.CONTACT_ID are equivalent.)
columnName = Data.CONTACT_ID;
} else if (url.startsWith("content://com.android.contacts/phone_lookup")) {
// Lookup in the PhoneLookup table, which provides "fuzzy matching"
// for phone numbers.
// MIME type: PhoneLookup.CONTENT_TYPE (= "vnd.android.cursor.dir/phone_lookup")
- if (VDBG) Log.v(TAG, "'phone_lookup' URI; using PhoneLookup._ID");
+ if (VDBG) Rlog.v(TAG, "'phone_lookup' URI; using PhoneLookup._ID");
columnName = PhoneLookup._ID;
} else {
- Log.w(TAG, "Unexpected prefix for contactRef '" + url + "'");
+ Rlog.w(TAG, "Unexpected prefix for contactRef '" + url + "'");
}
int columnIndex = (columnName != null) ? cursor.getColumnIndex(columnName) : -1;
- if (VDBG) Log.v(TAG, "==> Using column '" + columnName
+ if (VDBG) Rlog.v(TAG, "==> Using column '" + columnName
+ "' (columnIndex = " + columnIndex + ") for person_id lookup...");
return columnIndex;
}
@@ -529,7 +530,7 @@ public class CallerInfo {
* @see com.android.i18n.phonenumbers.PhoneNumberOfflineGeocoder
*/
private static String getGeoDescription(Context context, String number) {
- if (VDBG) Log.v(TAG, "getGeoDescription('" + number + "')...");
+ if (VDBG) Rlog.v(TAG, "getGeoDescription('" + number + "')...");
if (TextUtils.isEmpty(number)) {
return null;
@@ -542,17 +543,17 @@ public class CallerInfo {
String countryIso = getCurrentCountryIso(context, locale);
PhoneNumber pn = null;
try {
- if (VDBG) Log.v(TAG, "parsing '" + number
+ if (VDBG) Rlog.v(TAG, "parsing '" + number
+ "' for countryIso '" + countryIso + "'...");
pn = util.parse(number, countryIso);
- if (VDBG) Log.v(TAG, "- parsed number: " + pn);
+ if (VDBG) Rlog.v(TAG, "- parsed number: " + pn);
} catch (NumberParseException e) {
- Log.w(TAG, "getGeoDescription: NumberParseException for incoming number '" + number + "'");
+ Rlog.w(TAG, "getGeoDescription: NumberParseException for incoming number '" + number + "'");
}
if (pn != null) {
String description = geocoder.getDescriptionForNumber(pn, locale);
- if (VDBG) Log.v(TAG, "- got description: '" + description + "'");
+ if (VDBG) Rlog.v(TAG, "- got description: '" + description + "'");
return description;
} else {
return null;
@@ -571,7 +572,7 @@ public class CallerInfo {
countryIso = detector.detectCountry().getCountryIso();
} else {
countryIso = locale.getCountry();
- Log.w(TAG, "No CountryDetector; falling back to countryIso based on locale: "
+ Rlog.w(TAG, "No CountryDetector; falling back to countryIso based on locale: "
+ countryIso);
}
return countryIso;
diff --git a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
index 4912749b568c..dd5f6444c3d7 100644
--- a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
+++ b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
@@ -31,7 +31,7 @@ import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.PhoneLookup;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
-import android.util.Log;
+import android.telephony.Rlog;
/**
* Helper class to make it easier to run asynchronous caller-id lookup queries.
@@ -137,13 +137,13 @@ public class CallerInfoAsyncQuery {
// However, if there is any code that this Handler calls (such as in
// super.handleMessage) that DOES place unexpected messages on the
// queue, then we need pass these messages on.
- if (DBG) Log.d(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what +
+ if (DBG) Rlog.d(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what +
" ignored by CallerInfoWorkerHandler, passing onto parent.");
super.handleMessage(msg);
} else {
- if (DBG) Log.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
+ if (DBG) Rlog.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
" command: " + msg.what + " query URI: " + sanitizeUriToString(args.uri));
switch (cw.event) {
@@ -199,7 +199,7 @@ public class CallerInfoAsyncQuery {
*/
@Override
protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
- if (DBG) Log.d(LOG_TAG, "##### onQueryComplete() ##### query complete for token: " + token);
+ if (DBG) Rlog.d(LOG_TAG, "##### onQueryComplete() ##### query complete for token: " + token);
//get the cookie and notify the listener.
CookieWrapper cw = (CookieWrapper) cookie;
@@ -208,7 +208,7 @@ public class CallerInfoAsyncQuery {
// from within this code.
// However, if there is any code that calls this method, we should
// check the parameters to make sure they're viable.
- if (DBG) Log.d(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request.");
+ if (DBG) Rlog.d(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request.");
return;
}
@@ -237,13 +237,13 @@ public class CallerInfoAsyncQuery {
mCallerInfo = new CallerInfo().markAsVoiceMail();
} else {
mCallerInfo = CallerInfo.getCallerInfo(mQueryContext, mQueryUri, cursor);
- if (DBG) Log.d(LOG_TAG, "==> Got mCallerInfo: " + mCallerInfo);
+ if (DBG) Rlog.d(LOG_TAG, "==> Got mCallerInfo: " + mCallerInfo);
CallerInfo newCallerInfo = CallerInfo.doSecondaryLookupIfNecessary(
mQueryContext, cw.number, mCallerInfo);
if (newCallerInfo != mCallerInfo) {
mCallerInfo = newCallerInfo;
- if (DBG) Log.d(LOG_TAG, "#####async contact look up with numeric username"
+ if (DBG) Rlog.d(LOG_TAG, "#####async contact look up with numeric username"
+ mCallerInfo);
}
@@ -279,7 +279,7 @@ public class CallerInfoAsyncQuery {
}
}
- if (DBG) Log.d(LOG_TAG, "constructing CallerInfo object for token: " + token);
+ if (DBG) Rlog.d(LOG_TAG, "constructing CallerInfo object for token: " + token);
//notify that we can clean up the queue after this.
CookieWrapper endMarker = new CookieWrapper();
@@ -289,7 +289,7 @@ public class CallerInfoAsyncQuery {
//notify the listener that the query is complete.
if (cw.listener != null) {
- if (DBG) Log.d(LOG_TAG, "notifying listener: " + cw.listener.getClass().toString() +
+ if (DBG) Rlog.d(LOG_TAG, "notifying listener: " + cw.listener.getClass().toString() +
" for token: " + token + mCallerInfo);
cw.listener.onQueryComplete(token, cw.cookie, mCallerInfo);
}
@@ -312,7 +312,7 @@ public class CallerInfoAsyncQuery {
CallerInfoAsyncQuery c = new CallerInfoAsyncQuery();
c.allocate(context, contactRef);
- if (DBG) Log.d(LOG_TAG, "starting query for URI: " + contactRef + " handler: " + c.toString());
+ if (DBG) Rlog.d(LOG_TAG, "starting query for URI: " + contactRef + " handler: " + c.toString());
//create cookieWrapper, start query
CookieWrapper cw = new CookieWrapper();
@@ -339,9 +339,9 @@ public class CallerInfoAsyncQuery {
public static CallerInfoAsyncQuery startQuery(int token, Context context, String number,
OnQueryCompleteListener listener, Object cookie) {
if (DBG) {
- Log.d(LOG_TAG, "##### CallerInfoAsyncQuery startQuery()... #####");
- Log.d(LOG_TAG, "- number: " + /*number*/ "xxxxxxx");
- Log.d(LOG_TAG, "- cookie: " + cookie);
+ Rlog.d(LOG_TAG, "##### CallerInfoAsyncQuery startQuery()... #####");
+ Rlog.d(LOG_TAG, "- number: " + /*number*/ "xxxxxxx");
+ Rlog.d(LOG_TAG, "- cookie: " + cookie);
}
// Construct the URI object and query params, and start the query.
@@ -352,7 +352,7 @@ public class CallerInfoAsyncQuery {
if (PhoneNumberUtils.isUriNumber(number)) {
// "number" is really a SIP address.
- if (DBG) Log.d(LOG_TAG, " - Treating number as a SIP address: " + /*number*/ "xxxxxxx");
+ if (DBG) Rlog.d(LOG_TAG, " - Treating number as a SIP address: " + /*number*/ "xxxxxxx");
// We look up SIP addresses directly in the Data table:
contactRef = Data.CONTENT_URI;
@@ -384,11 +384,11 @@ public class CallerInfoAsyncQuery {
}
if (DBG) {
- Log.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
- Log.d(LOG_TAG, "==> selection: " + selection);
+ Rlog.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
+ Rlog.d(LOG_TAG, "==> selection: " + selection);
if (selectionArgs != null) {
for (int i = 0; i < selectionArgs.length; i++) {
- Log.d(LOG_TAG, "==> selectionArgs[" + i + "]: " + selectionArgs[i]);
+ Rlog.d(LOG_TAG, "==> selectionArgs[" + i + "]: " + selectionArgs[i]);
}
}
}
@@ -426,7 +426,7 @@ public class CallerInfoAsyncQuery {
*/
public void addQueryListener(int token, OnQueryCompleteListener listener, Object cookie) {
- if (DBG) Log.d(LOG_TAG, "adding listener to query: " + sanitizeUriToString(mHandler.mQueryUri) +
+ if (DBG) Rlog.d(LOG_TAG, "adding listener to query: " + sanitizeUriToString(mHandler.mQueryUri) +
" handler: " + mHandler.toString());
//create cookieWrapper, add query request to end of queue.
diff --git a/telephony/java/com/android/internal/telephony/GsmAlphabet.java b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
index ba14ea70c522..4cba70d9d2e1 100644
--- a/telephony/java/com/android/internal/telephony/GsmAlphabet.java
+++ b/telephony/java/com/android/internal/telephony/GsmAlphabet.java
@@ -20,7 +20,7 @@ import android.content.res.Resources;
import android.text.TextUtils;
import android.util.SparseIntArray;
-import android.util.Log;
+import android.telephony.Rlog;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
@@ -477,11 +477,11 @@ public class GsmAlphabet {
StringBuilder ret = new StringBuilder(lengthSeptets);
if (languageTable < 0 || languageTable > sLanguageTables.length) {
- Log.w(TAG, "unknown language table " + languageTable + ", using default");
+ Rlog.w(TAG, "unknown language table " + languageTable + ", using default");
languageTable = 0;
}
if (shiftTable < 0 || shiftTable > sLanguageShiftTables.length) {
- Log.w(TAG, "unknown single shift table " + shiftTable + ", using default");
+ Rlog.w(TAG, "unknown single shift table " + shiftTable + ", using default");
shiftTable = 0;
}
@@ -491,11 +491,11 @@ public class GsmAlphabet {
String shiftTableToChar = sLanguageShiftTables[shiftTable];
if (languageTableToChar.isEmpty()) {
- Log.w(TAG, "no language table for code " + languageTable + ", using default");
+ Rlog.w(TAG, "no language table for code " + languageTable + ", using default");
languageTableToChar = sLanguageTables[0];
}
if (shiftTableToChar.isEmpty()) {
- Log.w(TAG, "no single shift table for code " + shiftTable + ", using default");
+ Rlog.w(TAG, "no single shift table for code " + shiftTable + ", using default");
shiftTableToChar = sLanguageShiftTables[0];
}
@@ -535,7 +535,7 @@ public class GsmAlphabet {
}
}
} catch (RuntimeException ex) {
- Log.e(TAG, "Error GSM 7 bit packed: ", ex);
+ Rlog.e(TAG, "Error GSM 7 bit packed: ", ex);
return null;
}
@@ -767,7 +767,7 @@ public class GsmAlphabet {
for (int i = 0; i < sz; i++) {
char c = s.charAt(i);
if (c == GSM_EXTENDED_ESCAPE) {
- Log.w(TAG, "countGsmSeptets() string contains Escape character, skipping.");
+ Rlog.w(TAG, "countGsmSeptets() string contains Escape character, skipping.");
continue;
}
if (charToLanguageTable.get(c, -1) != -1) {
@@ -847,7 +847,7 @@ public class GsmAlphabet {
for (int i = 0; i < sz && !lpcList.isEmpty(); i++) {
char c = s.charAt(i);
if (c == GSM_EXTENDED_ESCAPE) {
- Log.w(TAG, "countGsmSeptets() string contains Escape character, ignoring!");
+ Rlog.w(TAG, "countGsmSeptets() string contains Escape character, ignoring!");
continue;
}
// iterate through enabled locking shift tables
@@ -1439,7 +1439,7 @@ public class GsmAlphabet {
int numTables = sLanguageTables.length;
int numShiftTables = sLanguageShiftTables.length;
if (numTables != numShiftTables) {
- Log.e(TAG, "Error: language tables array length " + numTables +
+ Rlog.e(TAG, "Error: language tables array length " + numTables +
" != shift tables array length " + numShiftTables);
}
@@ -1449,7 +1449,7 @@ public class GsmAlphabet {
int tableLen = table.length();
if (tableLen != 0 && tableLen != 128) {
- Log.e(TAG, "Error: language tables index " + i +
+ Rlog.e(TAG, "Error: language tables index " + i +
" length " + tableLen + " (expected 128 or 0)");
}
@@ -1467,7 +1467,7 @@ public class GsmAlphabet {
int shiftTableLen = shiftTable.length();
if (shiftTableLen != 0 && shiftTableLen != 128) {
- Log.e(TAG, "Error: language shift tables index " + i +
+ Rlog.e(TAG, "Error: language shift tables index " + i +
" length " + shiftTableLen + " (expected 128 or 0)");
}
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index f501b210709d..077ad688aaf0 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -72,7 +72,7 @@ public interface RILConstants {
int NETWORK_MODE_LTE_GSM_WCDMA = 9; /* LTE, GSM/WCDMA */
int NETWORK_MODE_LTE_CMDA_EVDO_GSM_WCDMA = 10; /* LTE, CDMA, EvDo, GSM/WCDMA */
int NETWORK_MODE_LTE_ONLY = 11; /* LTE Only mode. */
-
+ int NETWORK_MODE_LTE_WCDMA = 12; /* LTE/WCDMA */
int PREFERRED_NETWORK_MODE = NETWORK_MODE_WCDMA_PREF;
int CDMA_CELL_BROADCAST_SMS_DISABLED = 1;
diff --git a/test-runner/src/android/test/NoExecTestResult.java b/test-runner/src/android/test/NoExecTestResult.java
index 1ee62c169090..1ee62c169090 100755..100644
--- a/test-runner/src/android/test/NoExecTestResult.java
+++ b/test-runner/src/android/test/NoExecTestResult.java
diff --git a/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png b/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png
index 47c79d1c149e..47c79d1c149e 100755..100644
--- a/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png
+++ b/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png
Binary files differ
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
index fb2a1f44f658..fb2a1f44f658 100755..100644
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
diff --git a/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png b/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png
index 6c9ba0a979c1..6c9ba0a979c1 100755..100644
--- a/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png
+++ b/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png
Binary files differ
diff --git a/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png b/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png
index 27f5bb74e8b4..27f5bb74e8b4 100755..100644
--- a/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png
+++ b/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png
Binary files differ
diff --git a/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png b/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png
index 6c9ba0a979c1..6c9ba0a979c1 100755..100644
--- a/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png
+++ b/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png
Binary files differ
diff --git a/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java b/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java
index b1c4486a7d33..b1c4486a7d33 100755..100644
--- a/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java
+++ b/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java
diff --git a/tests/ImfTest/Android.mk b/tests/ImfTest/Android.mk
index eb5327b11213..eb5327b11213 100755..100644
--- a/tests/ImfTest/Android.mk
+++ b/tests/ImfTest/Android.mk
diff --git a/tests/ImfTest/AndroidManifest.xml b/tests/ImfTest/AndroidManifest.xml
index 82dbe753534c..82dbe753534c 100755..100644
--- a/tests/ImfTest/AndroidManifest.xml
+++ b/tests/ImfTest/AndroidManifest.xml
diff --git a/tests/ImfTest/res/layout/full_screen_edit_text.xml b/tests/ImfTest/res/layout/full_screen_edit_text.xml
index e760ac181245..e760ac181245 100755..100644
--- a/tests/ImfTest/res/layout/full_screen_edit_text.xml
+++ b/tests/ImfTest/res/layout/full_screen_edit_text.xml
diff --git a/tests/ImfTest/res/layout/one_edit_text_activity.xml b/tests/ImfTest/res/layout/one_edit_text_activity.xml
index 055822823bf5..055822823bf5 100755..100644
--- a/tests/ImfTest/res/layout/one_edit_text_activity.xml
+++ b/tests/ImfTest/res/layout/one_edit_text_activity.xml
diff --git a/tests/ImfTest/res/layout/sample_edit_text.xml b/tests/ImfTest/res/layout/sample_edit_text.xml
index 3ff676727662..3ff676727662 100755..100644
--- a/tests/ImfTest/res/layout/sample_edit_text.xml
+++ b/tests/ImfTest/res/layout/sample_edit_text.xml
diff --git a/tests/ImfTest/res/values/strings.xml b/tests/ImfTest/res/values/strings.xml
index fc87480788d6..fc87480788d6 100755..100644
--- a/tests/ImfTest/res/values/strings.xml
+++ b/tests/ImfTest/res/values/strings.xml
diff --git a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
index 25ac2f028b27..25ac2f028b27 100755..100644
--- a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
+++ b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
diff --git a/tests/ImfTest/tests/Android.mk b/tests/ImfTest/tests/Android.mk
index 0f1924cc3342..0f1924cc3342 100755..100644
--- a/tests/ImfTest/tests/Android.mk
+++ b/tests/ImfTest/tests/Android.mk
diff --git a/tests/ImfTest/tests/AndroidManifest.xml b/tests/ImfTest/tests/AndroidManifest.xml
index c02fa0b212a5..c02fa0b212a5 100755..100644
--- a/tests/ImfTest/tests/AndroidManifest.xml
+++ b/tests/ImfTest/tests/AndroidManifest.xml
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
index a1c5fd285c34..a1c5fd285c34 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
index 2e0b0eb6e903..2e0b0eb6e903 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
index d3eefb5b48c1..d3eefb5b48c1 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
index 5c40e6d966d6..5c40e6d966d6 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
index 9a931331adcd..9a931331adcd 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
index 9a69fd509844..9a69fd509844 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
index ae900c34ba3b..ae900c34ba3b 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
index bc77e049bfee..bc77e049bfee 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
index 278efb1f68db..278efb1f68db 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
index 4f8d14e88ad5..4f8d14e88ad5 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
index 7f98f7fbdf21..7f98f7fbdf21 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
index 68dae87ea5c9..68dae87ea5c9 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
index ed5b0c9f1728..ed5b0c9f1728 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
index 42fcd66f7922..42fcd66f7922 100755..100644
--- a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
+++ b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
diff --git a/tests/LocationTracker/res/xml/preferences.xml b/tests/LocationTracker/res/xml/preferences.xml
index 61d48171ecdd..61d48171ecdd 100755..100644
--- a/tests/LocationTracker/res/xml/preferences.xml
+++ b/tests/LocationTracker/res/xml/preferences.xml
diff --git a/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java b/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java
index cb77118fc0c6..cb77118fc0c6 100755..100644
--- a/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java
+++ b/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java
diff --git a/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png b/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png
index f9d61727cce8..f9d61727cce8 100755..100644
--- a/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png
+++ b/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png
Binary files differ
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 9c2e1b9127f1..77168f948640 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1946,7 +1946,7 @@ static status_t writeTextLayoutClasses(
const bool pub = (typeSpecFlags&ResTable_typeSpec::SPEC_PUBLIC) != 0;
fprintf(fp,
- "int styleable.%s_%s %d\n",
+ "int styleable %s_%s %d\n",
nclassName.string(),
String8(name).string(), (int)pos);
}
diff --git a/tools/aidl/AST.cpp b/tools/aidl/AST.cpp
index bfa67656b323..bfa67656b323 100755..100644
--- a/tools/aidl/AST.cpp
+++ b/tools/aidl/AST.cpp
diff --git a/tools/aidl/AST.h b/tools/aidl/AST.h
index ead5e7ae3439..ead5e7ae3439 100755..100644
--- a/tools/aidl/AST.h
+++ b/tools/aidl/AST.h
diff --git a/tools/aidl/Type.cpp b/tools/aidl/Type.cpp
index d572af6d2aab..d572af6d2aab 100755..100644
--- a/tools/aidl/Type.cpp
+++ b/tools/aidl/Type.cpp
diff --git a/tools/aidl/Type.h b/tools/aidl/Type.h
index ae12720142e8..ae12720142e8 100755..100644
--- a/tools/aidl/Type.h
+++ b/tools/aidl/Type.h
diff --git a/tools/layoutlib/bridge/src/android/util/Log_Delegate.java b/tools/layoutlib/bridge/src/android/util/Log_Delegate.java
index 7f432abdda9f..7f432abdda9f 100755..100644
--- a/tools/layoutlib/bridge/src/android/util/Log_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/util/Log_Delegate.java
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java
index 0689c92c6cbc..0689c92c6cbc 100755..100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java
index e4e016b03cbb..e4e016b03cbb 100755..100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
index c988c7099cb8..c988c7099cb8 100755..100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
diff --git a/voip/java/android/net/rtp/AudioGroup.java b/voip/java/android/net/rtp/AudioGroup.java
index 8c190621934f..8faeb88db6e9 100644
--- a/voip/java/android/net/rtp/AudioGroup.java
+++ b/voip/java/android/net/rtp/AudioGroup.java
@@ -19,6 +19,7 @@ package android.net.rtp;
import android.media.AudioManager;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
/**
@@ -146,7 +147,7 @@ public class AudioGroup {
if (!mStreams.containsKey(stream)) {
try {
AudioCodec codec = stream.getCodec();
- String codecSpec = String.format("%d %s %s", codec.type,
+ String codecSpec = String.format(Locale.US, "%d %s %s", codec.type,
codec.rtpmap, codec.fmtp);
int id = nativeAdd(stream.getMode(), stream.getSocket(),
stream.getRemoteAddress().getHostAddress(),
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index dafa8e8322d6..8a22e966879b 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -127,7 +127,7 @@ public class WifiStateMachine extends StateMachine {
private final boolean mBackgroundScanSupported;
private String mInterfaceName;
- /* Tethering interface could be seperate from wlan interface */
+ /* Tethering interface could be separate from wlan interface */
private String mTetherInterfaceName;
private int mLastSignalLevel = -1;
@@ -248,7 +248,7 @@ public class WifiStateMachine extends StateMachine {
static final int CMD_START_DRIVER = BASE + 13;
/* Stop the driver */
static final int CMD_STOP_DRIVER = BASE + 14;
- /* Indicates Static IP succeded */
+ /* Indicates Static IP succeeded */
static final int CMD_STATIC_IP_SUCCESS = BASE + 15;
/* Indicates Static IP failed */
static final int CMD_STATIC_IP_FAILURE = BASE + 16;
@@ -263,7 +263,7 @@ public class WifiStateMachine extends StateMachine {
/* Start the soft access point */
static final int CMD_START_AP = BASE + 21;
- /* Indicates soft ap start succeded */
+ /* Indicates soft ap start succeeded */
static final int CMD_START_AP_SUCCESS = BASE + 22;
/* Indicates soft ap start failed */
static final int CMD_START_AP_FAILURE = BASE + 23;
@@ -883,22 +883,22 @@ public class WifiStateMachine extends StateMachine {
* TODO: doc
*/
public void setScanOnlyMode(boolean enable) {
- if (enable) {
- sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0));
- } else {
- sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0));
- }
+ if (enable) {
+ sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0));
+ } else {
+ sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0));
+ }
}
/**
* TODO: doc
*/
public void setScanType(boolean active) {
- if (active) {
- sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0));
- } else {
- sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0));
- }
+ if (active) {
+ sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0));
+ } else {
+ sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0));
+ }
}
/**
@@ -3412,6 +3412,10 @@ public class WifiStateMachine extends StateMachine {
case CMD_SET_HIGH_PERF_MODE:
deferMessage(message);
break;
+ /* Defer scan request since we should not switch to other channels at DHCP */
+ case CMD_START_SCAN:
+ deferMessage(message);
+ break;
default:
return NOT_HANDLED;
}
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java
index 4a4320c785a4..03057777ab38 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java
@@ -165,11 +165,11 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
/* Commands to the WifiStateMachine */
public static final int P2P_CONNECTION_CHANGED = BASE + 11;
- /* These commands are used to tempoarily disconnect wifi when we detect
+ /* These commands are used to temporarily disconnect wifi when we detect
* a frequency conflict which would make it impossible to have with p2p
* and wifi active at the same time.
*
- * If the user chooses to disable wifi tempoarily, we keep wifi disconnected
+ * If the user chooses to disable wifi temporarily, we keep wifi disconnected
* until the p2p connection is done and terminated at which point we will
* bring back wifi up
*
@@ -389,7 +389,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
* not get latest updates about the device without being in discovery state.
*
* From the framework perspective, the device is still there since we are connecting or
- * connected to it. so we keep these devices in a seperate list, so that they are removed
+ * connected to it. so we keep these devices in a separate list, so that they are removed
* when connection is cancelled or lost
*/
private final WifiP2pDeviceList mPeersLostDuringConnection = new WifiP2pDeviceList();
@@ -1055,48 +1055,48 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
//and wait instead for the GO_NEGOTIATION_REQUEST_EVENT.
//Handling provision discovery and issuing a p2p_connect before
//group negotiation comes through causes issues
- break;
+ break;
case WifiP2pManager.CREATE_GROUP:
- mAutonomousGroup = true;
- int netId = message.arg1;
- boolean ret = false;
- if (netId == WifiP2pGroup.PERSISTENT_NET_ID) {
- // check if the go persistent group is present.
- netId = mGroups.getNetworkId(mThisDevice.deviceAddress);
- if (netId != -1) {
- ret = mWifiNative.p2pGroupAdd(netId);
- } else {
- ret = mWifiNative.p2pGroupAdd(true);
- }
- } else {
- ret = mWifiNative.p2pGroupAdd(false);
- }
-
- if (ret) {
- replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED);
- transitionTo(mGroupNegotiationState);
- } else {
- replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED,
- WifiP2pManager.ERROR);
- // remain at this state.
- }
- break;
+ mAutonomousGroup = true;
+ int netId = message.arg1;
+ boolean ret = false;
+ if (netId == WifiP2pGroup.PERSISTENT_NET_ID) {
+ // check if the go persistent group is present.
+ netId = mGroups.getNetworkId(mThisDevice.deviceAddress);
+ if (netId != -1) {
+ ret = mWifiNative.p2pGroupAdd(netId);
+ } else {
+ ret = mWifiNative.p2pGroupAdd(true);
+ }
+ } else {
+ ret = mWifiNative.p2pGroupAdd(false);
+ }
+
+ if (ret) {
+ replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED);
+ transitionTo(mGroupNegotiationState);
+ } else {
+ replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED,
+ WifiP2pManager.ERROR);
+ // remain at this state.
+ }
+ break;
case WifiMonitor.P2P_GROUP_STARTED_EVENT:
- mGroup = (WifiP2pGroup) message.obj;
- if (DBG) logd(getName() + " group started");
+ mGroup = (WifiP2pGroup) message.obj;
+ if (DBG) logd(getName() + " group started");
// We hit this scenario when a persistent group is reinvoked
- if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) {
- mAutonomousGroup = false;
- deferMessage(message);
- transitionTo(mGroupNegotiationState);
- } else {
- loge("Unexpected group creation, remove " + mGroup);
- mWifiNative.p2pGroupRemove(mGroup.getInterface());
- }
- break;
+ if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) {
+ mAutonomousGroup = false;
+ deferMessage(message);
+ transitionTo(mGroupNegotiationState);
+ } else {
+ loge("Unexpected group creation, remove " + mGroup);
+ mWifiNative.p2pGroupRemove(mGroup.getInterface());
+ }
+ break;
default:
- return NOT_HANDLED;
+ return NOT_HANDLED;
}
return HANDLED;
}
@@ -1364,7 +1364,18 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
removeClientFromList(netId, mSavedPeerConfig.deviceAddress, true);
}
- // invocation is failed or deferred. Try another way to connect.
+ // invocation is failed. Try another way to connect.
+ mSavedPeerConfig.netId = WifiP2pGroup.PERSISTENT_NET_ID;
+ if (connect(mSavedPeerConfig, NO_REINVOCATION) == CONNECT_FAILURE) {
+ handleGroupCreationFailure();
+ transitionTo(mInactiveState);
+ }
+ } else if (status == P2pStatus.INFORMATION_IS_CURRENTLY_UNAVAILABLE) {
+
+ // Devices setting persistent_reconnect to 0 in wpa_supplicant
+ // always defer the invocation request and return
+ // "information is currently unable" error.
+ // So, try another way to connect for interoperability.
mSavedPeerConfig.netId = WifiP2pGroup.PERSISTENT_NET_ID;
if (connect(mSavedPeerConfig, NO_REINVOCATION) == CONNECT_FAILURE) {
handleGroupCreationFailure();