From 2e14ef048564b7b78aa7a4c057b1f3321de73038 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 12 Jan 2010 15:18:53 -0800 Subject: [PATCH] android-2.1_r1 snapshot --- Android.mk | 41 +- api/6.xml | 1383 +- api/7.xml | 371697 +++++++++++++++ api/current.xml | 633 +- camera/libcameraservice/CameraService.cpp | 20 +- cmds/dumpstate/dumpstate.c | 8 +- .../android/commands/svc/PowerCommand.java | 2 +- .../accounts/AccountManagerResponse.java | 3 +- .../GrantCredentialsPermissionActivity.java | 3 +- core/java/android/annotation/SdkConstant.java | 2 +- core/java/android/app/ActivityThread.java | 80 +- .../android/app/ApplicationThreadNative.java | 15 +- core/java/android/app/IApplicationThread.java | 2 +- core/java/android/app/SearchManager.java | 27 +- core/java/android/app/WallpaperInfo.java | 4 +- core/java/android/app/WallpaperManager.java | 31 +- .../java/android/bluetooth/BluetoothA2dp.java | 23 +- .../android/bluetooth/BluetoothAdapter.java | 44 +- .../android/bluetooth/BluetoothClass.java | 4 - .../android/bluetooth/BluetoothDevice.java | 8 + .../android/bluetooth/BluetoothHeadset.java | 11 +- .../bluetooth/BluetoothServerSocket.java | 8 +- .../android/bluetooth/BluetoothSocket.java | 9 + core/java/android/bluetooth/IBluetooth.aidl | 1 + .../android/bluetooth/IBluetoothA2dp.aidl | 1 + .../AbstractSyncableContentProvider.java | 4 +- core/java/android/content/Context.java | 1 - core/java/android/content/Intent.java | 134 +- core/java/android/content/SyncManager.java | 8 +- .../java/android/content/pm/ActivityInfo.java | 21 +- .../android/content/pm/ApplicationInfo.java | 30 +- .../android/content/pm/PackageItemInfo.java | 12 +- .../android/content/pm/PackageManager.java | 92 +- .../android/content/pm/PackageParser.java | 11 - .../android/content/res/AssetManager.java | 53 +- core/java/android/hardware/Camera.java | 38 +- core/java/android/os/Build.java | 9 +- core/java/android/os/IPowerManager.aidl | 2 +- core/java/android/os/LocalPowerManager.java | 2 + core/java/android/os/PowerManager.java | 29 +- .../java/android/pim/vcard/VCardComposer.java | 6 +- core/java/android/provider/Checkin.java | 1 + .../android/provider/ContactsContract.java | 2489 +- core/java/android/provider/Settings.java | 23 +- .../android/server/BluetoothA2dpService.java | 24 +- .../android/server/BluetoothEventLoop.java | 18 +- .../java/android/server/BluetoothService.java | 218 +- .../service/wallpaper/WallpaperService.java | 43 +- .../wallpaper/WallpaperSettingsActivity.java | 1 + .../text/method/QwertyKeyListener.java | 2 +- core/java/android/text/method/Touch.java | 12 +- core/java/android/view/IWindowManager.aidl | 4 + core/java/android/view/View.java | 7 +- core/java/android/view/ViewRoot.java | 4 +- .../android/view/WindowManagerPolicy.java | 2 + core/java/android/webkit/CacheManager.java | 5 + core/java/android/webkit/CallbackProxy.java | 2 +- .../webkit/GeolocationPermissions.java | 42 +- core/java/android/webkit/WebChromeClient.java | 23 +- core/java/android/webkit/WebView.java | 22 +- core/java/android/widget/PopupWindow.java | 2 +- core/java/android/widget/RemoteViews.java | 77 +- .../android/widget/SimpleCursorAdapter.java | 2 +- core/java/android/widget/TextView.java | 10 +- core/java/android/widget/ViewAnimator.java | 25 +- core/java/android/widget/ViewFlipper.java | 128 +- .../android/internal/os/BatteryStatsImpl.java | 2 +- .../service/wallpaper/ImageWallpaper.java | 15 +- .../internal/widget/ContactHeaderWidget.java | 82 +- .../android/internal/widget/DigitalClock.java | 191 + .../android/internal/widget/SlidingTab.java | 853 + ....android_server_BluetoothEventLoop.cpp.swp | Bin 16384 -> 0 bytes core/jni/android_media_AudioRecord.cpp | 8 +- core/jni/android_util_AssetManager.cpp | 27 +- core/jni/android_util_Process.cpp | 2 + core/res/AndroidManifest.xml | 9 +- core/res/res/drawable-hdpi/blank_tile.png | Bin 685 -> 0 bytes .../btn_default_transparent_normal.9.png | Bin 0 -> 1611 bytes .../res/drawable-hdpi/ic_jog_dial_answer.png | Bin 0 -> 6203 bytes .../ic_jog_dial_answer_and_end.png | Bin 0 -> 6640 bytes .../ic_jog_dial_answer_and_hold.png | Bin 0 -> 6919 bytes .../res/drawable-hdpi/ic_jog_dial_decline.png | Bin 0 -> 5703 bytes .../jog_tab_bar_left_end_confirm_gray.9.png | Bin 0 -> 3069 bytes .../jog_tab_bar_left_end_confirm_green.9.png | Bin 0 -> 4534 bytes .../jog_tab_bar_left_end_confirm_red.9.png | Bin 0 -> 4510 bytes .../jog_tab_bar_left_end_confirm_yellow.9.png | Bin 0 -> 4561 bytes .../jog_tab_bar_left_end_normal.9.png | Bin 0 -> 4389 bytes .../jog_tab_bar_left_end_pressed.9.png | Bin 0 -> 4211 bytes .../jog_tab_bar_right_end_confirm_gray.9.png | Bin 0 -> 3274 bytes .../jog_tab_bar_right_end_confirm_green.9.png | Bin 0 -> 4926 bytes .../jog_tab_bar_right_end_confirm_red.9.png | Bin 0 -> 4952 bytes ...jog_tab_bar_right_end_confirm_yellow.9.png | Bin 0 -> 4864 bytes .../jog_tab_bar_right_end_normal.9.png | Bin 0 -> 4511 bytes .../jog_tab_bar_right_end_pressed.9.png | Bin 0 -> 4267 bytes .../jog_tab_left_confirm_gray.png | Bin 0 -> 6964 bytes .../jog_tab_left_confirm_green.png | Bin 0 -> 11428 bytes .../jog_tab_left_confirm_red.png | Bin 0 -> 11516 bytes .../jog_tab_left_confirm_yellow.png | Bin 0 -> 11501 bytes .../res/drawable-hdpi/jog_tab_left_normal.png | Bin 0 -> 10304 bytes .../drawable-hdpi/jog_tab_left_pressed.png | Bin 0 -> 9897 bytes .../jog_tab_right_confirm_gray.png | Bin 0 -> 6402 bytes .../jog_tab_right_confirm_green.png | Bin 0 -> 10627 bytes .../jog_tab_right_confirm_red.png | Bin 0 -> 10800 bytes .../jog_tab_right_confirm_yellow.png | Bin 0 -> 10912 bytes .../drawable-hdpi/jog_tab_right_normal.png | Bin 0 -> 9768 bytes .../drawable-hdpi/jog_tab_right_pressed.png | Bin 0 -> 9250 bytes .../res/drawable-hdpi/jog_tab_target_gray.png | Bin 0 -> 931 bytes .../drawable-hdpi/jog_tab_target_green.png | Bin 0 -> 1119 bytes .../res/drawable-hdpi/jog_tab_target_red.png | Bin 0 -> 1123 bytes .../drawable-hdpi/jog_tab_target_yellow.png | Bin 0 -> 1114 bytes core/res/res/drawable-hdpi/loading_tile.png | Bin 617 -> 0 bytes core/res/res/drawable-hdpi/no_tile_128.png | Bin 1698 -> 0 bytes .../res/drawable-hdpi/rate_star_big_half.png | Bin 1458 -> 1099 bytes .../res/drawable-hdpi/rate_star_big_off.png | Bin 833 -> 729 bytes .../res/drawable-hdpi/rate_star_big_on.png | Bin 2694 -> 1288 bytes .../res/drawable-hdpi/rate_star_med_half.png | Bin 0 -> 939 bytes .../res/drawable-hdpi/rate_star_med_off.png | Bin 0 -> 626 bytes .../res/drawable-hdpi/rate_star_med_on.png | Bin 0 -> 1056 bytes .../drawable-hdpi/rate_star_small_half.png | Bin 866 -> 877 bytes .../res/drawable-hdpi/rate_star_small_off.png | Bin 509 -> 579 bytes .../res/drawable-hdpi/rate_star_small_on.png | Bin 856 -> 987 bytes .../btn_lock_normal.9.png | Bin .../ic_jog_dial_sound_off.png | Bin 0 -> 5698 bytes .../ic_jog_dial_sound_on.png | Bin 0 -> 5685 bytes .../drawable-land-hdpi/ic_jog_dial_unlock.png | Bin 0 -> 5758 bytes .../jog_tab_bar_left_end_confirm_gray.9.png | Bin 0 -> 3062 bytes .../jog_tab_bar_left_end_confirm_green.9.png | Bin 0 -> 4498 bytes .../jog_tab_bar_left_end_confirm_red.9.png | Bin 0 -> 4510 bytes .../jog_tab_bar_left_end_confirm_yellow.9.png | Bin 0 -> 4494 bytes .../jog_tab_bar_left_end_normal.9.png | Bin 0 -> 4090 bytes .../jog_tab_bar_left_end_pressed.9.png | Bin 0 -> 3934 bytes .../jog_tab_bar_right_end_confirm_gray.9.png | Bin 0 -> 2890 bytes .../jog_tab_bar_right_end_confirm_green.9.png | Bin 0 -> 4258 bytes .../jog_tab_bar_right_end_confirm_red.9.png | Bin 0 -> 4286 bytes ...jog_tab_bar_right_end_confirm_yellow.9.png | Bin 0 -> 4291 bytes .../jog_tab_bar_right_end_normal.9.png | Bin 0 -> 3983 bytes .../jog_tab_bar_right_end_pressed.9.png | Bin 0 -> 3775 bytes .../jog_tab_left_confirm_gray.png | Bin 0 -> 6622 bytes .../jog_tab_left_confirm_green.png | Bin 0 -> 11463 bytes .../jog_tab_left_confirm_red.png | Bin 0 -> 11529 bytes .../jog_tab_left_confirm_yellow.png | Bin 0 -> 11615 bytes .../jog_tab_left_normal.png | Bin 0 -> 10462 bytes .../jog_tab_left_pressed.png | Bin 0 -> 9964 bytes .../jog_tab_right_confirm_gray.png | Bin 0 -> 6702 bytes .../jog_tab_right_confirm_green.png | Bin 0 -> 11547 bytes .../jog_tab_right_confirm_red.png | Bin 0 -> 11616 bytes .../jog_tab_right_confirm_yellow.png | Bin 0 -> 11728 bytes .../jog_tab_right_normal.png | Bin 0 -> 10482 bytes .../jog_tab_right_pressed.png | Bin 0 -> 9922 bytes .../jog_tab_target_gray.png | Bin 0 -> 959 bytes .../jog_tab_target_green.png | Bin 0 -> 1100 bytes .../drawable-land-hdpi/jog_tab_target_red.png | Bin 0 -> 1120 bytes .../jog_tab_target_yellow.png | Bin 0 -> 1128 bytes .../jog_tab_bar_left_end_confirm_gray.9.png | Bin 0 -> 1975 bytes .../jog_tab_bar_left_end_confirm_green.9.png | Bin 0 -> 2744 bytes .../jog_tab_bar_left_end_confirm_red.9.png | Bin 0 -> 2694 bytes .../jog_tab_bar_left_end_confirm_yellow.9.png | Bin 0 -> 2717 bytes .../jog_tab_bar_left_end_normal.9.png | Bin 0 -> 2525 bytes .../jog_tab_bar_left_end_pressed.9.png | Bin 0 -> 2446 bytes .../jog_tab_bar_right_end_confirm_gray.9.png | Bin 0 -> 1883 bytes .../jog_tab_bar_right_end_confirm_green.9.png | Bin 0 -> 2656 bytes .../jog_tab_bar_right_end_confirm_red.9.png | Bin 0 -> 2608 bytes ...jog_tab_bar_right_end_confirm_yellow.9.png | Bin 0 -> 2638 bytes .../jog_tab_bar_right_end_normal.9.png | Bin 0 -> 2477 bytes .../jog_tab_bar_right_end_pressed.9.png | Bin 0 -> 2357 bytes .../jog_tab_left_confirm_gray.png | Bin 0 -> 4161 bytes .../jog_tab_left_confirm_green.png | Bin 0 -> 6823 bytes .../jog_tab_left_confirm_red.png | Bin 0 -> 6863 bytes .../jog_tab_left_confirm_yellow.png | Bin 0 -> 6867 bytes .../jog_tab_left_normal.png | Bin 0 -> 6272 bytes .../jog_tab_left_pressed.png | Bin 0 -> 5947 bytes .../jog_tab_right_confirm_gray.png | Bin 0 -> 4180 bytes .../jog_tab_right_confirm_green.png | Bin 0 -> 6806 bytes .../jog_tab_right_confirm_red.png | Bin 0 -> 6854 bytes .../jog_tab_right_confirm_yellow.png | Bin 0 -> 6890 bytes .../jog_tab_right_normal.png | Bin 0 -> 6234 bytes .../jog_tab_right_pressed.png | Bin 0 -> 5944 bytes .../btn_default_transparent_normal.9.png | Bin 0 -> 1007 bytes .../res/drawable-mdpi/btn_lock_normal.9.png | Bin 982 -> 0 bytes .../res/drawable-mdpi/ic_jog_dial_answer.png | Bin 0 -> 3610 bytes .../ic_jog_dial_answer_and_end.png | Bin 0 -> 3875 bytes .../ic_jog_dial_answer_and_hold.png | Bin 0 -> 4039 bytes .../res/drawable-mdpi/ic_jog_dial_decline.png | Bin 0 -> 3284 bytes .../jog_tab_bar_left_end_confirm_gray.9.png | Bin 0 -> 2052 bytes .../jog_tab_bar_left_end_confirm_green.9.png | Bin 0 -> 2853 bytes .../jog_tab_bar_left_end_confirm_red.9.png | Bin 0 -> 2774 bytes .../jog_tab_bar_left_end_confirm_yellow.9.png | Bin 0 -> 2853 bytes .../jog_tab_bar_left_end_normal.9.png | Bin 0 -> 2728 bytes .../jog_tab_bar_left_end_pressed.9.png | Bin 0 -> 2634 bytes .../jog_tab_bar_right_end_confirm_gray.9.png | Bin 0 -> 2190 bytes .../jog_tab_bar_right_end_confirm_green.9.png | Bin 0 -> 3075 bytes .../jog_tab_bar_right_end_confirm_red.9.png | Bin 0 -> 3005 bytes ...jog_tab_bar_right_end_confirm_yellow.9.png | Bin 0 -> 3011 bytes .../jog_tab_bar_right_end_normal.9.png | Bin 0 -> 2820 bytes .../jog_tab_bar_right_end_pressed.9.png | Bin 0 -> 2716 bytes .../jog_tab_left_confirm_gray.png | Bin 0 -> 4306 bytes .../jog_tab_left_confirm_green.png | Bin 0 -> 6753 bytes .../jog_tab_left_confirm_red.png | Bin 0 -> 6842 bytes .../jog_tab_left_confirm_yellow.png | Bin 0 -> 6879 bytes .../res/drawable-mdpi/jog_tab_left_normal.png | Bin 0 -> 6227 bytes .../drawable-mdpi/jog_tab_left_pressed.png | Bin 0 -> 5994 bytes .../jog_tab_right_confirm_gray.png | Bin 0 -> 3959 bytes .../jog_tab_right_confirm_green.png | Bin 0 -> 6278 bytes .../jog_tab_right_confirm_red.png | Bin 0 -> 6312 bytes .../jog_tab_right_confirm_yellow.png | Bin 0 -> 6392 bytes .../drawable-mdpi/jog_tab_right_normal.png | Bin 0 -> 5750 bytes .../drawable-mdpi/jog_tab_right_pressed.png | Bin 0 -> 5626 bytes .../res/drawable-mdpi/jog_tab_target_gray.png | Bin 0 -> 650 bytes .../drawable-mdpi/jog_tab_target_green.png | Bin 0 -> 710 bytes .../res/drawable-mdpi/jog_tab_target_red.png | Bin 0 -> 728 bytes .../drawable-mdpi/jog_tab_target_yellow.png | Bin 0 -> 719 bytes .../blank_tile.png | Bin .../loading_tile.png | Bin .../no_tile_128.png | Bin .../res/drawable/btn_default_transparent.xml | 24 + .../res/drawable/jog_tab_bar_left_answer.xml | 28 + .../res/drawable/jog_tab_bar_left_generic.xml | 28 + .../res/drawable/jog_tab_bar_left_unlock.xml | 28 + .../drawable/jog_tab_bar_right_decline.xml | 28 + .../drawable/jog_tab_bar_right_generic.xml | 28 + .../drawable/jog_tab_bar_right_sound_off.xml | 28 + .../drawable/jog_tab_bar_right_sound_on.xml | 28 + core/res/res/drawable/jog_tab_left_answer.xml | 28 + .../res/res/drawable/jog_tab_left_generic.xml | 28 + core/res/res/drawable/jog_tab_left_unlock.xml | 28 + .../res/drawable/jog_tab_right_decline.xml | 28 + .../res/drawable/jog_tab_right_generic.xml | 28 + .../res/drawable/jog_tab_right_sound_off.xml | 28 + .../res/drawable/jog_tab_right_sound_on.xml | 28 + .../keyguard_screen_sim_pin_portrait.xml | 5 +- .../res/layout/keyguard_screen_tab_unlock.xml | 147 + .../keyguard_screen_tab_unlock_land.xml | 147 + .../keyguard_screen_unlock_landscape.xml | 108 +- .../keyguard_screen_unlock_portrait.xml | 113 +- .../res/values-ar-rEG/donottranslate-cldr.xml | 2 + .../res/values-bg-rBG/donottranslate-cldr.xml | 2 + .../res/values-ca-rES/donottranslate-cldr.xml | 2 + .../res/res/values-cs/donottranslate-cldr.xml | 2 + core/res/res/values-cs/strings.xml | 9 +- .../res/res/values-da/donottranslate-cldr.xml | 2 + core/res/res/values-da/strings.xml | 377 +- .../res/res/values-de/donottranslate-cldr.xml | 2 + core/res/res/values-de/strings.xml | 17 +- .../res/res/values-el/donottranslate-cldr.xml | 2 + core/res/res/values-el/strings.xml | 3 + .../res/values-en-rAU/donottranslate-cldr.xml | 2 + .../res/values-en-rCA/donottranslate-cldr.xml | 2 + .../res/values-en-rGB/donottranslate-cldr.xml | 2 + .../res/values-en-rIE/donottranslate-cldr.xml | 2 + .../res/values-en-rIN/donottranslate-cldr.xml | 2 + .../res/values-en-rNZ/donottranslate-cldr.xml | 2 + .../res/values-en-rUS/donottranslate-cldr.xml | 2 + .../res/values-en-rZA/donottranslate-cldr.xml | 2 + .../res/values-es-rUS/donottranslate-cldr.xml | 2 + core/res/res/values-es-rUS/strings.xml | 3 + .../res/res/values-es/donottranslate-cldr.xml | 2 + core/res/res/values-es/strings.xml | 17 +- .../res/values-fi-rFI/donottranslate-cldr.xml | 2 + .../res/res/values-fr/donottranslate-cldr.xml | 2 + core/res/res/values-fr/strings.xml | 15 +- .../res/values-hi-rIN/donottranslate-cldr.xml | 2 + .../res/values-hr-rHR/donottranslate-cldr.xml | 2 + .../res/values-hu-rHU/donottranslate-cldr.xml | 2 + .../res/values-id-rID/donottranslate-cldr.xml | 2 + .../res/res/values-it/donottranslate-cldr.xml | 2 + core/res/res/values-it/strings.xml | 11 +- .../res/res/values-ja/donottranslate-cldr.xml | 2 + core/res/res/values-ja/strings.xml | 5 +- .../res/res/values-ko/donottranslate-cldr.xml | 2 + core/res/res/values-ko/strings.xml | 7 +- .../res/values-lt-rLT/donottranslate-cldr.xml | 2 + .../res/values-lv-rLV/donottranslate-cldr.xml | 2 + .../res/res/values-nb/donottranslate-cldr.xml | 2 + core/res/res/values-nb/strings.xml | 3 + .../res/res/values-nl/donottranslate-cldr.xml | 2 + core/res/res/values-nl/strings.xml | 30 +- .../res/res/values-pl/donottranslate-cldr.xml | 2 + core/res/res/values-pl/strings.xml | 15 +- .../res/values-pt-rPT/donottranslate-cldr.xml | 2 + core/res/res/values-pt-rPT/strings.xml | 3 + .../res/res/values-pt/donottranslate-cldr.xml | 2 + core/res/res/values-pt/strings.xml | 19 +- .../res/values-ro-rRO/donottranslate-cldr.xml | 2 + .../res/res/values-ru/donottranslate-cldr.xml | 2 + core/res/res/values-ru/strings.xml | 73 +- .../res/values-sk-rSK/donottranslate-cldr.xml | 2 + .../res/values-sl-rSI/donottranslate-cldr.xml | 2 + .../res/values-sr-rRS/donottranslate-cldr.xml | 2 + .../res/res/values-sv/donottranslate-cldr.xml | 2 + core/res/res/values-sv/strings.xml | 11 +- .../res/values-th-rTH/donottranslate-cldr.xml | 2 + .../res/res/values-tr/donottranslate-cldr.xml | 2 + core/res/res/values-tr/strings.xml | 11 +- .../res/values-uk-rUA/donottranslate-cldr.xml | 2 + .../res/values-vi-rVN/donottranslate-cldr.xml | 2 + .../res/values-zh-rCN/donottranslate-cldr.xml | 2 + core/res/res/values-zh-rCN/strings.xml | 311 +- .../res/values-zh-rTW/donottranslate-cldr.xml | 2 + core/res/res/values-zh-rTW/strings.xml | 5 +- core/res/res/values/attrs.xml | 35 +- core/res/res/values/attrs_manifest.xml | 6 +- core/res/res/values/colors.xml | 4 + core/res/res/values/config.xml | 11 + core/res/res/values/donottranslate-cldr.xml | 2 + core/res/res/values/public.xml | 114 +- core/res/res/values/strings.xml | 6 + core/res/res/values/styles.xml | 25 + data/etc/required_hardware.xml | 3 + data/fonts/Android.mk | 3 +- data/fonts/Clockopia.ttf | Bin 0 -> 6880 bytes data/sounds/AudioPackage4.mk | 5 + data/sounds/newwavelabs/Enter_the_Nexus.ogg | Bin 0 -> 61699 bytes data/sounds/newwavelabs/Enter_the_Nexus.wav | Bin 0 -> 1168084 bytes data/sounds/notifications/Cricket.ogg | Bin 0 -> 10936 bytes data/sounds/notifications/Cricket.wav | Bin 0 -> 157524 bytes data/sounds/notifications/Doink.ogg | Bin 0 -> 8911 bytes data/sounds/notifications/Doink.wav | Bin 0 -> 63708 bytes data/sounds/notifications/Drip.ogg | Bin 0 -> 13244 bytes data/sounds/notifications/Drip.wav | Bin 0 -> 218872 bytes data/sounds/notifications/SpaceSeed.ogg | Bin 0 -> 26180 bytes data/sounds/notifications/SpaceSeed.wav | Bin 0 -> 507500 bytes docs/html/guide/appendix/api-levels.jd | 22 +- .../guide/appendix/faq/troubleshooting.jd | 82 +- docs/html/guide/basics/what-is-android.jd | 12 +- docs/html/guide/developing/debug-tasks.jd | 2 +- docs/html/guide/developing/tools/adt.jd | 2 +- docs/html/guide/developing/tools/emulator.jd | 2 +- docs/html/guide/developing/tools/layoutopt.jd | 2 +- docs/html/guide/guide_toc.cs | 172 +- docs/html/guide/index.jd | 2 +- docs/html/guide/practices/screens_support.jd | 4 +- docs/html/guide/publishing/app-signing.jd | 2 +- docs/html/guide/publishing/publishing.jd | 189 +- docs/html/guide/publishing/versioning.jd | 13 +- docs/html/guide/samples/index.jd | 93 +- docs/html/guide/topics/appwidgets/index.jd | 8 +- docs/html/guide/topics/graphics/opengl.jd | 2 +- .../guide/topics/intents/intents-filters.jd | 6 +- .../guide/topics/manifest/activity-element.jd | 26 +- .../guide/topics/manifest/manifest-intro.jd | 2 +- .../manifest/supports-screens-element.jd | 4 +- .../guide/topics/manifest/uses-sdk-element.jd | 136 +- .../guide/topics/resources/localization.jd | 4 +- docs/html/guide/topics/ui/binding.jd | 12 +- .../html/guide/topics/ui/custom-components.jd | 12 +- docs/html/guide/topics/ui/declaring-layout.jd | 2 +- docs/html/guide/topics/ui/dialogs.jd | 4 +- docs/html/guide/topics/ui/layout-objects.jd | 8 +- docs/html/guide/topics/ui/menus.jd | 4 +- docs/html/guide/topics/ui/ui-events.jd | 2 +- docs/html/guide/topics/views/custom-views.jd | 2 +- docs/html/guide/topics/wireless/bluetooth.jd | 819 +- docs/html/images/bt_enable_discoverable.png | Bin 0 -> 12713 bytes docs/html/images/bt_enable_request.png | Bin 0 -> 9574 bytes docs/html/images/bt_pairing_request.png | Bin 0 -> 7878 bytes docs/html/images/icon_dashboard.png | Bin 0 -> 1761 bytes docs/html/index.jd | 42 +- .../intl/ja/guide/basics/what-is-android.jd | 4 +- docs/html/intl/ja/guide/index.jd | 4 +- .../intl/ja/guide/publishing/app-signing.jd | 2 +- .../intl/ja/resources/community-groups.jd | 116 + .../ja/resources/tutorials/hello-world.jd | 375 + docs/html/intl/ja/sdk/1.5_r2/installing.jd | 8 +- docs/html/intl/ja/sdk/1.5_r3/installing.jd | 8 +- .../articles/avoiding-memory-leaks.jd | 109 + .../articles/backward-compatibility.jd | 238 + .../articles/can-i-use-this-intent.jd | 69 + .../articles/creating-input-method.jd | 235 + .../resources/articles/drawable-mutations.jd | 91 + .../faster-screen-orientation-change.jd | 115 + .../resources/articles/future-proofing.jd | 89 + docs/html/resources/articles/gestures.jd | 211 + docs/html/resources/articles/glsurfaceview.jd | 268 + docs/html/resources/articles/images/File.png | Bin 0 -> 14329 bytes .../resources/articles/images/File_002.png | Bin 0 -> 13623 bytes .../resources/articles/images/JFlubber.png | Bin 0 -> 8824 bytes .../resources/articles/images/WikiNotes.png | Bin 0 -> 58942 bytes .../articles/images/all_drawables_changed.png | Bin 0 -> 60168 bytes .../resources/articles/images/android.png | Bin 0 -> 79299 bytes .../resources/articles/images/buttons.png | Bin 0 -> 4733 bytes .../resources/articles/images/contacts-2.png | Bin 0 -> 12970 bytes .../resources/articles/images/contacts.png | Bin 0 -> 73617 bytes .../articles/images/correct_drawables.png | Bin 0 -> 60746 bytes .../images/ddms_allocation_tracker.png | Bin 0 -> 83383 bytes .../images/ddms_allocation_trackerl.png | Bin 0 -> 514553 bytes .../html/resources/articles/images/device.png | Bin 0 -> 112261 bytes .../resources/articles/images/device_002.png | Bin 0 -> 97176 bytes .../resources/articles/images/gestures.png | Bin 0 -> 11254 bytes .../articles/images/gestures_002.png | Bin 0 -> 140982 bytes .../articles/images/gestures_003.png | Bin 0 -> 15609 bytes .../articles/images/gestures_004.png | Bin 0 -> 15484 bytes .../articles/images/gestures_005.png | Bin 0 -> 14652 bytes .../articles/images/gestures_006.png | Bin 0 -> 14643 bytes docs/html/resources/articles/images/grid.png | Bin 0 -> 32134 bytes docs/html/resources/articles/images/ime.png | Bin 0 -> 14225 bytes .../resources/articles/images/ime_002.png | Bin 0 -> 14589 bytes .../resources/articles/images/ime_003.png | Bin 0 -> 51163 bytes .../resources/articles/images/ime_004.png | Bin 0 -> 10840 bytes .../resources/articles/images/ime_005.png | Bin 0 -> 13099 bytes .../resources/articles/images/ime_006.png | Bin 0 -> 14041 bytes .../images/layouts_comparison_small.png | Bin 0 -> 132330 bytes .../html/resources/articles/images/list01.png | Bin 0 -> 81747 bytes .../html/resources/articles/images/list02.png | Bin 0 -> 85815 bytes .../resources/articles/images/list_fade_1.png | Bin 0 -> 44890 bytes .../resources/articles/images/list_fade_2.png | Bin 0 -> 136484 bytes .../resources/articles/images/list_fade_3.png | Bin 0 -> 105257 bytes .../resources/articles/images/list_fade_4.png | Bin 0 -> 190068 bytes .../html/resources/articles/images/merge1.jpg | Bin 0 -> 49327 bytes .../html/resources/articles/images/merge2.png | Bin 0 -> 29721 bytes .../html/resources/articles/images/merge3.png | Bin 0 -> 26044 bytes .../html/resources/articles/images/merge4.jpg | Bin 0 -> 44128 bytes .../html/resources/articles/images/merge5.png | Bin 0 -> 35091 bytes .../articles/images/mutated_states.png | Bin 0 -> 60394 bytes .../articles/images/on-screen-inputs.png | Bin 0 -> 44392 bytes .../articles/images/on-screen-inputs_002.png | Bin 0 -> 34148 bytes .../articles/images/on-screen-inputs_003.png | Bin 0 -> 24749 bytes .../articles/images/on-screen-inputs_004.png | Bin 0 -> 55736 bytes .../articles/images/on-screen-inputs_005.png | Bin 0 -> 14092 bytes .../articles/images/on-screen-inputs_006.png | Bin 0 -> 24405 bytes .../articles/images/photostream_landscape.png | Bin 0 -> 104835 bytes .../articles/images/photostream_portrait.png | Bin 0 -> 124993 bytes docs/html/resources/articles/images/qsb.png | Bin 0 -> 34882 bytes .../resources/articles/images/qsb_002.png | Bin 0 -> 246945 bytes .../resources/articles/images/qsb_003.png | Bin 0 -> 43897 bytes .../articles/images/relativelayout_1.png | Bin 0 -> 10385 bytes .../articles/images/relativelayout_2.png | Bin 0 -> 8335 bytes .../articles/images/relativelayout_3.png | Bin 0 -> 8394 bytes .../articles/images/relativelayout_wire_1.png | Bin 0 -> 3554 bytes .../articles/images/relativelayout_wire_2.png | Bin 0 -> 3553 bytes .../articles/images/relativelayout_wire_3.png | Bin 0 -> 3543 bytes .../resources/articles/images/search01.png | Bin 0 -> 132998 bytes .../resources/articles/images/search02.png | Bin 0 -> 115605 bytes .../articles/images/shared_states.png | Bin 0 -> 54451 bytes .../resources/articles/images/shelves2.png | Bin 0 -> 123418 bytes .../resources/articles/images/text_field.png | Bin 0 -> 63949 bytes .../html/resources/articles/images/ui-1.6.png | Bin 0 -> 14329 bytes .../resources/articles/images/ui-1.6_002.png | Bin 0 -> 13623 bytes .../resources/articles/images/viewstub1.png | Bin 0 -> 123418 bytes .../resources/articles/images/viewstub2.png | Bin 0 -> 112198 bytes .../resources/articles/images/viewstub3.png | Bin 0 -> 30279 bytes .../resources/articles/images/viewstub4.png | Bin 0 -> 46944 bytes .../resources/articles/images/webview.png | Bin 0 -> 14463 bytes .../articles/images/window_background.png | Bin 0 -> 136846 bytes .../images/window_background_null.png | Bin 0 -> 136728 bytes .../images/window_background_root.png | Bin 0 -> 29229 bytes docs/html/resources/articles/index.jd | 147 + .../articles/layout-tricks-efficiency.jd | 177 + .../resources/articles/layout-tricks-merge.jd | 198 + .../resources/articles/layout-tricks-reuse.jd | 67 + .../resources/articles/layout-tricks-stubs.jd | 84 + .../articles/listview-backgrounds.jd | 86 + docs/html/resources/articles/live-folders.jd | 168 + .../resources/articles/on-screen-inputs.jd | 249 + .../resources/articles/painless-threading.jd | 147 + docs/html/resources/articles/qsb.jd | 151 + .../resources/articles/timed-ui-updates.jd | 149 + docs/html/resources/articles/touch-mode.jd | 138 + docs/html/resources/articles/track-mem.jd | 62 + docs/html/resources/articles/tts.jd | 241 + docs/html/resources/articles/ui-1.5.jd | 48 + docs/html/resources/articles/ui-1.6.jd | 130 + .../html/resources/articles/using-webviews.jd | 61 + .../resources/articles/wikinotes-intents.jd | 255 + .../resources/articles/wikinotes-linkify.jd | 113 + .../resources/articles/window-bg-speed.jd | 125 + docs/html/resources/articles/zipalign.jd | 98 + docs/html/resources/community-groups.jd | 121 + docs/html/resources/community-more.jd | 48 + .../resources/dashboard/platform-versions.jd | 79 + docs/html/resources/faq/commontasks.jd | 821 + docs/html/resources/faq/framework.jd | 197 + docs/html/resources/faq/index.jd | 11 + docs/html/resources/faq/licensingandoss.jd | 19 + docs/html/resources/faq/security.jd | 156 + docs/html/resources/faq/troubleshooting.jd | 335 + docs/html/resources/index.jd | 38 + docs/html/resources/resources_toc.cs | 259 + .../samples/images/BluetoothChat1.png | Bin 0 -> 16064 bytes .../samples/images/BluetoothChat2.png | Bin 0 -> 15678 bytes .../samples/images/ContactManager1.png | Bin 0 -> 18050 bytes .../samples/images/ContactManager2.png | Bin 0 -> 17125 bytes .../resources/samples/images/HomeSample.png | Bin 0 -> 44416 bytes docs/html/resources/samples/images/JetBoy.png | Bin 0 -> 53801 bytes .../samples/images/MultiResolution.png | Bin 0 -> 96462 bytes .../samples/images/SearchableDictionary1.png | Bin 0 -> 15800 bytes .../samples/images/SearchableDictionary2.png | Bin 0 -> 18114 bytes docs/html/resources/samples/images/Snake.png | Bin 0 -> 5445 bytes .../resources/samples/images/SoftKeyboard.png | Bin 0 -> 13426 bytes .../resources/samples/images/Wiktionary.png | Bin 0 -> 35229 bytes .../samples/images/WiktionarySimple.png | Bin 0 -> 69288 bytes .../samples/images/sample_lunarlander.png | Bin 0 -> 27514 bytes .../resources/samples/images/sample_note.png | Bin 0 -> 6011 bytes .../samples/images/sample_notepad.png | Bin 0 -> 6530 bytes docs/html/resources/samples/index.jd | 94 + docs/html/resources/tutorials/hello-world.jd | 564 + .../tutorials/images/hello_world_0.png | Bin 0 -> 6328 bytes .../tutorials/images/hello_world_1.png | Bin 0 -> 10031 bytes .../tutorials/images/hello_world_2.png | Bin 0 -> 11040 bytes .../tutorials/images/hello_world_3.png | Bin 0 -> 11000 bytes .../tutorials/images/hello_world_4.png | Bin 0 -> 61711 bytes .../tutorials/images/hello_world_5.png | Bin 0 -> 6244 bytes .../tutorials/images/hello_world_8.png | Bin 0 -> 10993 bytes .../tutorials/images/hello_world_9.png | Bin 0 -> 6791 bytes docs/html/resources/tutorials/index.html | 8 + .../resources/tutorials/localization/index.jd | 593 + .../notepad/codelab/NotepadCodeLab.zip | Bin 0 -> 90916 bytes .../html/resources/tutorials/notepad/index.jd | 142 + .../tutorials/notepad/notepad-ex1.jd | 591 + .../tutorials/notepad/notepad-ex2.jd | 647 + .../tutorials/notepad/notepad-ex3.jd | 358 + .../tutorials/notepad/notepad-extra-credit.jd | 70 + .../tutorials/notepad/notepad-index.jd | 143 + .../tutorials/views/hello-autocomplete.jd | 116 + .../tutorials/views/hello-datepicker.jd | 151 + .../tutorials/views/hello-formstuff.jd | 262 + .../tutorials/views/hello-gallery.jd | 135 + .../tutorials/views/hello-gridview.jd | 129 + .../tutorials/views/hello-linearlayout.jd | 130 + .../tutorials/views/hello-listview.jd | 90 + .../tutorials/views/hello-mapview.jd | 273 + .../tutorials/views/hello-relativelayout.jd | 75 + .../tutorials/views/hello-spinner.jd | 106 + .../tutorials/views/hello-tablelayout.jd | 118 + .../tutorials/views/hello-tabwidget.jd | 124 + .../tutorials/views/hello-timepicker.jd | 159 + .../tutorials/views/hello-webview.jd | 118 + .../tutorials/views/images/android.png | Bin 0 -> 693 bytes .../tutorials/views/images/androidmarker.png | Bin 0 -> 702 bytes .../views/images/hello-autocomplete.png | Bin 0 -> 4601 bytes .../views/images/hello-datepicker.png | Bin 0 -> 7322 bytes .../views/images/hello-formstuff.png | Bin 0 -> 4258 bytes .../tutorials/views/images/hello-gallery.png | Bin 0 -> 5593 bytes .../tutorials/views/images/hello-gridview.png | Bin 0 -> 21768 bytes .../views/images/hello-linearlayout.png | Bin 0 -> 4207 bytes .../tutorials/views/images/hello-listview.png | Bin 0 -> 6926 bytes .../tutorials/views/images/hello-mapview.png | Bin 0 -> 16922 bytes .../views/images/hello-relativelayout.png | Bin 0 -> 2399 bytes .../tutorials/views/images/hello-spinner.png | Bin 0 -> 2513 bytes .../views/images/hello-tablelayout.png | Bin 0 -> 3446 bytes .../views/images/hello-tabwidget.png | Bin 0 -> 2117 bytes .../views/images/hello-timepicker.png | Bin 0 -> 5644 bytes .../tutorials/views/images/hello-webview.png | Bin 0 -> 5874 bytes docs/html/resources/tutorials/views/index.jd | 118 + docs/html/robots.txt | 7 + docs/html/samples/index.jd | 22 - docs/html/sdk/1.0_r1/index.jd | 67 +- docs/html/sdk/1.0_r1/installing.jd | 223 +- docs/html/sdk/1.0_r1/requirements.jd | 53 +- docs/html/sdk/1.0_r2/index.jd | 67 +- docs/html/sdk/1.0_r2/installing.jd | 223 +- docs/html/sdk/1.0_r2/requirements.jd | 52 +- docs/html/sdk/1.1_r1/index.jd | 65 +- docs/html/sdk/1.1_r1/installing.jd | 314 +- docs/html/sdk/1.1_r1/requirements.jd | 50 +- docs/html/sdk/1.1_r1/upgrading.jd | 2 +- docs/html/sdk/1.5_r1/index.jd | 90 +- docs/html/sdk/1.5_r1/installing.jd | 334 +- docs/html/sdk/1.5_r1/requirements.jd | 47 +- docs/html/sdk/1.5_r2/index.jd | 88 +- docs/html/sdk/1.5_r2/installing.jd | 334 +- docs/html/sdk/1.5_r2/requirements.jd | 47 +- docs/html/sdk/1.5_r3/index.jd | 89 +- docs/html/sdk/1.5_r3/installing.jd | 334 +- docs/html/sdk/1.5_r3/requirements.jd | 50 +- docs/html/sdk/1.6_r1/index.jd | 139 +- docs/html/sdk/1.6_r1/installing.jd | 443 +- docs/html/sdk/1.6_r1/requirements.jd | 59 +- docs/html/sdk/RELEASENOTES.jd | 68 +- docs/html/sdk/adt-notes.jd | 30 +- docs/html/sdk/adt_download.jd | 11 +- docs/html/sdk/android-1.6.jd | 73 +- docs/html/sdk/android-2.0.1.jd | 304 + docs/html/sdk/android-2.1.jd | 280 + docs/html/sdk/api_diff/3/changes.html | 31 +- .../3/changes/alldiffs_index_additions.html | 134 +- .../3/changes/alldiffs_index_all.html | 366 +- .../3/changes/alldiffs_index_changes.html | 243 +- .../3/changes/alldiffs_index_removals.html | 55 +- .../changes/android.Manifest.permission.html | 17 +- .../api_diff/3/changes/android.R.attr.html | 177 +- .../3/changes/android.R.drawable.html | 13 +- .../sdk/api_diff/3/changes/android.R.id.html | 37 +- .../api_diff/3/changes/android.R.string.html | 11 +- .../api_diff/3/changes/android.R.style.html | 17 +- .../3/changes/android.app.Activity.html | 17 +- .../changes/android.app.ActivityManager.html | 13 +- .../3/changes/android.app.AlarmManager.html | 19 +- .../3/changes/android.app.AlertDialog.html | 81 +- .../changes/android.app.Instrumentation.html | 9 +- .../changes/android.app.LauncherActivity.html | 13 +- .../3/changes/android.app.PendingIntent.html | 9 +- .../android.content.BroadcastReceiver.html | 9 +- .../android.content.ContentProvider.html | 9 +- .../android.content.ContentResolver.html | 11 +- .../3/changes/android.content.Context.html | 9 +- .../android.content.DialogInterface.html | 19 +- .../3/changes/android.content.Intent.html | 39 +- .../android.content.pm.ActivityInfo.html | 11 +- .../android.content.pm.PackageInfo.html | 13 +- .../android.content.pm.PackageManager.html | 19 +- ...droid.content.res.AssetFileDescriptor.html | 21 +- .../android.content.res.Configuration.html | 15 +- .../android.content.res.Resources.html | 17 +- .../android.content.res.TypedArray.html | 9 +- .../3/changes/android.database.Cursor.html | 9 +- .../android.database.CursorWrapper.html | 9 +- .../android.database.DatabaseUtils.html | 9 +- ...ndroid.database.sqlite.SQLiteDatabase.html | 11 +- .../3/changes/android.graphics.Bitmap.html | 9 +- .../3/changes/android.graphics.Canvas.html | 9 +- .../3/changes/android.graphics.Rect.html | 9 +- .../3/changes/android.graphics.RectF.html | 15 +- .../android.graphics.drawable.Drawable.html | 9 +- ...roid.graphics.drawable.RotateDrawable.html | 9 +- ...droid.graphics.drawable.ScaleDrawable.html | 9 +- ....graphics.drawable.TransitionDrawable.html | 9 +- ...ndroid.graphics.drawable.shapes.Shape.html | 11 +- .../3/changes/android.hardware.Camera.html | 11 +- .../android.hardware.SensorListener.html | 7 +- .../android.hardware.SensorManager.html | 87 +- .../3/changes/android.location.Location.html | 9 +- .../android.location.LocationManager.html | 41 +- .../3/changes/android.media.AudioManager.html | 33 +- .../3/changes/android.media.MediaPlayer.html | 23 +- ...roid.media.MediaRecorder.OutputFormat.html | 9 +- .../changes/android.media.MediaRecorder.html | 37 +- .../android.media.RingtoneManager.html | 9 +- .../3/changes/android.media.SoundPool.html | 11 +- .../android.net.ConnectivityManager.html | 11 +- .../3/changes/android.net.NetworkInfo.html | 13 +- .../changes/android.net.wifi.WifiManager.html | 13 +- .../api_diff/3/changes/android.os.Binder.html | 9 +- .../api_diff/3/changes/android.os.Build.html | 9 +- .../api_diff/3/changes/android.os.Debug.html | 11 +- .../3/changes/android.os.Environment.html | 11 +- .../3/changes/android.os.Handler.html | 11 +- .../3/changes/android.os.IBinder.html | 9 +- .../api_diff/3/changes/android.os.Looper.html | 9 +- .../api_diff/3/changes/android.os.Parcel.html | 13 +- .../android.os.ParcelFileDescriptor.html | 11 +- .../android.preference.DialogPreference.html | 9 +- .../3/changes/android.provider.Browser.html | 9 +- ...roid.provider.Contacts.Intents.Insert.html | 25 +- .../android.provider.Contacts.Intents.html | 13 +- ...droid.provider.Contacts.PeopleColumns.html | 9 +- ...rovider.MediaStore.Audio.AlbumColumns.html | 9 +- ...droid.provider.MediaStore.Audio.Media.html | 9 +- ...roid.provider.MediaStore.Images.Media.html | 9 +- ...rovider.MediaStore.Video.VideoColumns.html | 13 +- .../android.provider.MediaStore.Video.html | 9 +- .../changes/android.provider.MediaStore.html | 33 +- .../android.provider.Settings.System.html | 95 +- .../3/changes/android.provider.Settings.html | 31 +- .../android.telephony.PhoneNumberUtils.html | 11 +- .../android.telephony.TelephonyManager.html | 21 +- .../android.telephony.gsm.SmsMessage.html | 9 +- ....test.ActivityInstrumentationTestCase.html | 7 +- .../android.test.InstrumentationTestCase.html | 11 +- .../android.test.ProviderTestCase.html | 7 +- .../3/changes/android.test.TouchUtils.html | 93 +- .../android.test.mock.MockPackageManager.html | 13 +- .../android.test.suitebuilder.TestMethod.html | 11 +- ...id.test.suitebuilder.TestSuiteBuilder.html | 126 - .../3/changes/android.text.Annotation.html | 15 +- .../3/changes/android.text.AutoText.html | 9 +- .../3/changes/android.text.SpanWatcher.html | 7 +- .../3/changes/android.text.Spanned.html | 13 +- .../3/changes/android.text.TextUtils.html | 17 +- .../3/changes/android.text.TextWatcher.html | 7 +- ...id.text.method.ArrowKeyMovementMethod.html | 9 +- .../android.text.method.BaseKeyListener.html | 9 +- .../android.text.method.DateKeyListener.html | 9 +- ...droid.text.method.DateTimeKeyListener.html | 9 +- ...android.text.method.DialerKeyListener.html | 9 +- ...android.text.method.DigitsKeyListener.html | 9 +- .../android.text.method.KeyListener.html | 13 +- ...ndroid.text.method.MetaKeyKeyListener.html | 27 +- .../android.text.method.MovementMethod.html | 9 +- ...droid.text.method.MultiTapKeyListener.html | 9 +- ...android.text.method.QwertyKeyListener.html | 9 +- ...d.text.method.ScrollingMovementMethod.html | 9 +- .../android.text.method.TextKeyListener.html | 9 +- .../android.text.method.TimeKeyListener.html | 9 +- .../3/changes/android.text.method.Touch.html | 11 +- .../android.text.style.AbsoluteSizeSpan.html | 15 +- ...oid.text.style.AlignmentSpan.Standard.html | 15 +- ...ndroid.text.style.BackgroundColorSpan.html | 15 +- .../android.text.style.BulletSpan.html | 15 +- .../android.text.style.ClickableSpan.html | 7 +- ...ndroid.text.style.DynamicDrawableSpan.html | 17 +- ...ndroid.text.style.ForegroundColorSpan.html | 15 +- .../changes/android.text.style.ImageSpan.html | 17 +- ...text.style.LeadingMarginSpan.Standard.html | 15 +- .../android.text.style.MaskFilterSpan.html | 7 +- .../changes/android.text.style.QuoteSpan.html | 15 +- .../android.text.style.RasterizerSpan.html | 7 +- .../android.text.style.RelativeSizeSpan.html | 15 +- .../android.text.style.ScaleXSpan.html | 15 +- .../android.text.style.StrikethroughSpan.html | 15 +- .../changes/android.text.style.StyleSpan.html | 15 +- .../android.text.style.SubscriptSpan.html | 15 +- .../android.text.style.SuperscriptSpan.html | 15 +- ...android.text.style.TextAppearanceSpan.html | 15 +- .../android.text.style.TypefaceSpan.html | 15 +- .../3/changes/android.text.style.URLSpan.html | 15 +- .../android.text.style.UnderlineSpan.html | 15 +- .../android.text.style.UpdateLayout.html | 7 +- .../changes/android.util.SparseIntArray.html | 9 +- .../3/changes/android.util.TimeUtils.html | 9 +- ...stureDetector.SimpleOnGestureListener.html | 13 +- .../changes/android.view.GestureDetector.html | 17 +- .../3/changes/android.view.Gravity.html | 19 +- .../changes/android.view.KeyCharacterMap.html | 11 +- .../3/changes/android.view.KeyEvent.html | 45 +- .../api_diff/3/changes/android.view.Menu.html | 11 +- .../3/changes/android.view.MotionEvent.html | 9 +- .../android.view.OrientationListener.html | 9 +- .../api_diff/3/changes/android.view.View.html | 41 +- .../android.view.ViewConfiguration.html | 43 +- .../3/changes/android.view.ViewDebug.html | 9 +- .../3/changes/android.view.ViewGroup.html | 9 +- .../3/changes/android.view.ViewParent.html | 9 +- .../android.view.ViewTreeObserver.html | 11 +- .../3/changes/android.view.Window.html | 13 +- ...droid.view.WindowManager.LayoutParams.html | 55 +- .../android.view.animation.Animation.html | 13 +- ...android.view.animation.Transformation.html | 9 +- .../3/changes/android.webkit.URLUtil.html | 9 +- .../android.webkit.UrlInterceptHandler.html | 11 +- .../android.webkit.UrlInterceptRegistry.html | 11 +- .../android.webkit.WebHistoryItem.html | 9 +- .../3/changes/android.webkit.WebSettings.html | 23 +- .../3/changes/android.webkit.WebView.html | 25 +- .../3/changes/android.widget.AbsListView.html | 17 +- .../3/changes/android.widget.AbsSeekBar.html | 11 +- .../android.widget.AbsoluteLayout.html | 7 +- .../changes/android.widget.ArrayAdapter.html | 9 +- .../android.widget.AutoCompleteTextView.html | 31 +- .../3/changes/android.widget.Chronometer.html | 11 +- .../changes/android.widget.CursorAdapter.html | 15 +- .../3/changes/android.widget.GridView.html | 9 +- .../3/changes/android.widget.ListView.html | 11 +- ....widget.PopupWindow.OnDismissListener.html | 7 +- .../3/changes/android.widget.PopupWindow.html | 41 +- .../3/changes/android.widget.ProgressBar.html | 15 +- ...id.widget.RemoteViews.ActionException.html | 9 +- .../3/changes/android.widget.RemoteViews.html | 37 +- .../android.widget.ResourceCursorAdapter.html | 11 +- .../3/changes/android.widget.Scroller.html | 11 +- .../android.widget.SimpleCursorAdapter.html | 9 +- .../3/changes/android.widget.TextView.html | 69 +- .../api_diff/3/changes/changes-summary.html | 43 +- .../3/changes/classes_index_additions.html | 7 +- .../api_diff/3/changes/classes_index_all.html | 12 +- .../3/changes/classes_index_changes.html | 12 +- .../3/changes/classes_index_removals.html | 7 +- .../changes/constructors_index_additions.html | 7 +- .../3/changes/constructors_index_all.html | 34 +- .../3/changes/constructors_index_changes.html | 52 +- .../changes/constructors_index_removals.html | 7 +- .../3/changes/dalvik.system.DexFile.html | 9 +- .../3/changes/dalvik.system.VMDebug.html | 11 +- .../3/changes/dalvik.system.Zygote.html | 57 +- .../3/changes/fields_index_additions.html | 47 +- .../api_diff/3/changes/fields_index_all.html | 55 +- .../3/changes/fields_index_changes.html | 15 +- .../3/changes/fields_index_removals.html | 7 +- .../java.lang.Character.UnicodeBlock.html | 9 +- .../api_diff/3/changes/java.lang.Class.html | 17 +- .../api_diff/3/changes/java.lang.String.html | 161 - .../3/changes/java.lang.reflect.Proxy.html | 126 - .../api_diff/3/changes/java.net.Socket.html | 161 - .../api_diff/3/changes/java.util.Date.html | 134 - .../changes/java.util.jar.Pack200.Packer.html | 11 +- .../java.util.jar.Pack200.Unpacker.html | 11 +- .../3/changes/java.util.logging.Level.html | 9 +- .../changes/java.util.logging.LogManager.html | 13 +- .../sdk/api_diff/3/changes/jdiff_help.html | 7 +- .../api_diff/3/changes/jdiff_statistics.html | 202 +- .../3/changes/jdiff_topleftframe.html | 5 +- .../3/changes/methods_index_additions.html | 36 +- .../api_diff/3/changes/methods_index_all.html | 54 +- .../3/changes/methods_index_changes.html | 33 +- .../3/changes/methods_index_removals.html | 40 +- .../3/changes/packages_index_additions.html | 9 +- .../3/changes/packages_index_all.html | 13 +- .../3/changes/packages_index_changes.html | 13 +- .../3/changes/packages_index_removals.html | 7 +- .../api_diff/3/changes/pkg_android.app.html | 15 +- .../3/changes/pkg_android.content.html | 7 +- .../3/changes/pkg_android.content.pm.html | 9 +- .../3/changes/pkg_android.content.res.html | 11 +- .../3/changes/pkg_android.database.html | 7 +- .../changes/pkg_android.database.sqlite.html | 7 +- .../pkg_android.graphics.drawable.html | 7 +- .../pkg_android.graphics.drawable.shapes.html | 7 +- .../3/changes/pkg_android.graphics.html | 7 +- .../3/changes/pkg_android.hardware.html | 15 +- .../sdk/api_diff/3/changes/pkg_android.html | 11 +- .../3/changes/pkg_android.location.html | 13 +- .../api_diff/3/changes/pkg_android.media.html | 33 +- .../api_diff/3/changes/pkg_android.net.html | 7 +- .../3/changes/pkg_android.net.wifi.html | 7 +- .../3/changes/pkg_android.opengl.html | 17 +- .../api_diff/3/changes/pkg_android.os.html | 15 +- .../3/changes/pkg_android.preference.html | 7 +- .../3/changes/pkg_android.provider.html | 15 +- .../3/changes/pkg_android.telephony.gsm.html | 7 +- .../3/changes/pkg_android.telephony.html | 9 +- .../api_diff/3/changes/pkg_android.test.html | 11 +- .../3/changes/pkg_android.test.mock.html | 7 +- .../pkg_android.test.suitebuilder.html | 14 +- .../api_diff/3/changes/pkg_android.text.html | 15 +- .../3/changes/pkg_android.text.method.html | 7 +- .../3/changes/pkg_android.text.style.html | 9 +- .../api_diff/3/changes/pkg_android.util.html | 9 +- .../3/changes/pkg_android.view.animation.html | 7 +- .../api_diff/3/changes/pkg_android.view.html | 17 +- .../3/changes/pkg_android.webkit.html | 9 +- .../3/changes/pkg_android.widget.html | 25 +- .../api_diff/3/changes/pkg_dalvik.system.html | 9 +- .../sdk/api_diff/3/changes/pkg_java.lang.html | 14 +- .../3/changes/pkg_java.lang.reflect.html | 120 - .../sdk/api_diff/3/changes/pkg_java.net.html | 120 - .../sdk/api_diff/3/changes/pkg_java.util.html | 120 - .../api_diff/3/changes/pkg_java.util.jar.html | 7 +- .../3/changes/pkg_java.util.logging.html | 7 +- docs/html/sdk/api_diff/3/missingSinces.txt | 785 + docs/html/sdk/api_diff/3/stylesheet-jdiff.css | 10 +- .../api_diff/3/user_comments_for_2_to_3.xml | 6931 + docs/html/sdk/api_diff/4/changes.html | 32 +- .../4/changes/alldiffs_index_additions.html | 50 +- .../4/changes/alldiffs_index_all.html | 172 +- .../4/changes/alldiffs_index_changes.html | 122 +- .../4/changes/alldiffs_index_removals.html | 4 +- .../changes/android.Manifest.permission.html | 2 +- .../android.Manifest.permission_group.html | 2 +- .../api_diff/4/changes/android.R.anim.html | 2 +- .../api_diff/4/changes/android.R.attr.html | 2 +- .../4/changes/android.R.drawable.html | 2 +- .../api_diff/4/changes/android.R.style.html | 2 +- .../4/changes/android.app.Activity.html | 2 +- .../4/changes/android.app.Dialog.html | 2 +- ...android.app.LauncherActivity.ListItem.html | 2 +- .../changes/android.app.LauncherActivity.html | 2 +- .../4/changes/android.app.PendingIntent.html | 2 +- .../4/changes/android.app.SearchManager.html | 2 +- .../android.content.ComponentName.html | 2 +- .../android.content.ContentProvider.html | 2 +- .../4/changes/android.content.Context.html | 2 +- .../android.content.ContextWrapper.html | 2 +- .../4/changes/android.content.Intent.html | 2 +- .../android.content.pm.ActivityInfo.html | 2 +- .../android.content.pm.ApplicationInfo.html | 2 +- .../android.content.pm.ConfigurationInfo.html | 2 +- .../android.content.pm.PackageManager.html | 2 +- .../android.content.pm.ProviderInfo.html | 2 +- .../android.content.res.Configuration.html | 2 +- .../4/changes/android.graphics.Bitmap.html | 2 +- ...ndroid.graphics.BitmapFactory.Options.html | 2 +- .../android.graphics.BitmapFactory.html | 2 +- .../4/changes/android.graphics.Canvas.html | 2 +- .../4/changes/android.graphics.NinePatch.html | 2 +- .../4/changes/android.graphics.Typeface.html | 2 +- ...d.graphics.drawable.AnimationDrawable.html | 2 +- ...roid.graphics.drawable.BitmapDrawable.html | 2 +- .../android.graphics.drawable.Drawable.html | 2 +- ...d.graphics.drawable.NinePatchDrawable.html | 2 +- .../android.hardware.SensorManager.html | 2 +- ...droid.inputmethodservice.KeyboardView.html | 2 +- .../4/changes/android.location.Address.html | 2 +- .../4/changes/android.media.AudioManager.html | 2 +- ...droid.media.MediaRecorder.AudioSource.html | 2 +- .../changes/android.media.MediaRecorder.html | 2 +- .../changes/android.media.ToneGenerator.html | 2 +- .../changes/android.net.wifi.WifiManager.html | 2 +- .../4/changes/android.os.Build.VERSION.html | 2 +- .../api_diff/4/changes/android.os.Build.html | 2 +- .../android.os.RemoteCallbackList.html | 2 +- ...vider.MediaStore.Audio.Genres.Members.html | 2 +- ...droid.provider.MediaStore.Audio.Media.html | 2 +- .../android.provider.Settings.Secure.html | 2 +- .../android.provider.Settings.System.html | 2 +- ...> android.telephony.TelephonyManager.html} | 51 +- .../android.telephony.gsm.SmsManager.html | 2 +- ...telephony.gsm.SmsMessage.MessageClass.html | 2 +- ...id.telephony.gsm.SmsMessage.SubmitPdu.html | 2 +- .../android.telephony.gsm.SmsMessage.html | 2 +- .../changes/android.test.AndroidTestCase.html | 2 +- .../android.test.mock.MockContext.html | 2 +- .../android.test.mock.MockPackageManager.html | 2 +- .../changes/android.text.style.ImageSpan.html | 2 +- .../4/changes/android.util.Config.html | 2 +- .../changes/android.util.DisplayMetrics.html | 2 +- .../4/changes/android.util.TypedValue.html | 2 +- .../4/changes/android.view.Surface.html | 2 +- .../changes/android.view.VelocityTracker.html | 2 +- .../api_diff/4/changes/android.view.View.html | 2 +- .../android.view.ViewConfiguration.html | 2 +- .../changes/android.view.Window.Callback.html | 2 +- .../android.widget.AutoCompleteTextView.html | 2 +- .../android.widget.CheckedTextView.html | 2 +- .../4/changes/android.widget.ListView.html | 2 +- .../4/changes/android.widget.PopupWindow.html | 2 +- .../android.widget.TabHost.TabSpec.html | 2 +- .../4/changes/android.widget.TabWidget.html | 2 +- .../api_diff/4/changes/changes-summary.html | 20 +- .../4/changes/classes_index_additions.html | 4 +- .../api_diff/4/changes/classes_index_all.html | 10 +- .../4/changes/classes_index_changes.html | 10 +- .../4/changes/classes_index_removals.html | 4 +- .../changes/constructors_index_additions.html | 4 +- .../4/changes/constructors_index_all.html | 43 +- .../4/changes/constructors_index_changes.html | 43 +- .../changes/constructors_index_removals.html | 4 +- .../4/changes/fields_index_additions.html | 40 +- .../api_diff/4/changes/fields_index_all.html | 48 +- .../4/changes/fields_index_changes.html | 12 +- .../4/changes/fields_index_removals.html | 4 +- .../java.util.concurrent.TimeUnit.html | 108 + ...rent.locks.AbstractQueuedSynchronizer.html | 108 + .../api_diff/4/changes/jdiff_statistics.html | 192 +- .../4/changes/jdiff_topleftframe.html | 2 +- .../4/changes/methods_index_additions.html | 4 +- .../api_diff/4/changes/methods_index_all.html | 4 +- .../4/changes/methods_index_changes.html | 4 +- .../4/changes/methods_index_removals.html | 4 +- .../4/changes/packages_index_additions.html | 5 +- .../4/changes/packages_index_all.html | 11 +- .../4/changes/packages_index_changes.html | 11 +- .../4/changes/packages_index_removals.html | 4 +- .../api_diff/4/changes/pkg_android.app.html | 2 +- .../4/changes/pkg_android.content.html | 2 +- .../4/changes/pkg_android.content.pm.html | 2 +- .../4/changes/pkg_android.content.res.html | 2 +- .../pkg_android.graphics.drawable.html | 2 +- .../4/changes/pkg_android.graphics.html | 2 +- .../4/changes/pkg_android.hardware.html | 2 +- .../sdk/api_diff/4/changes/pkg_android.html | 2 +- .../pkg_android.inputmethodservice.html | 2 +- .../4/changes/pkg_android.location.html | 2 +- .../api_diff/4/changes/pkg_android.media.html | 2 +- .../4/changes/pkg_android.net.wifi.html | 2 +- .../4/changes/pkg_android.opengl.html | 2 +- .../api_diff/4/changes/pkg_android.os.html | 2 +- .../4/changes/pkg_android.provider.html | 2 +- .../4/changes/pkg_android.telephony.gsm.html | 2 +- .../4/changes/pkg_android.telephony.html | 17 +- .../api_diff/4/changes/pkg_android.test.html | 2 +- .../4/changes/pkg_android.test.mock.html | 2 +- .../4/changes/pkg_android.text.style.html | 2 +- .../api_diff/4/changes/pkg_android.util.html | 2 +- .../4/changes/pkg_android.view.animation.html | 2 +- .../api_diff/4/changes/pkg_android.view.html | 2 +- .../4/changes/pkg_android.widget.html | 2 +- ...net.html => pkg_java.util.concurrent.html} | 10 +- ...ml => pkg_java.util.concurrent.locks.html} | 10 +- docs/html/sdk/api_diff/4/missingSinces.txt | 6 + docs/html/sdk/api_diff/4/stylesheet-jdiff.css | 10 +- .../api_diff/4/user_comments_for_3_to_4.xml | 134 +- docs/html/sdk/api_diff/5/changes.html | 32 +- .../5/changes/alldiffs_index_additions.html | 83 +- .../5/changes/alldiffs_index_all.html | 659 +- .../5/changes/alldiffs_index_changes.html | 614 +- .../5/changes/alldiffs_index_removals.html | 18 +- .../changes/android.Manifest.permission.html | 2 +- .../api_diff/5/changes/android.R.attr.html | 2 +- .../5/changes/android.R.drawable.html | 2 +- .../api_diff/5/changes/android.R.style.html | 2 +- .../5/changes/android.app.Activity.html | 2 +- ...ActivityManager.RunningAppProcessInfo.html | 2 +- ...pp.ActivityManager.RunningServiceInfo.html | 2 +- .../changes/android.app.ActivityManager.html | 2 +- .../5/changes/android.app.Dialog.html | 2 +- .../5/changes/android.app.IntentService.html | 2 +- .../changes/android.app.LauncherActivity.html | 2 +- .../5/changes/android.app.Notification.html | 2 +- .../android.app.NotificationManager.html | 2 +- .../5/changes/android.app.SearchManager.html | 2 +- .../5/changes/android.app.Service.html | 2 +- .../android.content.BroadcastReceiver.html | 2 +- .../android.content.ContentProvider.html | 2 +- .../android.content.ContentResolver.html | 2 +- .../5/changes/android.content.Context.html | 2 +- .../android.content.ContextWrapper.html | 2 +- .../5/changes/android.content.Intent.html | 2 +- .../android.content.pm.ActivityInfo.html | 2 +- .../android.content.pm.PackageInfo.html | 2 +- .../android.content.pm.PackageManager.html | 2 +- .../android.content.pm.ProviderInfo.html | 2 +- .../android.content.pm.ResolveInfo.html | 2 +- .../android.content.pm.ServiceInfo.html | 2 +- .../android.content.res.Configuration.html | 2 +- ...droid.database.AbstractWindowedCursor.html | 2 +- .../android.database.CursorWindow.html | 2 +- .../android.database.DatabaseUtils.html | 2 +- ...ndroid.database.sqlite.SQLiteDatabase.html | 2 +- .../changes/android.graphics.PixelFormat.html | 2 +- ...roid.graphics.drawable.BitmapDrawable.html | 31 +- ...phics.drawable.Drawable.ConstantState.html | 2 +- .../android.graphics.drawable.Drawable.html | 2 +- ...d.graphics.drawable.NinePatchDrawable.html | 124 - .../android.hardware.Camera.Parameters.html | 2 +- .../5/changes/android.hardware.Camera.html | 2 +- ...hodservice.AbstractInputMethodService.html | 2 +- ...inputmethodservice.InputMethodService.html | 2 +- .../android.location.LocationManager.html | 2 +- .../5/changes/android.media.AudioFormat.html | 2 +- .../5/changes/android.media.AudioManager.html | 2 +- .../5/changes/android.media.MediaPlayer.html | 2 +- .../changes/android.media.ToneGenerator.html | 2 +- .../changes/android.opengl.GLSurfaceView.html | 2 +- .../5/changes/android.os.BatteryManager.html | 2 +- .../android.os.Build.VERSION_CODES.html | 2 +- .../changes/android.os.Debug.MemoryInfo.html | 2 +- .../5/changes/android.os.HandlerThread.html | 2 +- ...roid.provider.Contacts.ContactMethods.html | 2 +- ...ovider.Contacts.ContactMethodsColumns.html | 2 +- .../android.provider.Contacts.Extensions.html | 2 +- ...d.provider.Contacts.ExtensionsColumns.html | 2 +- ...oid.provider.Contacts.GroupMembership.html | 2 +- .../android.provider.Contacts.Groups.html | 2 +- ...droid.provider.Contacts.GroupsColumns.html | 2 +- ...roid.provider.Contacts.Intents.Insert.html | 2 +- .../android.provider.Contacts.Intents.UI.html | 2 +- .../android.provider.Contacts.Intents.html | 2 +- ...provider.Contacts.OrganizationColumns.html | 2 +- ...droid.provider.Contacts.Organizations.html | 2 +- ...ovider.Contacts.People.ContactMethods.html | 2 +- ...d.provider.Contacts.People.Extensions.html | 2 +- ...droid.provider.Contacts.People.Phones.html | 2 +- .../android.provider.Contacts.People.html | 2 +- ...droid.provider.Contacts.PeopleColumns.html | 2 +- .../android.provider.Contacts.Phones.html | 2 +- ...droid.provider.Contacts.PhonesColumns.html | 2 +- .../android.provider.Contacts.Photos.html | 2 +- ...droid.provider.Contacts.PhotosColumns.html | 2 +- ...oid.provider.Contacts.PresenceColumns.html | 2 +- .../android.provider.Contacts.Settings.html | 2 +- ...oid.provider.Contacts.SettingsColumns.html | 2 +- .../5/changes/android.provider.Contacts.html | 2 +- ...provider.MediaStore.Images.Thumbnails.html | 2 +- .../android.provider.Settings.System.html | 2 +- .../5/changes/android.provider.Settings.html | 2 +- ...android.telephony.NeighboringCellInfo.html | 2 +- .../android.telephony.PhoneNumberUtils.html | 2 +- .../android.telephony.PhoneStateListener.html | 2 +- .../android.telephony.TelephonyManager.html | 44 +- .../android.test.AndroidTestRunner.html | 2 +- .../android.test.InstrumentationTestCase.html | 2 +- .../android.test.mock.MockContext.html | 2 +- .../android.test.mock.MockPackageManager.html | 2 +- .../5/changes/android.text.InputType.html | 2 +- .../5/changes/android.text.TextPaint.html | 2 +- .../android.text.format.DateUtils.html | 2 +- .../android.text.format.Formatter.html | 2 +- .../android.text.style.AbsoluteSizeSpan.html | 2 +- .../changes/android.text.style.ImageSpan.html | 133 - .../android.view.HapticFeedbackConstants.html | 2 +- .../android.view.KeyEvent.Callback.html | 2 +- .../5/changes/android.view.KeyEvent.html | 2 +- .../5/changes/android.view.MotionEvent.html | 2 +- .../5/changes/android.view.Surface.html | 2 +- .../5/changes/android.view.SurfaceHolder.html | 2 +- .../5/changes/android.view.SurfaceView.html | 2 +- .../api_diff/5/changes/android.view.View.html | 2 +- .../android.view.ViewConfiguration.html | 2 +- ...a.net.html => android.view.ViewGroup.html} | 19 +- .../changes/android.view.Window.Callback.html | 2 +- ...droid.view.WindowManager.LayoutParams.html | 2 +- .../android.view.animation.Animation.html | 2 +- .../changes/android.webkit.CallbackProxy.html | 2 +- .../5/changes/android.webkit.Plugin.html | 2 +- .../5/changes/android.webkit.PluginData.html | 2 +- .../5/changes/android.webkit.PluginList.html | 2 +- .../android.webkit.UrlInterceptHandler.html | 2 +- .../android.webkit.UrlInterceptRegistry.html | 2 +- .../android.webkit.WebChromeClient.html | 2 +- .../5/changes/android.webkit.WebSettings.html | 2 +- .../5/changes/android.webkit.WebView.html | 2 +- .../changes/android.webkit.WebViewClient.html | 2 +- .../android.widget.AutoCompleteTextView.html | 2 +- ...et.MediaController.MediaPlayerControl.html | 2 +- ...ndroid.widget.SimpleCursorTreeAdapter.html | 2 +- .../5/changes/android.widget.VideoView.html | 2 +- .../api_diff/5/changes/changes-summary.html | 26 +- .../5/changes/classes_index_additions.html | 4 +- .../api_diff/5/changes/classes_index_all.html | 10 +- .../5/changes/classes_index_changes.html | 10 +- .../5/changes/classes_index_removals.html | 4 +- .../changes/constructors_index_additions.html | 8 +- .../5/changes/constructors_index_all.html | 100 +- .../5/changes/constructors_index_changes.html | 88 +- .../changes/constructors_index_removals.html | 15 +- .../dalvik.system.AllocationLimitError.html | 2 +- .../dalvik.system.PotentialDeadlockError.html | 2 +- .../dalvik.system.StaleDexCacheError.html | 2 +- .../dalvik.system.TemporaryDirectory.html | 2 +- .../5/changes/dalvik.system.TouchDex.html | 2 +- .../5/changes/dalvik.system.VMDebug.html | 2 +- .../5/changes/dalvik.system.VMRuntime.html | 2 +- .../5/changes/dalvik.system.VMStack.html | 2 +- .../5/changes/dalvik.system.Zygote.html | 2 +- .../5/changes/fields_index_additions.html | 102 +- .../api_diff/5/changes/fields_index_all.html | 424 +- .../5/changes/fields_index_changes.html | 396 +- .../5/changes/fields_index_removals.html | 12 +- .../api_diff/5/changes/java.lang.String.html | 160 - .../api_diff/5/changes/java.util.Date.html | 133 - .../java.util.concurrent.BlockingQueue.html | 2 +- .../api_diff/5/changes/jdiff_statistics.html | 234 +- .../5/changes/jdiff_topleftframe.html | 2 +- .../5/changes/methods_index_additions.html | 4 +- .../api_diff/5/changes/methods_index_all.html | 4 +- .../5/changes/methods_index_changes.html | 4 +- .../5/changes/methods_index_removals.html | 4 +- .../5/changes/packages_index_additions.html | 5 +- .../5/changes/packages_index_all.html | 10 +- .../5/changes/packages_index_changes.html | 10 +- .../5/changes/packages_index_removals.html | 4 +- .../api_diff/5/changes/pkg_android.app.html | 2 +- .../5/changes/pkg_android.content.html | 2 +- .../5/changes/pkg_android.content.pm.html | 2 +- .../5/changes/pkg_android.content.res.html | 2 +- .../5/changes/pkg_android.database.html | 2 +- .../changes/pkg_android.database.sqlite.html | 2 +- .../pkg_android.graphics.drawable.html | 9 +- .../5/changes/pkg_android.graphics.html | 2 +- .../5/changes/pkg_android.hardware.html | 2 +- .../sdk/api_diff/5/changes/pkg_android.html | 2 +- .../pkg_android.inputmethodservice.html | 2 +- .../5/changes/pkg_android.location.html | 2 +- .../api_diff/5/changes/pkg_android.media.html | 2 +- .../5/changes/pkg_android.opengl.html | 2 +- .../api_diff/5/changes/pkg_android.os.html | 2 +- .../5/changes/pkg_android.provider.html | 2 +- .../5/changes/pkg_android.telephony.html | 2 +- .../api_diff/5/changes/pkg_android.test.html | 2 +- .../5/changes/pkg_android.test.mock.html | 2 +- .../5/changes/pkg_android.text.format.html | 2 +- .../api_diff/5/changes/pkg_android.text.html | 2 +- .../5/changes/pkg_android.text.style.html | 9 +- .../api_diff/5/changes/pkg_android.util.html | 2 +- .../5/changes/pkg_android.view.animation.html | 2 +- .../api_diff/5/changes/pkg_android.view.html | 9 +- .../5/changes/pkg_android.webkit.html | 2 +- .../5/changes/pkg_android.widget.html | 2 +- .../api_diff/5/changes/pkg_dalvik.system.html | 2 +- .../5/changes/pkg_java.util.concurrent.html | 2 +- .../pkg_java.util.concurrent.locks.html | 2 +- docs/html/sdk/api_diff/5/missingSinces.txt | 7 - docs/html/sdk/api_diff/5/stylesheet-jdiff.css | 10 +- .../api_diff/5/user_comments_for_4_to_5.xml | 204 +- docs/html/sdk/api_diff/6/changes.html | 45 + .../6/changes/alldiffs_index_additions.html | 92 + .../6/changes/alldiffs_index_all.html | 215 + .../6/changes/alldiffs_index_changes.html | 156 + .../6/changes/alldiffs_index_removals.html | 61 + .../changes/android.R.attr.html} | 55 +- ...ccounts.AbstractAccountAuthenticator.html} | 26 +- .../android.os.Build.VERSION_CODES.html | 122 + ...droid.view.WindowManager.LayoutParams.html | 124 + .../changes/changes-summary.html} | 72 +- .../6/changes/classes_index_additions.html | 61 + .../api_diff/6/changes/classes_index_all.html | 93 + .../6/changes/classes_index_changes.html | 93 + .../6/changes/classes_index_removals.html | 61 + .../changes/constructors_index_additions.html | 61 + .../6/changes/constructors_index_all.html | 61 + .../6/changes/constructors_index_changes.html | 61 + .../changes/constructors_index_removals.html | 61 + .../6/changes/fields_index_additions.html | 85 + .../api_diff/6/changes/fields_index_all.html | 95 + .../6/changes/fields_index_changes.html | 67 + .../6/changes/fields_index_removals.html | 61 + .../sdk/api_diff/6/changes/jdiff_help.html | 134 + .../api_diff/6/changes/jdiff_statistics.html | 229 + .../6/changes/jdiff_topleftframe.html | 63 + .../6/changes/methods_index_additions.html | 61 + .../api_diff/6/changes/methods_index_all.html | 75 + .../6/changes/methods_index_changes.html | 75 + .../6/changes/methods_index_removals.html | 61 + .../6/changes/packages_index_additions.html | 63 + .../6/changes/packages_index_all.html | 68 + .../6/changes/packages_index_changes.html | 68 + .../6/changes/packages_index_removals.html | 63 + .../6/changes/pkg_android.accounts.html | 119 + .../changes/pkg_android.html} | 14 +- .../changes/pkg_android.os.html} | 14 +- .../changes/pkg_android.view.html} | 14 +- docs/html/sdk/api_diff/6/missingSinces.txt | 7 + docs/html/sdk/api_diff/6/stylesheet-jdiff.css | 44 + .../api_diff/6/user_comments_for_5_to_6.xml | 139 + docs/html/sdk/eclipse-adt.jd | 14 +- docs/html/sdk/index.jd | 24 +- docs/html/sdk/installing.jd | 8 +- docs/html/sdk/older_releases.jd | 472 +- docs/html/sdk/requirements.jd | 19 +- docs/html/sdk/sdk_toc.cs | 31 +- docs/html/sdk/tools-notes.jd | 45 +- docs/html/sdk/win-usb.jd | 4 + docs/html/shareables/latest_samples.zip | Bin 0 -> 2488801 bytes graphics/java/android/graphics/Rect.java | 42 + .../java/android/renderscript/Allocation.java | 33 + .../java/android/renderscript/Element.java | 3 + graphics/java/android/renderscript/Light.java | 3 + .../android/renderscript/ProgramFragment.java | 3 + .../android/renderscript/ProgramRaster.java | 3 + .../android/renderscript/ProgramStore.java | 1 + .../android/renderscript/ProgramVertex.java | 2 + .../android/renderscript/RSSurfaceView.java | 16 +- .../android/renderscript/RenderScript.java | 59 +- .../java/android/renderscript/Sampler.java | 1 + .../java/android/renderscript/Script.java | 5 + .../java/android/renderscript/SimpleMesh.java | 5 + .../jni/android_renderscript_RenderScript.cpp | 46 +- include/media/AudioRecord.h | 7 +- include/media/AudioSystem.h | 8 +- include/media/stagefright/MediaPlayerImpl.h | 4 +- include/ui/Surface.h | 4 +- libs/audioflinger/AudioFlinger.cpp | 456 +- libs/audioflinger/AudioFlinger.h | 41 +- libs/binder/ProcessState.cpp | 2 +- libs/rs/RenderScript.h | 2 +- .../com/android/fountain/FountainView.java | 28 +- .../rs/image/ImageProcessingActivity.java | 3 +- libs/rs/rs.spec | 10 + libs/rs/rsAllocation.cpp | 32 +- libs/rs/rsAllocation.h | 4 +- libs/rs/rsContext.cpp | 214 +- libs/rs/rsContext.h | 19 +- libs/rs/rsLocklessFifo.cpp | 2 +- libs/rs/rsObjectBase.cpp | 16 +- libs/rs/rsObjectBase.h | 1 + libs/rs/rsProgramFragment.cpp | 14 + libs/rs/rsProgramVertex.cpp | 9 +- libs/rs/rsProgramVertex.h | 1 + libs/rs/rsScript.h | 2 +- libs/rs/rsScriptC.cpp | 6 +- libs/rs/rsScriptC.h | 2 +- libs/rs/rsScriptC_Lib.cpp | 73 +- libs/rs/rsUtils.h | 2 +- libs/surfaceflinger/Android.mk | 3 - .../DisplayHardware/DisplayHardware.cpp | 3 +- libs/surfaceflinger/Layer.cpp | 15 +- libs/surfaceflinger/LayerBuffer.cpp | 135 +- libs/surfaceflinger/LayerBuffer.h | 5 +- libs/surfaceflinger/SurfaceFlinger.cpp | 29 +- libs/surfaceflinger/SurfaceFlinger.h | 6 +- libs/ui/FramebufferNativeWindow.cpp | 2 - libs/ui/Surface.cpp | 48 +- libs/utils/ResourceTypes.cpp | 20 +- .../location/GpsLocationProvider.java | 70 +- media/java/android/media/AudioRecord.java | 7 +- media/java/android/media/AudioService.java | 115 +- media/java/android/media/AudioSystem.java | 5 +- media/java/android/media/ExifInterface.java | 8 +- media/java/android/media/MediaRecorder.java | 6 +- media/java/android/media/MediaScanner.java | 5 +- media/java/android/media/Ringtone.java | 8 +- media/jni/soundpool/SoundPool.cpp | 11 +- media/libmedia/AudioRecord.cpp | 73 +- media/libmedia/AudioTrack.cpp | 41 +- media/libmedia/IMediaMetadataRetriever.cpp | 87 +- .../MediaPlayerService.cpp | 24 +- .../MetadataRetrieverClient.cpp | 14 - .../MetadataRetrieverClient.h | 10 - media/libstagefright/MediaPlayerImpl.cpp | 58 +- .../performance/MediaPlayerPerformance.java | 67 +- .../stress/MediaPlayerStressTest.java | 2 + opengl/java/android/opengl/GLSurfaceView.java | 267 +- opengl/libagl/array.cpp | 36 +- opengl/libagl/copybit.cpp | 2 +- opengl/libagl/egl.cpp | 2 +- opengl/libagl/state.cpp | 2 +- .../res/values-da/strings.xml | 2 +- .../SettingsProvider/res/values/defaults.xml | 3 + .../providers/settings/DatabaseHelper.java | 22 +- .../android/server/AlarmManagerService.java | 8 +- .../java/com/android/server/DockObserver.java | 25 +- .../com/android/server/HeadsetObserver.java | 107 +- .../java/com/android/server/InputDevice.java | 11 +- .../com/android/server/KeyInputQueue.java | 73 +- .../server/NotificationManagerService.java | 69 +- .../android/server/PackageManagerService.java | 386 +- .../android/server/PowerManagerService.java | 125 +- .../com/android/server/SystemBackupAgent.java | 12 +- .../server/WallpaperManagerService.java | 118 +- .../java/com/android/server/WifiService.java | 29 +- .../android/server/WindowManagerService.java | 227 +- .../server/am/ActivityManagerService.java | 144 +- .../android/server/am/BroadcastFilter.java | 8 + .../android/server/am/BroadcastRecord.java | 68 +- .../android/server/am/UsageStatsService.java | 24 +- .../server/status/StatusBarPolicy.java | 21 +- .../server/status/StatusBarService.java | 26 +- .../telephony/NeighboringCellInfo.java | 15 +- .../android/telephony/PhoneStateListener.java | 10 +- .../android/telephony/SignalStrength.java | 28 +- .../telephony/cdma/CdmaSMSDispatcher.java | 20 +- .../cdma/CdmaServiceStateTracker.java | 117 +- .../internal/telephony/gsm/GSMPhone.java | 11 +- .../telephony/gsm/GsmSMSDispatcher.java | 33 +- .../internal/telephony/gsm/SmsMessage.java | 128 +- .../android/test/AndroidTestRunner.java | 10 +- .../test/InstrumentationTestRunner.java | 62 +- .../test/PerformanceCollectorTestCase.java | 37 + .../android/test/PerformanceTestBase.java | 89 +- .../android/test/TimedTest.java | 16 +- tests/BatteryWaster/Android.mk | 11 + tests/BatteryWaster/AndroidManifest.xml | 15 + .../res/layout/battery_waster.xml | 49 + tests/BatteryWaster/res/values/strings.xml | 22 + .../android/batterywaster/BatteryWaster.java | 146 + .../com/android/dumprendertree/FsUtils.java | 35 + .../dumprendertree/LayoutTestsAutoTest.java | 19 +- .../dumprendertree/TestShellActivity.java | 2 +- tests/ImfTest/AndroidManifest.xml | 2 + tests/ImfTest/tests/AndroidManifest.xml | 2 + .../imftest/samples/ImfBaseTestCase.java | 7 + tests/LotsOfApps/Android.mk | 11 + tests/LotsOfApps/AndroidManifest.xml | 711 + .../res/drawable/ic_launcher_add_folder.png | Bin 0 -> 4790 bytes .../res/drawable/ic_launcher_alarmclock.png | Bin 0 -> 7700 bytes .../res/drawable/ic_launcher_application.png | Bin 0 -> 4147 bytes .../res/drawable/ic_launcher_appwidget.png | Bin 0 -> 7240 bytes .../res/drawable/ic_launcher_browser.png | Bin 0 -> 7768 bytes .../res/drawable/ic_launcher_camera.png | Bin 0 -> 6352 bytes .../drawable/ic_launcher_camera_record.png | Bin 0 -> 7051 bytes .../res/drawable/ic_launcher_contacts.png | Bin 0 -> 4153 bytes .../res/drawable/ic_launcher_drm_file.png | Bin 0 -> 4501 bytes .../res/drawable/ic_launcher_folder.png | Bin 0 -> 4568 bytes .../drawable/ic_launcher_folder_bluetooth.png | Bin 0 -> 5349 bytes .../res/drawable/ic_launcher_folder_live.png | Bin 0 -> 4228 bytes .../ic_launcher_folder_live_contacts.png | Bin 0 -> 5090 bytes ...ic_launcher_folder_live_contacts_phone.png | Bin 0 -> 5153 bytes ..._launcher_folder_live_contacts_starred.png | Bin 0 -> 5150 bytes .../res/drawable/ic_launcher_folder_open.png | Bin 0 -> 4865 bytes .../res/drawable/ic_launcher_gallery.png | Bin 0 -> 4319 bytes .../res/drawable/ic_launcher_home.png | Bin 0 -> 4211 bytes .../res/drawable/ic_launcher_im.png | Bin 0 -> 4675 bytes .../drawable/ic_launcher_musicplayer_2.png | Bin 0 -> 7889 bytes .../res/drawable/ic_launcher_phone.png | Bin 0 -> 5445 bytes .../res/drawable/ic_launcher_record_audio.png | Bin 0 -> 5934 bytes .../res/drawable/ic_launcher_settings.png | Bin 0 -> 7529 bytes .../res/drawable/ic_launcher_shortcut.png | Bin 0 -> 5026 bytes .../ic_launcher_shortcut_browser_bookmark.png | Bin 0 -> 3356 bytes .../drawable/ic_launcher_shortcut_contact.png | Bin 0 -> 6105 bytes .../ic_launcher_shortcut_directdial.png | Bin 0 -> 5948 bytes .../ic_launcher_shortcut_directmessage.png | Bin 0 -> 5744 bytes .../ic_launcher_shortcut_music_playlist.png | Bin 0 -> 3146 bytes .../res/drawable/ic_launcher_sim_toolkit.png | Bin 0 -> 5124 bytes .../ic_launcher_slideshow_add_sms.png | Bin 0 -> 5878 bytes .../ic_launcher_slideshow_default_sms.png | Bin 0 -> 5878 bytes .../res/drawable/ic_launcher_smsmms.png | Bin 0 -> 3432 bytes .../drawable/ic_launcher_soundrecorder.png | Bin 0 -> 5934 bytes .../res/drawable/ic_launcher_video_camera.png | Bin 0 -> 7051 bytes .../res/drawable/ic_launcher_video_player.png | Bin 0 -> 4038 bytes .../res/drawable/ic_launcher_wallpaper.png | Bin 0 -> 4228 bytes .../src/com/android/lotsofapps/Nothing.java | 21 + tests/backup/test_backup.sh | 8 +- tests/backup/test_restore.sh | 2 +- tools/aapt/Bundle.h | 5 +- tools/aapt/Command.cpp | 7 +- tools/aapt/Main.cpp | 19 +- .../api/IDensityBasedResourceValue.java | 3 + .../bridge/src/android/graphics/Paint.java | 14 +- .../com/android/layoutlib/bridge/Bridge.java | 19 +- .../layoutlib/bridge/BridgeAssetManager.java | 12 +- wifi/java/android/net/wifi/WifiMonitor.java | 2 + .../android/net/wifi/WifiStateTracker.java | 49 +- 1371 files changed, 412978 insertions(+), 14823 deletions(-) create mode 100644 api/7.xml create mode 100644 core/java/com/android/internal/widget/DigitalClock.java create mode 100644 core/java/com/android/internal/widget/SlidingTab.java delete mode 100644 core/jni/.android_server_BluetoothEventLoop.cpp.swp delete mode 100644 core/res/res/drawable-hdpi/blank_tile.png create mode 100644 core/res/res/drawable-hdpi/btn_default_transparent_normal.9.png create mode 100644 core/res/res/drawable-hdpi/ic_jog_dial_answer.png create mode 100644 core/res/res/drawable-hdpi/ic_jog_dial_answer_and_end.png create mode 100644 core/res/res/drawable-hdpi/ic_jog_dial_answer_and_hold.png create mode 100644 core/res/res/drawable-hdpi/ic_jog_dial_decline.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_confirm_green.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_confirm_red.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_normal.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_left_end_pressed.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_confirm_green.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_confirm_red.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_normal.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_bar_right_end_pressed.9.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_normal.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_left_pressed.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_normal.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_right_pressed.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_target_gray.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_target_green.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_target_red.png create mode 100644 core/res/res/drawable-hdpi/jog_tab_target_yellow.png delete mode 100644 core/res/res/drawable-hdpi/loading_tile.png delete mode 100644 core/res/res/drawable-hdpi/no_tile_128.png create mode 100644 core/res/res/drawable-hdpi/rate_star_med_half.png create mode 100644 core/res/res/drawable-hdpi/rate_star_med_off.png create mode 100644 core/res/res/drawable-hdpi/rate_star_med_on.png rename core/res/res/{drawable-hdpi => drawable-land-hdpi}/btn_lock_normal.9.png (100%) create mode 100755 core/res/res/drawable-land-hdpi/ic_jog_dial_sound_off.png create mode 100755 core/res/res/drawable-land-hdpi/ic_jog_dial_sound_on.png create mode 100755 core/res/res/drawable-land-hdpi/ic_jog_dial_unlock.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_confirm_green.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_confirm_red.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_normal.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_left_end_pressed.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_confirm_green.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_confirm_red.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_normal.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_bar_right_end_pressed.9.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_confirm_gray.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_confirm_green.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_confirm_red.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_confirm_yellow.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_normal.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_left_pressed.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_confirm_gray.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_confirm_green.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_confirm_red.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_confirm_yellow.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_normal.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_right_pressed.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_target_gray.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_target_green.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_target_red.png create mode 100644 core/res/res/drawable-land-hdpi/jog_tab_target_yellow.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_confirm_green.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_confirm_red.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_normal.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_left_end_pressed.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_confirm_green.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_confirm_red.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_normal.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_bar_right_end_pressed.9.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_confirm_gray.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_confirm_green.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_confirm_red.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_confirm_yellow.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_normal.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_left_pressed.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_confirm_gray.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_confirm_green.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_confirm_red.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_confirm_yellow.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_normal.png create mode 100644 core/res/res/drawable-land-mdpi/jog_tab_right_pressed.png create mode 100644 core/res/res/drawable-mdpi/btn_default_transparent_normal.9.png delete mode 100644 core/res/res/drawable-mdpi/btn_lock_normal.9.png create mode 100644 core/res/res/drawable-mdpi/ic_jog_dial_answer.png create mode 100644 core/res/res/drawable-mdpi/ic_jog_dial_answer_and_end.png create mode 100644 core/res/res/drawable-mdpi/ic_jog_dial_answer_and_hold.png create mode 100644 core/res/res/drawable-mdpi/ic_jog_dial_decline.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_confirm_green.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_confirm_red.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_normal.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_left_end_pressed.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_confirm_gray.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_confirm_green.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_confirm_red.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_confirm_yellow.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_normal.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_bar_right_end_pressed.9.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_confirm_red.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_normal.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_left_pressed.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_confirm_red.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_normal.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_right_pressed.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_target_gray.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_target_green.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_target_red.png create mode 100644 core/res/res/drawable-mdpi/jog_tab_target_yellow.png rename core/res/res/{drawable-mdpi => drawable-nodpi}/blank_tile.png (100%) rename core/res/res/{drawable-mdpi => drawable-nodpi}/loading_tile.png (100%) rename core/res/res/{drawable-mdpi => drawable-nodpi}/no_tile_128.png (100%) create mode 100644 core/res/res/drawable/btn_default_transparent.xml create mode 100644 core/res/res/drawable/jog_tab_bar_left_answer.xml create mode 100644 core/res/res/drawable/jog_tab_bar_left_generic.xml create mode 100644 core/res/res/drawable/jog_tab_bar_left_unlock.xml create mode 100644 core/res/res/drawable/jog_tab_bar_right_decline.xml create mode 100644 core/res/res/drawable/jog_tab_bar_right_generic.xml create mode 100644 core/res/res/drawable/jog_tab_bar_right_sound_off.xml create mode 100644 core/res/res/drawable/jog_tab_bar_right_sound_on.xml create mode 100644 core/res/res/drawable/jog_tab_left_answer.xml create mode 100644 core/res/res/drawable/jog_tab_left_generic.xml create mode 100644 core/res/res/drawable/jog_tab_left_unlock.xml create mode 100644 core/res/res/drawable/jog_tab_right_decline.xml create mode 100644 core/res/res/drawable/jog_tab_right_generic.xml create mode 100644 core/res/res/drawable/jog_tab_right_sound_off.xml create mode 100644 core/res/res/drawable/jog_tab_right_sound_on.xml create mode 100644 core/res/res/layout/keyguard_screen_tab_unlock.xml create mode 100644 core/res/res/layout/keyguard_screen_tab_unlock_land.xml create mode 100644 data/fonts/Clockopia.ttf create mode 100644 data/sounds/newwavelabs/Enter_the_Nexus.ogg create mode 100644 data/sounds/newwavelabs/Enter_the_Nexus.wav create mode 100644 data/sounds/notifications/Cricket.ogg create mode 100644 data/sounds/notifications/Cricket.wav create mode 100644 data/sounds/notifications/Doink.ogg create mode 100644 data/sounds/notifications/Doink.wav create mode 100644 data/sounds/notifications/Drip.ogg create mode 100644 data/sounds/notifications/Drip.wav create mode 100644 data/sounds/notifications/SpaceSeed.ogg create mode 100644 data/sounds/notifications/SpaceSeed.wav mode change 100644 => 100755 docs/html/guide/appendix/faq/troubleshooting.jd create mode 100644 docs/html/images/bt_enable_discoverable.png create mode 100644 docs/html/images/bt_enable_request.png create mode 100644 docs/html/images/bt_pairing_request.png create mode 100644 docs/html/images/icon_dashboard.png create mode 100644 docs/html/intl/ja/resources/community-groups.jd create mode 100644 docs/html/intl/ja/resources/tutorials/hello-world.jd create mode 100644 docs/html/resources/articles/avoiding-memory-leaks.jd create mode 100644 docs/html/resources/articles/backward-compatibility.jd create mode 100644 docs/html/resources/articles/can-i-use-this-intent.jd create mode 100644 docs/html/resources/articles/creating-input-method.jd create mode 100644 docs/html/resources/articles/drawable-mutations.jd create mode 100644 docs/html/resources/articles/faster-screen-orientation-change.jd create mode 100644 docs/html/resources/articles/future-proofing.jd create mode 100644 docs/html/resources/articles/gestures.jd create mode 100644 docs/html/resources/articles/glsurfaceview.jd create mode 100644 docs/html/resources/articles/images/File.png create mode 100644 docs/html/resources/articles/images/File_002.png create mode 100644 docs/html/resources/articles/images/JFlubber.png create mode 100644 docs/html/resources/articles/images/WikiNotes.png create mode 100644 docs/html/resources/articles/images/all_drawables_changed.png create mode 100644 docs/html/resources/articles/images/android.png create mode 100644 docs/html/resources/articles/images/buttons.png create mode 100644 docs/html/resources/articles/images/contacts-2.png create mode 100644 docs/html/resources/articles/images/contacts.png create mode 100644 docs/html/resources/articles/images/correct_drawables.png create mode 100644 docs/html/resources/articles/images/ddms_allocation_tracker.png create mode 100644 docs/html/resources/articles/images/ddms_allocation_trackerl.png create mode 100644 docs/html/resources/articles/images/device.png create mode 100644 docs/html/resources/articles/images/device_002.png create mode 100644 docs/html/resources/articles/images/gestures.png create mode 100644 docs/html/resources/articles/images/gestures_002.png create mode 100644 docs/html/resources/articles/images/gestures_003.png create mode 100644 docs/html/resources/articles/images/gestures_004.png create mode 100644 docs/html/resources/articles/images/gestures_005.png create mode 100644 docs/html/resources/articles/images/gestures_006.png create mode 100644 docs/html/resources/articles/images/grid.png create mode 100644 docs/html/resources/articles/images/ime.png create mode 100644 docs/html/resources/articles/images/ime_002.png create mode 100644 docs/html/resources/articles/images/ime_003.png create mode 100644 docs/html/resources/articles/images/ime_004.png create mode 100644 docs/html/resources/articles/images/ime_005.png create mode 100644 docs/html/resources/articles/images/ime_006.png create mode 100644 docs/html/resources/articles/images/layouts_comparison_small.png create mode 100644 docs/html/resources/articles/images/list01.png create mode 100644 docs/html/resources/articles/images/list02.png create mode 100644 docs/html/resources/articles/images/list_fade_1.png create mode 100644 docs/html/resources/articles/images/list_fade_2.png create mode 100644 docs/html/resources/articles/images/list_fade_3.png create mode 100644 docs/html/resources/articles/images/list_fade_4.png create mode 100644 docs/html/resources/articles/images/merge1.jpg create mode 100644 docs/html/resources/articles/images/merge2.png create mode 100644 docs/html/resources/articles/images/merge3.png create mode 100644 docs/html/resources/articles/images/merge4.jpg create mode 100644 docs/html/resources/articles/images/merge5.png create mode 100644 docs/html/resources/articles/images/mutated_states.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs_002.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs_003.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs_004.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs_005.png create mode 100644 docs/html/resources/articles/images/on-screen-inputs_006.png create mode 100644 docs/html/resources/articles/images/photostream_landscape.png create mode 100644 docs/html/resources/articles/images/photostream_portrait.png create mode 100644 docs/html/resources/articles/images/qsb.png create mode 100644 docs/html/resources/articles/images/qsb_002.png create mode 100644 docs/html/resources/articles/images/qsb_003.png create mode 100644 docs/html/resources/articles/images/relativelayout_1.png create mode 100644 docs/html/resources/articles/images/relativelayout_2.png create mode 100644 docs/html/resources/articles/images/relativelayout_3.png create mode 100644 docs/html/resources/articles/images/relativelayout_wire_1.png create mode 100644 docs/html/resources/articles/images/relativelayout_wire_2.png create mode 100644 docs/html/resources/articles/images/relativelayout_wire_3.png create mode 100644 docs/html/resources/articles/images/search01.png create mode 100644 docs/html/resources/articles/images/search02.png create mode 100644 docs/html/resources/articles/images/shared_states.png create mode 100644 docs/html/resources/articles/images/shelves2.png create mode 100644 docs/html/resources/articles/images/text_field.png create mode 100644 docs/html/resources/articles/images/ui-1.6.png create mode 100644 docs/html/resources/articles/images/ui-1.6_002.png create mode 100644 docs/html/resources/articles/images/viewstub1.png create mode 100644 docs/html/resources/articles/images/viewstub2.png create mode 100644 docs/html/resources/articles/images/viewstub3.png create mode 100644 docs/html/resources/articles/images/viewstub4.png create mode 100644 docs/html/resources/articles/images/webview.png create mode 100644 docs/html/resources/articles/images/window_background.png create mode 100644 docs/html/resources/articles/images/window_background_null.png create mode 100644 docs/html/resources/articles/images/window_background_root.png create mode 100644 docs/html/resources/articles/index.jd create mode 100644 docs/html/resources/articles/layout-tricks-efficiency.jd create mode 100644 docs/html/resources/articles/layout-tricks-merge.jd create mode 100644 docs/html/resources/articles/layout-tricks-reuse.jd create mode 100644 docs/html/resources/articles/layout-tricks-stubs.jd create mode 100644 docs/html/resources/articles/listview-backgrounds.jd create mode 100644 docs/html/resources/articles/live-folders.jd create mode 100644 docs/html/resources/articles/on-screen-inputs.jd create mode 100644 docs/html/resources/articles/painless-threading.jd create mode 100644 docs/html/resources/articles/qsb.jd create mode 100644 docs/html/resources/articles/timed-ui-updates.jd create mode 100644 docs/html/resources/articles/touch-mode.jd create mode 100644 docs/html/resources/articles/track-mem.jd create mode 100644 docs/html/resources/articles/tts.jd create mode 100644 docs/html/resources/articles/ui-1.5.jd create mode 100644 docs/html/resources/articles/ui-1.6.jd create mode 100644 docs/html/resources/articles/using-webviews.jd create mode 100644 docs/html/resources/articles/wikinotes-intents.jd create mode 100644 docs/html/resources/articles/wikinotes-linkify.jd create mode 100644 docs/html/resources/articles/window-bg-speed.jd create mode 100644 docs/html/resources/articles/zipalign.jd create mode 100644 docs/html/resources/community-groups.jd create mode 100644 docs/html/resources/community-more.jd create mode 100644 docs/html/resources/dashboard/platform-versions.jd create mode 100644 docs/html/resources/faq/commontasks.jd create mode 100644 docs/html/resources/faq/framework.jd create mode 100644 docs/html/resources/faq/index.jd create mode 100644 docs/html/resources/faq/licensingandoss.jd create mode 100644 docs/html/resources/faq/security.jd create mode 100644 docs/html/resources/faq/troubleshooting.jd create mode 100644 docs/html/resources/index.jd create mode 100644 docs/html/resources/resources_toc.cs create mode 100644 docs/html/resources/samples/images/BluetoothChat1.png create mode 100644 docs/html/resources/samples/images/BluetoothChat2.png create mode 100644 docs/html/resources/samples/images/ContactManager1.png create mode 100644 docs/html/resources/samples/images/ContactManager2.png create mode 100644 docs/html/resources/samples/images/HomeSample.png create mode 100644 docs/html/resources/samples/images/JetBoy.png create mode 100644 docs/html/resources/samples/images/MultiResolution.png create mode 100644 docs/html/resources/samples/images/SearchableDictionary1.png create mode 100644 docs/html/resources/samples/images/SearchableDictionary2.png create mode 100644 docs/html/resources/samples/images/Snake.png create mode 100644 docs/html/resources/samples/images/SoftKeyboard.png create mode 100644 docs/html/resources/samples/images/Wiktionary.png create mode 100644 docs/html/resources/samples/images/WiktionarySimple.png create mode 100644 docs/html/resources/samples/images/sample_lunarlander.png create mode 100644 docs/html/resources/samples/images/sample_note.png create mode 100644 docs/html/resources/samples/images/sample_notepad.png create mode 100644 docs/html/resources/samples/index.jd create mode 100644 docs/html/resources/tutorials/hello-world.jd create mode 100644 docs/html/resources/tutorials/images/hello_world_0.png create mode 100644 docs/html/resources/tutorials/images/hello_world_1.png create mode 100644 docs/html/resources/tutorials/images/hello_world_2.png create mode 100644 docs/html/resources/tutorials/images/hello_world_3.png create mode 100644 docs/html/resources/tutorials/images/hello_world_4.png create mode 100644 docs/html/resources/tutorials/images/hello_world_5.png create mode 100644 docs/html/resources/tutorials/images/hello_world_8.png create mode 100644 docs/html/resources/tutorials/images/hello_world_9.png create mode 100644 docs/html/resources/tutorials/index.html create mode 100755 docs/html/resources/tutorials/localization/index.jd create mode 100644 docs/html/resources/tutorials/notepad/codelab/NotepadCodeLab.zip create mode 100644 docs/html/resources/tutorials/notepad/index.jd create mode 100644 docs/html/resources/tutorials/notepad/notepad-ex1.jd create mode 100644 docs/html/resources/tutorials/notepad/notepad-ex2.jd create mode 100644 docs/html/resources/tutorials/notepad/notepad-ex3.jd create mode 100644 docs/html/resources/tutorials/notepad/notepad-extra-credit.jd create mode 100644 docs/html/resources/tutorials/notepad/notepad-index.jd create mode 100644 docs/html/resources/tutorials/views/hello-autocomplete.jd create mode 100644 docs/html/resources/tutorials/views/hello-datepicker.jd create mode 100644 docs/html/resources/tutorials/views/hello-formstuff.jd create mode 100644 docs/html/resources/tutorials/views/hello-gallery.jd create mode 100644 docs/html/resources/tutorials/views/hello-gridview.jd create mode 100644 docs/html/resources/tutorials/views/hello-linearlayout.jd create mode 100644 docs/html/resources/tutorials/views/hello-listview.jd create mode 100644 docs/html/resources/tutorials/views/hello-mapview.jd create mode 100644 docs/html/resources/tutorials/views/hello-relativelayout.jd create mode 100644 docs/html/resources/tutorials/views/hello-spinner.jd create mode 100644 docs/html/resources/tutorials/views/hello-tablelayout.jd create mode 100644 docs/html/resources/tutorials/views/hello-tabwidget.jd create mode 100644 docs/html/resources/tutorials/views/hello-timepicker.jd create mode 100644 docs/html/resources/tutorials/views/hello-webview.jd create mode 100755 docs/html/resources/tutorials/views/images/android.png create mode 100755 docs/html/resources/tutorials/views/images/androidmarker.png create mode 100755 docs/html/resources/tutorials/views/images/hello-autocomplete.png create mode 100755 docs/html/resources/tutorials/views/images/hello-datepicker.png create mode 100755 docs/html/resources/tutorials/views/images/hello-formstuff.png create mode 100755 docs/html/resources/tutorials/views/images/hello-gallery.png create mode 100755 docs/html/resources/tutorials/views/images/hello-gridview.png create mode 100755 docs/html/resources/tutorials/views/images/hello-linearlayout.png create mode 100755 docs/html/resources/tutorials/views/images/hello-listview.png create mode 100755 docs/html/resources/tutorials/views/images/hello-mapview.png create mode 100755 docs/html/resources/tutorials/views/images/hello-relativelayout.png create mode 100755 docs/html/resources/tutorials/views/images/hello-spinner.png create mode 100755 docs/html/resources/tutorials/views/images/hello-tablelayout.png create mode 100644 docs/html/resources/tutorials/views/images/hello-tabwidget.png create mode 100755 docs/html/resources/tutorials/views/images/hello-timepicker.png create mode 100755 docs/html/resources/tutorials/views/images/hello-webview.png create mode 100644 docs/html/resources/tutorials/views/index.jd delete mode 100644 docs/html/samples/index.jd create mode 100644 docs/html/sdk/android-2.0.1.jd create mode 100644 docs/html/sdk/android-2.1.jd delete mode 100644 docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html delete mode 100644 docs/html/sdk/api_diff/3/changes/java.lang.String.html delete mode 100644 docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html delete mode 100644 docs/html/sdk/api_diff/3/changes/java.net.Socket.html delete mode 100644 docs/html/sdk/api_diff/3/changes/java.util.Date.html delete mode 100644 docs/html/sdk/api_diff/3/changes/pkg_java.lang.reflect.html delete mode 100644 docs/html/sdk/api_diff/3/changes/pkg_java.net.html delete mode 100644 docs/html/sdk/api_diff/3/changes/pkg_java.util.html create mode 100644 docs/html/sdk/api_diff/3/missingSinces.txt create mode 100644 docs/html/sdk/api_diff/3/user_comments_for_2_to_3.xml rename docs/html/sdk/api_diff/4/changes/{java.lang.String.html => android.telephony.TelephonyManager.html} (69%) create mode 100644 docs/html/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html create mode 100644 docs/html/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html rename docs/html/sdk/api_diff/4/changes/{pkg_java.net.html => pkg_java.util.concurrent.html} (92%) rename docs/html/sdk/api_diff/4/changes/{pkg_java.util.html => pkg_java.util.concurrent.locks.html} (91%) delete mode 100644 docs/html/sdk/api_diff/5/changes/android.graphics.drawable.NinePatchDrawable.html delete mode 100644 docs/html/sdk/api_diff/5/changes/android.text.style.ImageSpan.html rename docs/html/sdk/api_diff/5/changes/{pkg_java.net.html => android.view.ViewGroup.html} (88%) delete mode 100644 docs/html/sdk/api_diff/5/changes/java.lang.String.html delete mode 100644 docs/html/sdk/api_diff/5/changes/java.util.Date.html create mode 100644 docs/html/sdk/api_diff/6/changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/alldiffs_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/alldiffs_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/alldiffs_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/alldiffs_index_removals.html rename docs/html/sdk/api_diff/{4/changes/java.net.Socket.html => 6/changes/android.R.attr.html} (68%) rename docs/html/sdk/api_diff/{4/changes/java.util.Date.html => 6/changes/android.accounts.AbstractAccountAuthenticator.html} (69%) create mode 100644 docs/html/sdk/api_diff/6/changes/android.os.Build.VERSION_CODES.html create mode 100644 docs/html/sdk/api_diff/6/changes/android.view.WindowManager.LayoutParams.html rename docs/html/sdk/api_diff/{5/changes/java.net.Socket.html => 6/changes/changes-summary.html} (66%) create mode 100644 docs/html/sdk/api_diff/6/changes/classes_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/classes_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/classes_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/classes_index_removals.html create mode 100644 docs/html/sdk/api_diff/6/changes/constructors_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/constructors_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/constructors_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/constructors_index_removals.html create mode 100644 docs/html/sdk/api_diff/6/changes/fields_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/fields_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/fields_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/fields_index_removals.html create mode 100644 docs/html/sdk/api_diff/6/changes/jdiff_help.html create mode 100644 docs/html/sdk/api_diff/6/changes/jdiff_statistics.html create mode 100644 docs/html/sdk/api_diff/6/changes/jdiff_topleftframe.html create mode 100644 docs/html/sdk/api_diff/6/changes/methods_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/methods_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/methods_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/methods_index_removals.html create mode 100644 docs/html/sdk/api_diff/6/changes/packages_index_additions.html create mode 100644 docs/html/sdk/api_diff/6/changes/packages_index_all.html create mode 100644 docs/html/sdk/api_diff/6/changes/packages_index_changes.html create mode 100644 docs/html/sdk/api_diff/6/changes/packages_index_removals.html create mode 100644 docs/html/sdk/api_diff/6/changes/pkg_android.accounts.html rename docs/html/sdk/api_diff/{5/changes/pkg_java.util.html => 6/changes/pkg_android.html} (91%) rename docs/html/sdk/api_diff/{4/changes/pkg_java.lang.html => 6/changes/pkg_android.os.html} (90%) rename docs/html/sdk/api_diff/{5/changes/pkg_java.lang.html => 6/changes/pkg_android.view.html} (89%) create mode 100644 docs/html/sdk/api_diff/6/missingSinces.txt create mode 100644 docs/html/sdk/api_diff/6/stylesheet-jdiff.css create mode 100644 docs/html/sdk/api_diff/6/user_comments_for_5_to_6.xml create mode 100644 docs/html/shareables/latest_samples.zip create mode 100644 test-runner/android/test/PerformanceCollectorTestCase.java rename {core/java => test-runner}/android/test/TimedTest.java (62%) create mode 100644 tests/BatteryWaster/Android.mk create mode 100644 tests/BatteryWaster/AndroidManifest.xml create mode 100644 tests/BatteryWaster/res/layout/battery_waster.xml create mode 100644 tests/BatteryWaster/res/values/strings.xml create mode 100644 tests/BatteryWaster/src/com/android/batterywaster/BatteryWaster.java create mode 100644 tests/LotsOfApps/Android.mk create mode 100644 tests/LotsOfApps/AndroidManifest.xml create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_add_folder.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_alarmclock.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_application.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_appwidget.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_browser.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_camera.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_camera_record.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_contacts.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_drm_file.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_bluetooth.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_live.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_phone.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_starred.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_folder_open.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_gallery.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_home.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_im.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_musicplayer_2.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_phone.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_record_audio.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_settings.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut_browser_bookmark.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut_contact.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directdial.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directmessage.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_shortcut_music_playlist.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_sim_toolkit.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_slideshow_add_sms.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_slideshow_default_sms.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_smsmms.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_soundrecorder.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_video_camera.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_video_player.png create mode 100644 tests/LotsOfApps/res/drawable/ic_launcher_wallpaper.png create mode 100644 tests/LotsOfApps/src/com/android/lotsofapps/Nothing.java diff --git a/Android.mk b/Android.mk index 5034c7ef517..fb1a3a6b159 100644 --- a/Android.mk +++ b/Android.mk @@ -334,6 +334,7 @@ framework_docs_LOCAL_INTERMEDIATE_SOURCES := \ framework_docs_LOCAL_JAVA_LIBRARIES := \ core \ ext \ + framework \ framework_docs_LOCAL_MODULE_CLASS := JAVA_LIBRARIES framework_docs_LOCAL_DROIDDOC_HTML_DIR := docs/html @@ -345,6 +346,8 @@ framework_docs_LOCAL_DROIDDOC_OPTIONS := \ -since ./frameworks/base/api/3.xml 3 \ -since ./frameworks/base/api/4.xml 4 \ -since ./frameworks/base/api/5.xml 5 \ + -since ./frameworks/base/api/6.xml 6 \ + -since ./frameworks/base/api/7.xml 7 \ -error 1 -error 2 -warning 3 -error 4 -error 6 -error 8 \ -overview $(LOCAL_PATH)/core/java/overview.html @@ -355,25 +358,35 @@ sample_dir := development/samples web_docs_sample_code_flags := \ -hdf android.hasSamples 1 \ -samplecode $(sample_dir)/ApiDemos \ - guide/samples/ApiDemos "API Demos" \ + resources/samples/ApiDemos "API Demos" \ + -samplecode $(sample_dir)/BluetoothChat \ + resources/samples/BluetoothChat "Bluetooth Chat" \ + -samplecode $(sample_dir)/ContactManager \ + resources/samples/ContactManager "Contact Manager" \ -samplecode $(sample_dir)/Home \ - guide/samples/Home "Home" \ + resources/samples/Home "Home" \ -samplecode $(sample_dir)/JetBoy \ - guide/samples/JetBoy "JetBoy" \ + resources/samples/JetBoy "JetBoy" \ -samplecode $(sample_dir)/LunarLander \ - guide/samples/LunarLander "Lunar Lander" \ + resources/samples/LunarLander "Lunar Lander" \ + -samplecode $(sample_dir)/MultiResolution \ + resources/samples/MultiResolution "Multiple Resolutions" \ -samplecode $(sample_dir)/NotePad \ - guide/samples/NotePad "Note Pad" \ + resources/samples/NotePad "Note Pad" \ -samplecode $(sample_dir)/SearchableDictionary \ - guide/samples/SearchableDictionary "Searchable Dictionary" \ + resources/samples/SearchableDictionary "Searchable Dictionary" \ -samplecode $(sample_dir)/Snake \ - guide/samples/Snake "Snake" \ + resources/samples/Snake "Snake" \ -samplecode $(sample_dir)/SoftKeyboard \ - guide/samples/SoftKeyboard "Soft Keyboard" + resources/samples/SoftKeyboard "Soft Keyboard" \ + -samplecode $(sample_dir)/Wiktionary \ + resources/samples/Wiktionary "Wiktionary" \ + -samplecode $(sample_dir)/WiktionarySimple \ + resources/samples/WiktionarySimple "Wiktionary (Simplified)" ## SDK version identifiers used in the published docs # major[.minor] version for current SDK. (full releases only) -framework_docs_SDK_VERSION:=2.0 +framework_docs_SDK_VERSION:=2.0.1 # release version (ie "Release x") (full releases only) framework_docs_SDK_REL_ID:=1 # name of current SDK directory (full releases only) @@ -382,10 +395,10 @@ framework_docs_SDK_CURRENT_DIR:=$(framework_docs_SDK_VERSION)_r$(framework_docs_ framework_docs_SDK_PREVIEW:=0 ## Latest ADT version identifiers, for reference from published docs -framework_docs_ADT_VERSION:=0.9.4 -framework_docs_ADT_DOWNLOAD:=ADT-0.9.4.zip -framework_docs_ADT_BYTES:=3367536 -framework_docs_ADT_CHECKSUM:=4cdecd72b3e28022d8a55891f13e7d43 +framework_docs_ADT_VERSION:=0.9.5 +framework_docs_ADT_DOWNLOAD:=ADT-0.9.5.zip +framework_docs_ADT_BYTES:=3372982 +framework_docs_ADT_CHECKSUM:=227ec538359fbe417ccde7f0ad614a96 framework_docs_LOCAL_DROIDDOC_OPTIONS += \ -hdf sdk.version $(framework_docs_SDK_VERSION) \ @@ -439,6 +452,8 @@ LOCAL_MODULE := offline-sdk LOCAL_DROIDDOC_OPTIONS:=\ $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ + $(web_docs_sample_code_flags) \ + -offlinemode \ -title "Android SDK" \ -proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \ -todo $(OUT_DOCS)/$(LOCAL_MODULE)-docs-todo.html \ diff --git a/api/6.xml b/api/6.xml index 32d0f1ed520..a4103fdf005 100644 --- a/api/6.xml +++ b/api/6.xml @@ -8842,17 +8842,6 @@ visibility="public" > - - - - - + @@ -14007,7 +13985,7 @@ - + @@ -14275,7 +14253,7 @@ - + - + @@ -14491,7 +14469,7 @@ - + @@ -14660,7 +14638,7 @@ - + @@ -15058,71 +15036,6 @@ > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/current.xml b/api/current.xml index 32d0f1ed520..83d2bc74d18 100644 --- a/api/current.xml +++ b/api/current.xml @@ -976,7 +976,7 @@ value=""android.permission.SET_PREFERRED_APPLICATIONS"" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -1934,6 +1934,17 @@ visibility="public" > + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -36433,6 +36436,17 @@ visibility="public" > + + @@ -41871,7 +41885,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -42013,6 +42027,116 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - @@ -124678,6 +124809,20 @@ deprecated="not deprecated" visibility="public" > + + + + + + + + @@ -125489,6 +125634,21 @@ + + + + + + + + + + + + @@ -125904,6 +126088,131 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -175087,8 +175396,8 @@ visibility="public" > - - - - - - - - - + + - - + - - + + + + + + + + + + + + + + + + + + + + + seekTo(0); - mMediaPlayerBeep->start(); + // do not play record jingle if stream volume is 0 + // (typically because ringer mode is silent). + int index; + AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE, &index); + if (index != 0) { + mMediaPlayerBeep->seekTo(0); + mMediaPlayerBeep->start(); + } } mHardware->enableMsgType(CAMERA_MSG_VIDEO_FRAME); @@ -888,8 +894,14 @@ void CameraService::Client::handleShutter( { // Play shutter sound. if (mMediaPlayerClick.get() != NULL) { - mMediaPlayerClick->seekTo(0); - mMediaPlayerClick->start(); + // do not play shutter sound if stream volume is 0 + // (typically because ringer mode is silent). + int index; + AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE, &index); + if (index != 0) { + mMediaPlayerClick->seekTo(0); + mMediaPlayerClick->start(); + } } // Screen goes black after the buffer is unregistered. diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c index 642c943ffd3..5a485e4b991 100644 --- a/cmds/dumpstate/dumpstate.c +++ b/cmds/dumpstate/dumpstate.c @@ -84,6 +84,8 @@ static void dumpstate(int full) { EXEC("dmesg"); PRINT("------ KERNEL WAKELOCKS ------"); DUMP("/proc/wakelocks"); + PRINT("------ KERNEL CPUFREQ ------"); + DUMP("/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state"); PRINT(""); PRINT("------ PROCESSES ------"); EXEC1("ps", "-P"); @@ -112,7 +114,11 @@ static void dumpstate(int full) { PRINT("------ PACKAGE UID ERRORS ------"); DUMP("/data/system/uiderrors.txt"); - dump_kernel_log("/data/dontpanic/last_kmsg", "LAST KMSG"); + dump_kernel_log("/proc/last_kmsg", "LAST KMSG"); + + PRINT("------ LAST RADIO LOG ------"); + EXEC1("parse_radio_log", "/proc/last_radio_log"); + dump_kernel_log("/data/dontpanic/apanic_console", "PANIC CONSOLE"); dump_kernel_log("/data/dontpanic/apanic_threads", diff --git a/cmds/svc/src/com/android/commands/svc/PowerCommand.java b/cmds/svc/src/com/android/commands/svc/PowerCommand.java index e021012268c..d3ec3d98b35 100644 --- a/cmds/svc/src/com/android/commands/svc/PowerCommand.java +++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java @@ -66,7 +66,7 @@ public class PowerCommand extends Svc.Command { IBinder lock = new Binder(); pm.acquireWakeLock(PowerManager.FULL_WAKE_LOCK, lock, "svc power"); pm.setStayOnSetting(val); - pm.releaseWakeLock(lock); + pm.releaseWakeLock(lock, 0); } catch (RemoteException e) { System.err.println("Faild to set setting: " + e); diff --git a/core/java/android/accounts/AccountManagerResponse.java b/core/java/android/accounts/AccountManagerResponse.java index 1cd6a74973b..11c6e60c782 100644 --- a/core/java/android/accounts/AccountManagerResponse.java +++ b/core/java/android/accounts/AccountManagerResponse.java @@ -22,7 +22,8 @@ import android.os.Parcelable; import android.os.RemoteException; /** - * Used by Account Authenticators to return a response. + * Used to return a response to the AccountManager. + * @hide */ public class AccountManagerResponse implements Parcelable { private IAccountManagerResponse mResponse; diff --git a/core/java/android/accounts/GrantCredentialsPermissionActivity.java b/core/java/android/accounts/GrantCredentialsPermissionActivity.java index e3ed2e949a6..4282c1b4641 100644 --- a/core/java/android/accounts/GrantCredentialsPermissionActivity.java +++ b/core/java/android/accounts/GrantCredentialsPermissionActivity.java @@ -26,6 +26,7 @@ import android.view.ViewGroup; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.text.TextUtils; import com.android.internal.R; /** @@ -59,7 +60,7 @@ public class GrantCredentialsPermissionActivity extends Activity implements View TextView messageView = (TextView) getWindow().findViewById(R.id.message); String authTokenLabel = getIntent().getExtras().getString(EXTRAS_AUTH_TOKEN_LABEL); - if (authTokenLabel.length() == 0) { + if (TextUtils.isEmpty(authTokenLabel)) { CharSequence grantCredentialsPermissionFormat = getResources().getText( R.string.grant_credentials_permission_message_desc); messageView.setText(String.format(grantCredentialsPermissionFormat.toString(), diff --git a/core/java/android/annotation/SdkConstant.java b/core/java/android/annotation/SdkConstant.java index 6ac70f0c78a..0a531860984 100644 --- a/core/java/android/annotation/SdkConstant.java +++ b/core/java/android/annotation/SdkConstant.java @@ -29,7 +29,7 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.SOURCE) public @interface SdkConstant { public static enum SdkConstantType { - ACTIVITY_INTENT_ACTION, BROADCAST_INTENT_ACTION, SERVICE_ACTION, INTENT_CATEGORY; + ACTIVITY_INTENT_ACTION, BROADCAST_INTENT_ACTION, SERVICE_ACTION, INTENT_CATEGORY, FEATURE; } SdkConstantType value(); diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index b116bf8fd30..909620d21dc 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -178,15 +178,16 @@ public final class ActivityThread { * null. */ Resources getTopLevelResources(String resDir, CompatibilityInfo compInfo) { + ResourcesKey key = new ResourcesKey(resDir, compInfo.applicationScale); + Resources r; synchronized (mPackages) { // Resources is app scale dependent. - ResourcesKey key = new ResourcesKey(resDir, compInfo.applicationScale); if (false) { Log.w(TAG, "getTopLevelResources: " + resDir + " / " + compInfo.applicationScale); } WeakReference wr = mActiveResources.get(key); - Resources r = wr != null ? wr.get() : null; + r = wr != null ? wr.get() : null; if (r != null && r.getAssets().isUpToDate()) { if (false) { Log.w(TAG, "Returning cached resources " + r + " " + resDir @@ -194,25 +195,37 @@ public final class ActivityThread { } return r; } + } - //if (r != null) { - // Log.w(TAG, "Throwing away out-of-date resources!!!! " - // + r + " " + resDir); - //} + //if (r != null) { + // Log.w(TAG, "Throwing away out-of-date resources!!!! " + // + r + " " + resDir); + //} - AssetManager assets = new AssetManager(); - if (assets.addAssetPath(resDir) == 0) { - return null; - } + AssetManager assets = new AssetManager(); + if (assets.addAssetPath(resDir) == 0) { + return null; + } - //Log.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics); - DisplayMetrics metrics = getDisplayMetricsLocked(false); - r = new Resources(assets, metrics, getConfiguration(), compInfo); - if (false) { - Log.i(TAG, "Created app resources " + resDir + " " + r + ": " - + r.getConfiguration() + " appScale=" - + r.getCompatibilityInfo().applicationScale); + //Log.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics); + DisplayMetrics metrics = getDisplayMetricsLocked(false); + r = new Resources(assets, metrics, getConfiguration(), compInfo); + if (false) { + Log.i(TAG, "Created app resources " + resDir + " " + r + ": " + + r.getConfiguration() + " appScale=" + + r.getCompatibilityInfo().applicationScale); + } + + synchronized (mPackages) { + WeakReference wr = mActiveResources.get(key); + Resources existing = wr != null ? wr.get() : null; + if (existing != null && existing.getAssets().isUpToDate()) { + // Someone else already created the resources while we were + // unlocked; go ahead and use theirs. + r.getAssets().close(); + return existing; } + // XXX need to remove entries when weak references go away mActiveResources.put(key, new WeakReference(r)); return r; @@ -678,6 +691,20 @@ public final class ActivityThread { if (rd != null) { rd.performReceive(intent, resultCode, data, extras, ordered, sticky); + } else { + // The activity manager dispatched a broadcast to a registered + // receiver in this process, but before it could be delivered the + // receiver was unregistered. Acknowledge the broadcast on its + // behalf so that the system's broadcast sequence can continue. + if (DEBUG_BROADCAST) { + Log.i(TAG, "Broadcast to unregistered receiver"); + } + IActivityManager mgr = ActivityManagerNative.getDefault(); + try { + mgr.finishReceiver(this, resultCode, data, extras, false); + } catch (RemoteException e) { + Log.w(TAG, "Couldn't finish broadcast to unregistered receiver"); + } } } } @@ -703,8 +730,8 @@ public final class ActivityThread { BroadcastReceiver receiver = mReceiver; if (DEBUG_BROADCAST) { int seq = mCurIntent.getIntExtra("seq", -1); - Log.i(TAG, "Dispathing broadcast " + mCurIntent.getAction() + " seq=" + seq - + " to " + mReceiver); + Log.i(TAG, "Dispatching broadcast " + mCurIntent.getAction() + + " seq=" + seq + " to " + mReceiver); } if (receiver == null) { return; @@ -1356,13 +1383,14 @@ public final class ActivityThread { public final void scheduleRelaunchActivity(IBinder token, List pendingResults, List pendingNewIntents, - int configChanges, boolean notResumed) { + int configChanges, boolean notResumed, Configuration config) { ActivityRecord r = new ActivityRecord(); r.token = token; r.pendingResults = pendingResults; r.pendingIntents = pendingNewIntents; r.startsNotResumed = notResumed; + r.createdConfig = config; synchronized (mRelaunchingActivities) { mRelaunchingActivities.add(r); @@ -2484,7 +2512,7 @@ public final class ActivityThread { Activity a = performLaunchActivity(r, customIntent); if (a != null) { - r.createdConfig = new Configuration(a.getResources().getConfiguration()); + r.createdConfig = new Configuration(mConfiguration); handleResumeActivity(r.token, false, r.isForward); if (!r.activity.mFinished && r.startsNotResumed) { @@ -3536,6 +3564,16 @@ public final class ActivityThread { } } + if (tmp.createdConfig != null) { + // If the activity manager is passing us its current config, + // assume that is really what we want regardless of what we + // may have pending. + if (mConfiguration == null + || mConfiguration.diff(tmp.createdConfig) != 0) { + changedConfig = tmp.createdConfig; + } + } + if (DEBUG_CONFIGURATION) Log.v(TAG, "Relaunching activity " + tmp.token + ": changedConfig=" + changedConfig); diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index a772a8f78dd..7cba13fe428 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -140,7 +140,11 @@ public abstract class ApplicationThreadNative extends Binder List pi = data.createTypedArrayList(Intent.CREATOR); int configChanges = data.readInt(); boolean notResumed = data.readInt() != 0; - scheduleRelaunchActivity(b, ri, pi, configChanges, notResumed); + Configuration config = null; + if (data.readInt() != 0) { + config = Configuration.CREATOR.createFromParcel(data); + } + scheduleRelaunchActivity(b, ri, pi, configChanges, notResumed, config); return true; } @@ -491,7 +495,8 @@ class ApplicationThreadProxy implements IApplicationThread { public final void scheduleRelaunchActivity(IBinder token, List pendingResults, List pendingNewIntents, - int configChanges, boolean notResumed) throws RemoteException { + int configChanges, boolean notResumed, Configuration config) + throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeStrongBinder(token); @@ -499,6 +504,12 @@ class ApplicationThreadProxy implements IApplicationThread { data.writeTypedList(pendingNewIntents); data.writeInt(configChanges); data.writeInt(notResumed ? 1 : 0); + if (config != null) { + data.writeInt(1); + config.writeToParcel(data, 0); + } else { + data.writeInt(0); + } mRemote.transact(SCHEDULE_RELAUNCH_ACTIVITY_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); diff --git a/core/java/android/app/IApplicationThread.java b/core/java/android/app/IApplicationThread.java index 89a52fd70d5..ed810d3c1e8 100644 --- a/core/java/android/app/IApplicationThread.java +++ b/core/java/android/app/IApplicationThread.java @@ -56,7 +56,7 @@ public interface IApplicationThread extends IInterface { throws RemoteException; void scheduleRelaunchActivity(IBinder token, List pendingResults, List pendingNewIntents, int configChanges, - boolean notResumed) throws RemoteException; + boolean notResumed, Configuration config) throws RemoteException; void scheduleNewIntent(List intent, IBinder token) throws RemoteException; void scheduleDestroyActivity(IBinder token, boolean finished, int configChanges) throws RemoteException; diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index 7f5a1e7bac5..2e94a2f5fcb 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -769,17 +769,15 @@ import java.util.List; * * * android:icon - * If provided, this icon will be shown in place of the label above the search box. - * This is a reference to a drawable (icon) resource. Note that the application icon - * is also used as an icon to the left of the search box and you cannot modify this - * behavior, so including the icon attribute is unecessary and this may be - * deprecated in the future. + * This is deprecated.
The default + * application icon is now always used, so this attribute is + * obsolete. * No * * * android:hint - * This is the text to display in the search text field when no user text has been - * entered. + * This is the text to display in the search text field when no text + * has been entered by the user. * No * * @@ -790,17 +788,14 @@ import java.util.List; * * showSearchLabelAsBadge * If set, this flag enables the display of the search target (label) - * above the search box. If this flag and showSearchIconAsBadge - * (see below) are both not set, no badge will be shown. + * above the search box. As an alternative, you may + * want to instead use "hint" text in the search box. + * See the "android:hint" attribute above. * * showSearchIconAsBadge - * If set, this flag enables the display of the search target (icon) - * above the search box. If this flag and showSearchLabelAsBadge - * (see above) are both not set, no badge will be shown. If both flags - * are set, showSearchIconAsBadge has precedence and the icon will be - * shown. Because the application icon is now used to the left of the - * search box by default, using this search mode is no longer necessary - * and may be deprecated in the future. + * This is deprecated.
The default + * application icon is now always used, so this + * option is obsolete. * * queryRewriteFromData * If set, this flag causes the suggestion column SUGGEST_COLUMN_INTENT_DATA diff --git a/core/java/android/app/WallpaperInfo.java b/core/java/android/app/WallpaperInfo.java index 34d3133bdf0..1034fabfc58 100644 --- a/core/java/android/app/WallpaperInfo.java +++ b/core/java/android/app/WallpaperInfo.java @@ -101,10 +101,10 @@ public final class WallpaperInfo implements Parcelable { com.android.internal.R.styleable.Wallpaper_thumbnail, -1); authorRes = sa.getResourceId( - com.android.internal.R.styleable.Wallpaper_wallpaperAuthor, + com.android.internal.R.styleable.Wallpaper_author, -1); descriptionRes = sa.getResourceId( - com.android.internal.R.styleable.Wallpaper_wallpaperDescription, + com.android.internal.R.styleable.Wallpaper_description, -1); sa.recycle(); diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index e98b286db6d..e455a5966c8 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -63,6 +63,21 @@ public class WallpaperManager { public static final String ACTION_LIVE_WALLPAPER_CHOOSER = "android.service.wallpaper.LIVE_WALLPAPER_CHOOSER"; + /** + * Command for {@link #sendWallpaperCommand}: reported by the wallpaper + * host when the user taps on an empty area (not performing an action + * in the host). The x and y arguments are the location of the tap in + * screen coordinates. + */ + public static final String COMMAND_TAP = "android.wallpaper.tap"; + + /** + * Command for {@link #sendWallpaperCommand}: reported by the wallpaper + * host when the user drops an object into an area of the host. The x + * and y arguments are the location of the drop. + */ + public static final String COMMAND_DROP = "android.home.drop"; + private final Context mContext; /** @@ -195,7 +210,12 @@ public class WallpaperManager { if (mDefaultWallpaper != null) { return mDefaultWallpaper; } - mWallpaper = getCurrentWallpaperLocked(context); + mWallpaper = null; + try { + mWallpaper = getCurrentWallpaperLocked(context); + } catch (OutOfMemoryError e) { + Log.w(TAG, "No memory load current wallpaper", e); + } if (mWallpaper == null && returnDefault) { mDefaultWallpaper = getDefaultWallpaperLocked(context); return mDefaultWallpaper; @@ -279,7 +299,12 @@ public class WallpaperManager { } catch (IOException e) { } - return generateBitmap(context, bm, width, height); + try { + return generateBitmap(context, bm, width, height); + } catch (OutOfMemoryError e) { + Log.w(TAG, "Can't generate default bitmap", e); + return bm; + } } } catch (RemoteException e) { } @@ -594,7 +619,7 @@ public class WallpaperManager { /** * For applications that use multiple virtual screens showing a wallpaper, * specify the step size between virtual screens. For example, if the - * launcher has 5 virtual screens, it would specify an xStep of 0.5, + * launcher has 3 virtual screens, it would specify an xStep of 0.5, * since the X offset for those screens are 0.0, 0.5 and 1.0 * @param xStep The X offset delta from one screen to the next one * @param yStep The Y offset delta from one screen to the next one diff --git a/core/java/android/bluetooth/BluetoothA2dp.java b/core/java/android/bluetooth/BluetoothA2dp.java index e8a69d8c1f7..fda9b81c8f0 100644 --- a/core/java/android/bluetooth/BluetoothA2dp.java +++ b/core/java/android/bluetooth/BluetoothA2dp.java @@ -42,7 +42,7 @@ import java.util.HashSet; * * Currently the BluetoothA2dp service runs in the system server and this * proxy object will be immediately bound to the service on construction. - * + * * Currently this class provides methods to connect to A2DP audio sinks. * * @hide @@ -74,9 +74,12 @@ public final class BluetoothA2dp { /** Playing implies connected */ public static final int STATE_PLAYING = 4; + /** Default priority for a2dp devices that we try to auto-connect + * and allow incoming connections */ + public static final int PRIORITY_AUTO_CONNECT = 1000; /** Default priority for a2dp devices that should allow incoming * connections */ - public static final int PRIORITY_AUTO = 100; + public static final int PRIORITY_ON = 100; /** Default priority for a2dp devices that should not allow incoming * connections */ public static final int PRIORITY_OFF = 0; @@ -196,6 +199,22 @@ public final class BluetoothA2dp { } } + /** Check if any A2DP sink is in Non Disconnected state + * i.e playing, connected, connecting, disconnecting. + * @return a unmodifiable set of connected A2DP sinks, or null on error. + * @hide + */ + public Set getNonDisconnectedSinks() { + if (DBG) log("getNonDisconnectedSinks()"); + try { + return Collections.unmodifiableSet( + new HashSet(Arrays.asList(mService.getNonDisconnectedSinks()))); + } catch (RemoteException e) { + Log.e(TAG, "", e); + return null; + } + } + /** Get the state of an A2DP sink * @param device Remote BT device. * @return State code, one of STATE_ diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java index bd5b07cff64..8eda844380e 100644 --- a/core/java/android/bluetooth/BluetoothAdapter.java +++ b/core/java/android/bluetooth/BluetoothAdapter.java @@ -130,13 +130,13 @@ public final class BluetoothAdapter { /** * Activity Action: Show a system activity that requests discoverable mode. - *

This activity will also request the user to turn on Bluetooth if it + * This activity will also request the user to turn on Bluetooth if it * is not currently enabled. *

Discoverable mode is equivalent to {@link * #SCAN_MODE_CONNECTABLE_DISCOVERABLE}. It allows remote devices to see * this Bluetooth adapter when they perform a discovery. - *

For privacy, Android is not by default discoverable. - *

The sender can optionally use extra field {@link + *

For privacy, Android is not discoverable by default. + *

The sender of this Intent can optionally use extra field {@link * #EXTRA_DISCOVERABLE_DURATION} to request the duration of * discoverability. Currently the default duration is 120 seconds, and * maximum duration is capped at 300 seconds for each request. @@ -147,7 +147,8 @@ public final class BluetoothAdapter { * {@link android.app.Activity#RESULT_CANCELED} if the user rejected * discoverability or an error has occurred. *

Applications can also listen for {@link #ACTION_SCAN_MODE_CHANGED} - * for global notification whenever the scan mode changes. + * for global notification whenever the scan mode changes. For example, an + * application can be notified when the device has ended discoverability. *

Requires {@link android.Manifest.permission#BLUETOOTH} */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) @@ -369,9 +370,17 @@ public final class BluetoothAdapter { } /** - * Turn on the local Bluetooth adapter. + * Turn on the local Bluetooth adapter—do not use without explicit + * user action to turn on Bluetooth. *

This powers on the underlying Bluetooth hardware, and starts all * Bluetooth system services. + *

Bluetooth should never be enabled without + * direct user consent. If you want to turn on Bluetooth in order + * to create a wireless connection, you should use the {@link + * #ACTION_REQUEST_ENABLE} Intent, which will raise a dialog that requests + * user permission to turn on Bluetooth. The {@link #enable()} method is + * provided only for applications that include a user interface for changing + * system settings, such as a "power manager" app.

*

This is an asynchronous call: it will return immediately, and * clients should listen for {@link #ACTION_STATE_CHANGED} * to be notified of subsequent adapter state changes. If this call returns @@ -381,7 +390,8 @@ public final class BluetoothAdapter { * #STATE_ON}. If this call returns false then there was an * immediate problem that will prevent the adapter from being turned on - * such as Airplane mode, or the adapter is already turned on. - *

Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} + *

Requires the {@link android.Manifest.permission#BLUETOOTH_ADMIN} + * permission * * @return true to indicate adapter startup has begun, or false on * immediate error @@ -394,9 +404,14 @@ public final class BluetoothAdapter { } /** - * Turn off the local Bluetooth adapter. + * Turn off the local Bluetooth adapter—do not use without explicit + * user action to turn off Bluetooth. *

This gracefully shuts down all Bluetooth connections, stops Bluetooth * system services, and powers down the underlying Bluetooth hardware. + *

Bluetooth should never be disbled without + * direct user consent. The {@link #disable()} method is + * provided only for applications that include a user interface for changing + * system settings, such as a "power manager" app.

*

This is an asynchronous call: it will return immediately, and * clients should listen for {@link #ACTION_STATE_CHANGED} * to be notified of subsequent adapter state changes. If this call returns @@ -406,7 +421,8 @@ public final class BluetoothAdapter { * #STATE_ON}. If this call returns false then there was an * immediate problem that will prevent the adapter from being turned off - * such as the adapter already being turned off. - *

Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} + *

Requires the {@link android.Manifest.permission#BLUETOOTH_ADMIN} + * permission * * @return true to indicate adapter shutdown has begun, or false on * immediate error @@ -549,7 +565,10 @@ public final class BluetoothAdapter { * remote Bluetooth devices should not be attempted while discovery is in * progress, and existing connections will experience limited bandwidth * and high latency. Use {@link #cancelDiscovery()} to cancel an ongoing - * discovery. + * discovery. Discovery is not managed by the Activity, + * but is run as a system service, so an application should always call + * {@link BluetoothAdapter#cancelDiscovery()} even if it + * did not directly request a discovery, just to be sure. *

Device discovery will only find remote devices that are currently * discoverable (inquiry scan enabled). Many Bluetooth devices are * not discoverable by default, and need to be entered into a special mode. @@ -567,6 +586,13 @@ public final class BluetoothAdapter { /** * Cancel the current device discovery process. *

Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}. + *

Because discovery is a heavyweight precedure for the Bluetooth + * adapter, this method should always be called before attempting to connect + * to a remote device with {@link + * android.bluetooth.BluetoothSocket#connect()}. Discovery is not managed by + * the Activity, but is run as a system service, so an application should + * always call cancel discovery even if it did not directly request a + * discovery, just to be sure. * * @return true on success, false on error */ diff --git a/core/java/android/bluetooth/BluetoothClass.java b/core/java/android/bluetooth/BluetoothClass.java index bc067130584..c7fea9e1dad 100644 --- a/core/java/android/bluetooth/BluetoothClass.java +++ b/core/java/android/bluetooth/BluetoothClass.java @@ -25,10 +25,6 @@ import android.os.Parcelable; * specify the general device type such as a phone, a computer, or * headset, and whether it's capable of services such as audio or telephony. * - *

The Bluetooth class is useful as a hint to roughly describe a device (for example to - * show an icon in the UI), but does not reliably describe which Bluetooth - * profiles or services are actually supported by a device. - * *

Every Bluetooth class is composed of zero or more service classes, and * exactly one device class. The device class is further broken down into major * and minor device class components. diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index 6cb9770a610..cf9c58f1228 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -624,6 +624,14 @@ public final class BluetoothDevice implements Parcelable { return false; } + /** @hide */ + public boolean isBluetoothDock() { + try { + return sService.isBluetoothDock(mAddress); + } catch (RemoteException e) {Log.e(TAG, "", e);} + return false; + } + /** * Create an RFCOMM {@link BluetoothSocket} ready to start a secure * outgoing connection to this remote device on given channel. diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java index 90cff6b8c90..5eb655a2793 100644 --- a/core/java/android/bluetooth/BluetoothHeadset.java +++ b/core/java/android/bluetooth/BluetoothHeadset.java @@ -100,9 +100,14 @@ public final class BluetoothHeadset { /** Connection canceled before completetion. */ public static final int RESULT_CANCELED = 2; - /** Default priority for headsets that should be auto-connected */ - public static final int PRIORITY_AUTO = 100; - /** Default priority for headsets that should not be auto-connected */ + /** Default priority for headsets that for which we will accept + * inconing connections and auto-connect */ + public static final int PRIORITY_AUTO_CONNECT = 1000; + /** Default priority for headsets that for which we will accept + * inconing connections but not auto-connect */ + public static final int PRIORITY_ON = 100; + /** Default priority for headsets that should not be auto-connected + * and not allow incoming connections. */ public static final int PRIORITY_OFF = 0; /** The voice dialer 'works' but the user experience is poor. The voice diff --git a/core/java/android/bluetooth/BluetoothServerSocket.java b/core/java/android/bluetooth/BluetoothServerSocket.java index 1b23f6c048d..c9c6c0acd9a 100644 --- a/core/java/android/bluetooth/BluetoothServerSocket.java +++ b/core/java/android/bluetooth/BluetoothServerSocket.java @@ -42,7 +42,11 @@ import java.io.IOException; * BluetoothAdapter.listenUsingRfcommWithServiceRecord()}. Then call * {@link #accept()} to listen for incoming connection requests. This call * will block until a connection is established, at which point, it will return - * a {@link BluetoothSocket} to manage the connection. + * a {@link BluetoothSocket} to manage the connection. Once the {@link + * BluetoothSocket} is acquired, it's a good idea to call {@link #close()} on + * the {@link BluetoothServerSocket} when it's no longer needed for accepting + * connections. Closing the {@link BluetoothServerSocket} will not + * close the returned {@link BluetoothSocket}. * *

{@link BluetoothServerSocket} is thread * safe. In particular, {@link #close} will always immediately abort ongoing @@ -105,6 +109,8 @@ public final class BluetoothServerSocket implements Closeable { * Immediately close this socket, and release all associated resources. *

Causes blocked calls on this socket in other threads to immediately * throw an IOException. + *

Closing the {@link BluetoothServerSocket} will not + * close any {@link BluetoothSocket} received from {@link #accept()}. */ public void close() throws IOException { synchronized (this) { diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java index dbcc758574b..ad033999e0d 100644 --- a/core/java/android/bluetooth/BluetoothSocket.java +++ b/core/java/android/bluetooth/BluetoothSocket.java @@ -180,6 +180,15 @@ public final class BluetoothSocket implements Closeable { *

This method will block until a connection is made or the connection * fails. If this method returns without an exception then this socket * is now connected. + *

Creating new connections to + * remote Bluetooth devices should not be attempted while device discovery + * is in progress. Device discovery is a heavyweight procedure on the + * Bluetooth adapter and will significantly slow a device connection. + * Use {@link BluetoothAdapter#cancelDiscovery()} to cancel an ongoing + * discovery. Discovery is not managed by the Activity, + * but is run as a system service, so an application should always call + * {@link BluetoothAdapter#cancelDiscovery()} even if it + * did not directly request a discovery, just to be sure. *

{@link #close} can be used to abort this call from another thread. * @throws IOException on error, for example connection failure */ diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl index 7e752af428f..08687795d93 100644 --- a/core/java/android/bluetooth/IBluetooth.aidl +++ b/core/java/android/bluetooth/IBluetooth.aidl @@ -64,6 +64,7 @@ interface IBluetooth boolean setTrust(in String address, in boolean value); boolean getTrustState(in String address); + boolean isBluetoothDock(in String address); int addRfcommServiceRecord(in String serviceName, in ParcelUuid uuid, int channel, IBinder b); void removeServiceRecord(int handle); diff --git a/core/java/android/bluetooth/IBluetoothA2dp.aidl b/core/java/android/bluetooth/IBluetoothA2dp.aidl index 002cf4efff6..168fe3b252d 100644 --- a/core/java/android/bluetooth/IBluetoothA2dp.aidl +++ b/core/java/android/bluetooth/IBluetoothA2dp.aidl @@ -29,6 +29,7 @@ interface IBluetoothA2dp { boolean suspendSink(in BluetoothDevice device); boolean resumeSink(in BluetoothDevice device); BluetoothDevice[] getConnectedSinks(); // change to Set<> once AIDL supports + BluetoothDevice[] getNonDisconnectedSinks(); // change to Set<> once AIDL supports int getSinkState(in BluetoothDevice device); boolean setSinkPriority(in BluetoothDevice device, int priority); int getSinkPriority(in BluetoothDevice device); diff --git a/core/java/android/content/AbstractSyncableContentProvider.java b/core/java/android/content/AbstractSyncableContentProvider.java index fbe3548e8a0..37162740849 100644 --- a/core/java/android/content/AbstractSyncableContentProvider.java +++ b/core/java/android/content/AbstractSyncableContentProvider.java @@ -135,8 +135,10 @@ public abstract class AbstractSyncableContentProvider extends SyncableContentPro public void onCreate(SQLiteDatabase db) { bootstrapDatabase(db); mSyncState.createDatabase(db); - ContentResolver.requestSync(null /* all accounts */, + if (!isTemporary()) { + ContentResolver.requestSync(null /* all accounts */, mContentUri.getAuthority(), new Bundle()); + } } @Override diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 8f1c671046a..799bc2236f0 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -1142,7 +1142,6 @@ public abstract class Context { * Use with {@link #getSystemService} to retrieve a * {@link android.accounts.AccountManager} for receiving intents at a * time of your choosing. - * TODO STOPSHIP perform a final review of the the account apis before shipping * * @see #getSystemService * @see android.accounts.AccountManager diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index b785dbf76af..a96e89685f5 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -26,6 +26,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; @@ -539,10 +540,33 @@ import java.util.Set; * {@link #putExtra}. * *

    - *
  • {@link #EXTRA_TEMPLATE} + *
  • {@link #EXTRA_ALARM_COUNT} + *
  • {@link #EXTRA_BCC} + *
  • {@link #EXTRA_CC} + *
  • {@link #EXTRA_CHANGED_COMPONENT_NAME} + *
  • {@link #EXTRA_DATA_REMOVED} + *
  • {@link #EXTRA_DOCK_STATE} + *
  • {@link #EXTRA_DOCK_STATE_CAR} + *
  • {@link #EXTRA_DOCK_STATE_DESK} + *
  • {@link #EXTRA_DOCK_STATE_UNDOCKED} + *
  • {@link #EXTRA_DONT_KILL_APP} + *
  • {@link #EXTRA_EMAIL} + *
  • {@link #EXTRA_INITIAL_INTENTS} *
  • {@link #EXTRA_INTENT} + *
  • {@link #EXTRA_KEY_EVENT} + *
  • {@link #EXTRA_PHONE_NUMBER} + *
  • {@link #EXTRA_REMOTE_INTENT_TOKEN} + *
  • {@link #EXTRA_REPLACING} + *
  • {@link #EXTRA_SHORTCUT_ICON} + *
  • {@link #EXTRA_SHORTCUT_ICON_RESOURCE} + *
  • {@link #EXTRA_SHORTCUT_INTENT} *
  • {@link #EXTRA_STREAM} + *
  • {@link #EXTRA_SHORTCUT_NAME} + *
  • {@link #EXTRA_SUBJECT} + *
  • {@link #EXTRA_TEMPLATE} *
  • {@link #EXTRA_TEXT} + *
  • {@link #EXTRA_TITLE} + *
  • {@link #EXTRA_UID} *
* *

Flags

@@ -1275,12 +1299,15 @@ public class Intent implements Parcelable { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED"; /** - * Broadcast Action: An existing application package has been changed (e.g. a component has been - * enabled or disabled. The data contains the name of the package. + * Broadcast Action: An existing application package has been changed (e.g. + * a component has been enabled or disabled). The data contains the name of + * the package. *
    *
  • {@link #EXTRA_UID} containing the integer uid assigned to the package. - *
  • {@link #EXTRA_CHANGED_COMPONENT_NAME} containing the class name of the changed component. - *
  • {@link #EXTRA_DONT_KILL_APP} containing boolean field to override the default action of restarting the application. + *
  • {@link #EXTRA_CHANGED_COMPONENT_NAME_LIST} containing the class name + * of the changed components. + *
  • {@link #EXTRA_DONT_KILL_APP} containing boolean field to override the + * default action of restarting the application. *
* *

This is a protected intent that can only be sent @@ -1344,6 +1371,12 @@ public class Intent implements Parcelable { * can not be restarted will need to watch for this action and handle it * appropriately. * + *

+ * You can not receive this through components declared + * in manifests, only by explicitly registering for it with + * {@link Context#registerReceiver(BroadcastReceiver, IntentFilter) + * Context.registerReceiver()}. + * *

This is a protected intent that can only be sent * by the system. * @@ -1351,6 +1384,14 @@ public class Intent implements Parcelable { */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED"; + /** + * Broadcast Action: The current device's locale has changed. + * + *

This is a protected intent that can only be sent + * by the system. + */ + @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED"; /** * Broadcast Action: This is a sticky broadcast containing the * charging state, level, and other information about the battery. @@ -1661,6 +1702,7 @@ public class Intent implements Parcelable { *

    *
  • state - 0 for unplugged, 1 for plugged.
  • *
  • name - Headset type, human readable string
  • + *
  • microphone - 1 if headset has a microphone, 0 otherwise
  • *
* */ @@ -2087,13 +2129,19 @@ public class Intent implements Parcelable { "android.intent.extra.remote_intent_token"; /** - * Used as an int extra field in {@link android.content.Intent#ACTION_PACKAGE_CHANGED} - * intent to supply the name of the component that changed. - * + * @deprecated See {@link #EXTRA_CHANGED_COMPONENT_NAME_LIST}; this field + * will contain only the first name in the list. */ - public static final String EXTRA_CHANGED_COMPONENT_NAME = + @Deprecated public static final String EXTRA_CHANGED_COMPONENT_NAME = "android.intent.extra.changed_component_name"; + /** + * This field is part of {@link android.content.Intent#ACTION_PACKAGE_CHANGED} + * and contains a string array of all of the components that have changed. + */ + public static final String EXTRA_CHANGED_COMPONENT_NAME_LIST = + "android.intent.extra.changed_component_name_list"; + /** * @hide * Magic extra system code can use when binding, to give a label for @@ -2393,6 +2441,7 @@ public class Intent implements Parcelable { private int mFlags; private HashSet mCategories; private Bundle mExtras; + private Rect mSourceBounds; // --------------------------------------------------------------------- @@ -2418,6 +2467,9 @@ public class Intent implements Parcelable { if (o.mExtras != null) { this.mExtras = new Bundle(o.mExtras); } + if (o.mSourceBounds != null) { + this.mSourceBounds = new Rect(o.mSourceBounds); + } } @Override @@ -2611,7 +2663,7 @@ public class Intent implements Parcelable { intent.mType = value; } - // launch flags + // launch flags else if (uri.startsWith("launchFlags=", i)) { intent.mFlags = Integer.decode(value).intValue(); } @@ -2631,6 +2683,11 @@ public class Intent implements Parcelable { scheme = value; } + // source bounds + else if (uri.startsWith("sourceBounds=", i)) { + intent.mSourceBounds = Rect.unflattenFromString(value); + } + // extra else { String key = Uri.decode(uri.substring(i + 2, eq)); @@ -3522,6 +3579,15 @@ public class Intent implements Parcelable { return mComponent; } + /** + * Get the bounds of the sender of this intent, in screen coordinates. This can be + * used as a hint to the receiver for animations and the like. Null means that there + * is no source bounds. + */ + public Rect getSourceBounds() { + return mSourceBounds; + } + /** * Return the Activity component that should be used to handle this intent. * The appropriate component is determined based on the information in the @@ -4623,6 +4689,19 @@ public class Intent implements Parcelable { return this; } + /** + * Set the bounds of the sender of this intent, in screen coordinates. This can be + * used as a hint to the receiver for animations and the like. Null means that there + * is no source bounds. + */ + public void setSourceBounds(Rect r) { + if (r != null) { + mSourceBounds = new Rect(r); + } else { + r = null; + } + } + /** * Use with {@link #fillIn} to allow the current action value to be * overwritten, even if it is already set. @@ -4653,6 +4732,12 @@ public class Intent implements Parcelable { */ public static final int FILL_IN_PACKAGE = 1<<4; + /** + * Use with {@link #fillIn} to allow the current package value to be + * overwritten, even if it is already set. + */ + public static final int FILL_IN_SOURCE_BOUNDS = 1<<5; + /** * Copy the contents of other in to this object, but only * where fields are not defined by this object. For purposes of a field @@ -4667,6 +4752,7 @@ public class Intent implements Parcelable { *
  • package, as set by {@link #setPackage}. *
  • component, as set by {@link #setComponent(ComponentName)} or * related methods. + *
  • source bounds, as set by {@link #setSourceBounds} *
  • each top-level name in the associated extras. * * @@ -4728,6 +4814,11 @@ public class Intent implements Parcelable { changes |= FILL_IN_COMPONENT; } mFlags |= other.mFlags; + if (other.mSourceBounds != null + && (mSourceBounds == null || (flags&FILL_IN_SOURCE_BOUNDS) != 0)) { + mSourceBounds = new Rect(other.mSourceBounds); + changes |= FILL_IN_SOURCE_BOUNDS; + } if (mExtras == null) { if (other.mExtras != null) { mExtras = new Bundle(other.mExtras); @@ -4981,6 +5072,13 @@ public class Intent implements Parcelable { first = false; b.append("cmp=").append(mComponent.flattenToShortString()); } + if (mSourceBounds != null) { + if (!first) { + b.append(' '); + } + first = false; + b.append("bnds=").append(mSourceBounds.toShortString()); + } if (extras && mExtras != null) { if (!first) { b.append(' '); @@ -5072,6 +5170,11 @@ public class Intent implements Parcelable { uri.append("component=").append(Uri.encode( mComponent.flattenToShortString(), "/")).append(';'); } + if (mSourceBounds != null) { + uri.append("sourceBounds=") + .append(Uri.encode(mSourceBounds.flattenToString())) + .append(';'); + } if (mExtras != null) { for (String key : mExtras.keySet()) { final Object value = mExtras.get(key); @@ -5115,6 +5218,13 @@ public class Intent implements Parcelable { out.writeString(mPackage); ComponentName.writeToParcel(mComponent, out); + if (mSourceBounds != null) { + out.writeInt(1); + mSourceBounds.writeToParcel(out, flags); + } else { + out.writeInt(0); + } + if (mCategories != null) { out.writeInt(mCategories.size()); for (String category : mCategories) { @@ -5150,6 +5260,10 @@ public class Intent implements Parcelable { mPackage = in.readString(); mComponent = ComponentName.readFromParcel(in); + if (in.readInt() != 0) { + mSourceBounds = Rect.CREATOR.createFromParcel(in); + } + int N = in.readInt(); if (N > 0) { mCategories = new HashSet(); diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index ba186159680..b2d406b5e7c 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -919,12 +919,16 @@ class SyncManager implements OnAccountsUpdateListener { + previousSyncOperation); } + // If this sync aborted because the internal sync loop retried too many times then + // don't reschedule. Otherwise we risk getting into a retry loop. // If the operation succeeded to some extent then retry immediately. // If this was a two-way sync then retry soft errors with an exponential backoff. // If this was an upward sync then schedule a two-way sync immediately. // Otherwise do not reschedule. - - if (syncResult.madeSomeProgress()) { + if (syncResult.tooManyRetries) { + Log.d(TAG, "not retrying sync operation because it retried too many times: " + + previousSyncOperation); + } else if (syncResult.madeSomeProgress()) { if (isLoggable) { Log.d(TAG, "retrying sync operation immediately because " + "even though it had an error it achieved some success"); diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java index 87da55f8a81..b94bb510667 100644 --- a/core/java/android/content/pm/ActivityInfo.java +++ b/core/java/android/content/pm/ActivityInfo.java @@ -309,15 +309,22 @@ public class ActivityInfo extends ComponentInfo public void dump(Printer pw, String prefix) { super.dumpFront(pw, prefix); - pw.println(prefix + "permission=" + permission); + if (permission != null) { + pw.println(prefix + "permission=" + permission); + } pw.println(prefix + "taskAffinity=" + taskAffinity + " targetActivity=" + targetActivity); - pw.println(prefix + "launchMode=" + launchMode - + " flags=0x" + Integer.toHexString(flags) - + " theme=0x" + Integer.toHexString(theme)); - pw.println(prefix + "screenOrientation=" + screenOrientation - + " configChanges=0x" + Integer.toHexString(configChanges) - + " softInputMode=0x" + Integer.toHexString(softInputMode)); + if (launchMode != 0 || flags != 0 || theme != 0) { + pw.println(prefix + "launchMode=" + launchMode + + " flags=0x" + Integer.toHexString(flags) + + " theme=0x" + Integer.toHexString(theme)); + } + if (screenOrientation != SCREEN_ORIENTATION_UNSPECIFIED + || configChanges != 0 || softInputMode != 0) { + pw.println(prefix + "screenOrientation=" + screenOrientation + + " configChanges=0x" + Integer.toHexString(configChanges) + + " softInputMode=0x" + Integer.toHexString(softInputMode)); + } super.dumpBack(pw, prefix); } diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 7a65af8a9a1..1800c30da87 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -270,21 +270,31 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public void dump(Printer pw, String prefix) { super.dumpFront(pw, prefix); - pw.println(prefix + "className=" + className); - pw.println(prefix + "permission=" + permission - + " uid=" + uid); - pw.println(prefix + "taskAffinity=" + taskAffinity); - pw.println(prefix + "theme=0x" + Integer.toHexString(theme)); + if (className != null) { + pw.println(prefix + "className=" + className); + } + if (permission != null) { + pw.println(prefix + "permission=" + permission); + } + pw.println(prefix + "uid=" + uid + " taskAffinity=" + taskAffinity); + if (theme != 0) { + pw.println(prefix + "theme=0x" + Integer.toHexString(theme)); + } pw.println(prefix + "flags=0x" + Integer.toHexString(flags) + " processName=" + processName); pw.println(prefix + "sourceDir=" + sourceDir); pw.println(prefix + "publicSourceDir=" + publicSourceDir); - pw.println(prefix + "sharedLibraryFiles=" + sharedLibraryFiles); pw.println(prefix + "dataDir=" + dataDir); - pw.println(prefix + "targetSdkVersion=" + targetSdkVersion); - pw.println(prefix + "enabled=" + enabled); - pw.println(prefix + "manageSpaceActivityName="+manageSpaceActivityName); - pw.println(prefix + "description=0x"+Integer.toHexString(descriptionRes)); + if (sharedLibraryFiles != null) { + pw.println(prefix + "sharedLibraryFiles=" + sharedLibraryFiles); + } + pw.println(prefix + "enabled=" + enabled + " targetSdkVersion=" + targetSdkVersion); + if (manageSpaceActivityName != null) { + pw.println(prefix + "manageSpaceActivityName="+manageSpaceActivityName); + } + if (descriptionRes != 0) { + pw.println(prefix + "description=0x"+Integer.toHexString(descriptionRes)); + } super.dumpBack(pw, prefix); } diff --git a/core/java/android/content/pm/PackageItemInfo.java b/core/java/android/content/pm/PackageItemInfo.java index 46e7ca43b97..8043dae774f 100644 --- a/core/java/android/content/pm/PackageItemInfo.java +++ b/core/java/android/content/pm/PackageItemInfo.java @@ -141,11 +141,15 @@ public class PackageItemInfo { } protected void dumpFront(Printer pw, String prefix) { - pw.println(prefix + "name=" + name); + if (name != null) { + pw.println(prefix + "name=" + name); + } pw.println(prefix + "packageName=" + packageName); - pw.println(prefix + "labelRes=0x" + Integer.toHexString(labelRes) - + " nonLocalizedLabel=" + nonLocalizedLabel - + " icon=0x" + Integer.toHexString(icon)); + if (labelRes != 0 || nonLocalizedLabel != null || icon != 0) { + pw.println(prefix + "labelRes=0x" + Integer.toHexString(labelRes) + + " nonLocalizedLabel=" + nonLocalizedLabel + + " icon=0x" + Integer.toHexString(icon)); + } } protected void dumpBack(Printer pw, String prefix) { diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index cd48dcbcba3..53a966d3db1 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -16,6 +16,8 @@ package android.content.pm; +import android.annotation.SdkConstant; +import android.annotation.SdkConstant.SdkConstantType; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -513,6 +515,78 @@ public abstract class PackageManager { */ public static final int DONT_DELETE_DATA = 0x00000001; + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device has a camera facing away + * from the screen. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_CAMERA = "android.hardware.camera"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device's camera supports auto-focus. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_CAMERA_AUTOFOCUS = "android.hardware.camera.autofocus"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device's camera supports flash. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_CAMERA_FLASH = "android.hardware.camera.flash"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device includes a light sensor. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_SENSOR_LIGHT = "android.hardware.sensor.light"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device includes a proximity sensor. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_SENSOR_PROXIMITY = "android.hardware.sensor.proximity"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device has a telephony radio with data + * communication support. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_TELEPHONY = "android.hardware.telephony"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device has a CDMA telephony stack. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device has a GSM telephony stack. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device's touch screen supports multitouch. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device supports live wallpapers. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_LIVE_WALLPAPER = "android.software.live_wallpaper"; + /** * Retrieve overall information about an application package that is * installed on the system. @@ -1594,21 +1668,19 @@ public abstract class PackageManager { IPackageStatsObserver observer); /** - * Add a new package to the list of preferred packages. This new package - * will be added to the front of the list (removed from its current location - * if already listed), meaning it will now be preferred over all other - * packages when resolving conflicts. - * - * @param packageName The package name of the new package to make preferred. + * @deprecated This function no longer does anything; it was an old + * approach to managing preferred activities, which has been superceeded + * (and conflicts with) the modern activity-based preferences. */ + @Deprecated public abstract void addPackageToPreferred(String packageName); /** - * Remove a package from the list of preferred packages. If it was on - * the list, it will no longer be preferred over other packages. - * - * @param packageName The package name to remove. + * @deprecated This function no longer does anything; it was an old + * approach to managing preferred activities, which has been superceeded + * (and conflicts with) the modern activity-based preferences. */ + @Deprecated public abstract void removePackageFromPreferred(String packageName); /** diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index b798bde0233..3f8c71ee1da 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -851,10 +851,6 @@ public class PackageParser { } } - int maxVers = sa.getInt( - com.android.internal.R.styleable.AndroidManifestUsesSdk_maxSdkVersion, - SDK_VERSION); - sa.recycle(); if (minCode != null) { @@ -894,13 +890,6 @@ public class PackageParser { } else { pkg.applicationInfo.targetSdkVersion = targetVers; } - - if (maxVers < SDK_VERSION) { - outError[0] = "Requires older sdk version #" + maxVers - + " (current version is #" + SDK_VERSION + ")"; - mParseError = PackageManager.INSTALL_FAILED_OLDER_SDK; - return null; - } } XmlUtils.skipCurrentTag(parser); diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java index 0d43b2a83c7..5894c4f166b 100644 --- a/core/java/android/content/res/AssetManager.java +++ b/core/java/android/content/res/AssetManager.java @@ -59,11 +59,12 @@ public final class AssetManager { private static final String TAG = "AssetManager"; private static final boolean localLOGV = Config.LOGV || false; - private static final Object mSync = new Object(); - private static final TypedValue mValue = new TypedValue(); - private static final long[] mOffsets = new long[2]; - private static AssetManager mSystem = null; + private static final Object sSync = new Object(); + private static AssetManager sSystem = null; + private final TypedValue mValue = new TypedValue(); + private final long[] mOffsets = new long[2]; + // For communication with native code. private int mObject; @@ -71,9 +72,7 @@ public final class AssetManager { private int mNumRefs = 1; private boolean mOpen = true; - private String mAssetDir; - private String mAppName; - + /** * Create a new AssetManager containing only the basic system assets. * Applications will not generally use this method, instead retrieving the @@ -82,7 +81,7 @@ public final class AssetManager { * {@hide} */ public AssetManager() { - synchronized (mSync) { + synchronized (this) { init(); if (localLOGV) Log.v(TAG, "New asset manager: " + this); ensureSystemAssets(); @@ -90,11 +89,11 @@ public final class AssetManager { } private static void ensureSystemAssets() { - synchronized (mSync) { - if (mSystem == null) { + synchronized (sSync) { + if (sSystem == null) { AssetManager system = new AssetManager(true); system.makeStringBlocks(false); - mSystem = system; + sSystem = system; } } } @@ -111,14 +110,14 @@ public final class AssetManager { */ public static AssetManager getSystem() { ensureSystemAssets(); - return mSystem; + return sSystem; } /** * Close this asset manager. */ public void close() { - synchronized(mSync) { + synchronized(this) { //System.out.println("Release: num=" + mNumRefs // + ", released=" + mReleased); if (mOpen) { @@ -133,7 +132,7 @@ public final class AssetManager { * identifier for the current configuration / skin. */ /*package*/ final CharSequence getResourceText(int ident) { - synchronized (mSync) { + synchronized (this) { TypedValue tmpValue = mValue; int block = loadResourceValue(ident, tmpValue, true); if (block >= 0) { @@ -151,7 +150,7 @@ public final class AssetManager { * identifier for the current configuration / skin. */ /*package*/ final CharSequence getResourceBagText(int ident, int bagEntryId) { - synchronized (mSync) { + synchronized (this) { TypedValue tmpValue = mValue; int block = loadResourceBagValue(ident, bagEntryId, tmpValue, true); if (block >= 0) { @@ -229,7 +228,7 @@ public final class AssetManager { /*package*/ final void ensureStringBlocks() { if (mStringBlocks == null) { - synchronized (mSync) { + synchronized (this) { if (mStringBlocks == null) { makeStringBlocks(true); } @@ -238,14 +237,14 @@ public final class AssetManager { } private final void makeStringBlocks(boolean copyFromSystem) { - final int sysNum = copyFromSystem ? mSystem.mStringBlocks.length : 0; + final int sysNum = copyFromSystem ? sSystem.mStringBlocks.length : 0; final int num = getStringBlockCount(); mStringBlocks = new StringBlock[num]; if (localLOGV) Log.v(TAG, "Making string blocks for " + this + ": " + num); for (int i=0; i Integer.MAX_VALUE ? Integer.MAX_VALUE : (int)len; } public final void close() throws IOException { - synchronized (AssetManager.mSync) { + synchronized (AssetManager.this) { if (mAsset != 0) { destroyAsset(mAsset); mAsset = 0; diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java index 4b733ef334d..d90536ca97e 100644 --- a/core/java/android/hardware/Camera.java +++ b/core/java/android/hardware/Camera.java @@ -477,6 +477,10 @@ public class Camera { * application does not need a particular callback, a null can be passed * instead of a callback method. * + * This method will stop the preview. Applications should not call {@link + * #stopPreview()} before this. After jpeg callback is received, + * applications can call {@link #startPreview()} to restart the preview. + * * @param shutter callback after the image is captured, may be null * @param raw callback with raw image data, may be null * @param jpeg callback with jpeg image data, may be null @@ -500,6 +504,10 @@ public class Camera { * application does not need a particular callback, a null can be passed * instead of a callback method. * + * This method will stop the preview. Applications should not call {@link + * #stopPreview()} before this. After jpeg callback is received, + * applications can call {@link #startPreview()} to restart the preview. + * * @param shutter callback after the image is captured, may be null * @param raw callback with raw image data, may be null * @param postview callback with postview image data, may be null @@ -922,8 +930,8 @@ public class Camera { /** * Gets the supported preview sizes. * - * @return a List of Size object. null if preview size setting is not - * supported. + * @return a List of Size object. This method will always return a list + * with at least one element. */ public List getSupportedPreviewSizes() { String str = get(KEY_PREVIEW_SIZE + SUPPORTED_VALUES_SUFFIX); @@ -1057,8 +1065,8 @@ public class Camera { /** * Gets the supported preview formats. * - * @return a List of Integer objects. null if preview format setting is - * not supported. + * @return a List of Integer objects. This method will always return a + * list with at least one element. */ public List getSupportedPreviewFormats() { String str = get(KEY_PREVIEW_FORMAT + SUPPORTED_VALUES_SUFFIX); @@ -1096,8 +1104,8 @@ public class Camera { /** * Gets the supported picture sizes. * - * @return a List of Size objects. null if picture size setting is not - * supported. + * @return a List of Size objects. This method will always return a list + * with at least one element. */ public List getSupportedPictureSizes() { String str = get(KEY_PICTURE_SIZE + SUPPORTED_VALUES_SUFFIX); @@ -1135,12 +1143,18 @@ public class Camera { /** * Gets the supported picture formats. * - * @return a List of Integer objects (values are PixelFormat.XXX). null - * if picture setting is not supported. + * @return a List of Integer objects (values are PixelFormat.XXX). This + * method will always return a list with at least one element. */ public List getSupportedPictureFormats() { - String str = get(KEY_PICTURE_SIZE + SUPPORTED_VALUES_SUFFIX); - return splitInt(str); + String str = get(KEY_PICTURE_FORMAT + SUPPORTED_VALUES_SUFFIX); + ArrayList formats = new ArrayList(); + for (String s : split(str)) { + int f = pixelFormatForCameraFormat(s); + if (f == PixelFormat.UNKNOWN) continue; + formats.add(f); + } + return formats; } private String cameraFormatForPixelFormat(int pixel_format) { @@ -1435,8 +1449,8 @@ public class Camera { /** * Gets the supported focus modes. * - * @return a List of FOCUS_MODE_XXX string constants. null if focus mode - * setting is not supported. + * @return a List of FOCUS_MODE_XXX string constants. This method will + * always return a list with at least one element. */ public List getSupportedFocusModes() { String str = get(KEY_FOCUS_MODE + SUPPORTED_VALUES_SUFFIX); diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index d4aaba3cf57..e9353d8ad31 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -158,9 +158,14 @@ public class Build { public static final int ECLAIR = 5; /** - * Current work on Eclair MR1. + * December 2009: Android 2.0.1 */ - public static final int ECLAIR_MR1 = 6; + public static final int ECLAIR_0_1 = 6; + + /** + * January 2010: Android 2.1 + */ + public static final int ECLAIR_MR1 = 7; } /** The type of build, like "user" or "eng". */ diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl index bcf769da339..b9dc860a9e4 100644 --- a/core/java/android/os/IPowerManager.aidl +++ b/core/java/android/os/IPowerManager.aidl @@ -22,7 +22,7 @@ interface IPowerManager { void acquireWakeLock(int flags, IBinder lock, String tag); void goToSleep(long time); - void releaseWakeLock(IBinder lock); + void releaseWakeLock(IBinder lock, int flags); void userActivity(long when, boolean noChangeLights); void userActivityWithForce(long when, boolean noChangeLights, boolean force); void setPokeLock(int pokey, IBinder lock, String tag); diff --git a/core/java/android/os/LocalPowerManager.java b/core/java/android/os/LocalPowerManager.java index 2c6b29a97b6..3fe21d98806 100644 --- a/core/java/android/os/LocalPowerManager.java +++ b/core/java/android/os/LocalPowerManager.java @@ -45,4 +45,6 @@ public interface LocalPowerManager { // the same as the method on PowerManager public void userActivity(long time, boolean noChangeLights, int eventType); + + boolean isScreenOn(); } diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 2efc2304103..4b3b6f6dc77 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -158,6 +158,15 @@ public class PowerManager */ public static final int PROXIMITY_SCREEN_OFF_WAKE_LOCK = WAKE_BIT_PROXIMITY_SCREEN_OFF; + /** + * Flag for {@link WakeLock#release release(int)} to defer releasing a + * {@link #WAKE_BIT_PROXIMITY_SCREEN_OFF} wakelock until the proximity sensor returns + * a negative value. + * + * {@hide} + */ + public static final int WAIT_FOR_PROXIMITY_NEGATIVE = 1; + /** * Normally wake locks don't actually wake the device, they just cause * it to remain on once it's already on. Think of the video player @@ -266,11 +275,27 @@ public class PowerManager * are other wake locks held. */ public void release() + { + release(0); + } + + /** + * Release your claim to the CPU or screen being on. + * @param flags Combination of flag values to modify the release behavior. + * Currently only {@link #WAIT_FOR_PROXIMITY_NEGATIVE} is supported. + * + *

    + * It may turn off shortly after you release it, or it may not if there + * are other wake locks held. + * + * {@hide} + */ + public void release(int flags) { synchronized (mToken) { if (!mRefCounted || --mCount == 0) { try { - mService.releaseWakeLock(mToken); + mService.releaseWakeLock(mToken, flags); } catch (RemoteException e) { } mHeld = false; @@ -302,7 +327,7 @@ public class PowerManager synchronized (mToken) { if (mHeld) { try { - mService.releaseWakeLock(mToken); + mService.releaseWakeLock(mToken, 0); } catch (RemoteException e) { } RuntimeInit.crash(TAG, new Exception( diff --git a/core/java/android/pim/vcard/VCardComposer.java b/core/java/android/pim/vcard/VCardComposer.java index f9dce255056..78075952937 100644 --- a/core/java/android/pim/vcard/VCardComposer.java +++ b/core/java/android/pim/vcard/VCardComposer.java @@ -414,8 +414,10 @@ public class VCardComposer { appendVCardLine(builder, VCARD_PROPERTY_FULL_NAME, phoneName, needCharset, false); appendVCardLine(builder, VCARD_PROPERTY_NAME, phoneName, needCharset, false); - String label = Integer.toString(phonetype); - appendVCardTelephoneLine(builder, phonetype, label, phoneNumber); + if (!TextUtils.isEmpty(phoneNumber)) { + String label = Integer.toString(phonetype); + appendVCardTelephoneLine(builder, phonetype, label, phoneNumber); + } appendVCardLine(builder, VCARD_PROPERTY_END, VCARD_DATA_VCARD); diff --git a/core/java/android/provider/Checkin.java b/core/java/android/provider/Checkin.java index 84753ee56c4..4134dc296ac 100644 --- a/core/java/android/provider/Checkin.java +++ b/core/java/android/provider/Checkin.java @@ -74,6 +74,7 @@ public final class Checkin { CARRIER_BUG_REPORT, CHECKIN_FAILURE, CHECKIN_SUCCESS, + CPUFREQ_STATS, FOTA_BEGIN, FOTA_FAILURE, FOTA_INSTALL, diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 79044018fcf..c3b0f1c91fa 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -29,6 +29,7 @@ import android.database.Cursor; import android.graphics.Rect; import android.net.Uri; import android.os.RemoteException; +import android.provider.ContactsContract.CommonDataKinds.Email; import android.text.TextUtils; import android.util.Pair; import android.view.View; @@ -37,8 +38,59 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; /** - * The contract between the contacts provider and applications. Contains definitions - * for the supported URIs and columns. These APIs supersede {@link Contacts}. + *

    + * The contract between the contacts provider and applications. Contains + * definitions for the supported URIs and columns. These APIs supersede + * {@link Contacts}. + *

    + *

    Overview

    + *

    + * ContactsContract defines an extensible database of contact-related + * information. Contact information is stored in a three-tier data model: + *

    + *
    + *

    + * The {@link Data} table contains all kinds of personal data: phone numbers, + * email addresses etc. The list of data kinds that can be stored in this table + * is open-ended. There is a predefined set of common kinds, but any application + * can add its own data kinds. + *

    + *

    + * A row in the {@link RawContacts} table represents a set of Data describing a + * person and associated with a single account. + *

    + *

    + * A row in the {@link Contacts} table represents an aggregate of one or more + * RawContacts presumably describing the same person. + *

    + *
    + *

    + * Other tables include: + *

    + *
    + *

    + * {@link Groups}, which contains information about raw contact groups - the + * current API does not support the notion of groups spanning multiple accounts. + *

    + *

    + * {@link StatusUpdates}, which contains social status updates including IM + * availability. + *

    + *

    + * {@link AggregationExceptions}, which is used for manual aggregation and + * disaggregation of raw contacts + *

    + *

    + * {@link Settings}, which contains visibility and sync settings for accounts + * and groups. + *

    + *

    + * {@link SyncState}, which contains free-form data maintained on behalf of sync + * adapters + *

    + *

    + * {@link PhoneLookup}, which is used for quick caller-ID lookup + *

    */ @SuppressWarnings("unused") public final class ContactsContract { @@ -128,6 +180,9 @@ public final class ContactsContract { * Generic columns for use by sync adapters. The specific functions of * these columns are private to the sync adapter. Other clients of the API * should not attempt to either read or write this column. + * + * @see RawContacts + * @see Groups */ protected interface BaseSyncColumns { @@ -144,6 +199,9 @@ public final class ContactsContract { /** * Columns that appear when each row of a table belongs to a specific * account, including sync information that an account may need. + * + * @see RawContacts + * @see Groups */ protected interface SyncColumns extends BaseSyncColumns { /** @@ -181,6 +239,13 @@ public final class ContactsContract { public static final String DIRTY = "dirty"; } + /** + * @see Contacts + * @see RawContacts + * @see ContactsContract.Data + * @see PhoneLookup + * @see ContactsContract.Contacts.AggregationSuggestions + */ protected interface ContactOptionsColumns { /** * The number of times a contact has been contacted @@ -214,6 +279,12 @@ public final class ContactsContract { public static final String SEND_TO_VOICEMAIL = "send_to_voicemail"; } + /** + * @see Contacts + * @see ContactsContract.Data + * @see PhoneLookup + * @see ContactsContract.Contacts.AggregationSuggestions + */ protected interface ContactsColumns { /** * The display name for the contact. @@ -247,6 +318,9 @@ public final class ContactsContract { public static final String LOOKUP_KEY = "lookup"; } + /** + * @see Contacts + */ protected interface ContactStatusColumns { /** * Contact presence status. See {@link StatusUpdates} for individual status @@ -270,7 +344,7 @@ public final class ContactsContract { /** * The package containing resources for this status: label and icon. - *

    Type: NUMBER

    + *

    Type: TEXT

    */ public static final String CONTACT_STATUS_RES_PACKAGE = "contact_status_res_package"; @@ -291,8 +365,194 @@ public final class ContactsContract { } /** - * Constants for the contacts table, which contains a record per group + * Constants for the contacts table, which contains a record per aggregate * of raw contacts representing the same person. + *

    Operations

    + *
    + *
    Insert
    + *
    A Contact cannot be created explicitly. When a raw contact is + * inserted, the provider will first try to find a Contact representing the + * same person. If one is found, the raw contact's + * {@link RawContacts#CONTACT_ID} column gets the _ID of the aggregate + * Contact. If no match is found, the provider automatically inserts a new + * Contact and puts its _ID into the {@link RawContacts#CONTACT_ID} column + * of the newly inserted raw contact.
    + *
    Update
    + *
    Only certain columns of Contact are modifiable: + * {@link #TIMES_CONTACTED}, {@link #LAST_TIME_CONTACTED}, {@link #STARRED}, + * {@link #CUSTOM_RINGTONE}, {@link #SEND_TO_VOICEMAIL}. Changing any of + * these columns on the Contact also changes them on all constituent raw + * contacts.
    + *
    Delete
    + *
    Be careful with deleting Contacts! Deleting an aggregate contact + * deletes all constituent raw contacts. The corresponding sync adapters + * will notice the deletions of their respective raw contacts and remove + * them from their back end storage.
    + *
    Query
    + *
    + *
      + *
    • If you need to read an individual contact, consider using + * {@link #CONTENT_LOOKUP_URI} instead of {@link #CONTENT_URI}.
    • + *
    • If you need to look up a contact by the phone number, use + * {@link PhoneLookup#CONTENT_FILTER_URI PhoneLookup.CONTENT_FILTER_URI}, + * which is optimized for this purpose.
    • + *
    • If you need to look up a contact by partial name, e.g. to produce + * filter-as-you-type suggestions, use the {@link #CONTENT_FILTER_URI} URI. + *
    • If you need to look up a contact by some data element like email + * address, nickname, etc, use a query against the {@link ContactsContract.Data} table. + * The result will contain contact ID, name etc. + *
    + *
    + *
    + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Contacts
    long{@link #_ID}read-onlyRow ID. Consider using {@link #LOOKUP_KEY} instead.
    String{@link #LOOKUP_KEY}read-onlyAn opaque value that contains hints on how to find the contact if its + * row id changed as a result of a sync or aggregation.
    String{@link #DISPLAY_NAME}read-onlyThe display name for the contact. During aggregation display name is + * computed from display names of constituent raw contacts using a + * heuristic: a longer name or a name with more diacritic marks or more + * upper case characters is chosen.
    long{@link #PHOTO_ID}read-onlyReference to the row in the {@link ContactsContract.Data} table holding the photo. + * That row has the mime type + * {@link CommonDataKinds.Photo#CONTENT_ITEM_TYPE}. The value of this field + * is computed automatically based on the + * {@link CommonDataKinds.Photo#IS_SUPER_PRIMARY} field of the data rows of + * that mime type.
    int{@link #IN_VISIBLE_GROUP}read-onlyAn indicator of whether this contact is supposed to be visible in the + * UI. "1" if the contact has at least one raw contact that belongs to a + * visible group; "0" otherwise.
    int{@link #HAS_PHONE_NUMBER}read-onlyAn indicator of whether this contact has at least one phone number. + * "1" if there is at least one phone number, "0" otherwise.
    int{@link #TIMES_CONTACTED}read/writeThe number of times the contact has been contacted. See + * {@link #markAsContacted}. When raw contacts are aggregated, this field is + * computed automatically as the maximum number of times contacted among all + * constituent raw contacts. Setting this field automatically changes the + * corresponding field on all constituent raw contacts.
    long{@link #LAST_TIME_CONTACTED}read/writeThe timestamp of the last time the contact was contacted. See + * {@link #markAsContacted}. Setting this field also automatically + * increments {@link #TIMES_CONTACTED}. When raw contacts are aggregated, + * this field is computed automatically as the latest time contacted of all + * constituent raw contacts. Setting this field automatically changes the + * corresponding field on all constituent raw contacts.
    int{@link #STARRED}read/writeAn indicator for favorite contacts: '1' if favorite, '0' otherwise. + * When raw contacts are aggregated, this field is automatically computed: + * if any constituent raw contacts are starred, then this field is set to + * '1'. Setting this field automatically changes the corresponding field on + * all constituent raw contacts.
    String{@link #CUSTOM_RINGTONE}read/writeA custom ringtone associated with a contact. Typically this is the + * URI returned by an activity launched with the + * {@link android.media.RingtoneManager#ACTION_RINGTONE_PICKER} intent.
    int{@link #SEND_TO_VOICEMAIL}read/writeAn indicator of whether calls from this contact should be forwarded + * directly to voice mail ('1') or not ('0'). When raw contacts are + * aggregated, this field is automatically computed: if all + * constituent raw contacts have SEND_TO_VOICEMAIL=1, then this field is set + * to '1'. Setting this field automatically changes the corresponding field + * on all constituent raw contacts.
    int{@link #CONTACT_PRESENCE}read-onlyContact IM presence status. See {@link StatusUpdates} for individual + * status definitions. Automatically computed as the highest presence of all + * constituent raw contacts. The provider may choose not to store this value + * in persistent storage. The expectation is that presence status will be + * updated on a regular basic.
    String{@link #CONTACT_STATUS}read-onlyContact's latest status update. Automatically computed as the latest + * of all constituent raw contacts' status updates.
    long{@link #CONTACT_STATUS_TIMESTAMP}read-onlyThe absolute time in milliseconds when the latest status was + * inserted/updated.
    String{@link #CONTACT_STATUS_RES_PACKAGE}read-only The package containing resources for this status: label and icon.
    long{@link #CONTACT_STATUS_LABEL}read-onlyThe resource ID of the label describing the source of contact status, + * e.g. "Google Talk". This resource is scoped by the + * {@link #CONTACT_STATUS_RES_PACKAGE}.
    long{@link #CONTACT_STATUS_ICON}read-onlyThe resource ID of the icon for the source of contact status. This + * resource is scoped by the {@link #CONTACT_STATUS_RES_PACKAGE}.
    */ public static class Contacts implements BaseColumns, ContactsColumns, ContactOptionsColumns, ContactStatusColumns { @@ -365,7 +625,7 @@ public final class ContactsContract { /** * Build a {@link #CONTENT_LOOKUP_URI} lookup {@link Uri} using the - * given {@link android.provider.ContactsContract.Contacts#_ID} and {@link #LOOKUP_KEY}. + * given {@link ContactsContract.Contacts#_ID} and {@link #LOOKUP_KEY}. */ public static Uri getLookupUri(long contactId, String lookupKey) { return ContentUris.withAppendedId(Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, @@ -423,7 +683,7 @@ public final class ContactsContract { /** * The content:// style URI for this table joined with useful data from - * {@link Data}, filtered to include only starred contacts + * {@link ContactsContract.Data}, filtered to include only starred contacts * and the most frequently contacted contacts. */ public static final Uri CONTENT_STREQUENT_URI = Uri.withAppendedPath( @@ -461,7 +721,7 @@ public final class ContactsContract { /** * A sub-directory of a single contact that contains all of the constituent raw contact - * {@link Data} rows. + * {@link ContactsContract.Data} rows. */ public static final class Data implements BaseColumns, DataColumns { /** @@ -476,10 +736,33 @@ public final class ContactsContract { } /** - * A sub-directory of a single contact aggregate that contains all aggregation suggestions - * (other contacts). The aggregation suggestions are computed based on approximate - * data matches with this contact. + *

    + * A read-only sub-directory of a single contact aggregate that + * contains all aggregation suggestions (other contacts). The + * aggregation suggestions are computed based on approximate data + * matches with this contact. + *

    + *

    + * Note: this query may be expensive! If you need to use it in bulk, + * make sure the user experience is acceptable when the query runs for a + * long time. + *

    + * Usage example: + * + *

    +         * Uri uri = Contacts.CONTENT_URI.buildUpon()
    +         *          .appendEncodedPath(String.valueOf(contactId))
    +         *          .appendPath(Contacts.AggregationSuggestions.CONTENT_DIRECTORY)
    +         *          .appendQueryParameter("limit", "3")
    +         *          .build()
    +         * Cursor cursor = getContentResolver().query(suggestionsUri,
    +         *          new String[] {Contacts.DISPLAY_NAME, Contacts._ID, Contacts.LOOKUP_KEY},
    +         *          null, null, null);
    +         * 
    + * + *

    */ + // TODO: add ContactOptionsColumns, ContactStatusColumns public static final class AggregationSuggestions implements BaseColumns, ContactsColumns { /** * No public constructor since this is a utility class @@ -495,8 +778,40 @@ public final class ContactsContract { } /** - * A sub-directory of a single contact that contains the contact's primary photo. + * A read-only sub-directory of a single contact that contains + * the contact's primary photo. + *

    + * Usage example: + * + *

    +         * public InputStream openPhoto(long contactId) {
    +         *     Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
    +         *     Uri photoUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY);
    +         *     Cursor cursor = getContentResolver().query(photoUri,
    +         *          new String[] {Contacts.Photo.PHOTO}, null, null, null);
    +         *     if (cursor == null) {
    +         *         return null;
    +         *     }
    +         *     try {
    +         *         if (cursor.moveToFirst()) {
    +         *             byte[] data = cursor.getBlob(0);
    +         *             if (data != null) {
    +         *                 return new ByteArrayInputStream(data);
    +         *             }
    +         *         }
    +         *     } finally {
    +         *         cursor.close();
    +         *     }
    +         *     return null;
    +         * }
    +         * 
    + * + *

    + *

    You should also consider using the convenience method + * {@link ContactsContract.Contacts#openContactPhotoInputStream(ContentResolver, Uri)} + *

    */ + // TODO: change DataColumns to DataColumnsWithJoins public static final class Photo implements BaseColumns, DataColumns { /** * no public constructor since this is a utility class @@ -507,6 +822,15 @@ public final class ContactsContract { * The directory twig for this sub-table */ public static final String CONTENT_DIRECTORY = "photo"; + + /** + * Thumbnail photo of the raw contact. This is the raw bytes of an image + * that could be inflated using {@link android.graphics.BitmapFactory}. + *

    + * Type: BLOB + * @hide TODO: Unhide in a separate CL + */ + public static final String PHOTO = DATA15; } /** @@ -542,7 +866,7 @@ public final class ContactsContract { protected interface RawContactsColumns { /** - * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} that this + * A reference to the {@link ContactsContract.Contacts#_ID} that this * data belongs to. *

    Type: INTEGER

    */ @@ -580,6 +904,315 @@ public final class ContactsContract { * Constants for the raw contacts table, which contains the base contact * information per sync source. Sync adapters and contact management apps * are the primary consumers of this API. + *

    Operations

    + *
    + *
    Insert
    + *
    There are two mechanisms that can be used to insert a raw contact: incremental and + * batch. The incremental method is more traditional but less efficient. It should be used + * only if the constituent data rows are unavailable at the time the raw contact is created: + *
    +     * ContentValues values = new ContentValues();
    +     * values.put(RawContacts.ACCOUNT_TYPE, accountType);
    +     * values.put(RawContacts.ACCOUNT_NAME, accountName);
    +     * Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
    +     * long rawContactId = ContentUris.parseId(rawContactUri);
    +     * 
    + *

    + * Once data rows are available, insert those. For example, here's how you would insert + * a name: + * + *

    +     * values.clear();
    +     * values.put(Data.RAW_CONTACT_ID, rawContactId);
    +     * values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
    +     * values.put(StructuredName.DISPLAY_NAME, "Mike Sullivan");
    +     * getContentResolver().insert(Data.CONTENT_URI, values);
    +     * 
    + *

    + *

    + * The batch method is by far preferred. It inserts the raw contact and its + * constituent data rows in a single database transaction + * and causes at most one aggregation pass. + *

    +     * ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
    +     * int rawContactInsertIndex = ops.size();
    +     * ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
    +     *          .withValue(RawContacts.ACCOUNT_TYPE, accountType)
    +     *          .withValue(RawContacts.ACCOUNT_NAME, accountName)
    +     *          .build());
    +     *
    +     * ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    +     *          .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
    +     *          .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
    +     *          .withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
    +     *          .build());
    +     *
    +     * getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    +     * 
    + *

    + *

    + * Please note the use of back reference in the construction of the + * {@link ContentProviderOperation}. It allows an operation to use the result of + * a previous operation by referring to it by its index in the batch. + *

    + *
    Update
    + *

    Just as with insert, the update can be done incrementally or as a batch, the + * batch mode being the preferred method.

    + *
    Delete
    + *

    When a raw contact is deleted, all of its Data rows as well as StatusUpdates, + * AggregationExceptions, PhoneLookup rows are deleted automatically. When all raw + * contacts in a Contact are deleted, the Contact itself is also deleted automatically. + *

    + *

    + * The invocation of {@code resolver.delete(...)}, does not physically delete + * a raw contacts row. It sets the {@link #DELETED} flag on the raw contact and + * removes the raw contact from its aggregate contact. + * The sync adapter then deletes the raw contact from the server and + * finalizes phone-side deletion by calling {@code resolver.delete(...)} + * again and passing the {@link #CALLER_IS_SYNCADAPTER} query parameter.

    + *

    Some sync adapters are read-only, meaning that they only sync server-side + * changes to the phone, but not the reverse. If one of those raw contacts + * is marked for deletion, it will remain on the phone. However it will be + * effectively invisible, because it will not be part of any aggregate contact. + *

    + *
    Query
    + *
    + *

    + * Finding all raw contacts in a Contact is easy: + *

    +     * Cursor c = getContentResolver().query(RawContacts.CONTENT_URI,
    +     *          new String[]{RawContacts._ID},
    +     *          RawContacts.CONTACT_ID + "=?",
    +     *          new String[]{String.valueOf(contactId)}, null);
    +     * 
    + *

    + *

    + * There are two ways to find raw contacts within a specific account, + * you can either put the account name and type in the selection or pass them as query + * parameters. The latter approach is preferable, especially when you can reuse the + * URI: + *

    +     * Uri rawContactUri = RawContacts.URI.buildUpon()
    +     *          .appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName)
    +     *          .appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType)
    +     *          .build();
    +     * Cursor c1 = getContentResolver().query(rawContactUri,
    +     *          RawContacts.STARRED + "<>0", null, null, null);
    +     * ...
    +     * Cursor c2 = getContentResolver().query(rawContactUri,
    +     *          RawContacts.DELETED + "<>0", null, null, null);
    +     * 
    + *

    + *

    The best way to read a raw contact along with all the data associated with it is + * by using the {@link Entity} directory. If the raw contact has data rows, + * the Entity cursor will contain a row for each data row. If the raw contact has no + * data rows, the cursor will still contain one row with the raw contact-level information. + *

    +     * Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
    +     * Uri entityUri = Uri.withAppendedPath(rawContactUri, Entity.CONTENT_DIRECTORY);
    +     * Cursor c = getContentResolver().query(entityUri,
    +     *          new String[]{RawContacts.SOURCE_ID, Entity.DATA_ID, Entity.MIMETYPE, Entity.DATA1},
    +     *          null, null, null);
    +     * try {
    +     *     while (c.moveToNext()) {
    +     *         String sourceId = c.getString(0);
    +     *         if (!c.isNull(1)) {
    +     *             String mimeType = c.getString(2);
    +     *             String data = c.getString(3);
    +     *             ...
    +     *         }
    +     *     }
    +     * } finally {
    +     *     c.close();
    +     * }
    +     * 
    + *

    + *
    + *
    + *

    Aggregation

    + *

    + * As soon as a raw contact is inserted or whenever its constituent data + * changes, the provider will check if the raw contact matches other + * existing raw contacts and if so will aggregate it with those. From the + * data standpoint, aggregation is reflected in the change of the + * {@link #CONTACT_ID} field, which is the reference to the aggregate contact. + *

    + *

    + * See also {@link AggregationExceptions} for a mechanism to control + * aggregation programmatically. + *

    + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    RawContacts
    long{@link #_ID}read-onlyRow ID. Sync adapter should try to preserve row IDs during updates. In other words, + * it would be a really bad idea to delete and reinsert a raw contact. A sync adapter should + * always do an update instead.
    long{@link #CONTACT_ID}read-onlyA reference to the {@link ContactsContract.Contacts#_ID} that this raw contact belongs + * to. Raw contacts are linked to contacts by the aggregation process, which can be controlled + * by the {@link #AGGREGATION_MODE} field and {@link AggregationExceptions}.
    int{@link #AGGREGATION_MODE}read/writeA mechanism that allows programmatic control of the aggregation process. The allowed + * values are {@link #AGGREGATION_MODE_DEFAULT}, {@link #AGGREGATION_MODE_DISABLED} + * and {@link #AGGREGATION_MODE_SUSPENDED}. See also {@link AggregationExceptions}.
    int{@link #DELETED}read/writeThe "deleted" flag: "0" by default, "1" if the row has been marked + * for deletion. When {@link android.content.ContentResolver#delete} is + * called on a raw contact, it is marked for deletion and removed from its + * aggregate contact. The sync adaptor deletes the raw contact on the server and + * then calls ContactResolver.delete once more, this time passing the + * {@link ContactsContract#CALLER_IS_SYNCADAPTER} query parameter to finalize + * the data removal.
    int{@link #TIMES_CONTACTED}read/writeThe number of times the contact has been contacted. To have an effect + * on the corresponding value of the aggregate contact, this field + * should be set at the time the raw contact is inserted. + * See {@link ContactsContract.Contacts#markAsContacted}.
    long{@link #LAST_TIME_CONTACTED}read/writeThe timestamp of the last time the contact was contacted. To have an effect + * on the corresponding value of the aggregate contact, this field + * should be set at the time the raw contact is inserted. + * See {@link ContactsContract.Contacts#markAsContacted}.
    int{@link #STARRED}read/writeAn indicator for favorite contacts: '1' if favorite, '0' otherwise. + * Changing this field immediately effects the corresponding aggregate contact: + * if any raw contacts in that aggregate contact are starred, then the contact + * itself is marked as starred.
    String{@link #CUSTOM_RINGTONE}read/writeA custom ringtone associated with a raw contact. Typically this is the + * URI returned by an activity launched with the + * {@link android.media.RingtoneManager#ACTION_RINGTONE_PICKER} intent. + * To have an effect on the corresponding value of the aggregate contact, this field + * should be set at the time the raw contact is inserted. To set a custom + * ringtone on a contact, use the field {@link ContactsContract.Contacts#CUSTOM_RINGTONE} + * instead.
    int{@link #SEND_TO_VOICEMAIL}read/writeAn indicator of whether calls from this raw contact should be forwarded + * directly to voice mail ('1') or not ('0'). To have an effect + * on the corresponding value of the aggregate contact, this field + * should be set at the time the raw contact is inserted.
    String{@link #ACCOUNT_NAME}read/write-onceThe name of the account instance to which this row belongs, which when paired with + * {@link #ACCOUNT_TYPE} identifies a specific account. It should be set at the time + * the raw contact is inserted and never changed afterwards.
    String{@link #ACCOUNT_TYPE}read/write-onceThe type of account to which this row belongs, which when paired with + * {@link #ACCOUNT_NAME} identifies a specific account. It should be set at the time + * the raw contact is inserted and never changed afterwards.
    String{@link #SOURCE_ID}read/writeString that uniquely identifies this row to its source account. + * Typically it is set at the time the raw contact is inserted and never + * changed afterwards. The one notable exception is a new raw contact: it + * will have an account name and type, but no source id. This should + * indicated to the sync adapter that a new contact needs to be created + * server-side and its ID stored in the corresponding SOURCE_ID field on + * the phone. + *
    int{@link #VERSION}read-onlyVersion number that is updated whenever this row or its related data + * changes. This field can be used for optimistic locking of a raw contact. + *
    int{@link #DIRTY}read/writeFlag indicating that {@link #VERSION} has changed, and this row needs + * to be synchronized by its owning account. The value is set to "1" automatically + * whenever the raw contact changes, unless the URI has the + * {@link ContactsContract#CALLER_IS_SYNCADAPTER} query parameter specified. + * The sync adapter should always supply this query parameter to prevent + * unnecessary synchronization: user changes some data on the server, + * the sync adapter updates the contact on the phone (without the + * CALLER_IS_SYNCADAPTER flag) flag, which sets the DIRTY flag, + * which triggers a sync to bring the changes to the server. + *
    String{@link #SYNC1}read/writeGeneric column for use by sync adapters. Content provider + * stores this information on behalf of the sync adapter but does not + * interpret it in any way. + *
    String{@link #SYNC2}read/writeGeneric column for use by sync adapters. + *
    String{@link #SYNC3}read/writeGeneric column for use by sync adapters. + *
    String{@link #SYNC4}read/writeGeneric column for use by sync adapters. + *
    */ public static final class RawContacts implements BaseColumns, RawContactsColumns, ContactOptionsColumns, SyncColumns { @@ -613,6 +1246,7 @@ public final class ContactsContract { /** * Aggregation mode: aggregate at the time the raw contact is inserted/updated. + * TODO: deprecate. Aggregation is now synchronous, this value is a no-op */ public static final int AGGREGATION_MODE_IMMEDIATE = 1; @@ -658,8 +1292,9 @@ public final class ContactsContract { } /** - * A sub-directory of a single raw contact that contains all of their {@link Data} rows. - * To access this directory append {@link Data#CONTENT_DIRECTORY} to the contact URI. + * A sub-directory of a single raw contact that contains all of their + * {@link ContactsContract.Data} rows. To access this directory + * append {@link Data#CONTENT_DIRECTORY} to the contact URI. */ public static final class Data implements BaseColumns, DataColumns { /** @@ -675,8 +1310,27 @@ public final class ContactsContract { } /** - * A sub-directory of a single raw contact that contains all of their {@link Data} rows. - * To access this directory append {@link Entity#CONTENT_DIRECTORY} to the contact URI. + *

    + * A sub-directory of a single raw contact that contains all of their + * {@link ContactsContract.Data} rows. To access this directory append + * {@link Entity#CONTENT_DIRECTORY} to the contact URI. See + * {@link RawContactsEntity} for a stand-alone table containing the same + * data. + *

    + *

    + * The Entity directory is similar to the {@link RawContacts.Data} + * directory but with two important differences: + *

      + *
    • Entity has different ID fields: {@link #_ID} for the raw contact + * and {@link #DATA_ID} for the data rows.
    • + *
    • Entity always contains at least one row, even if there are no + * actual data rows. In this case the {@link #DATA_ID} field will be + * null.
    • + *
    + * Using Entity should preferred to using two separate queries: + * RawContacts followed by Data. The reason is that Entity reads all + * data for a raw contact in one transaction, so there is no possibility + * of the data changing between the two queries. */ public static final class Entity implements BaseColumns, DataColumns { /** @@ -699,6 +1353,12 @@ public final class ContactsContract { } } + /** + * Social status update columns. + * + * @see StatusUpdates + * @see ContactsContract.Data + */ protected interface StatusColumns extends Im.CommonPresenceColumns { /** * Contact's latest presence level. @@ -739,6 +1399,11 @@ public final class ContactsContract { public static final String STATUS_ICON = "status_icon"; } + /** + * Columns in the Data table. + * + * @see ContactsContract.Data + */ protected interface DataColumns { /** * The package name to use when creating {@link Resources} objects for @@ -824,7 +1489,9 @@ public final class ContactsContract { } /** - * Combines all columns returned by {@link Data} table queries. + * Combines all columns returned by {@link ContactsContract.Data} table queries. + * + * @see ContactsContract.Data */ protected interface DataColumnsWithJoins extends BaseColumns, DataColumns, StatusColumns, RawContactsColumns, ContactsColumns, ContactOptionsColumns, ContactStatusColumns { @@ -832,10 +1499,468 @@ public final class ContactsContract { } /** - * Constants for the data table, which contains data points tied to a raw contact. - * For example, a phone number or email address. Each row in this table contains a type - * definition and some generic columns. Each data type can define the meaning for each of - * the generic columns. + *

    + * Constants for the data table, which contains data points tied to a raw + * contact. For example, a phone number or email address. + *

    + *

    Data kinds

    + *

    + * Data is a generic table that can hold all kinds of data. Sync adapters + * and applications can introduce their own data kinds. The kind of data + * stored in a particular row is determined by the mime type in the row. + * Fields from {@link #DATA1} through {@link #DATA15} are generic columns + * whose specific use is determined by the kind of data stored in the row. + * For example, if the data kind is + * {@link CommonDataKinds.Phone Phone.CONTENT_ITEM_TYPE}, then DATA1 stores the + * phone number, but if the data kind is + * {@link CommonDataKinds.Email Email.CONTENT_ITEM_TYPE}, then DATA1 stores the + * email address. + *

    + *

    + * ContactsContract defines a small number of common data kinds, e.g. + * {@link CommonDataKinds.Phone}, {@link CommonDataKinds.Email} etc. As a + * convenience, these classes define data kind specific aliases for DATA1 etc. + * For example, {@link CommonDataKinds.Phone Phone.NUMBER} is the same as + * {@link ContactsContract.Data Data.DATA1}. + *

    + *

    + * {@link #DATA1} is an indexed column and should be used for the data element that is + * expected to be most frequently used in query selections. For example, in the + * case of a row representing email addresses {@link #DATA1} should probably + * be used for the email address itself, while {@link #DATA2} etc can be + * used for auxiliary information like type of email address. + *

    + *

    + * By convention, {@link #DATA15} is used for storing BLOBs (binary data). + *

    + *

    + * Typically you should refrain from introducing new kinds of data for 3rd + * party account types. For example, if you add a data row for + * "favorite song" to a raw contact owned by a Google account, it will not + * get synced to the server, because the Google sync adapter does not know + * how to handle this data kind. Thus new data kinds are typically + * introduced along with new account types, i.e. new sync adapters. + *

    + *

    Batch operations

    + *

    + * Data rows can be inserted/updated/deleted using the traditional + * {@link ContentResolver#insert}, {@link ContentResolver#update} and + * {@link ContentResolver#delete} methods, however the newer mechanism based + * on a batch of {@link ContentProviderOperation} will prove to be a better + * choice in almost all cases. All operations in a batch are executed in a + * single transaction, which ensures that the phone-side and server-side + * state of a raw contact are always consistent. Also, the batch-based + * approach is far more efficient: not only are the database operations + * faster when executed in a single transaction, but also sending a batch of + * commands to the content provider saves a lot of time on context switching + * between your process and the process in which the content provider runs. + *

    + *

    + * The flip side of using batched operations is that a large batch may lock + * up the database for a long time preventing other applications from + * accessing data and potentially causing ANRs ("Application Not Responding" + * dialogs.) + *

    + *

    + * To avoid such lockups of the database, make sure to insert "yield points" + * in the batch. A yield point indicates to the content provider that before + * executing the next operation it can commit the changes that have already + * been made, yield to other requests, open another transaction and continue + * processing operations. A yield point will not automatically commit the + * transaction, but only if there is another request waiting on the + * database. Normally a sync adapter should insert a yield point at the + * beginning of each raw contact operation sequence in the batch. See + * {@link ContentProviderOperation.Builder#withYieldAllowed(boolean)}. + *

    + *

    Operations

    + *
    + *
    Insert
    + *
    + *

    + * An individual data row can be inserted using the traditional + * {@link ContentResolver#insert(Uri, ContentValues)} method. Multiple rows + * should always be inserted as a batch. + *

    + *

    + * An example of a traditional insert: + *

    +     * ContentValues values = new ContentValues();
    +     * values.put(Data.RAW_CONTACT_ID, rawContactId);
    +     * values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    +     * values.put(Phone.NUMBER, "1-800-GOOG-411");
    +     * values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
    +     * values.put(Phone.LABEL, "free directory assistance");
    +     * Uri dataUri = getContentResolver().insert(Data.CONTENT_URI, values);
    +     * 
    + *

    + * The same done using ContentProviderOperations: + *

    +     * ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
    +     * ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    +     *          .withValue(Data.RAW_CONTACT_ID, rawContactId)
    +     *          .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
    +     *          .withValue(Phone.NUMBER, "1-800-GOOG-411")
    +     *          .withValue(Phone.TYPE, Phone.TYPE_CUSTOM)
    +     *          .withValue(Phone.LABEL, "free directory assistance")
    +     *          .build());
    +     * getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    +     * 
    + *

    + *
    Update
    + *
    + *

    + * Just as with insert, update can be done incrementally or as a batch, + * the batch mode being the preferred method: + *

    +     * ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
    +     * ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
    +     *          .withSelection(Data._ID + "=?", new String[]{String.valueOf(dataId)})
    +     *          .withValue(Email.DATA, "somebody@android.com")
    +     *          .build());
    +     * getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    +     * 
    + *

    + *
    + *
    Delete
    + *
    + *

    + * Just as with insert and update, deletion can be done either using the + * {@link ContentResolver#delete} method or using a ContentProviderOperation: + *

    +     * ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
    +     * ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI)
    +     *          .withSelection(Data._ID + "=?", new String[]{String.valueOf(dataId)})
    +     *          .build());
    +     * getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    +     * 
    + *

    + *
    + *
    Query
    + *
    + *

    + *

    + *
    Finding all Data of a given type for a given contact
    + *
    + *
    +     * Cursor c = getContentResolver().query(Data.CONTENT_URI,
    +     *          new String[] {Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL},
    +     *          Data.CONTACT_ID + "=?" + " AND "
    +     *                  + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'",
    +     *          new String[] {String.valueOf(contactId)}, null);
    +     * 
    + *

    + *

    + *

    + *
    Finding all Data of a given type for a given raw contact
    + *
    + *
    +     * Cursor c = getContentResolver().query(Data.CONTENT_URI,
    +     *          new String[] {Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL},
    +     *          Data.RAW_CONTACT_ID + "=?" + " AND "
    +     *                  + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'",
    +     *          new String[] {String.valueOf(rawContactId)}, null);
    +     * 
    + *
    + *
    Finding all Data for a given raw contact
    + *
    + * Most sync adapters will want to read all data rows for a raw contact + * along with the raw contact itself. For that you should use the + * {@link RawContactsEntity}. See also {@link RawContacts}. + *
    + *
    + *

    + *
    + *
    + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Data
    long{@link #_ID}read-onlyRow ID. Sync adapter should try to preserve row IDs during updates. In other words, + * it would be a bad idea to delete and reinsert a data rows. A sync adapter should + * always do an update instead.
    String{@link #MIMETYPE}read/write-once + *

    The MIME type of the item represented by this row. Examples of common + * MIME types are: + *

      + *
    • {@link CommonDataKinds.StructuredName StructuredName.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Phone Phone.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Email Email.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Photo Photo.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Organization Organization.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Im Im.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Nickname Nickname.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Note Note.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.StructuredPostal StructuredPostal.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.GroupMembership GroupMembership.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Website Website.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Event Event.CONTENT_ITEM_TYPE}
    • + *
    • {@link CommonDataKinds.Relation Relation.CONTENT_ITEM_TYPE}
    • + *
    + *

    + *
    long{@link #RAW_CONTACT_ID}read/write-onceA reference to the {@link RawContacts#_ID} that this data belongs to.
    long{@link #CONTACT_ID}read-onlyA reference to the {@link ContactsContract.Contacts#_ID} that this data row belongs + * to. It is obtained through a join with RawContacts.
    int{@link #IS_PRIMARY}read/writeWhether this is the primary entry of its kind for the raw contact it belongs to. + * "1" if true, "0" if false.
    int{@link #IS_SUPER_PRIMARY}read/writeWhether this is the primary entry of its kind for the aggregate + * contact it belongs to. Any data record that is "super primary" must + * also be "primary".
    int{@link #DATA_VERSION}read-onlyThe version of this data record. Whenever the data row changes + * the version goes up. This value is monotonically increasing.
    Any type + * {@link #DATA1}
    + * {@link #DATA2}
    + * {@link #DATA3}
    + * {@link #DATA4}
    + * {@link #DATA5}
    + * {@link #DATA6}
    + * {@link #DATA7}
    + * {@link #DATA8}
    + * {@link #DATA9}
    + * {@link #DATA10}
    + * {@link #DATA11}
    + * {@link #DATA12}
    + * {@link #DATA13}
    + * {@link #DATA14}
    + * {@link #DATA15} + *
    read/writeGeneric data columns, the meaning is {@link #MIMETYPE} specific.
    Any type + * {@link #SYNC1}
    + * {@link #SYNC2}
    + * {@link #SYNC3}
    + * {@link #SYNC4} + *
    read/writeGeneric columns for use by sync adapters. For example, a Photo row + * may store the image URL in SYNC1, a status (not loaded, loading, loaded, error) + * in SYNC2, server-side version number in SYNC3 and error code in SYNC4.
    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Join with {@link StatusUpdates}
    int{@link #PRESENCE}read-onlyIM presence status linked to this data row. Compare with + * {@link #CONTACT_PRESENCE}, which contains the contact's presence across + * all IM rows. See {@link StatusUpdates} for individual status definitions. + * The provider may choose not to store this value + * in persistent storage. The expectation is that presence status will be + * updated on a regular basic. + *
    String{@link #STATUS}read-onlyLatest status update linked with this data row.
    long{@link #STATUS_TIMESTAMP}read-onlyThe absolute time in milliseconds when the latest status was + * inserted/updated for this data row.
    String{@link #STATUS_RES_PACKAGE}read-onlyThe package containing resources for this status: label and icon.
    long{@link #STATUS_LABEL}read-onlyThe resource ID of the label describing the source of status update linked + * to this data row. This resource is scoped by the {@link #STATUS_RES_PACKAGE}.
    long{@link #STATUS_ICON}read-onlyThe resource ID of the icon for the source of the status update linked + * to this data row. This resource is scoped by the {@link #STATUS_RES_PACKAGE}.
    + * + *

    + * Columns from the associated raw contact are also available through an + * implicit join. + *

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Join with {@link RawContacts}
    int{@link #AGGREGATION_MODE}read-onlySee {@link RawContacts}.
    int{@link #DELETED}read-onlySee {@link RawContacts}.
    + * + *

    + * Columns from the associated aggregated contact are also available through an + * implicit join. + *

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Join with {@link Contacts}
    String{@link #LOOKUP_KEY}read-onlySee {@link ContactsContract.Contacts}
    String{@link #DISPLAY_NAME}read-onlySee {@link ContactsContract.Contacts}
    long{@link #PHOTO_ID}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #IN_VISIBLE_GROUP}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #HAS_PHONE_NUMBER}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #TIMES_CONTACTED}read-onlySee {@link ContactsContract.Contacts}.
    long{@link #LAST_TIME_CONTACTED}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #STARRED}read-onlySee {@link ContactsContract.Contacts}.
    String{@link #CUSTOM_RINGTONE}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #SEND_TO_VOICEMAIL}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #CONTACT_PRESENCE}read-onlySee {@link ContactsContract.Contacts}.
    String{@link #CONTACT_STATUS}read-onlySee {@link ContactsContract.Contacts}.
    long{@link #CONTACT_STATUS_TIMESTAMP}read-onlySee {@link ContactsContract.Contacts}.
    String{@link #CONTACT_STATUS_RES_PACKAGE}read-onlySee {@link ContactsContract.Contacts}.
    long{@link #CONTACT_STATUS_LABEL}read-onlySee {@link ContactsContract.Contacts}.
    long{@link #CONTACT_STATUS_ICON}read-onlySee {@link ContactsContract.Contacts}.
    */ public final static class Data implements DataColumnsWithJoins { /** @@ -859,7 +1984,7 @@ public final class ContactsContract { * * This flag is useful (currently) only for vCard exporter in Contacts app, which * needs to exclude "un-exportable" data from available data to export, while - * Contacts app itself has priviledge to access all data including "un-expotable" + * Contacts app itself has priviledge to access all data including "un-exportable" * ones and providers return all of them regardless of the callers' intention. *

    Type: INTEGER

    * @@ -872,7 +1997,7 @@ public final class ContactsContract { /** * Build a {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI} * style {@link Uri} for the parent {@link android.provider.ContactsContract.Contacts} - * entry of the given {@link Data} entry. + * entry of the given {@link ContactsContract.Data} entry. */ public static Uri getContactLookupUri(ContentResolver resolver, Uri dataUri) { final Cursor cursor = resolver.query(dataUri, new String[] { @@ -894,8 +2019,141 @@ public final class ContactsContract { } /** - * Constants for the raw contacts entities table, which can be though of as an outer join - * of the raw_contacts table with the data table. + *

    + * Constants for the raw contacts entities table, which can be though of as + * an outer join of the raw_contacts table with the data table. It is a strictly + * read-only table. + *

    + *

    + * If a raw contact has data rows, the RawContactsEntity cursor will contain + * a one row for each data row. If the raw contact has no data rows, the + * cursor will still contain one row with the raw contact-level information + * and nulls for data columns. + * + *

    +     * Uri entityUri = ContentUris.withAppendedId(RawContactsEntity.CONTENT_URI, rawContactId);
    +     * Cursor c = getContentResolver().query(entityUri,
    +     *          new String[]{
    +     *              RawContactsEntity.SOURCE_ID,
    +     *              RawContactsEntity.DATA_ID,
    +     *              RawContactsEntity.MIMETYPE,
    +     *              RawContactsEntity.DATA1
    +     *          }, null, null, null);
    +     * try {
    +     *     while (c.moveToNext()) {
    +     *         String sourceId = c.getString(0);
    +     *         if (!c.isNull(1)) {
    +     *             String mimeType = c.getString(2);
    +     *             String data = c.getString(3);
    +     *             ...
    +     *         }
    +     *     }
    +     * } finally {
    +     *     c.close();
    +     * }
    +     * 
    + * + *

    Columns

    + * RawContactsEntity has a combination of RawContact and Data columns. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    RawContacts
    long{@link #_ID}read-onlyRaw contact row ID. See {@link RawContacts}.
    long{@link #CONTACT_ID}read-onlySee {@link RawContacts}.
    int{@link #AGGREGATION_MODE}read-onlySee {@link RawContacts}.
    int{@link #DELETED}read-onlySee {@link RawContacts}.
    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Data
    long{@link #DATA_ID}read-onlyData row ID. It will be null if the raw contact has no data rows.
    String{@link #MIMETYPE}read-onlySee {@link ContactsContract.Data}.
    int{@link #IS_PRIMARY}read-onlySee {@link ContactsContract.Data}.
    int{@link #IS_SUPER_PRIMARY}read-onlySee {@link ContactsContract.Data}.
    int{@link #DATA_VERSION}read-onlySee {@link ContactsContract.Data}.
    Any type + * {@link #DATA1}
    + * {@link #DATA2}
    + * {@link #DATA3}
    + * {@link #DATA4}
    + * {@link #DATA5}
    + * {@link #DATA6}
    + * {@link #DATA7}
    + * {@link #DATA8}
    + * {@link #DATA9}
    + * {@link #DATA10}
    + * {@link #DATA11}
    + * {@link #DATA12}
    + * {@link #DATA13}
    + * {@link #DATA14}
    + * {@link #DATA15} + *
    read-onlySee {@link ContactsContract.Data}.
    Any type + * {@link #SYNC1}
    + * {@link #SYNC2}
    + * {@link #SYNC3}
    + * {@link #SYNC4} + *
    read-onlySee {@link ContactsContract.Data}.
    */ public final static class RawContactsEntity implements BaseColumns, DataColumns, RawContactsColumns { @@ -938,6 +2196,9 @@ public final class ContactsContract { public static final String DATA_ID = "data_id"; } + /** + * @see PhoneLookup + */ protected interface PhoneLookupColumns { /** * The phone number as the user entered it. @@ -961,7 +2222,112 @@ public final class ContactsContract { /** * A table that represents the result of looking up a phone number, for * example for caller ID. To perform a lookup you must append the number you - * want to find to {@link #CONTENT_FILTER_URI}. + * want to find to {@link #CONTENT_FILTER_URI}. This query is highly + * optimized. + *
    +     * Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
    +     * resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,...
    +     * 
    + * + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    PhoneLookup
    long{@link #_ID}read-onlyData row ID.
    String{@link #NUMBER}read-onlyPhone number.
    String{@link #TYPE}read-onlyPhone number type. See {@link CommonDataKinds.Phone}.
    String{@link #LABEL}read-onlyCustom label for the phone number. See {@link CommonDataKinds.Phone}.
    + *

    + * Columns from the Contacts table are also available through a join. + *

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Join with {@link Contacts}
    String{@link #LOOKUP_KEY}read-onlySee {@link ContactsContract.Contacts}
    String{@link #DISPLAY_NAME}read-onlySee {@link ContactsContract.Contacts}
    long{@link #PHOTO_ID}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #IN_VISIBLE_GROUP}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #HAS_PHONE_NUMBER}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #TIMES_CONTACTED}read-onlySee {@link ContactsContract.Contacts}.
    long{@link #LAST_TIME_CONTACTED}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #STARRED}read-onlySee {@link ContactsContract.Contacts}.
    String{@link #CUSTOM_RINGTONE}read-onlySee {@link ContactsContract.Contacts}.
    int{@link #SEND_TO_VOICEMAIL}read-onlySee {@link ContactsContract.Contacts}.
    */ public static final class PhoneLookup implements BaseColumns, PhoneLookupColumns, ContactsColumns, ContactOptionsColumns { @@ -973,10 +2339,9 @@ public final class ContactsContract { /** * The content:// style URI for this table. Append the phone number you want to lookup * to this URI and query it to perform a lookup. For example: - * - * {@code - * Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_URI, phoneNumber); - * } + *
    +         * Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_URI, Uri.encode(phoneNumber));
    +         * 
    */ public static final Uri CONTENT_FILTER_URI = Uri.withAppendedPath(AUTHORITY_URI, "phone_lookup"); @@ -985,6 +2350,8 @@ public final class ContactsContract { /** * Additional data mixed in with {@link StatusColumns} to link * back to specific {@link ContactsContract.Data#_ID} entries. + * + * @see StatusUpdates */ protected interface PresenceColumns { @@ -995,6 +2362,7 @@ public final class ContactsContract { public static final String DATA_ID = "presence_data_id"; /** + * See {@link CommonDataKinds.Im} for a list of defined protocol constants. *

    Type: NUMBER

    */ public static final String PROTOCOL = "protocol"; @@ -1024,11 +2392,132 @@ public final class ContactsContract { } /** - * A status update is linked to a {@link Data} row and captures the user's latest status - * update via the corresponding source, e.g. "Having lunch" via "Google Talk". + *

    + * A status update is linked to a {@link ContactsContract.Data} row and captures + * the user's latest status update via the corresponding source, e.g. + * "Having lunch" via "Google Talk". + *

    + *

    + * There are two ways a status update can be inserted: by explicitly linking + * it to a Data row using {@link #DATA_ID} or indirectly linking it to a data row + * using a combination of {@link #PROTOCOL} (or {@link #CUSTOM_PROTOCOL}) and + * {@link #IM_HANDLE}. There is no difference between insert and update, you can use + * either. + *

    + *

    + * You cannot use {@link ContentResolver#update} to change a status, but + * {@link ContentResolver#insert} will replace the latests status if it already + * exists. + *

    + *

    + * Use {@link ContentResolver#bulkInsert(Uri, ContentValues[])} to insert/update statuses + * for multiple contacts at once. + *

    + * + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    StatusUpdates
    long{@link #DATA_ID}read/writeReference to the {@link Data#_ID} entry that owns this presence. If this + * field is not specified, the provider will attempt to find a data row + * that matches the {@link #PROTOCOL} (or {@link #CUSTOM_PROTOCOL}) and + * {@link #IM_HANDLE} columns. + *
    long{@link #PROTOCOL}read/writeSee {@link CommonDataKinds.Im} for a list of defined protocol constants.
    String{@link #CUSTOM_PROTOCOL}read/writeName of the custom protocol. Should be supplied along with the {@link #PROTOCOL} value + * {@link ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM}. Should be null or + * omitted if {@link #PROTOCOL} value is not + * {@link ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM}.
    String{@link #IM_HANDLE}read/write The IM handle the presence item is for. The handle is scoped to + * {@link #PROTOCOL}.
    String{@link #IM_ACCOUNT}read/writeThe IM account for the local user that the presence data came from.
    int{@link #PRESENCE}read/writeContact IM presence status. The allowed values are: + *

    + *

      + *
    • {@link #OFFLINE}
    • + *
    • {@link #INVISIBLE}
    • + *
    • {@link #AWAY}
    • + *
    • {@link #IDLE}
    • + *
    • {@link #DO_NOT_DISTURB}
    • + *
    • {@link #AVAILABLE}
    • + *
    + *

    + *

    + * Since presence status is inherently volatile, the content provider + * may choose not to store this field in long-term storage. + *

    + *
    String{@link #STATUS}read/writeContact's latest status update, e.g. "having toast for breakfast"
    long{@link #STATUS_TIMESTAMP}read/writeThe absolute time in milliseconds when the status was + * entered by the user. If this value is not provided, the provider will follow + * this logic: if there was no prior status update, the value will be left as null. + * If there was a prior status update, the provider will default this field + * to the current time.
    String{@link #STATUS_RES_PACKAGE}read/write The package containing resources for this status: label and icon.
    long{@link #STATUS_LABEL}read/writeThe resource ID of the label describing the source of contact status, + * e.g. "Google Talk". This resource is scoped by the + * {@link #STATUS_RES_PACKAGE}.
    long{@link #STATUS_ICON}read/writeThe resource ID of the icon for the source of contact status. This + * resource is scoped by the {@link #STATUS_RES_PACKAGE}.
    */ - // TODO make final as soon as Presence is removed - public static /*final*/ class StatusUpdates implements StatusColumns, PresenceColumns { + public static class StatusUpdates implements StatusColumns, PresenceColumns { /** * This utility class cannot be instantiated @@ -1088,13 +2577,17 @@ public final class ContactsContract { public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/status-update"; } + /** + * @deprecated This old name was never meant to be made public. Do not use. + */ @Deprecated public static final class Presence extends StatusUpdates { } /** - * Container for definitions of common data types stored in the {@link Data} table. + * Container for definitions of common data types stored in the {@link ContactsContract.Data} + * table. */ public static final class CommonDataKinds { /** @@ -1144,7 +2637,69 @@ public final class ContactsContract { } /** - * Parts of the name. + * A data kind representing the contact's proper name. You can use all + * columns defined for {@link ContactsContract.Data} as well as the following aliases. + * + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #DISPLAY_NAME}{@link #DATA1}
    String{@link #GIVEN_NAME}{@link #DATA2}
    String{@link #FAMILY_NAME}{@link #DATA3}
    String{@link #PREFIX}{@link #DATA4}Common prefixes in English names are "Mr", "Ms", "Dr" etc.
    String{@link #MIDDLE_NAME}{@link #DATA5}
    String{@link #SUFFIX}{@link #DATA6}Common suffixes in English names are "Sr", "Jr", "III" etc.
    String{@link #PHONETIC_GIVEN_NAME}{@link #DATA7}Used for phonetic spelling of the name, e.g. Pinyin, Katakana, Hiragana
    String{@link #PHONETIC_MIDDLE_NAME}{@link #DATA8}
    String{@link #PHONETIC_FAMILY_NAME}{@link #DATA9}
    */ public static final class StructuredName implements DataColumnsWithJoins { /** @@ -1213,7 +2768,68 @@ public final class ContactsContract { } /** - * A nickname. + *

    A data kind representing the contact's nickname. For example, for + * Bob Parr ("Mr. Incredible"): + *

    +         * ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
    +         * ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    +         *          .withValue(Data.RAW_CONTACT_ID, rawContactId)
    +         *          .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
    +         *          .withValue(StructuredName.DISPLAY_NAME, "Bob Parr")
    +         *          .build());
    +         *
    +         * ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    +         *          .withValue(Data.RAW_CONTACT_ID, rawContactId)
    +         *          .withValue(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE)
    +         *          .withValue(Nickname.NAME, "Mr. Incredible")
    +         *          .withValue(Nickname.TYPE, Nickname.TYPE_CUSTOM)
    +         *          .withValue(Nickname.LABEL, "Superhero")
    +         *          .build());
    +         *
    +         * getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    +         * 
    + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as well as the + * following aliases. + *

    + * + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #NAME}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2} + * Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_DEFAULT}
    • + *
    • {@link #TYPE_OTHER_NAME}
    • + *
    • {@link #TYPE_MAINDEN_NAME}
    • + *
    • {@link #TYPE_SHORT_NAME}
    • + *
    • {@link #TYPE_INITIALS}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Nickname implements DataColumnsWithJoins, CommonColumns { /** @@ -1237,7 +2853,64 @@ public final class ContactsContract { } /** - * Common data definition for telephone numbers. + *

    + * A data kind representing a telephone number. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #NUMBER}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_HOME}
    • + *
    • {@link #TYPE_MOBILE}
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_FAX_WORK}
    • + *
    • {@link #TYPE_FAX_HOME}
    • + *
    • {@link #TYPE_PAGER}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    • {@link #TYPE_CALLBACK}
    • + *
    • {@link #TYPE_CAR}
    • + *
    • {@link #TYPE_COMPANY_MAIN}
    • + *
    • {@link #TYPE_ISDN}
    • + *
    • {@link #TYPE_MAIN}
    • + *
    • {@link #TYPE_OTHER_FAX}
    • + *
    • {@link #TYPE_RADIO}
    • + *
    • {@link #TYPE_TELEX}
    • + *
    • {@link #TYPE_TTY_TDD}
    • + *
    • {@link #TYPE_WORK_MOBILE}
    • + *
    • {@link #TYPE_WORK_PAGER}
    • + *
    • {@link #TYPE_ASSISTANT}
    • + *
    • {@link #TYPE_MMS}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Phone implements DataColumnsWithJoins, CommonColumns { /** @@ -1365,7 +3038,48 @@ public final class ContactsContract { } /** - * Common data definition for email addresses. + *

    + * A data kind representing an email address. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #DATA}{@link #DATA1}Email address itself.
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_HOME}
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    • {@link #TYPE_MOBILE}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Email implements DataColumnsWithJoins, CommonColumns { /** @@ -1390,22 +3104,50 @@ public final class ContactsContract { "emails"); /** + *

    * The content:// style URL for looking up data rows by email address. The * lookup argument, an email address, should be passed as an additional path segment * after this URI. + *

    + *

    Example: + *

    +             * Uri uri = Uri.withAppendedPath(Email.CONTENT_LOOKUP_URI, Uri.encode(email));
    +             * Cursor c = getContentResolver().query(uri,
    +             *          new String[]{Email.CONTACT_ID, Email.DISPLAY_NAME, Email.DATA},
    +             *          null, null, null);
    +             * 
    + *

    */ public static final Uri CONTENT_LOOKUP_URI = Uri.withAppendedPath(CONTENT_URI, "lookup"); /** + *

    * The content:// style URL for email lookup using a filter. The filter returns * records of MIME type {@link #CONTENT_ITEM_TYPE}. The filter is applied * to display names as well as email addresses. The filter argument should be passed * as an additional path segment after this URI. + *

    + *

    The query in the following example will return "Robert Parr (bob@incredibles.com)" + * as well as "Bob Parr (incredible@android.com)". + *

    +             * Uri uri = Uri.withAppendedPath(Email.CONTENT_LOOKUP_URI, Uri.encode("bob"));
    +             * Cursor c = getContentResolver().query(uri,
    +             *          new String[]{Email.DISPLAY_NAME, Email.DATA},
    +             *          null, null, null);
    +             * 
    + *

    */ public static final Uri CONTENT_FILTER_URI = Uri.withAppendedPath(CONTENT_URI, "filter"); + /** + * The email address. + *

    Type: TEXT

    + * @hide TODO: Unhide in a separate CL + */ + public static final String ADDRESS = DATA1; + public static final int TYPE_HOME = 1; public static final int TYPE_WORK = 2; public static final int TYPE_OTHER = 3; @@ -1448,7 +3190,89 @@ public final class ContactsContract { } /** - * Common data definition for postal addresses. + *

    + * A data kind representing a postal addresses. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #FORMATTED_ADDRESS}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_HOME}
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    String{@link #STREET}{@link #DATA4}
    String{@link #POBOX}{@link #DATA5}Post Office Box number
    String{@link #NEIGHBORHOOD}{@link #DATA6}
    String{@link #CITY}{@link #DATA7}
    String{@link #REGION}{@link #DATA8}
    String{@link #POSTCODE}{@link #DATA9}
    String{@link #COUNTRY}{@link #DATA10}
    */ public static final class StructuredPostal implements DataColumnsWithJoins, CommonColumns { /** @@ -1573,7 +3397,76 @@ public final class ContactsContract { } /** - * Common data definition for IM addresses. + *

    + * A data kind representing an IM address + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #DATA}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_HOME}
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    String{@link #PROTOCOL}{@link #DATA5} + *

    + * Allowed values: + *

      + *
    • {@link #PROTOCOL_CUSTOM}. Also provide the actual protocol name + * as {@link #CUSTOM_PROTOCOL}.
    • + *
    • {@link #PROTOCOL_AIM}
    • + *
    • {@link #PROTOCOL_MSN}
    • + *
    • {@link #PROTOCOL_YAHOO}
    • + *
    • {@link #PROTOCOL_SKYPE}
    • + *
    • {@link #PROTOCOL_QQ}
    • + *
    • {@link #PROTOCOL_GOOGLE_TALK}
    • + *
    • {@link #PROTOCOL_ICQ}
    • + *
    • {@link #PROTOCOL_JABBER}
    • + *
    • {@link #PROTOCOL_NETMEETING}
    • + *
    + *

    + *
    String{@link #CUSTOM_PROTOCOL}{@link #DATA6}
    */ public static final class Im implements DataColumnsWithJoins, CommonColumns { /** @@ -1676,7 +3569,82 @@ public final class ContactsContract { } /** - * Common data definition for organizations. + *

    + * A data kind representing an organization. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #COMPANY}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    String{@link #TITLE}{@link #DATA4}
    String{@link #DEPARTMENT}{@link #DATA5}
    String{@link #JOB_DESCRIPTION}{@link #DATA6}
    String{@link #SYMBOL}{@link #DATA7}
    String{@link #PHONETIC_NAME}{@link #DATA8}
    String{@link #OFFICE_LOCATION}{@link #DATA9}
    */ public static final class Organization implements DataColumnsWithJoins, CommonColumns { /** @@ -1761,7 +3729,58 @@ public final class ContactsContract { } /** - * Common data definition for relations. + *

    + * A data kind representing a relation. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #NAME}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_ASSISTANT}
    • + *
    • {@link #TYPE_BROTHER}
    • + *
    • {@link #TYPE_CHILD}
    • + *
    • {@link #TYPE_DOMESTIC_PARTNER}
    • + *
    • {@link #TYPE_FATHER}
    • + *
    • {@link #TYPE_FRIEND}
    • + *
    • {@link #TYPE_MANAGER}
    • + *
    • {@link #TYPE_MOTHER}
    • + *
    • {@link #TYPE_PARENT}
    • + *
    • {@link #TYPE_PARTNER}
    • + *
    • {@link #TYPE_REFERRED_BY}
    • + *
    • {@link #TYPE_RELATIVE}
    • + *
    • {@link #TYPE_SISTER}
    • + *
    • {@link #TYPE_SPOUSE}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Relation implements DataColumnsWithJoins, CommonColumns { /** @@ -1795,7 +3814,47 @@ public final class ContactsContract { } /** - * Common data definition for events. + *

    + * A data kind representing an event. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #START_DATE}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_ANNIVERSARY}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    • {@link #TYPE_BIRTHDAY}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Event implements DataColumnsWithJoins, CommonColumns { /** @@ -1835,7 +3894,33 @@ public final class ContactsContract { } /** - * Photo of the contact. + *

    + * A data kind representing an photo for the contact. + *

    + *

    + * Some sync adapters will choose to download photos in a separate + * pass. A common pattern is to use columns {@link ContactsContract.Data#SYNC1} + * through {@link ContactsContract.Data#SYNC4} to store temporary + * data, e.g. the image URL or ID, state of download, server-side version + * of the image. It is allowed for the {@link #PHOTO} to be null. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    BLOB{@link #PHOTO}{@link #DATA15}By convention, binary data is stored in DATA15.
    */ public static final class Photo implements DataColumnsWithJoins { /** @@ -1856,7 +3941,26 @@ public final class ContactsContract { } /** + *

    * Notes about the contact. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #NOTE}{@link #DATA1}
    */ public static final class Note implements DataColumnsWithJoins { /** @@ -1875,7 +3979,43 @@ public final class ContactsContract { } /** + *

    * Group Membership. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    long{@link #GROUP_ROW_ID}{@link #DATA1}
    String{@link #GROUP_SOURCE_ID}none + *

    + * The sourceid of the group that this group membership refers to. + * Exactly one of this or {@link #GROUP_ROW_ID} must be set when + * inserting a row. + *

    + *

    + * If this field is specified, the provider will first try to + * look up a group with this {@link Groups Groups.SOURCE_ID}. If such a group + * is found, it will use the corresponding row id. If the group is not + * found, it will create one. + *

    */ public static final class GroupMembership implements DataColumnsWithJoins { /** @@ -1903,7 +4043,51 @@ public final class ContactsContract { } /** - * Website related to the contact. + *

    + * A data kind representing a website related to the contact. + *

    + *

    + * You can use all columns defined for {@link ContactsContract.Data} as + * well as the following aliases. + *

    + *

    Column aliases

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    TypeAliasData column
    String{@link #URL}{@link #DATA1}
    int{@link #TYPE}{@link #DATA2}Allowed values are: + *

    + *

      + *
    • {@link #TYPE_CUSTOM}. Put the actual type in {@link #LABEL}.
    • + *
    • {@link #TYPE_HOMEPAGE}
    • + *
    • {@link #TYPE_BLOG}
    • + *
    • {@link #TYPE_PROFILE}
    • + *
    • {@link #TYPE_HOME}
    • + *
    • {@link #TYPE_WORK}
    • + *
    • {@link #TYPE_FTP}
    • + *
    • {@link #TYPE_OTHER}
    • + *
    + *

    + *
    String{@link #LABEL}{@link #DATA3}
    */ public static final class Website implements DataColumnsWithJoins, CommonColumns { /** @@ -1930,6 +4114,9 @@ public final class ContactsContract { } } + /** + * @see Groups + */ protected interface GroupsColumns { /** * The display title of this group. @@ -2000,11 +4187,11 @@ public final class ContactsContract { /** * The "deleted" flag: "0" by default, "1" if the row has been marked * for deletion. When {@link android.content.ContentResolver#delete} is - * called on a raw contact, it is marked for deletion and removed from its - * aggregate contact. The sync adaptor deletes the raw contact on the server and - * then calls ContactResolver.delete once more, this time setting the the - * {@link ContactsContract#CALLER_IS_SYNCADAPTER} query parameter to finalize - * the data removal. + * called on a group, it is marked for deletion. The sync adaptor + * deletes the group on the server and then calls ContactResolver.delete + * once more, this time setting the the + * {@link ContactsContract#CALLER_IS_SYNCADAPTER} query parameter to + * finalize the data removal. *

    Type: INTEGER

    */ public static final String DELETED = "deleted"; @@ -2019,7 +4206,82 @@ public final class ContactsContract { } /** - * Constants for the groups table. + * Constants for the groups table. Only per-account groups are supported. + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Groups
    long{@link #_ID}read-onlyRow ID. Sync adapter should try to preserve row IDs during updates. + * In other words, it would be a really bad idea to delete and reinsert a + * group. A sync adapter should always do an update instead.
    String{@link #TITLE}read/writeThe display title of this group.
    String{@link #NOTES}read/writeNotes about the group.
    String{@link #SYSTEM_ID}read/writeThe ID of this group if it is a System Group, i.e. a group that has a + * special meaning to the sync adapter, null otherwise.
    int{@link #SUMMARY_COUNT}read-onlyThe total number of {@link Contacts} that have + * {@link CommonDataKinds.GroupMembership} in this group. Read-only value + * that is only present when querying {@link Groups#CONTENT_SUMMARY_URI}.
    int{@link #SUMMARY_WITH_PHONES}read-onlyThe total number of {@link Contacts} that have both + * {@link CommonDataKinds.GroupMembership} in this group, and also have + * phone numbers. Read-only value that is only present when querying + * {@link Groups#CONTENT_SUMMARY_URI}.
    int{@link #GROUP_VISIBLE}read-onlyFlag indicating if the contacts belonging to this group should be + * visible in any user interface. Allowed values: 0 and 1.
    int{@link #DELETED}read/writeThe "deleted" flag: "0" by default, "1" if the row has been marked + * for deletion. When {@link android.content.ContentResolver#delete} is + * called on a group, it is marked for deletion. The sync adaptor deletes + * the group on the server and then calls ContactResolver.delete once more, + * this time setting the the {@link ContactsContract#CALLER_IS_SYNCADAPTER} + * query parameter to finalize the data removal.
    int{@link #SHOULD_SYNC}read/writeWhether this group should be synced if the SYNC_EVERYTHING settings + * is false for this group's account.
    */ public static final class Groups implements BaseColumns, GroupsColumns, SyncColumns { /** @@ -2035,7 +4297,7 @@ public final class ContactsContract { /** * The content:// style URI for this table joined with details data from - * {@link Data}. + * {@link ContactsContract.Data}. */ public static final Uri CONTENT_SUMMARY_URI = Uri.withAppendedPath(AUTHORITY_URI, "groups_summary"); @@ -2052,9 +4314,39 @@ public final class ContactsContract { } /** + *

    * Constants for the contact aggregation exceptions table, which contains - * aggregation rules overriding those used by automatic aggregation. This type only - * supports query and update. Neither insert nor delete are supported. + * aggregation rules overriding those used by automatic aggregation. This + * type only supports query and update. Neither insert nor delete are + * supported. + *

    + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    AggregationExceptions
    int{@link #TYPE}read/writeThe type of exception: {@link #TYPE_KEEP_TOGETHER}, + * {@link #TYPE_KEEP_SEPARATE} or {@link #TYPE_AUTOMATIC}.
    long{@link #RAW_CONTACT_ID1}read/writeA reference to the {@link RawContacts#_ID} of the raw contact that + * the rule applies to.
    long{@link #RAW_CONTACT_ID2}read/writeA reference to the other {@link RawContacts#_ID} of the raw contact + * that the rule applies to.
    */ public static final class AggregationExceptions implements BaseColumns { /** @@ -2117,6 +4409,9 @@ public final class ContactsContract { public static final String RAW_CONTACT_ID2 = "raw_contact_id2"; } + /** + * @see Settings + */ protected interface SettingsColumns { /** * The name of the account instance to which this row belongs. @@ -2172,8 +4467,68 @@ public final class ContactsContract { } /** - * Contacts-specific settings for various {@link Account}. + *

    + * Contacts-specific settings for various {@link Account}'s. + *

    + *

    Columns

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Settings
    String{@link #ACCOUNT_NAME}read/write-onceThe name of the account instance to which this row belongs.
    String{@link #ACCOUNT_TYPE}read/write-onceThe type of account to which this row belongs, which when paired with + * {@link #ACCOUNT_NAME} identifies a specific account.
    int{@link #SHOULD_SYNC}read/writeDepending on the mode defined by the sync-adapter, this flag controls + * the top-level sync behavior for this data source.
    int{@link #UNGROUPED_VISIBLE}read/writeFlag indicating if contacts without any + * {@link CommonDataKinds.GroupMembership} entries should be visible in any + * user interface.
    int{@link #ANY_UNSYNCED}read-onlyRead-only flag indicating if this {@link #SHOULD_SYNC} or any + * {@link Groups#SHOULD_SYNC} under this account have been marked as + * unsynced.
    int{@link #UNGROUPED_COUNT}read-onlyRead-only count of {@link Contacts} from a specific source that have + * no {@link CommonDataKinds.GroupMembership} entries.
    int{@link #UNGROUPED_WITH_PHONES}read-onlyRead-only count of {@link Contacts} from a specific source that have + * no {@link CommonDataKinds.GroupMembership} entries, and also have phone + * numbers.
    */ + public static final class Settings implements SettingsColumns { /** * This utility class cannot be instantiated @@ -2252,8 +4607,8 @@ public final class ContactsContract { /** * Trigger a dialog that lists the various methods of interacting with * the requested {@link Contacts} entry. This may be based on available - * {@link Data} rows under that contact, and may also include social - * status and presence details. + * {@link ContactsContract.Data} rows under that contact, and may also + * include social status and presence details. * * @param context The parent {@link Context} that may be used as the * parent for this dialog. @@ -2291,8 +4646,8 @@ public final class ContactsContract { /** * Trigger a dialog that lists the various methods of interacting with * the requested {@link Contacts} entry. This may be based on available - * {@link Data} rows under that contact, and may also include social - * status and presence details. + * {@link ContactsContract.Data} rows under that contact, and may also + * include social status and presence details. * * @param context The parent {@link Context} that may be used as the * parent for this dialog. @@ -2593,7 +4948,7 @@ public final class ContactsContract { /** * The extra field for the contact phone number type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, + * {@link CommonDataKinds.Phone}, * or a string specifying a custom label.

    */ public static final String PHONE_TYPE = "phone_type"; @@ -2613,7 +4968,7 @@ public final class ContactsContract { /** * The extra field for an optional second contact phone number type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, + * {@link CommonDataKinds.Phone}, * or a string specifying a custom label.

    */ public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type"; @@ -2627,7 +4982,7 @@ public final class ContactsContract { /** * The extra field for an optional third contact phone number type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.PhonesColumns PhonesColumns}, + * {@link CommonDataKinds.Phone}, * or a string specifying a custom label.

    */ public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type"; @@ -2641,7 +4996,7 @@ public final class ContactsContract { /** * The extra field for the contact email type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} + * {@link CommonDataKinds.Email} * or a string specifying a custom label.

    */ public static final String EMAIL_TYPE = "email_type"; @@ -2661,7 +5016,7 @@ public final class ContactsContract { /** * The extra field for an optional second contact email type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} + * {@link CommonDataKinds.Email} * or a string specifying a custom label.

    */ public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type"; @@ -2675,7 +5030,7 @@ public final class ContactsContract { /** * The extra field for an optional third contact email type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} + * {@link CommonDataKinds.Email} * or a string specifying a custom label.

    */ public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type"; @@ -2689,7 +5044,7 @@ public final class ContactsContract { /** * The extra field for the contact postal address type. *

    Type: Either an integer value from - * {@link android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns} + * {@link CommonDataKinds.StructuredPostal} * or a string specifying a custom label.

    */ public static final String POSTAL_TYPE = "postal_type"; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index cb3dc166f7a..f7e55db80b8 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -1408,6 +1408,13 @@ public final class Settings { */ public static final String SHOW_WEB_SUGGESTIONS = "show_web_suggestions"; + /** + * Whether the notification LED should repeatedly flash when a notification is + * pending. The value is boolean (1 or 0). + * @hide + */ + public static final String NOTIFICATION_LIGHT_PULSE = "notification_light_pulse"; + /** * Settings to backup. This is here so that it's in the same place as the settings * keys and easy to update. @@ -1462,7 +1469,8 @@ public final class Settings { TTY_MODE, SOUND_EFFECTS_ENABLED, HAPTIC_FEEDBACK_ENABLED, - SHOW_WEB_SUGGESTIONS + SHOW_WEB_SUGGESTIONS, + NOTIFICATION_LIGHT_PULSE }; // Settings moved to Settings.Secure @@ -3637,6 +3645,19 @@ public final class Settings { */ public static final String LAST_KMSG_KB = "last_kmsg_kb"; + /** + * The length of time in milli-seconds that automatic small adjustments to + * SystemClock are ignored if NITZ_UPDATE_DIFF is not exceeded. + */ + public static final String NITZ_UPDATE_SPACING = "nitz_update_spacing"; + + /** + * If the NITZ_UPDATE_DIFF time is exceeded then an automatic adjustment + * to SystemClock will be allowed even if NITZ_UPDATE_SPACING has not been + * exceeded. + */ + public static final String NITZ_UPDATE_DIFF = "nitz_update_diff"; + /** * @deprecated * @hide diff --git a/core/java/android/server/BluetoothA2dpService.java b/core/java/android/server/BluetoothA2dpService.java index ec3b2ff7b2c..f2e132b56fe 100644 --- a/core/java/android/server/BluetoothA2dpService.java +++ b/core/java/android/server/BluetoothA2dpService.java @@ -96,7 +96,7 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { BluetoothDevice.ERROR); switch(bondState) { case BluetoothDevice.BOND_BONDED: - setSinkPriority(device, BluetoothA2dp.PRIORITY_AUTO); + setSinkPriority(device, BluetoothA2dp.PRIORITY_ON); break; case BluetoothDevice.BOND_BONDING: case BluetoothDevice.BOND_NONE: @@ -104,7 +104,7 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { break; } } else if (action.equals(BluetoothDevice.ACTION_ACL_CONNECTED)) { - if (getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF && + if (getSinkPriority(device) == BluetoothA2dp.PRIORITY_AUTO_CONNECT && isSinkDevice(device)) { // This device is a preferred sink. Make an A2DP connection // after a delay. We delay to avoid connection collisions, @@ -171,7 +171,7 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { // check bluetooth is still on, device is still preferred, and // nothing is currently connected if (mBluetoothService.isEnabled() && - getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF && + getSinkPriority(device) == BluetoothA2dp.PRIORITY_AUTO_CONNECT && lookupSinksMatchingStates(new int[] { BluetoothA2dp.STATE_CONNECTING, BluetoothA2dp.STATE_CONNECTED, @@ -376,6 +376,16 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { return sinks.toArray(new BluetoothDevice[sinks.size()]); } + public synchronized BluetoothDevice[] getNonDisconnectedSinks() { + mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + Set sinks = lookupSinksMatchingStates( + new int[] {BluetoothA2dp.STATE_CONNECTED, + BluetoothA2dp.STATE_PLAYING, + BluetoothA2dp.STATE_CONNECTING, + BluetoothA2dp.STATE_DISCONNECTING}); + return sinks.toArray(new BluetoothDevice[sinks.size()]); + } + public synchronized int getSinkState(BluetoothDevice device) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); Integer state = mAudioDevices.get(device); @@ -450,6 +460,14 @@ public class BluetoothA2dpService extends IBluetoothA2dp.Stub { if (state == BluetoothA2dp.STATE_CONNECTING) { mAudioManager.setParameters("A2dpSuspended=false"); } + + if (state == BluetoothA2dp.STATE_CONNECTING || + state == BluetoothA2dp.STATE_CONNECTED) { + // We have connected or attempting to connect. + // Bump priority + setSinkPriority(device, BluetoothA2dp.PRIORITY_AUTO_CONNECT); + } + Intent intent = new Intent(BluetoothA2dp.ACTION_SINK_STATE_CHANGED); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device); intent.putExtra(BluetoothA2dp.EXTRA_PREVIOUS_SINK_STATE, prevState); diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index c0b9a6843ea..0d0d2454895 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -292,9 +292,9 @@ class BluetoothEventLoop { mBluetoothService.setProperty(name, propValues[1]); } else if (name.equals("Pairable") || name.equals("Discoverable")) { String pairable = name.equals("Pairable") ? propValues[1] : - mBluetoothService.getProperty("Pairable"); + mBluetoothService.getPropertyInternal("Pairable"); String discoverable = name.equals("Discoverable") ? propValues[1] : - mBluetoothService.getProperty("Discoverable"); + mBluetoothService.getPropertyInternal("Discoverable"); // This shouldn't happen, unless Adapter Properties are null. if (pairable == null || discoverable == null) @@ -492,6 +492,14 @@ class BluetoothEventLoop { mBluetoothService.getBondState().getPendingOutgoingBonding(); if (address.equals(pendingOutgoingAddress)) { // we initiated the bonding + + // Check if its a dock + if (mBluetoothService.isBluetoothDock(address)) { + String pin = mBluetoothService.getDockPin(); + mBluetoothService.setPin(address, BluetoothDevice.convertPinToBytes(pin)); + return; + } + BluetoothClass btClass = new BluetoothClass(mBluetoothService.getRemoteClass(address)); // try 0000 once if the device looks dumb @@ -538,12 +546,14 @@ class BluetoothEventLoop { boolean authorized = false; ParcelUuid uuid = ParcelUuid.fromString(deviceUuid); + BluetoothA2dp a2dp = new BluetoothA2dp(mContext); + // Bluez sends the UUID of the local service being accessed, _not_ the // remote service if (mBluetoothService.isEnabled() && (BluetoothUuid.isAudioSource(uuid) || BluetoothUuid.isAvrcpTarget(uuid) - || BluetoothUuid.isAdvAudioDist(uuid))) { - BluetoothA2dp a2dp = new BluetoothA2dp(mContext); + || BluetoothUuid.isAdvAudioDist(uuid)) && + (a2dp.getNonDisconnectedSinks().size() == 0)) { BluetoothDevice device = mAdapter.getRemoteDevice(address); authorized = a2dp.getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF; if (authorized) { diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java index d1dd3110286..018f7d7024d 100644 --- a/core/java/android/server/BluetoothService.java +++ b/core/java/android/server/BluetoothService.java @@ -32,16 +32,17 @@ import android.bluetooth.BluetoothSocket; import android.bluetooth.BluetoothUuid; import android.bluetooth.IBluetooth; import android.bluetooth.IBluetoothCallback; -import android.os.ParcelUuid; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.os.Binder; -import android.os.IBinder; import android.os.Handler; +import android.os.IBinder; import android.os.Message; +import android.os.ParcelUuid; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemService; @@ -50,7 +51,13 @@ import android.util.Log; import com.android.internal.app.IBatteryStats; +import java.io.BufferedInputStream; +import java.io.BufferedWriter; import java.io.FileDescriptor; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.ArrayList; @@ -58,6 +65,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Random; public class BluetoothService extends IBluetooth.Stub { private static final String TAG = "BluetoothService"; @@ -65,7 +73,6 @@ public class BluetoothService extends IBluetooth.Stub { private int mNativeData; private BluetoothEventLoop mEventLoop; - private IntentFilter mIntentFilter; private boolean mIsAirplaneSensitive; private int mBluetoothState; private boolean mRestart = false; // need to call enable() after disable() @@ -79,6 +86,12 @@ public class BluetoothService extends IBluetooth.Stub { private static final String BLUETOOTH_ADMIN_PERM = android.Manifest.permission.BLUETOOTH_ADMIN; private static final String BLUETOOTH_PERM = android.Manifest.permission.BLUETOOTH; + private static final String DOCK_ADDRESS_PATH = "/sys/class/switch/dock/bt_addr"; + private static final String DOCK_PIN_PATH = "/sys/class/switch/dock/bt_pin"; + + private static final String SHARED_PREFERENCE_DOCK_ADDRESS = "dock_bluetooth_address"; + private static final String SHARED_PREFERENCES_NAME = "bluetooth_service_settings"; + private static final int MESSAGE_REGISTER_SDP_RECORDS = 1; private static final int MESSAGE_FINISH_DISABLE = 2; private static final int MESSAGE_UUID_INTENT = 3; @@ -104,6 +117,9 @@ public class BluetoothService extends IBluetooth.Stub { private final HashMap mServiceRecordToPid; + private static String mDockAddress; + private String mDockPin; + private static class RemoteService { public String address; public ParcelUuid uuid; @@ -150,7 +166,79 @@ public class BluetoothService extends IBluetooth.Stub { mUuidIntentTracker = new ArrayList(); mUuidCallbackTracker = new HashMap(); mServiceRecordToPid = new HashMap(); - registerForAirplaneMode(); + + IntentFilter filter = new IntentFilter(); + registerForAirplaneMode(filter); + + filter.addAction(Intent.ACTION_DOCK_EVENT); + mContext.registerReceiver(mReceiver, filter); + } + + public static synchronized String readDockBluetoothAddress() { + if (mDockAddress != null) return mDockAddress; + + BufferedInputStream file = null; + String dockAddress; + try { + file = new BufferedInputStream(new FileInputStream(DOCK_ADDRESS_PATH)); + byte[] address = new byte[17]; + file.read(address); + dockAddress = new String(address); + dockAddress = dockAddress.toUpperCase(); + if (BluetoothAdapter.checkBluetoothAddress(dockAddress)) { + mDockAddress = dockAddress; + return mDockAddress; + } else { + log("CheckBluetoothAddress failed for car dock address:" + dockAddress); + } + } catch (FileNotFoundException e) { + log("FileNotFoundException while trying to read dock address"); + } catch (IOException e) { + log("IOException while trying to read dock address"); + } finally { + if (file != null) { + try { + file.close(); + } catch (IOException e) { + // Ignore + } + } + } + mDockAddress = null; + return null; + } + + private synchronized boolean writeDockPin() { + BufferedWriter out = null; + try { + out = new BufferedWriter(new FileWriter(DOCK_PIN_PATH)); + + // Generate a random 4 digit pin between 0000 and 9999 + // This is not truly random but good enough for our purposes. + int pin = (int) Math.floor(Math.random() * 10000); + + mDockPin = String.format("%04d", pin); + out.write(mDockPin); + return true; + } catch (FileNotFoundException e) { + log("FileNotFoundException while trying to write dock pairing pin"); + } catch (IOException e) { + log("IOException while while trying to write dock pairing pin"); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + // Ignore + } + } + } + mDockPin = null; + return false; + } + + /*package*/ synchronized String getDockPin() { + return mDockPin; } public synchronized void initAfterRegistration() { @@ -160,9 +248,7 @@ public class BluetoothService extends IBluetooth.Stub { @Override protected void finalize() throws Throwable { - if (mIsAirplaneSensitive) { - mContext.unregisterReceiver(mReceiver); - } + mContext.unregisterReceiver(mReceiver); try { cleanupNativeDataNative(); } finally { @@ -172,6 +258,10 @@ public class BluetoothService extends IBluetooth.Stub { public boolean isEnabled() { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + return isEnabledInternal(); + } + + private boolean isEnabledInternal() { return mBluetoothState == BluetoothAdapter.STATE_ON; } @@ -328,7 +418,7 @@ public class BluetoothService extends IBluetooth.Stub { public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_REGISTER_SDP_RECORDS: - if (!isEnabled()) { + if (!isEnabledInternal()) { return; } // SystemService.start() forks sdptool to register service @@ -340,14 +430,14 @@ public class BluetoothService extends IBluetooth.Stub { // records, use a DBUS call instead. switch (msg.arg1) { case 1: - Log.d(TAG, "Registering hsag record"); - SystemService.start("hsag"); + Log.d(TAG, "Registering hfag record"); + SystemService.start("hfag"); mHandler.sendMessageDelayed( mHandler.obtainMessage(MESSAGE_REGISTER_SDP_RECORDS, 2, -1), 500); break; case 2: - Log.d(TAG, "Registering hfag record"); - SystemService.start("hfag"); + Log.d(TAG, "Registering hsag record"); + SystemService.start("hsag"); mHandler.sendMessageDelayed( mHandler.obtainMessage(MESSAGE_REGISTER_SDP_RECORDS, 3, -1), 500); break; @@ -375,7 +465,7 @@ public class BluetoothService extends IBluetooth.Stub { break; case MESSAGE_DISCOVERABLE_TIMEOUT: int mode = msg.arg1; - if (isEnabled()) { + if (isEnabledInternal()) { // TODO: Switch back to the previous scan mode // This is ok for now, because we only use // CONNECTABLE and CONNECTABLE_DISCOVERABLE @@ -502,10 +592,14 @@ public class BluetoothService extends IBluetooth.Stub { // List of names of Bluetooth devices for which auto pairing should be // disabled. - private final ArrayList mAutoPairingNameBlacklist = + private final ArrayList mAutoPairingExactNameBlacklist = new ArrayList(Arrays.asList( "Motorola IHF1000", "i.TechBlueBAND", "X5 Stereo v1.3")); + private final ArrayList mAutoPairingPartialNameBlacklist = + new ArrayList(Arrays.asList( + "BMW", "Audi")); + // If this is an outgoing connection, store the address. // There can be only 1 pending outgoing connection at a time, private String mPendingOutgoingBonding; @@ -523,7 +617,7 @@ public class BluetoothService extends IBluetooth.Stub { return; } String []bonds = null; - String val = getProperty("Devices"); + String val = getPropertyInternal("Devices"); if (val != null) { bonds = val.split(","); } @@ -585,9 +679,13 @@ public class BluetoothService extends IBluetooth.Stub { String name = getRemoteName(address); if (name != null) { - for (String blacklistName : mAutoPairingNameBlacklist) { + for (String blacklistName : mAutoPairingExactNameBlacklist) { if (name.equals(blacklistName)) return true; } + + for (String blacklistName : mAutoPairingPartialNameBlacklist) { + if (name.startsWith(blacklistName)) return true; + } } return false; } @@ -667,6 +765,7 @@ public class BluetoothService extends IBluetooth.Stub { } /*package*/synchronized void getAllProperties() { + mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); mAdapterProperties.clear(); @@ -726,16 +825,19 @@ public class BluetoothService extends IBluetooth.Stub { // The following looks dirty. private boolean setPropertyString(String key, String value) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return false; return setAdapterPropertyStringNative(key, value); } private boolean setPropertyInteger(String key, int value) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return false; return setAdapterPropertyIntegerNative(key, value); } private boolean setPropertyBoolean(String key, boolean value) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return false; return setAdapterPropertyBooleanNative(key, value ? 1 : 0); } @@ -789,7 +891,12 @@ public class BluetoothService extends IBluetooth.Stub { return true; } - /*package*/ synchronized String getProperty (String name) { + /*package*/ synchronized String getProperty(String name) { + if (!isEnabledInternal()) return null; + return getPropertyInternal(name); + } + + /*package*/ synchronized String getPropertyInternal(String name) { if (!mAdapterProperties.isEmpty()) return mAdapterProperties.get(name); getAllProperties(); @@ -844,7 +951,7 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized int getScanMode() { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); - if (!isEnabled()) + if (!isEnabledInternal()) return BluetoothAdapter.SCAN_MODE_NONE; boolean pairable = getProperty("Pairable").equals("true"); @@ -855,15 +962,16 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean startDiscovery() { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); - if (!isEnabled()) { - return false; - } + if (!isEnabledInternal()) return false; + return startDiscoveryNative(); } public synchronized boolean cancelDiscovery() { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + return stopDiscoveryNative(); } @@ -879,6 +987,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean createBond(String address) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -898,6 +1008,13 @@ public class BluetoothService extends IBluetooth.Stub { return false; } + if (address.equals(mDockAddress)) { + if (!writeDockPin()) { + log("Error while writing Pin for the dock"); + return false; + } + } + if (!createPairedDeviceNative(address, 60000 /* 1 minute */)) { return false; } @@ -911,6 +1028,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean cancelBondProcess(String address) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -928,6 +1047,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean removeBond(String address) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -947,11 +1068,20 @@ public class BluetoothService extends IBluetooth.Stub { return mBondState.getBondState(address.toUpperCase()); } + public synchronized boolean isBluetoothDock(String address) { + SharedPreferences sp = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, + mContext.MODE_PRIVATE); + + return sp.contains(SHARED_PREFERENCE_DOCK_ADDRESS + address); + } + /*package*/ boolean isRemoteDeviceInCache(String address) { return (mDeviceProperties.get(address) != null); } /*package*/ String[] getRemoteDeviceProperties(String address) { + if (!isEnabledInternal()) return null; + String objectPath = getObjectPathFromAddress(address); return (String [])getDevicePropertiesNative(objectPath); } @@ -1047,6 +1177,8 @@ public class BluetoothService extends IBluetooth.Stub { return false; } + if (!isEnabledInternal()) return false; + return setDevicePropertyBooleanNative(getObjectPathFromAddress(address), "Trusted", value ? 1 : 0); } @@ -1136,6 +1268,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean fetchRemoteUuids(String address, ParcelUuid uuid, IBluetoothCallback callback) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return false; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -1190,6 +1324,8 @@ public class BluetoothService extends IBluetooth.Stub { */ public int getRemoteServiceChannel(String address, ParcelUuid uuid) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return -1; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return BluetoothDevice.ERROR; } @@ -1208,6 +1344,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean setPin(String address, byte[] pin) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (pin == null || pin.length <= 0 || pin.length > 16 || !BluetoothAdapter.checkBluetoothAddress(address)) { return false; @@ -1234,6 +1372,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean setPasskey(String address, int passkey) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (passkey < 0 || passkey > 999999 || !BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -1251,6 +1391,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean setPairingConfirmation(String address, boolean confirm) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + address = address.toUpperCase(); Integer data = mEventLoop.getPasskeyAgentRequestData().remove(address); if (data == null) { @@ -1265,6 +1407,8 @@ public class BluetoothService extends IBluetooth.Stub { public synchronized boolean cancelPairingUserInput(String address) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); + if (!isEnabledInternal()) return false; + if (!BluetoothAdapter.checkBluetoothAddress(address)) { return false; } @@ -1281,7 +1425,7 @@ public class BluetoothService extends IBluetooth.Stub { return cancelPairingUserInputNative(address, data.intValue()); } - public void updateDeviceServiceChannelCache(String address) { + /*package*/ void updateDeviceServiceChannelCache(String address) { ParcelUuid[] deviceUuids = getRemoteUuids(address); // We are storing the rfcomm channel numbers only for the uuids // we are interested in. @@ -1356,8 +1500,9 @@ public class BluetoothService extends IBluetooth.Stub { */ public synchronized int addRfcommServiceRecord(String serviceName, ParcelUuid uuid, int channel, IBinder b) { - mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, - "Need BLUETOOTH permission"); + mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + if (!isEnabledInternal()) return -1; + if (serviceName == null || uuid == null || channel < 1 || channel > BluetoothSocket.MAX_RFCOMM_CHANNEL) { return -1; @@ -1417,6 +1562,8 @@ public class BluetoothService extends IBluetooth.Stub { private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { + if (intent == null) return; + String action = intent.getAction(); if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) { ContentResolver resolver = context.getContentResolver(); @@ -1431,18 +1578,31 @@ public class BluetoothService extends IBluetooth.Stub { disable(false); } } + } else if (Intent.ACTION_DOCK_EVENT.equals(action)) { + int state = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, + Intent.EXTRA_DOCK_STATE_UNDOCKED); + if (DBG) Log.v(TAG, "Received ACTION_DOCK_EVENT with State:" + state); + if (state == Intent.EXTRA_DOCK_STATE_UNDOCKED) { + mDockAddress = null; + mDockPin = null; + } else { + SharedPreferences.Editor editor = + mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, + mContext.MODE_PRIVATE).edit(); + editor.putBoolean(SHARED_PREFERENCE_DOCK_ADDRESS + mDockAddress, true); + editor.commit(); + } } } }; - private void registerForAirplaneMode() { + private void registerForAirplaneMode(IntentFilter filter) { String airplaneModeRadios = Settings.System.getString(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS); mIsAirplaneSensitive = airplaneModeRadios == null ? true : airplaneModeRadios.contains(Settings.System.RADIO_BLUETOOTH); if (mIsAirplaneSensitive) { - mIntentFilter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED); - mContext.registerReceiver(mReceiver, mIntentFilter); + filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); } } @@ -1598,7 +1758,7 @@ public class BluetoothService extends IBluetooth.Stub { } /*package*/ String getAddressFromObjectPath(String objectPath) { - String adapterObjectPath = getProperty("ObjectPath"); + String adapterObjectPath = getPropertyInternal("ObjectPath"); if (adapterObjectPath == null || objectPath == null) { Log.e(TAG, "getAddressFromObjectPath: AdpaterObjectPath:" + adapterObjectPath + " or deviceObjectPath:" + objectPath + " is null"); @@ -1618,7 +1778,7 @@ public class BluetoothService extends IBluetooth.Stub { } /*package*/ String getObjectPathFromAddress(String address) { - String path = getProperty("ObjectPath"); + String path = getPropertyInternal("ObjectPath"); if (path == null) { Log.e(TAG, "Error: Object Path is null"); return null; diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index b29d8374d7a..45719e49fdd 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -44,9 +44,16 @@ import android.view.ViewRoot; import android.view.WindowManager; import android.view.WindowManagerImpl; +import java.util.ArrayList; + /** * A wallpaper service is responsible for showing a live wallpaper behind - * applications that would like to sit on top of it. + * applications that would like to sit on top of it. This service object + * itself does very little -- its only purpose is to generate instances of + * {@link Engine} as needed. Implementing a wallpaper thus + * involves subclassing from this, subclassing an Engine implementation, + * and implementing {@link #onCreateEngine()} to return a new instance of + * your engine. */ public abstract class WallpaperService extends Service { /** @@ -78,6 +85,8 @@ public abstract class WallpaperService extends Service { private static final int MSG_TOUCH_EVENT = 10040; private Looper mCallbackLooper; + private final ArrayList mActiveEngines + = new ArrayList(); static final class WallpaperCommand { String action; @@ -591,8 +600,10 @@ public abstract class WallpaperService extends Service { } void doVisibilityChanged(boolean visible) { - mVisible = visible; - reportVisibility(); + if (!mDestroyed) { + mVisible = visible; + reportVisibility(); + } } void reportVisibility() { @@ -661,6 +672,10 @@ public abstract class WallpaperService extends Service { } void detach() { + if (mDestroyed) { + return; + } + mDestroyed = true; if (mVisible) { @@ -768,10 +783,12 @@ public abstract class WallpaperService extends Service { } Engine engine = onCreateEngine(); mEngine = engine; + mActiveEngines.add(engine); engine.attach(this); return; } case DO_DETACH: { + mActiveEngines.remove(mEngine); mEngine.detach(); return; } @@ -839,6 +856,20 @@ public abstract class WallpaperService extends Service { } } + @Override + public void onCreate() { + super.onCreate(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + for (int i=0; i callback = (ValueCallback) values.get(CALLBACK); + Set origins = (Set) values.get(ORIGINS); + ValueCallback > callback = (ValueCallback >) values.get(CALLBACK); callback.onReceiveValue(origins); } break; case RETURN_ALLOWED: { @@ -122,10 +136,9 @@ public final class GeolocationPermissions { case GET_ORIGINS: { getOriginsImpl(); ValueCallback callback = (ValueCallback) msg.obj; - Set origins = new HashSet(mOrigins); Map values = new HashMap(); values.put(CALLBACK, callback); - values.put(ORIGINS, origins); + values.put(ORIGINS, mOrigins); postUIMessage(Message.obtain(null, RETURN_ORIGINS, values)); } break; case GET_ALLOWED: { @@ -185,15 +198,17 @@ public final class GeolocationPermissions { * Gets the set of origins for which Geolocation permissions are stored. * Note that we represent the origins as strings. These are created using * WebCore::SecurityOrigin::toString(). As long as all 'HTML 5 modules' - * (Database, Geolocation etc) do so, it's safe to match up origins for the - * purposes of displaying UI. + * (Database, Geolocation etc) do so, it's safe to match up origins based + * on this string. + * + * Callback is a ValueCallback object whose onReceiveValue method will be + * called asynchronously with the set of origins. */ - public void getOrigins(ValueCallback callback) { + public void getOrigins(ValueCallback > callback) { if (callback != null) { if (WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName())) { getOriginsImpl(); - Set origins = new HashSet(mOrigins); - callback.onReceiveValue(origins); + callback.onReceiveValue(mOrigins); } else { postMessage(Message.obtain(null, GET_ORIGINS, callback)); } @@ -210,6 +225,9 @@ public final class GeolocationPermissions { /** * Gets the permission state for the specified origin. + * + * Callback is a ValueCallback object whose onReceiveValue method will be + * called asynchronously with the permission state for the origin. */ public void getAllowed(String origin, ValueCallback callback) { if (callback == null) { @@ -231,7 +249,7 @@ public final class GeolocationPermissions { } /** - * Helper method to get the permission state. + * Helper method to get the permission state for the specified origin. */ private void getAllowedImpl(String origin) { // Called on the WebKit thread. diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java index 92676aac8c7..8ca4142cc7f 100644 --- a/core/java/android/webkit/WebChromeClient.java +++ b/core/java/android/webkit/WebChromeClient.java @@ -256,29 +256,34 @@ public class WebChromeClient { } /** - * Add a JavaScript error message to the console. Clients should override - * this to process the log message as they see fit. + * Report a JavaScript error message to the host application. The ChromeClient + * should override this to process the log message as they see fit. * @param message The error message to report. * @param lineNumber The line number of the error. * @param sourceID The name of the source file that caused the error. */ - public void addMessageToConsole(String message, int lineNumber, String sourceID) {} + public void onConsoleMessage(String message, int lineNumber, String sourceID) {} /** - * Ask the host application for an icon to represent a
  • + + +

    Step 5

    + +

    Fill in the body of the onListItemClick() override.

    +

    onListItemClick() is a callback method that we'll override. It is called when + the user selects an item from the list. It is passed four parameters: the + ListView object it was invoked from, the View + inside the ListView that was clicked on, the + position in the list that was clicked, and the + mRowId of the item that was clicked. In this instance we can + ignore the first two parameters (we only have one ListView it + could be), and we ignore the mRowId as well. All we are + interested in is the position that the user selected. We use + this to get the data from the correct row, and bundle it up to send to + the NoteEdit Activity.

    +

    In our implementation of the callback, the method creates an + Intent to edit the note using + the NoteEdit class. It then adds data into the extras Bundle of + the Intent, which will be passed to the called Activity. We use it + to pass in the title and body text, and the mRowId for the note we are + editing. Finally, it will fire the Intent using the + startActivityForResult() method call. Here's the code that + belongs in onListItemClick():

    +
    +super.onListItemClick(l, v, position, id);
    +Cursor c = mNotesCursor;
    +c.moveToPosition(position);
    +Intent i = new Intent(this, NoteEdit.class);
    +i.putExtra(NotesDbAdapter.KEY_ROWID, id);
    +i.putExtra(NotesDbAdapter.KEY_TITLE, c.getString(
    +        c.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
    +i.putExtra(NotesDbAdapter.KEY_BODY, c.getString(
    +        c.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
    +startActivityForResult(i, ACTIVITY_EDIT);
    +
      +
    • + putExtra() is the method to add items into the extras Bundle + to pass in to intent invocations. Here, we are + using the Bundle to pass in the title, body and mRowId of the note we want to edit. +
    • +
    • + The details of the note are pulled out from our query Cursor, which we move to the + proper position for the element that was selected in the list, with + the moveToPosition() method.
    • +
    • With the extras added to the Intent, we invoke the Intent on the + NoteEdit class by passing startActivityForResult() + the Intent and the request code. (The request code will be + returned to onActivityResult as the requestCode parameter.)
    • +
    +

    Note: We assign the mNotesCursor field to a local variable at the + start of the method. This is done as an optimization of the Android code. Accessing a local + variable is much more efficient than accessing a field in the Dalvik VM, so by doing this + we make only one access to the field, and five accesses to the local variable, making the + routine much more efficient. It is recommended that you use this optimization when possible.

    + + +

    Step 6

    + +

    The above createNote() and onListItemClick() + methods use an asynchronous Intent invocation. We need a handler for the callback, so here we fill + in the body of the onActivityResult().

    +

    onActivityResult() is the overridden method + which will be called when an Activity returns with a result. (Remember, an Activity + will only return a result if launched with startActivityForResult.) The parameters provided + to the callback are:

    +
      +
    • requestCode — the original request code + specified in the Intent invocation (either ACTIVITY_CREATE or + ACTIVITY_EDIT for us). +
    • +
    • resultCode — the result (or error code) of the call, this + should be zero if everything was OK, but may have a non-zero code indicating + that something failed. There are standard result codes available, and you + can also create your own constants to indicate specific problems. +
    • +
    • intent — this is an Intent created by the Activity returning + results. It can be used to return data in the Intent "extras." +
    • +
    +

    The combination of startActivityForResult() and + onActivityResult() can be thought of as an asynchronous RPC + (remote procedure call) and forms the recommended way for an Activity to invoke + another and share services.

    +

    Here's the code that belongs in your onActivityResult():

    +
    +super.onActivityResult(requestCode, resultCode, intent);
    +Bundle extras = intent.getExtras();
    +
    +switch(requestCode) {
    +case ACTIVITY_CREATE:
    +    String title = extras.getString(NotesDbAdapter.KEY_TITLE);
    +    String body = extras.getString(NotesDbAdapter.KEY_BODY);
    +    mDbHelper.createNote(title, body);
    +    fillData();
    +    break;
    +case ACTIVITY_EDIT:
    +    Long mRowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
    +    if (mRowId != null) {
    +        String editTitle = extras.getString(NotesDbAdapter.KEY_TITLE);
    +        String editBody = extras.getString(NotesDbAdapter.KEY_BODY);
    +        mDbHelper.updateNote(mRowId, editTitle, editBody);
    +    }
    +    fillData();
    +    break;
    +}
    + +
      +
    • + We are handling both the ACTIVITY_CREATE and + ACTIVITY_EDIT activity results in this method. +
    • +
    • + In the case of a create, we pull the title and body from the extras (retrieved from the + returned Intent) and use them to create a new note. +
    • +
    • + In the case of an edit, we pull the mRowId as well, and use that to update + the note in the database. +
    • +
    • + fillData() at the end ensures everything is up to date . +
    • +
    + + +

    Step 7

    + + + +

    Open the file note_edit.xml that has been provided and take a + look at it. This is the UI code for the Note Editor.

    +

    This is the most + sophisticated UI we have dealt with yet. The file is given to you to avoid + problems that may sneak in when typing the code. (The XML is very strict + about case sensitivity and structure, mistakes in these are the usual cause + of problems with layout.)

    +

    There is a new parameter used + here that we haven't seen before: android:layout_weight (in + this case set to use the value 1 in each case).

    +

    layout_weight is used in LinearLayouts + to assign "importance" to Views within the layout. All Views have a default + layout_weight of zero, meaning they take up only as much room + on the screen as they need to be displayed. Assigning a value higher than + zero will split up the rest of the available space in the parent View, according + to the value of each View's layout_weight and its ratio to the + overall layout_weight specified in the current layout for this + and other View elements.

    +

    To give an example: let's say we have a text label + and two text edit elements in a horizontal row. The label has no + layout_weight specified, so it takes up the minimum space + required to render. If the layout_weight of each of the two + text edit elements is set to 1, the remaining width in the parent layout will + be split equally between them (because we claim they are equally important). + If the first one has a layout_weight of 1 + and the second has a layout_weight of 2, then one third of the + remaining space will be given to the first, and two thirds to the + second (because we claim the second one is more important).

    +

    This layout also demonstrates how to nest multiple layouts + inside each other to achieve a more complex and pleasant layout. In this + example, a horizontal linear layout is nested inside the vertical one to + allow the title label and text field to be alongside each other, + horizontally.

    + + +

    Step 8

    + +

    Create a NoteEdit class that extends + android.app.Activity.

    +

    This is the first time we will have + created an Activity without the Android Eclipse plugin doing it for us. When + you do so, the onCreate() method is not automatically + overridden for you. It is hard to imagine an Activity that doesn't override + the onCreate() method, so this should be the first thing you do.

    +
      +
    1. Right click on the com.android.demo.notepad2 package + in the Package Explorer, and select New > Class from the popup + menu.
    2. +
    3. Fill in NoteEdit for the Name: field in the + dialog.
    4. +
    5. In the Superclass: field, enter + android.app.Activity (you can also just type Activity and hit + Ctrl-Space on Windows and Linux or Cmd-Space on the Mac, to invoke code + assist and find the right package and class).
    6. +
    7. Click Finish.
    8. +
    9. In the resulting NoteEdit class, right click in the editor + window and select Source > Override/Implement Methods...
    10. +
    11. Scroll down through the checklist in the dialog until you see + onCreate(Bundle) — and check the box next to it.
    12. +
    13. Click OK.

      The method should now appear in your class.

    14. +
    + +

    Step 9

    + +

    Fill in the body of the onCreate() method for NoteEdit.

    + +

    This will set the title of our new Activity to say "Edit Note" (one + of the strings defined in strings.xml). It will also set the + content view to use our note_edit.xml layout file. We can then + grab handles to the title and body text edit views, and the confirm button, + so that our class can use them to set and get the note title and body, + and attach an event to the confirm button for when it is pressed by the + user.

    +

    We can then unbundle the values that were passed in to the Activity + with the extras Bundle attached to the calling Intent. We'll use them to pre-populate + the title and body text edit views so that the user can edit them. + Then we will grab and store the mRowId so we can keep + track of what note the user is editing.

    + +
      +
    1. + Inside onCreate(), set up the layout:
      +
      setContentView(R.layout.note_edit);
      +
    2. +
    3. + Find the edit and button components we need: +

      These are found by the + IDs associated to them in the R class, and need to be cast to the right + type of View (EditText for the two text views, + and Button for the confirm button):

      +
      +mTitleText = (EditText) findViewById(R.id.title);
      +mBodyText = (EditText) findViewById(R.id.body);
      +Button confirmButton = (Button) findViewById(R.id.confirm);
      +

      Note that mTitleText and mBodyText are member + fields (you need to declare them at the top of the class definition).

      +
    4. +
    5. At the top of the class, declare a Long mRowId private field to store + the current mRowId being edited (if any). +
    6. +
    7. Continuing inside onCreate(), + add code to initialize the title, body and + mRowId from the extras Bundle in + the Intent (if it is present):
      +
      +mRowId = null;
      +Bundle extras = getIntent().getExtras();
      +if (extras != null) {
      +    String title = extras.getString(NotesDbAdapter.KEY_TITLE);
      +    String body = extras.getString(NotesDbAdapter.KEY_BODY);
      +    mRowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
      +           
      +    if (title != null) {
      +        mTitleText.setText(title);
      +    }
      +    if (body != null) {
      +        mBodyText.setText(body);
      +    }
      +}
      +
        +
      • + We are pulling the title and + body out of the + extras Bundle that was set from the + Intent invocation. +
      • + We also null-protect the text field setting (i.e., we don't want to set + the text fields to null accidentally).
      • +
      +
    8. +
    9. + Create an onClickListener() for the button: +

      Listeners can be one of the more confusing aspects of UI + implementation, but + what we are trying to achieve in this case is simple. We want an + onClick() method to be called when the user presses the + confirm button, and use that to do some work and return the values + of the edited note to the Intent caller. We do this using something called + an anonymous inner class. This is a bit confusing to look at unless you + have seen them before, but all you really need to take away from this is + that you can refer to this code in the future to see how to create a + listener and attach it to a button. (Listeners are a common idiom + in Java development, particularly for user interfaces.) Here's the empty listener:
      +

      +confirmButton.setOnClickListener(new View.OnClickListener() {
      +
      +    public void onClick(View view) {
      +               
      +    }
      +           
      +});
      +
    10. +
    +

    Step 10

    + +

    Fill in the body of the onClick() method of the OnClickListener created in the last step.

    + +

    This is the code that will be run when the user clicks on the + confirm button. We want this to grab the title and body text from the edit + text fields, and put them into the return Bundle so that they can be passed + back to the Activity that invoked this NoteEdit Activity. If the + operation is an edit rather than a create, we also want to put the + mRowId into the Bundle so that the + Notepadv2 class can save the changes back to the correct + note.

    +
      +
    1. + Create a Bundle and put the title and body text into it using the + constants defined in Notepadv2 as keys:
      +
      +Bundle bundle = new Bundle();
      +      
      +bundle.putString(NotesDbAdapter.KEY_TITLE, mTitleText.getText().toString());
      +bundle.putString(NotesDbAdapter.KEY_BODY, mBodyText.getText().toString());
      +if (mRowId != null) {
      +    bundle.putLong(NotesDbAdapter.KEY_ROWID, mRowId);
      +}
      +
    2. +
    3. + Set the result information (the Bundle) in a new Intent and finish the Activity: +
      +Intent mIntent = new Intent();
      +mIntent.putExtras(bundle);
      +setResult(RESULT_OK, mIntent);
      +finish();
      +
        +
      • The Intent is simply our data carrier that carries our Bundle + (with the title, body and mRowId).
      • +
      • The setResult() method is used to set the result + code and return Intent to be passed back to the + Intent caller. In this case everything worked, so we return RESULT_OK for the + result code.
      • +
      • The finish() call is used to signal that the Activity + is done (like a return call). Anything set in the Result will then be + returned to the caller, along with execution control.
      • +
      +
    4. +
    +

    The full onCreate() method (plus supporting class fields) should + now look like this:

    +
    +private EditText mTitleText;
    +private EditText mBodyText;
    +private Long mRowId;
    +
    +@Override
    +protected void onCreate(Bundle savedInstanceState) {
    +    super.onCreate(savedInstanceState);
    +    setContentView(R.layout.note_edit);
    +   
    +    mTitleText = (EditText) findViewById(R.id.title);
    +    mBodyText = (EditText) findViewById(R.id.body);
    +  
    +    Button confirmButton = (Button) findViewById(R.id.confirm);
    +   
    +    mRowId = null;
    +    Bundle extras = getIntent().getExtras();
    +    if (extras != null) {
    +        String title = extras.getString(NotesDbAdapter.KEY_TITLE);
    +        String body = extras.getString(NotesDbAdapter.KEY_BODY);
    +        mRowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
    +      
    +        if (title != null) {
    +            mTitleText.setText(title);
    +        }
    +        if (body != null) {
    +            mBodyText.setText(body);
    +        }
    +    }
    +   
    +    confirmButton.setOnClickListener(new View.OnClickListener() {
    +
    +        public void onClick(View view) {
    +            Bundle bundle = new Bundle();
    +           
    +            bundle.putString(NotesDbAdapter.KEY_TITLE, mTitleText.getText().toString());
    +            bundle.putString(NotesDbAdapter.KEY_BODY, mBodyText.getText().toString());
    +            if (mRowId != null) {
    +                bundle.putLong(NotesDbAdapter.KEY_ROWID, mRowId);
    +            }
    +
    +            Intent mIntent = new Intent();
    +            mIntent.putExtras(bundle);
    +            setResult(RESULT_OK, mIntent);
    +            finish();
    +        }
    +    });
    +}
    + + + +

    Step 11

    + + + +

    Finally, the new Activity has to be defined in the manifest file:

    +

    Before the new Activity can be seen by Android, it needs its own + Activity entry in the AndroidManifest.xml file. This is to let + the system know that it is there and can be called. We could also specify + which IntentFilters the activity implements here, but we are going to skip + this for now and just let Android know that the Activity is + defined.

    +

    There is a Manifest editor included in the Eclipse plugin that makes it much easier + to edit the AndroidManifest file, and we will use this. If you prefer to edit the file directly + or are not using the Eclipse plugin, see the box at the end for information on how to do this + without using the new Manifest editor.

    +

      +
    1. Double click on the AndroidManifest.xml file in the package explorer to open it. +
    2. +
    3. Click the Application tab at the bottom of the Manifest editor.
    4. +
    5. Click Add... in the Application Nodes section. +

      If you see a dialog with radiobuttons at the top, select the top radio button: + "Create a new element at the top level, in Application".

    6. +
    7. Make sure "(A) Activity" is selected in the selection pane of the dialog, and click OK.
    8. +
    9. Click on the new "Activity" node, in the Application Nodes section, then + type .NoteEdit into the Name* + field to the right. Press Return/Enter.
    10. +
    +

    The Android Manifest editor helps you add more complex entries into the AndroidManifest.xml + file, have a look around at some of the other options available (but be careful not to select + them otherwise they will be added to your Manifest). This editor should help you understand + and alter the AndroidManifest.xml file as you move on to more advanced Android applications.

    + +

    If you prefer to edit this file directly, simply open the + AndroidManifest.xml file and look at the source (use the + AndroidManifest.xml tab in the eclipse editor to see the source code directly). + Then edit the file as follows:
    + <activity android:name=".NoteEdit"></activity>

    + This should be placed just below the line that reads:
    + </activity> for the .Notepadv2 activity.

    + +

    Step 12

    + +

    Now Run it!

    +

    You should now be able to add real notes from +the menu, as well as delete an existing one. Notice that in order to delete, you must +first use the directional controls on the device to highlight the note. +Furthermore, selecting a note title from the list should bring up the note +editor to let you edit it. Press confirm when finished to save the changes +back to the database. + +

    Solution and Next Steps

    + +

    You can see the solution to this exercise in Notepadv2Solution +from the zip file to compare with your own.

    +

    Now try editing a note, and then hitting the back button on the emulator +instead of the confirm button (the back button is below the menu button). You +will see an error come up. Clearly our application still has some problems. +Worse still, if you did make some changes and hit the back button, when you go +back into the notepad to look at the note you changed, you will find that all +your changes have been lost. In the next exercise we will fix these +problems.

    + +

    +Once you are ready, move on to Tutorial +Exercise 3 where you will fix the problems with the back button and lost +edits by introducing a proper life cycle into the NoteEdit Activity.

    + + diff --git a/docs/html/resources/tutorials/notepad/notepad-ex3.jd b/docs/html/resources/tutorials/notepad/notepad-ex3.jd new file mode 100644 index 00000000000..8737280ccea --- /dev/null +++ b/docs/html/resources/tutorials/notepad/notepad-ex3.jd @@ -0,0 +1,358 @@ +page.title=Notepad Exercise 3 +parent.title=Notepad Tutorial +parent.link=index.html +@jd:body + + +

    In this exercise, you will use life-cycle event callbacks to store and +retrieve application state data. This exercise demonstrates:

    +
      +
    • Life-cycle events and how your application can use them
    • +
    • Techniques for maintaining application state
    • +
    + + + +

    Step 1

    + +

    Import Notepadv3 into Eclipse. If you see an error about +AndroidManifest.xml, or some problems related to an Android zip +file, right click on the project and select Android Tools > +Fix Project Properties from the popup menu. The starting point for this exercise is +exactly where we left off at the end of the Notepadv2.

    +

    The current application has some problems — hitting the back button when editing +causes a crash, and anything else that happens during editing will cause the +edits to be lost.

    +

    To fix this, we will move most of the functionality for creating and editing +the note into the NoteEdit class, and introduce a full life cycle for editing +notes.

    + +
      +
    1. Remove the code in NoteEdit that parses the title and body + from the extras Bundle. +

      Instead, we are going to use the DBHelper class + to access the notes from the database directly. All we need passed into the + NoteEdit Activity is a mRowId (but only if we are editing, if creating we pass + nothing). Remove these lines:

      +
      +String title = extras.getString(NotesDbAdapter.KEY_TITLE);
      +String body = extras.getString(NotesDbAdapter.KEY_BODY);
      +
    2. +
    3. We will also get rid of the properties that were being passed in + the extras Bundle, which we were using to set the title + and body text edit values in the UI. So delete: +
      +if (title != null) {
      +    mTitleText.setText(title);
      +}
      +if (body != null) {
      +    mBodyText.setText(body);
      +}
      +
    4. +
    + +

    Step 2

    + +

    Create a class field for a NotesDbAdapter at the top of the NoteEdit class:

    +
        private NotesDbAdapter mDbHelper;
    +

    Also add an instance of NotesDbAdapter in the + onCreate() method (right below the super.onCreate() call):

    +
    +    mDbHelper = new NotesDbAdapter(this);
    +    mDbHelper.open();
    + +

    Step 3

    + +

    In NoteEdit, we need to check the savedInstanceState for the +mRowId, in case the note + editing contains a saved state in the Bundle, which we should recover (this would happen + if our Activity lost focus and then restarted).

    +
      +
    1. + Replace the code that currently initializes the mRowId:
      +
      +        mRowId = null;
      +
      +        Bundle extras = getIntent().getExtras();
      +        if (extras != null) {
      +            mRowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
      +        }
      +        
      + with this: +
      +        mRowId = savedInstanceState != null ? savedInstanceState.getLong(NotesDbAdapter.KEY_ROWID) 
      +                                            : null;
      +        if (mRowId == null) {
      +            Bundle extras = getIntent().getExtras();            
      +            mRowId = extras != null ? extras.getLong(NotesDbAdapter.KEY_ROWID) 
      +                                    : null;
      +        }
      +        
      +
    2. +
    3. + Note the null check for savedInstanceState, and we still need to load up + mRowId from the extras Bundle if it is not + provided by the savedInstanceState. This is a ternary operator shorthand + to safely either use the value or null if it is not present. +
    4. +
    + +

    Step 4

    + +

    Next, we need to populate the fields based on the mRowId if we + have it:

    +
    populateFields();
    +

    This goes before the confirmButton.setOnClickListener() line. + We'll define this method in a moment.

    + +

    Step 5

    + +

    Get rid of the Bundle creation and Bundle value settings from the + onClick() handler method. The Activity no longer needs to + return any extra information to the caller. And because we no longer have + an Intent to return, we'll use the shorter version + of setResult():

    +
    +public void onClick(View view) {
    +    setResult(RESULT_OK);
    +    finish();
    +}
    +

    We will take care of storing the updates or new notes in the database + ourselves, using the life-cycle methods.

    + +

    The whole onCreate() method should now look like this:

    +
    +super.onCreate(savedInstanceState);
    + 
    +mDbHelper = new NotesDbAdapter(this);
    +mDbHelper.open();
    + 
    +setContentView(R.layout.note_edit);
    + 
    +mTitleText = (EditText) findViewById(R.id.title);
    +mBodyText = (EditText) findViewById(R.id.body);
    + 
    +Button confirmButton = (Button) findViewById(R.id.confirm);
    + 
    +mRowId = savedInstanceState != null ? savedInstanceState.getLong(NotesDbAdapter.KEY_ROWID) 
    +                                    : null;
    +if (mRowId == null) {
    +    Bundle extras = getIntent().getExtras();
    +    mRowId = extras != null ? extras.getLong(NotesDbAdapter.KEY_ROWID) 
    +                            : null;
    +}
    + 
    +populateFields();
    + 
    +confirmButton.setOnClickListener(new View.OnClickListener() {
    +
    +    public void onClick(View view) {
    +        setResult(RESULT_OK);
    +        finish();
    +    }
    +     
    +});
    + +

    Step 6

    + +

    Define the populateFields() method.

    +
    +private void populateFields() {
    +    if (mRowId != null) {
    +        Cursor note = mDbHelper.fetchNote(mRowId);
    +        startManagingCursor(note);
    +        mTitleText.setText(note.getString(
    +	            note.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
    +        mBodyText.setText(note.getString(
    +                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
    +    }
    +}
    +

    This method uses the NotesDbAdapter.fetchNote() method to find the right note to +edit, then it calls startManagingCursor() from the Activity class, which +is an Android convenience method provided to take care of the Cursor life-cycle. This will release +and re-create resources as dictated by the Activity life-cycle, so we don't need to worry about +doing that ourselves. After that, we just look up the title and body values from the Cursor +and populate the View elements with them.

    + + +

    Step 7

    + + + +

    Still in the NoteEdit class, we now override the methods + onSaveInstanceState(), onPause() and + onResume(). These are our life-cycle methods + (along with onCreate() which we already have).

    + +

    onSaveInstanceState() is called by Android if the + Activity is being stopped and may be killed before it is + resumed! This means it should store any state necessary to + re-initialize to the same condition when the Activity is restarted. It is + the counterpart to the onCreate() method, and in fact the + savedInstanceState Bundle passed in to onCreate() is the same + Bundle that you construct as outState in the + onSaveInstanceState() method.

    + +

    onPause() and onResume() are also + complimentary methods. onPause() is always called when the + Activity ends, even if we instigated that (with a finish() call for example). + We will use this to save the current note back to the database. Good + practice is to release any resources that can be released during an + onPause() as well, to take up less resources when in the + passive state. onResume() will call our populateFields() method + to read the note out of the database again and populate the fields.

    + +

    So, add some space after the populateFields() method + and add the following life-cycle methods:

    +
      +
    1. + onSaveInstanceState(): +
      +    @Override
      +    protected void onSaveInstanceState(Bundle outState) {
      +        super.onSaveInstanceState(outState);
      +        outState.putLong(NotesDbAdapter.KEY_ROWID, mRowId);
      +    }
      +
    2. +
    3. + onPause(): +
      +    @Override
      +    protected void onPause() {
      +        super.onPause();
      +        saveState();
      +    }
      +

      We'll define saveState() next.

      +
    4. +
    5. + onResume(): +
      +    @Override
      +    protected void onResume() {
      +        super.onResume();
      +        populateFields();
      +    }
      +
    6. +
    + + +

    Step 8

    + +

    Define the saveState() method to put the data out to the +database.

    +
    +     private void saveState() {
    +        String title = mTitleText.getText().toString();
    +        String body = mBodyText.getText().toString();
    +
    +        if (mRowId == null) {
    +            long id = mDbHelper.createNote(title, body);
    +            if (id > 0) {
    +                mRowId = id;
    +            }
    +        } else {
    +            mDbHelper.updateNote(mRowId, title, body);
    +        }
    +    }
    +

    Note that we capture the return value from createNote() and if a valid row ID is + returned, we store it in the mRowId field so that we can update the note in future + rather than create a new one (which otherwise might happen if the life-cycle events are + triggered).

    + + +

    Step 9

    + +

    Now pull out the previous handling code from the + onActivityResult() method in the Notepadv3 + class.

    +

    All of the note retrieval and updating now happens within the + NoteEdit life cycle, so all the onActivityResult() + method needs to do is update its view of the data, no other work is + necessary. The resulting method should look like this:

    +
    +@Override
    +protected void onActivityResult(int requestCode, int resultCode, 
    +                                Intent intent) {
    +    super.onActivityResult(requestCode, resultCode, intent);
    +    fillData();
    +}
    + +

    Because the other class now does the work, all this has to do is refresh + the data.

    + +

    Step 10

    + +

    Also remove the lines which set the title and body from the + onListItemClick() method (again they are no longer needed, + only the mRowId is):

    +
    +    Cursor c = mNotesCursor;
    +    c.moveToPosition(position);
    +
    +and also remove: +
    +
    +    i.putExtra(NotesDbAdapter.KEY_TITLE, c.getString(
    +                    c.getColumnIndex(NotesDbAdapter.KEY_TITLE)));
    +    i.putExtra(NotesDbAdapter.KEY_BODY, c.getString(
    +                    c.getColumnIndex(NotesDbAdapter.KEY_BODY)));
    +
    +so that all that should be left in that method is: +
    +
    +    super.onListItemClick(l, v, position, id);
    +    Intent i = new Intent(this, NoteEdit.class);
    +    i.putExtra(NotesDbAdapter.KEY_ROWID, id);
    +    startActivityForResult(i, ACTIVITY_EDIT);
    + +

    You can also now remove the mNotesCursor field from the class, and set it back to using + a local variable in the fillData() method: +

    +    Cursor notesCursor = mDbHelper.fetchAllNotes();

    +

    Note that the m in mNotesCursor denotes a member field, so when we + make notesCursor a local variable, we drop the m. Remember to rename the + other occurrences of mNotesCursor in your fillData() method. + +

    +Run it! (use Run As -> Android Application on the project right +click menu again)

    + +

    Solution and Next Steps

    + +

    You can see the solution to this exercise in Notepadv3Solution +from +the zip file to compare with your own.

    +

    +When you are ready, move on to the Tutorial +Extra Credit exercise, where you can use the Eclipse debugger to +examine the life-cycle events as they happen.

    diff --git a/docs/html/resources/tutorials/notepad/notepad-extra-credit.jd b/docs/html/resources/tutorials/notepad/notepad-extra-credit.jd new file mode 100644 index 00000000000..0d59b56b7a7 --- /dev/null +++ b/docs/html/resources/tutorials/notepad/notepad-extra-credit.jd @@ -0,0 +1,70 @@ +page.title=Notepad Extra Credit +parent.title=Notepad Tutorial +parent.link=index.html +@jd:body + + +

    In this exercise, you will use the debugger to look at the work you did +in Exercise 3. This exercise demonstrates:

    +
      +
    • How to set breakpoints to observe execution
    • +
    • How to run your application in debug mode
    • +
    + +
    + + [Exercise 1] + [Exercise 2] + [Exercise 3] + + [Extra Credit] + +
    + +

    Step 1

    + +

    Using the working Notepadv3, put breakpoints in the code at the + beginning of the onCreate(), onPause(), + onSaveInstanceState() and onResume() methods in the + NoteEdit class (if you are not familiar with Eclipse, just + right click in the narrow grey border on the left of the edit window at the + line you want a breakpoint, and select Toggle Breakpoint, you +should see a blue dot appear).

    + +

    Step 2

    + +

    Now start the notepad demo in debug mode:

    + +
      +
    1. + Right click on the Notepadv3 project and from the Debug menu + select Debug As -> Android Application.
    2. +
    3. + The Android emulator should say "waiting for debugger to connect" + briefly and then run the application.
    4. +
    5. + If it gets stuck on the waiting... screen, quit the emulator and Eclipse, + from the command line do an adb kill-server, and then restart +Eclipse and try again.
    + +

    Step 3

    + +

    When you edit or create a new note you should see the breakpoints getting + hit and the execution stopping.

    + +

    Step 4

    + +

    Hit the Resume button to let execution continue (yellow rectangle with a +green triangle to its right in the Eclipse toolbars near the top).

    + +

    Step 5

    + +

    Experiment a bit with the confirm and back buttons, and try pressing Home and + making other mode changes. Watch what life-cycle events are generated and +when.

    + +

    The Android Eclipse plugin not only offers excellent debugging support for +your application development, but also superb profiling support. You can also +try using Traceview to profile your application. If your application is running too slow, this can help you +find the bottlenecks and fix them.

    + diff --git a/docs/html/resources/tutorials/notepad/notepad-index.jd b/docs/html/resources/tutorials/notepad/notepad-index.jd new file mode 100644 index 00000000000..151c50dcda6 --- /dev/null +++ b/docs/html/resources/tutorials/notepad/notepad-index.jd @@ -0,0 +1,143 @@ +page.title=Notepad Tutorial +@jd:body + + +

    The tutorial in this section gives you a "hands-on" introduction +to the Android framework and the tools you use to build applications on it. +Starting from a preconfigured project file, it guides you through the process of +developing a simple notepad application and provides concrete examples of how to +set up the project, develop the application logic and user interface, and then +compile and run the application.

    + +

    The tutorial presents the notepad application development as a set of +exercises (see below), each consisting of several steps. You can follow along +with the steps in each exercise and gradually build up and refine your +application. The exercises explain each step in detail and provide all the +sample code you need to complete the application.

    + +

    When you are finished with the tutorial, you will have created a functioning +Android application and learned in depth about many of the most important +concepts in Android development. If you want to add more complex features to +your application, you can examine the code in an alternative implementation +of a notepad application, in the +Sample Code documentation.

    + + + +

    Who Should Use this Tutorial

    + +

    This tutorial is designed for experienced developers, especially those with +knowledge of the Java programming language. If you haven't written Java +applications before, you can still use the tutorial, but you might need to work +at a slower pace.

    + +

    The tutorial assumes that you have some familiarity with the basic Android +application concepts and terminology. If you aren't yet familiar with those, you +should read Overview of an Android +Application before continuing.

    + +

    Also note that this tutorial uses +the Eclipse development environment, with the Android plugin installed. If you +are not using Eclipse, you can follow the exercises and build the application, +but you will need to determine how to accomplish the Eclipse-specific +steps in your environment.

    + + +

    Preparing for the Exercises

    + +

    This tutorial builds on the information provided in the Installing the SDK and Hello Android +documents, which explain in detail how to set up your development environment +for building Android applications. Before you start this tutorial, you should +read both these documents, have the SDK installed, and your work environment set up.

    + +

    To prepare for this lesson:

    + +
      +
    1. Download the project + exercises archive (.zip)
    2. +
    3. Unpack the archive file to a suitable location on your machine
    4. +
    5. Open the NotepadCodeLab folder
    6. +
    + +

    Inside the NotepadCodeLab folder, you should see six project +files: Notepadv1, + Notepadv2, Notepadv3, + Notepadv1Solution, Notepadv2Solution + and Notepadv3Solution. The Notepadv# projects are +the starting points for each of the exercises, while the +Notepadv#Solution projects are the exercise + solutions. If you are having trouble with a particular exercise, you + can compare your current work against the exercise solution.

    + + +

    Exercises

    + +

    The table below lists the tutorial exercises and describes the development +areas that each covers. Each exercise assumes that you have completed any +previous exercises.

    + + + + + + + + + + + + + + + + + + +
    Exercise +1Start here. Construct a simple notes list that lets the user add new notes but not +edit them. Demonstrates the basics of ListActivity and creating +and handling + menu options. Uses a SQLite database to store the notes.
    Exercise 2Add a second Activity to the +application. Demonstrates constructing a +new Activity, adding it to the Android manifest, passing data between the +activities, and using more advanced screen layout. Also shows how to +invoke another Activity to return a result, using +startActivityForResult().
    Exercise 3Add handling of life-cycle events to +the application, to let it +maintain application state across the life cycle.
    Extra +CreditDemonstrates how to use the Eclipse +debugger and how you can use it to +view life-cycle events as they are generated. This section is optional but +highly recommended.
    + + + +

    Other Resources and Further Learning

    +
      +
    • For a lighter but broader introduction to concepts not covered in the +tutorial, +take a look at Common Android Tasks.
    • +
    • The Android SDK includes a variety of fully functioning sample applications +that make excellent opportunities for further learning. You can find the sample +applications in the samples/ directory of your downloaded SDK.
    • +
    • This tutorial draws from the full Notepad application included in the +samples/ directory of the SDK, though it does not match it exactly. +When you are done with the tutorial, +it is highly recommended that you take a closer look at this version of the Notepad +application, +as it demonstrates a variety of interesting additions for your application, +such as:
    • +
        +
      • Setting up a custom striped list for the list of notes.
      • +
      • Creating a custom text edit view that overrides the draw() +method to + make it look like a lined notepad.
      • +
      • Implementing a full ContentProvider for notes.
      • +
      • Reverting and discarding edits instead of just automatically saving +them.
      • +
      +
    diff --git a/docs/html/resources/tutorials/views/hello-autocomplete.jd b/docs/html/resources/tutorials/views/hello-autocomplete.jd new file mode 100644 index 00000000000..fba1ad88750 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-autocomplete.jd @@ -0,0 +1,116 @@ +page.title=Hello, AutoCompleteTextView +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    {@link android.widget.AutoCompleteTextView} is an implementation of the EditText widget that will provide +auto-complete suggestions as the user types. The suggestions are extracted from a collection of strings.

    + + +
      +
    1. Start a new project/Activity called HelloAutoComplete.
    2. +
    3. Open the layout file. + Make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      +    android:orientation="horizontal"
      +    android:layout_width="fill_parent" 
      +    android:layout_height="wrap_content">
      +
      +    <TextView
      +        android:layout_width="wrap_content"
      +        android:layout_height="wrap_content"
      +        android:text="Country" />
      +
      +    <AutoCompleteTextView android:id="@+id/edit"
      +        android:layout_width="fill_parent"
      +        android:layout_height="wrap_content"/>
      +
      +</LinearLayout>
      +
      +
    4. + +
    5. Open HelloAutoComplete.java and insert the following as the onCreate method: +
      +@Override
      +protected void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
      +    ArrayAdapter adapter = new ArrayAdapter(this,
      +            android.R.layout.simple_dropdown_item_1line, COUNTRIES);
      +    textView.setAdapter(adapter);
      +}
      +
      +

      Here, we create an AutoComplteteTextView from our layout. We then + create an {@link android.widget.ArrayAdapter} that binds a simple_dropdown_item_1line + layout item to each entry in the COUNTRIES array (which we'll add next). + The last part sets the ArrayAdapter to associate with our AutoCompleteTextView.

      +
    6. + +
    7. After the onCreate() method, add the String array: +
      +static final String[] COUNTRIES = new String[] {
      +  "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
      +  "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
      +  "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
      +  "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
      +  "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
      +  "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
      +  "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
      +  "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
      +  "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
      +  "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
      +  "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
      +  "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
      +  "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
      +  "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
      +  "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
      +  "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
      +  "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
      +  "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
      +  "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
      +  "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
      +  "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
      +  "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
      +  "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
      +  "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
      +  "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
      +  "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
      +  "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
      +  "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
      +  "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
      +  "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
      +  "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
      +  "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
      +  "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
      +  "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
      +  "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
      +  "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
      +  "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
      +  "Ukraine", "United Arab Emirates", "United Kingdom",
      +  "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
      +  "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
      +  "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
      +};
      +
      +

      This is the list of suggestions that will be offered as the user types into the + AutoCompleteTextView.

      +
    8. + +
    9. Now run it.
    10. +
    +

    As you type, you should see something like this:

    + + + +

    References

    +
      +
    • {@link android.R.layout}
    • +
    • {@link android.widget.ArrayAdapter}
    • +
    • {@link android.widget.AutoCompleteTextView}
    • +
    + + diff --git a/docs/html/resources/tutorials/views/hello-datepicker.jd b/docs/html/resources/tutorials/views/hello-datepicker.jd new file mode 100644 index 00000000000..fcd43f3f890 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-datepicker.jd @@ -0,0 +1,151 @@ +page.title=Hello, DatePicker +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.DatePicker} is a widget that allows the user to select a month, day and year.

    + + +
      +
    1. Start a new project/Activity called HelloDatePicker.
    2. +
    3. Open the layout file and make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:orientation="vertical">
      +
      +    <TextView android:id="@+id/dateDisplay"
      +            android:layout_width="wrap_content"
      +            android:layout_height="wrap_content"
      +            android:text=""/>
      +
      +    <Button android:id="@+id/pickDate"
      +            android:layout_width="wrap_content"
      +            android:layout_height="wrap_content"
      +            android:text="Change the date"/>
      +
      +</LinearLayout>
      +
      +

      For the layout, we're using a vertical LinearLayout, with a {@link android.widget.TextView} that + will display the date and a {@link android.widget.Button} that will initiate the DatePicker dialog. + With this layout, the TextView will sit above the Button. + The text value in the TextView is set empty, as it will be filled + with the current date when our Activity runs.

      +
    4. + +
    5. Open HelloDatePicker.java. Insert the following to the HelloDatePicker class: +
      +    private TextView mDateDisplay;
      +    private Button mPickDate;
      +
      +    private int mYear;
      +    private int mMonth;
      +    private int mDay;
      +
      +    static final int DATE_DIALOG_ID = 0;
      +
      +    @Override
      +    protected void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +        setContentView(R.layout.main);
      +
      +        // capture our View elements
      +        mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
      +        mPickDate = (Button) findViewById(R.id.pickDate);
      +
      +        // add a click listener to the button
      +        mPickDate.setOnClickListener(new View.OnClickListener() {
      +            public void onClick(View v) {
      +                showDialog(DATE_DIALOG_ID);
      +            }
      +        });
      +
      +        // get the current date
      +        final Calendar c = Calendar.getInstance();
      +        mYear = c.get(Calendar.YEAR);
      +        mMonth = c.get(Calendar.MONTH);
      +        mDay = c.get(Calendar.DAY_OF_MONTH);
      +
      +        // display the current date
      +        updateDisplay();
      +    }
      +
      +

      Tip: Press Ctrl(or Cmd) + Shift + O to import all needed packages.

      +

      We start by instantiating variables for our Views and date fields. + The DATE_DIALOG_ID is a static integer that uniquely identifies the Dialog. In the + onCreate() method, we get prepared by setting the layout and capturing the View elements. + Then we create an on-click listener for the Button, so that when it is clicked it will + show our DatePicker dialog. The showDialog() method will pop-up the date picker dialog + by calling the onCreateDialog() callback method + (which we'll define in the next section). We then create an + instance of {@link java.util.Calendar} and get the current year, month and day. Finally, we call + updateDisplay()—our own method (defined later) that will fill the TextView.

      +
    6. + +
    7. After the onCreate() method, add the onCreateDialog() callback method +(which is called by showDialog()) +
      +@Override
      +protected Dialog onCreateDialog(int id) {
      +    switch (id) {
      +    case DATE_DIALOG_ID:
      +        return new DatePickerDialog(this,
      +                    mDateSetListener,
      +                    mYear, mMonth, mDay);
      +    }
      +    return null;
      +}
      +
      +

      This method is passed the identifier we gave showDialog() and initializes + the DatePicker to the date we retrieved from our Calendar instance.

      +
    8. + +
    9. Following that, add the updateDisplay() method: +
      +    // updates the date we display in the TextView
      +    private void updateDisplay() {
      +        mDateDisplay.setText(
      +            new StringBuilder()
      +                    // Month is 0 based so add 1
      +                    .append(mMonth + 1).append("-")
      +                    .append(mDay).append("-")
      +                    .append(mYear).append(" "));
      +    }
      +
      +

      This uses the member date values to write the date to our TextView.

      +
    10. +
    11. Finally, add a listener that will be called when the user sets a new date: +
      +    // the callback received when the user "sets" the date in the dialog
      +    private DatePickerDialog.OnDateSetListener mDateSetListener =
      +            new DatePickerDialog.OnDateSetListener() {
      +
      +                public void onDateSet(DatePicker view, int year, 
      +                                      int monthOfYear, int dayOfMonth) {
      +                    mYear = year;
      +                    mMonth = monthOfYear;
      +                    mDay = dayOfMonth;
      +                    updateDisplay();
      +                }
      +            };
      +
      +

      This OnDateSetListener method listens for when the user is done setting the date + (clicks the "Set" button). At that time, this fires and we update our member fields with + the new date defined by the user and update our TextView by calling updateDisplay().

      +
    12. + +
    13. Now run it.
    14. +
    +

    When you press the "Change the date" button, you should see the following:

    + + +

    References

    +
      +
    • {@link android.widget.DatePicker}
    • +
    • {@link android.widget.Button}
    • +
    • {@link android.widget.TextView}
    • +
    • {@link java.util.Calendar}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-formstuff.jd b/docs/html/resources/tutorials/views/hello-formstuff.jd new file mode 100644 index 00000000000..da4289c16ba --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-formstuff.jd @@ -0,0 +1,262 @@ +page.title=Hello, Form Stuff +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    This page introduces a variety of widgets, like image buttons, +text fields, checkboxes and radio buttons.

    + + +
      +
    1. Start a new project/Activity called HelloFormStuff.
    2. +
    3. Your layout file should have a basic LinearLayout: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:orientation="vertical"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent" >
      +    	
      +</LinearLayout>
      +
      +

      For each widget you want to add, just put the respective View inside here.

      +
    4. +
    +

    Tip: As you add new Android code, press Ctrl(or Cmd) + Shift + O +to import all needed packages.

    + + +

    ImageButton

    +

    A button with a custom image on it. +We'll make it display a message when pressed.

    +
      +
    1. + Drag the Android image on the right (or your own image) into the + res/drawable/ directory of your project. + We'll use this for the button.
    2. +
    3. Open the layout file and, inside the LinearLayout, add the {@link android.widget.ImageButton} element: +
      +<ImageButton
      +    android:id="@+id/android_button"
      +    android:layout_width="100dip"
      +    android:layout_height="wrap_content"
      +    android:src="@drawable/android" />	
      +
      +

      The source of the button + is from the res/drawable/ directory, where we've placed the android.png.

      +

      Tip: You can also reference some of the many built-in + images from the Android {@link android.R.drawable} resources, + like ic_media_play, for a "play" button image. To do so, change the source + attribute to android:src="@android:drawable/ic_media_play".

      +
    4. +
    5. To make the button to actually do something, add the following +code at the end of the onCreate() method: +
      +final ImageButton button = (ImageButton) findViewById(R.id.android_button);
      +button.setOnClickListener(new OnClickListener() {
      +    public void onClick(View v) {
      +        // Perform action on clicks
      +        Toast.makeText(HelloFormStuff.this, "Beep Bop", Toast.LENGTH_SHORT).show();
      +    }
      +});
      +
      +

      This captures our ImageButton from the layout, then adds an on-click listener to it. +The {@link android.view.View.OnClickListener} must define the onClick() method, which +defines the action to be made when the button is clicked. Here, we show a +{@link android.widget.Toast} message when clicked.

      +
    6. +
    7. Run it.
    8. +
    + + +

    EditText

    +

    A text field for user input. We'll make it display the text entered so far when the "Enter" key is pressed.

    + +
      +
    1. Open the layout file and, inside the LinearLayout, add the {@link android.widget.EditText} element: +
      +<EditText
      +    android:id="@+id/edittext"
      +    android:layout_width="fill_parent"
      +    android:layout_height="wrap_content"/>
      +
      +
    2. +
    3. To do something with the text that the user enters, add the following code +to the end of the onCreate() method: +
      +final EditText edittext = (EditText) findViewById(R.id.edittext);
      +edittext.setOnKeyListener(new OnKeyListener() {
      +    public boolean onKey(View v, int keyCode, KeyEvent event) {
      +        if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
      +          // Perform action on key press
      +          Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
      +          return true;
      +        }
      +        return false;
      +    }
      +});
      +
      +

      This captures our EditText element from the layout, then adds an on-key listener to it. +The {@link android.view.View.OnKeyListener} must define the onKey() method, which +defines the action to be made when a key is pressed. In this case, we want to listen for the +Enter key (when pressed down), then pop up a {@link android.widget.Toast} message with the +text from the EditText field. Be sure to return true after the event is handled, +so that the event doesn't bubble-up and get handled by the View (which would result in a +carriage return in the text field).

      +
    4. Run it.
    5. +
    + + +

    CheckBox

    +

    A checkbox for selecting items. We'll make it display the the current state when pressed.

    + +
      +
    1. Open the layout file and, inside the LinearLayout, add the {@link android.widget.CheckBox} element: +
      +<CheckBox android:id="@+id/checkbox"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:text="check it out" />
      +
      +
    2. +
    3. To do something when the state is changed, add the following code +to the end of the onCreate() method: +
      +final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
      +checkbox.setOnClickListener(new OnClickListener() {
      +    public void onClick(View v) {
      +        // Perform action on clicks
      +        if (checkbox.isChecked()) {
      +            Toast.makeText(HelloFormStuff.this, "Selected", Toast.LENGTH_SHORT).show();
      +        } else {
      +            Toast.makeText(HelloFormStuff.this, "Not selected", Toast.LENGTH_SHORT).show();
      +        }
      +    }
      +});
      +
      +

      This captures our CheckBox element from the layout, then adds an on-click listener to it. +The {@link android.view.View.OnClickListener} must define the onClick() method, which +defines the action to be made when the checkbox is clicked. Here, we query the current state of the +checkbox, then pop up a {@link android.widget.Toast} message that displays the current state. +Notice that the CheckBox handles its own state change between checked and un-checked, so we just +ask which it currently is.

      +
    4. Run it.
    5. +
    +

    Tip: If you find that you need to change the state +in another way (such as when loading a saved {@link android.preference.CheckBoxPreference}), +use setChecked(true) or toggle().

    + + +

    RadioButton

    +

    Two mutually-exclusive radio buttons—enabling one disables the other. +When each is pressed, we'll pop up a message.

    + +
      +
    1. Open the layout file and, inside the LinearLayout, add two {@link android.widget.RadioButton}s, +inside a {@link android.widget.RadioGroup}: +
      +<RadioGroup
      +  android:layout_width="fill_parent"
      +  android:layout_height="wrap_content"
      +  android:orientation="vertical">
      +  
      +  <RadioButton android:id="@+id/radio_red"
      +      android:layout_width="wrap_content"
      +      android:layout_height="wrap_content"
      +      android:text="Red" />
      +  
      +  <RadioButton android:id="@+id/radio_blue"
      +      android:layout_width="wrap_content"
      +      android:layout_height="wrap_content"
      +      android:text="Blue" />
      +  
      +</RadioGroup>
      +
      +
    2. +
    3. To do something when each is selected, we'll need an OnClickListener. Unlike the other +listeners we've created, instead of creating this one as an anonymous inner class, +we'll create it as a new object. This way, we can re-use the OnClickLIstener for +both RadioButtons. So, add the following code in the HelloFormStuff Activity +(outside the onCreate() method): +
      +OnClickListener radio_listener = new OnClickListener() {
      +    public void onClick(View v) {
      +        // Perform action on clicks
      +        RadioButton rb = (RadioButton) v;
      +        Toast.makeText(HelloFormStuff.this, rb.getText(), Toast.LENGTH_SHORT).show();
      +    }
      +};
      +
      +

      Our onClick() method will be handed the View clicked, so the first thing to do +is cast it into a RadioButton. Then we pop up a +{@link android.widget.Toast} message that displays the selection.

      +
    4. Now, at the bottom of the onCreate() method, add the following: +
      +  final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red);
      +  final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue);
      +  radio_red.setOnClickListener(radio_listener);
      +  radio_blue.setOnClickListener(radio_listener);
      +
      +

      This captures each of the RadioButtons from our layout and adds the newly-created +OnClickListener to each.

      +
    5. Run it.
    6. +
    +

    Tip: If you find that you need to change the state of a +RadioButton in another way (such as when loading a saved {@link android.preference.CheckBoxPreference}), +use setChecked(true) or toggle().

    + + +

    ToggleButton

    +

    A button used specifically for toggling something on and off.

    + +
      +
    1. Open the layout file and, inside the LinearLayout, add the {@link android.widget.ToggleButton} element: +
      +<ToggleButton android:id="@+id/togglebutton"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content" />
      +
      +
    2. +
    3. To do something when the state is changed, add the following code +to the end of the onCreate() method: +
      +final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
      +togglebutton.setOnClickListener(new OnClickListener() {
      +    public void onClick(View v) {
      +        // Perform action on clicks
      +        if (togglebutton.isChecked()) {
      +            Toast.makeText(HelloFormStuff.this, "ON", Toast.LENGTH_SHORT).show();
      +        } else {
      +            Toast.makeText(HelloFormStuff.this, "OFF", Toast.LENGTH_SHORT).show();
      +        }
      +    }
      +});
      +
      +

      This captures our ToggleButton element from the layout, then adds an on-click listener to it. +The {@link android.view.View.OnClickListener} must define the onClick() method, which +defines the action to be made when the button is clicked. Here, we query the current state of the +ToggleButton, then pop up a {@link android.widget.Toast} message that displays the current state. +Notice that the ToggleButton handles its own state change between checked and un-checked, so we just +ask which it is.

      +
    4. Run it.
    5. +
    + +

    Tip: By default, the text on the button is "ON" and "OFF", but +you can change each of these with setTextOn(CharSequence) and +setTextOff(CharSequence). And, if you find that you need to change the state +in another way (such as when loading a saved {@link android.preference.CheckBoxPreference}), +use setChecked(true) or toggle().

    + + +

    If you've added all the form items above, your application should look something like this:

    + + +

    References

    +
      +
    • {@link android.widget.ImageButton}
    • +
    • {@link android.widget.EditText}
    • +
    • {@link android.widget.CheckBox}
    • +
    • {@link android.widget.RadioButton}
    • +
    • {@link android.widget.ToggleButton}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-gallery.jd b/docs/html/resources/tutorials/views/hello-gallery.jd new file mode 100644 index 00000000000..084f912ca64 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-gallery.jd @@ -0,0 +1,135 @@ +page.title=Hello, Gallery +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.Gallery} is a View commonly used to display items in a horizontally scrolling list +that locks the current selection at the center. When one is selected, we'll show a message.

    + + +
      +
    1. Start a new project/Activity called HelloGallery.
    2. +
    3. Add some images to your res/drawable/ directory.
    4. +
    5. Open the layout file and make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<Gallery xmlns:android="http://schemas.android.com/apk/res/android" 
      +    android:id="@+id/gallery"
      +    android:layout_width="fill_parent"
      +    android:layout_height="wrap_content"
      +/>
      +
      +
    6. + + +
    7. Open the HelloGallery.java file. Insert the following for the onCreate() method: +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +    Gallery g = (Gallery) findViewById(R.id.gallery);
      +    g.setAdapter(new ImageAdapter(this));
      +
      +    g.setOnItemClickListener(new OnItemClickListener() {
      +        public void onItemClick(AdapterView parent, View v, int position, long id) {
      +            Toast.makeText(HelloGallery.this, "" + position, Toast.LENGTH_SHORT).show();
      +        }
      +    });
      +}
      +
      +

      We start as usual: set the layout and capture the View we want (our Gallery). +We then set an Adapter, called ImageAdapter for the Gallery—this is a new class that +we'll create next. Then we create an item click listener for the Gallery. This is like a normal +on-click listener (which you might be familiar with for buttons), but it listens to each item +that we've added to the Gallery. The onItemClick() callback method +receives the AdapterView where the click occurred, the specific View that received the click, the +position of the View clicked (zero-based), and the row id of the item clicked (if applicable). All +that we care about is the position, so that we can pop up a {@link android.widget.Toast} message that +tells us the index position of the item clicked. We do this with Toast.makeText().show(). +

      +
    8. + +
    9. After the onCreate() method, add the ImageAdapter class: +
      +public class ImageAdapter extends BaseAdapter {
      +    int mGalleryItemBackground;
      +    private Context mContext;
      +
      +    private Integer[] mImageIds = {
      +            R.drawable.sample_1,
      +            R.drawable.sample_2,
      +            R.drawable.sample_3,
      +            R.drawable.sample_4,
      +            R.drawable.sample_5,
      +            R.drawable.sample_6,
      +            R.drawable.sample_7
      +    };
      +
      +    public ImageAdapter(Context c) {
      +        mContext = c;
      +        TypedArray a = obtainStyledAttributes(android.R.styleable.Theme);
      +        mGalleryItemBackground = a.getResourceId(
      +                android.R.styleable.Theme_galleryItemBackground, 0);
      +        a.recycle();
      +    }
      +
      +    public int getCount() {
      +        return mImageIds.length;
      +    }
      +
      +    public Object getItem(int position) {
      +        return position;
      +    }
      +
      +    public long getItemId(int position) {
      +        return position;
      +    }
      +
      +    public View getView(int position, View convertView, ViewGroup parent) {
      +        ImageView i = new ImageView(mContext);
      +
      +        i.setImageResource(mImageIds[position]);
      +        i.setLayoutParams(new Gallery.LayoutParams(150, 100));
      +        i.setScaleType(ImageView.ScaleType.FIT_XY);
      +        i.setBackgroundResource(mGalleryItemBackground);
      +
      +        return i;
      +    }
      +}
      +
      +

      First, there are a few member variables, including an array of IDs that reference +the images we placed in our drawable resources directory.

      +

      Next is the constructor, where we define the member Context. The rest of the constructor +sets up a reference for our Gallery them, which adds the nice framing for each Gallery item. +Once we have our mGalleryItemBackground, it's important to recycle the +StyledAttribute for later re-use.

      +

      The next three methods are required for basic member queries. +But then we have the getView() method, which is called +for each item read by our ImageAdapter, when the Gallery is being built. Here, we +use our member Context to create a new {@link android.widget.ImageView}. We then define +the image resource with the current position of the Gallery items (corresponding to our +array of drawables), set the dimensions for the ImageView, +set the image scaling to fit the ImageView dimensions, then finally set the +background theme for the ImageView.

      + +

      See {@link android.widget.ImageView.ScaleType} +for other image scaling options, in case you want to avoid stretching images that don't +exactly match the ImageView dimensions.

      + +
    10. Now run it.
    11. +
    +

    You should see something like this:

    + + + +

    References

    +
      +
    • {@link android.widget.BaseAdapter}
    • +
    • {@link android.widget.Gallery}
    • +
    • {@link android.widget.ImageView}
    • +
    • {@link android.widget.Toast}
    • +
    + + diff --git a/docs/html/resources/tutorials/views/hello-gridview.jd b/docs/html/resources/tutorials/views/hello-gridview.jd new file mode 100644 index 00000000000..ffb6c93efde --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-gridview.jd @@ -0,0 +1,129 @@ +page.title=Hello, GridView +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.GridView} displays items in a two-dimensional, scrolling grid. The items +are acquired from a {@link android.widget.ListAdapter}.

    + + +
      +
    1. Start a new project/Activity called HelloGridView.
    2. +
    3. Find some photos you'd like to use, or copy some from the SDK samples res/drawable/ + folder of your project.
    4. +
    5. Open the layout and make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
      +    android:id="@+id/gridview"
      +    android:layout_width="fill_parent" 
      +    android:layout_height="fill_parent"
      +    android:numColumns="auto_fit"
      +    android:verticalSpacing="10dp"
      +    android:horizontalSpacing="10dp"
      +    android:columnWidth="90dp"
      +    android:stretchMode="columnWidth"
      +    android:gravity="center"
      +/>
      +
      +
    6. +
    7. Open the HelloGridView Java file. Insert the following for the onCreate() method: +
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +    GridView gridview = (GridView) findViewById(R.id.gridview);
      +    gridview.setAdapter(new ImageAdapter(this));
      +}
      +
      +

      Here, we get a handle on our GridView, from the layout, and give it an Adapter. + We're actually going to create our own Adapter called ImageAdapter.

      +
    8. +
    9. Create a new class (nested or otherwise), called ImageAdapter, which extends {@link android.widget.BaseAdapter}: +
      +public class ImageAdapter extends BaseAdapter {
      +    private Context mContext;
      +
      +    public ImageAdapter(Context c) {
      +        mContext = c;
      +    }
      +
      +    public int getCount() {
      +        return mThumbIds.length;
      +    }
      +
      +    public Object getItem(int position) {
      +        return null;
      +    }
      +
      +    public long getItemId(int position) {
      +        return 0;
      +    }
      +
      +    // create a new ImageView for each item referenced by the Adapter
      +    public View getView(int position, View convertView, ViewGroup parent) {
      +        ImageView imageView;
      +        if (convertView == null) {  // if it's not recycled, initialize some attributes
      +            imageView = new ImageView(mContext);
      +            imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
      +            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
      +            imageView.setPadding(8, 8, 8, 8);
      +        } else {
      +            imageView = (ImageView) convertView;
      +        }
      +
      +        imageView.setImageResource(mThumbIds[position]);
      +        return imageView;
      +    }
      +
      +    // references to our images
      +    private Integer[] mThumbIds = {
      +            R.drawable.sample_2, R.drawable.sample_3,
      +            R.drawable.sample_4, R.drawable.sample_5,
      +            R.drawable.sample_6, R.drawable.sample_7,
      +            R.drawable.sample_0, R.drawable.sample_1,
      +            R.drawable.sample_2, R.drawable.sample_3,
      +            R.drawable.sample_4, R.drawable.sample_5,
      +            R.drawable.sample_6, R.drawable.sample_7,
      +            R.drawable.sample_0, R.drawable.sample_1,
      +            R.drawable.sample_2, R.drawable.sample_3,
      +            R.drawable.sample_4, R.drawable.sample_5,
      +            R.drawable.sample_6, R.drawable.sample_7
      +    };
      +}
      +
      +

      First we take care of some required methods inherited from BaseAdapter. + The constructor and getCount() are self-explanitory. Normally, getItem() + should return the actual object at the specified position in our Adapter, but for this Hello World, + we're not going to bother. Likewise, getItemId() should return the row id of + the item, but right now we don't care.

      +

      However, getView() is the method we care about. This one creates a new View for each image that we + put in our ImageAdapter. So we're going to create an ImageView each time. When this is called, we're + going to receive a View, which is likely a recycled View object (at least after the first call), so we + check for this—if it's null, we initialize the ImageView and setup all the properties we want. + The LayoutParams() initialization sets the height and width of the View—this ensures + that no matter the drawable size, each image is resized and cropped to fit in the ImageView (if necessary). + With setScaleType(), we say that images should be cropped toward the center (if necessary). + And finally, we set the padding within the ImageView. (Note that, if the images have various aspect-ratios, + as they do in this demo, then less padding will cause for more cropping of the image, if it does not match + the dimensions given to the ImageView.) At the end of getView() we set the image resource and + return the ImageView.

      +

      All that's left is our array or drawable resources at the bottom.

      +
    10. +
    11. Run it.
    12. +
    +

    Your grid layout should look something like this:

    + + +

    Try experimenting with the behaviors of the GridView and ImageView by adjusting their properties. For example, + instead of setting the ImageView LayoutParams, you can try using + {@link android.widget.ImageView#setAdjustViewBounds(boolean)}.

    + +

    References

    +
      +
    • {@link android.widget.GridView}
    • +
    • {@link android.widget.ImageView}
    • +
    • {@link android.widget.BaseAdapter}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-linearlayout.jd b/docs/html/resources/tutorials/views/hello-linearlayout.jd new file mode 100644 index 00000000000..0e8947c10e3 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-linearlayout.jd @@ -0,0 +1,130 @@ +page.title=Hello, LinearLayout +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.LinearLayout} is a GroupView that will lay child View elements +vertically or horizontally.

    + + +
      +
    1. Start a new project/Activity called HelloLinearLayout.
    2. +
    3. Open the layout file. + Make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:orientation="vertical"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent">
      +
      +    <LinearLayout
      +	android:orientation="horizontal"
      +	android:layout_width="fill_parent"
      +	android:layout_height="fill_parent"
      +	android:layout_weight="1">
      +	
      +	<TextView
      +	    android:text="red"
      +	    android:gravity="center_horizontal"
      +	    android:background="#aa0000"
      +	    android:layout_width="wrap_content"
      +	    android:layout_height="fill_parent"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="green"
      +	    android:gravity="center_horizontal"
      +	    android:background="#00aa00"
      +	    android:layout_width="wrap_content"
      +	    android:layout_height="fill_parent"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="blue"
      +	    android:gravity="center_horizontal"
      +	    android:background="#0000aa"
      +	    android:layout_width="wrap_content"
      +	    android:layout_height="fill_parent"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="yellow"
      +	    android:gravity="center_horizontal"
      +	    android:background="#aaaa00"
      +	    android:layout_width="wrap_content"
      +	    android:layout_height="fill_parent"
      +	    android:layout_weight="1"/>
      +		
      +    </LinearLayout>
      +	
      +    <LinearLayout
      +	android:orientation="vertical"
      +	android:layout_width="fill_parent"
      +	android:layout_height="fill_parent"
      +	android:layout_weight="1">
      +	
      +	<TextView
      +	    android:text="row one"
      +	    android:textSize="15pt"
      +	    android:layout_width="fill_parent"
      +	    android:layout_height="wrap_content"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="row two"
      +	    android:textSize="15pt"
      +	    android:layout_width="fill_parent"
      +	    android:layout_height="wrap_content"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="row three"
      +	    android:textSize="15pt"
      +	    android:layout_width="fill_parent"
      +	    android:layout_height="wrap_content"
      +	    android:layout_weight="1"/>
      +	
      +	<TextView
      +	    android:text="row four"
      +	    android:textSize="15pt"
      +	    android:layout_width="fill_parent"
      +	    android:layout_height="wrap_content"
      +	    android:layout_weight="1"/>
      +        
      +    </LinearLayout>
      +        
      +</LinearLayout>
      +
      +

      Carefully inspect the XML. You'll notice how this layout works a lot like + an HTML layout. There is one parent LinearLayout that is defined to lay + its child elements vertically. The first child is another LinearLayout that uses a horizontal layout + and the second uses a vertical layout. Each LinearLayout contains several {@link android.widget.TextView} + elements.

      +
    4. +
    5. Now open the HelloLinearLayout Activity and be sure it loads this layout in the onCreate() method:

      +
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +}
      +
      +

      R.layout.main refers to the main.xml layout file.

      +
    6. +
    7. Run it.
    8. +
    +

    You should see the following:

    + + +

    Notice how the various XML attributes define the View's behavior. +Pay attention to the effect of the layout_weight. Try + experimenting with different values to see how the screen real estate is + distributed based on the weight of each element.

    + +

    References

    +
      +
    • {@link android.widget.LinearLayout}
    • +
    • {@link android.widget.TextView}
    • +
    + + diff --git a/docs/html/resources/tutorials/views/hello-listview.jd b/docs/html/resources/tutorials/views/hello-listview.jd new file mode 100644 index 00000000000..d90005bb4e5 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-listview.jd @@ -0,0 +1,90 @@ +page.title=Hello, ListView +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.ListView} is a View that shows items in a vertically scrolling list. The items are + acquired from a {@link android.widget.ListAdapter}.

    + + +
      +
    1. Start a new project/ListActivity called HelloListView.
    2. +
    3. Open the HelloListView Java file. Make the class extend ListActivity (instead of Activity). +
      public class HelloListView extends ListActivity {
      +
    4. +
    5. Insert the following for the onCreate() method: +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +  super.onCreate(savedInstanceState);
      +  
      +  setListAdapter(new ArrayAdapter<String>(this,
      +          android.R.layout.simple_list_item_1, COUNTRIES));
      +  getListView().setTextFilterEnabled(true);
      +}
      +
      +

      Notice that we don't need to load a layout (at least, not in this case, because we're using + the whole screen for our list). Instead, we just call setListAdapter() (which automatically + adds a ListView to the ListActivity), and provide it with an ArrayAdapter that binds a + simple_list_item_1 layout item to each entry in the COUNTRIES + array (added next). The next line of code adds a text filter to the ListView, so that when the user + begins typing, the list will filter the entire view to display only the items that match the entry.

      +
    6. +
    7. Following the onCreate() method, add the String array: +
      +  static final String[] COUNTRIES = new String[] {
      +    "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
      +    "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
      +    "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
      +    "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
      +    "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
      +    "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
      +    "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
      +    "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
      +    "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
      +    "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
      +    "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
      +    "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
      +    "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
      +    "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
      +    "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
      +    "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
      +    "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
      +    "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
      +    "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
      +    "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
      +    "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
      +    "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
      +    "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
      +    "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
      +    "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
      +    "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
      +    "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
      +    "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
      +    "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
      +    "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
      +    "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
      +    "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
      +    "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
      +    "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
      +    "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
      +    "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
      +    "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
      +    "Ukraine", "United Arab Emirates", "United Kingdom",
      +    "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
      +    "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
      +    "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
      +  };
      +
      +
    8. +
    9. Run it.
    10. +
    +

    You can scroll the list, or type to filter it. You should see something like this:

    + + +

    References

    +
      +
    • {@link android.widget.ListView}
    • +
    • {@link android.widget.ListAdapter}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-mapview.jd b/docs/html/resources/tutorials/views/hello-mapview.jd new file mode 100644 index 00000000000..531300f22a1 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-mapview.jd @@ -0,0 +1,273 @@ +page.title=Hello, MapView +parent.title=Hello, Views +parent.link=index.html +@jd:body + +
    +

    This tutorial requires that you have the Google Maps external library +installed in your SDK environment. By default the Android SDK includes the +Google APIs add-on, which in turn includes the Maps external library. If you +don't have the Google APIs SDK add-on, you can download it from this +location:

    + +

    http://code.google.com/android/add-ons/google-apis

    + +

    The Google APIs add-on requires Android 1.5 SDK or later release. After +installing the add-on in your SDK, set your project properties to use the build +target called "Google APIs Add-on". See the instructions for setting a build +target in Developing in +Eclipse with ADT or Developing in Other IDEs, +as appropriate for your environment.

    + +

    You will also need to use the android tool to set up an AVD that uses the +Google APIs deployment target. See Android Virtual Devices for +more information. Once you have set up your environment, you will be able to +build and run the project described in this tutorial

    + +
    + +

    A MapView allows you to create your own map-viewing Activity. +First, we'll create a simple Activity that can view and navigate a map. Then we will add some overlay items.

    + +
      +
    1. Start a new project/Activity called HelloMapView. + +
    2. Because we're using the Google Maps library, + which is not a part of the standard Android library, we need to + declare it in the Android Manifest. Open the AndroidManifest.xml + file and add the following as a child of the <application> element: + +
      <uses-library android:name="com.google.android.maps" />
      +
    3. +
    4. We also need access to the internet in order to retrieve the Google Maps tiles, + so the application must request the {@link android.Manifest.permission#INTERNET INTERNET} permissions. + In the manifest file, add the following as a child of the <manifest> element: +
      <uses-permission android:name="android.permission.INTERNET" />
      +
    5. +
    6. Now open the main layout file for your project. Define a layout with a com.google.android.maps.MapView + inside a android.widget.RelativeLayout: + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:id="@+id/mainlayout"
      +    android:orientation="vertical"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent" >
      +
      +    <com.google.android.maps.MapView
      +        android:id="@+id/mapview"
      +        android:layout_width="fill_parent"
      +        android:layout_height="fill_parent"
      +        android:clickable="true"
      +        android:apiKey="Your Maps API Key"
      +    />
      +
      +</RelativeLayout>
      +
      +

      The clickable attribute defines whether you want to allow user-interaction with the map. + In this case, we set it "true" so that the user can navigate.

      + +

      The apiKey attribute holds the Google Maps API Key that proves your application and signer + certificate has been registered with the Google Maps service. Because MapView uses Google Maps data, this key is required + in order to receive the map data, even while you are developing. Registration is free and it only takes a couple + minutes to register your certificate and receive a Maps API Key. For instructions on getting a key, read + Obtaining a Maps API Key. + (For the purpose of this tutorial, you should register with the fingerprint of the SDK debug certificate.) + Once you've acquired the Maps API Key, insert it for the apiKey value.

    7. + +
    8. Now open the HelloMapView.java file. For this Activity, we're going to extend the special sub-class of + Activity called MapActivity, so change the class declaration to extend + MapActicity, instead of Activity:

      + +
      public class HelloMapView extends MapActivity {
      + +
    9. The isRouteDisplayed() method is required, so add it inside the class: +
      +@Override
      +protected boolean isRouteDisplayed() {
      +    return false;
      +}
      +
      +

      You can actually run this now, but all it does is allow you to pan around the map.

      +

      Android provides a handy {@link android.widget.ZoomControls} widget for zooming in and out of a View. +MapView can automatically hook one for us by requesting it with the getZoomControls() +method. Let's do this.

      + +
    10. Go back to the layout file. We need a new ViewGroup element, in which we'll + place the ZoomControls. Just below the MapView element (but inside the RelativeLayout), add this element: +
      +<LinearLayout
      +    android:id="@+id/zoomview"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:layout_alignBottom="@id/mapview"
      +    android:layout_centerHorizontal="true"
      +/>
      + +

      It doesn't really matter what kind of ViewGroup we use, because we just want a + container that we can position within our root RelativeLayout.

      + +

      The last two attributes are available only to an element that's a child of a + RelativeLayout. layout_alignBottom aligns the bottom of this element to the bottom of + the element identified with a resource tag (which must be a sibling to this element). + layout_centerHorizontal centers this on the horizontal plane.

    11. + +
    12. Now go back to the HelloMapView class. We'll now retrieve the ZoomControls object from + the MapView and add it to our new layout element. First, at the top of the HelloMapView, + instantiate handles for the MapView and LinearLayout, plus a ZoomControl object: +
      +LinearLayout linearLayout;
      +MapView mapView;
      +ZoomControls mZoom;
    13. + +
    14. Then initialize each of these in onCreate(). We'll capture the LinearLayout and + MapView through their layout resources. Then get the ZoomControls from the MapView:: +
      +linearLayout = (LinearLayout) findViewById(R.id.zoomview);
      +mapView = (MapView) findViewById(R.id.mapview);
      +mZoom = (ZoomControls) mapView.getZoomControls();
      + +

      By using the ZoomControls object provided by MapView, we don't have to do any of the work + required to actually perform the zoom operations. The ZoomControls widget that MapView + returns for us is already hooked into the MapView and works as soon as we add it to the + layout. The controls will appear whenever the user touches the map, then dissapear after + a few moments of inactivity.

    15. + +
    16. Now just plug our ZoomControls into the LinearLayout we added: + +
      linearLayout.addView(mZoom);
    17. + +
    18. Run it.
    19. +
    + +
    + +

    So, we now have full interaction controls. All well and good, but what we really want our map +for is custom markers and layovers. Let's add some Overlay +objects to our map. To do this, we're going to +implement the ItemizedOverlay +class, which can manage a whole set of Overlay items for us.

    + +
      +
    1. Create a new Java class named HelloItemizedOverlay that implements ItemizedOverlay. + +

      When using Eclipse, right-click the package name in the Eclipse Package Explorer, and select New > Class. Fill-in + the Name field as HelloItemizedOverlay. For the Superclass, enter + com.google.android.maps.ItemizedOverlay. Click the checkbox for Constructors from + superclass. Click Finish.

    2. + +
    3. First thing, we need an OverlayItem ArrayList, in which we'll put each of the OverlayItem + objects we want on our map. Add this at the top of the HelloItemizedOverlay class: + +
      private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    4. + +
    5. All the constructor does is define the default marker to be used on each of the OverlayItems. + In order for the Drawable to actually get drawn, it must have its bounds defined. And we want the + center-point at the bottom of the image to be the point at which it's attached to the map + coordinates. We handle all this with the boundCenterBottom() method. Wrap this around our + defaultMarker, so the super constructor call looks like this: + +
      super(boundCenterBottom(defaultMarker));
    6. + +
    7. In order to add new OverlayItems to our ArrayList, we need a new public method. We'll handle + this with the following method: + +
      +public void addOverlay(OverlayItem overlay) {
      +    mOverlays.add(overlay);
      +    populate();
      +}
      + +

      Each time we add a new OverlayItem, we must call populate(), which will read each of out + OverlayItems and prepare them to be drawn.

    8. + +
    9. In order for the populate() method to read each OverlayItem, it will make a request to + createItem(int). We must define this method to properly read from our ArrayList. Replace the + existing contents of the createItem method with a get() call to our ArrayList: + +
      +@Override
      +protected OverlayItem createItem(int i) {
      +  return mOverlays.get(i);
      +}
      +
    10. + +
    11. We're also required to override the size() method. Replace the existing contents of the + method with a size request to our ArrayList: + +
      return mOverlays.size();
    12. +
    + + +

    That's it for the HelloItemizedOverlay class. We're now ready to use it.

    + +
    +

    Go back to the HelloMapView +class. We'll start by creating one OverlayItem, adding to an instance of our HelloItemizedOverlay, +and then adding this to the MapView.

    + + +

    First, we need the image that we'll use for our map overlay. Here, we'll use the Android on the +right as our marker. Drag this image (or your own) to the res/drawable/ directory of your project workspace.

    + +

    Now we're ready to work in the HelloMapView:

    + +
      +
    1. First we need some more types. Add the following at the top of the HelloMapView class: + +
      +List<Overlay> mapOverlays;
      +Drawable drawable;
      +HelloItemizedOverlay itemizedOverlay;
    2. + +
    3. Now pick up where we left off in the onCreate() method. Instantiate the + new fields: + +
      +mapOverlays = mapView.getOverlays();
      +drawable = this.getResources().getDrawable(R.drawable.androidmarker);
      +itemizedoverlay = new HelloItemizedOverlay(drawable);
      + +

      All overlay elements on a map are held by the MapView, so when we want to add some, we must + first retrieve the List with getOverlays() methods. We instantiate the Drawable, which will + be used as our map marker, by using our Context resources to get the Drawable we placed in + the res/drawable/ directory (androidmarker.png). Our HelloItemizedOverlay takes the Drawable in order to set the + default marker.

    4. + +
    5. Now let's make our first OverlayItem by creating a GeoPoint + that defines our map coordinates, then pass it to a new OverlayItem: + +
      +GeoPoint point = new GeoPoint(19240000,-99120000);
      +OverlayItem overlayitem = new OverlayItem(point, "", "");
      + +

      GeoPoint coordinates are based in microdegrees (degrees * 1e6). The OverlayItem takes this + GeoPoint and two strings. Here, we won't concern ourselves with the strings, which can display + text when we click our marker, because we haven't yet written the click handler for the OverlayItem.

    6. + +
    7. All that's left is for us to add this OverlayItem to our collection in the HelloItemizedOverlay, + and add this to the List of Overlay objects retrieved from the MapView: + +
      +itemizedoverlay.addOverlay(overlayitem);
      +mapOverlays.add(itemizedoverlay);
    8. + +
    9. Run it!
    10. +
    + +

    We've sent our droid to Mexico City. Hola, Mundo!

    +

    You should see the following:

    + + +

    Because we created our ItemizedOverlay class with an ArrayList, we can continue adding new +OverlayItems. Try adding another one. Before the addOverlay() method is called, add these lines:

    +
    +GeoPoint point2 = new GeoPoint(35410000, 139460000);
    +OverlayItem overlayitem2 = new OverlayItem(point2, "", "");
    +
    +

    Run it again... We've sent a new droid to Tokyo. Sekai, konichiwa!

    + diff --git a/docs/html/resources/tutorials/views/hello-relativelayout.jd b/docs/html/resources/tutorials/views/hello-relativelayout.jd new file mode 100644 index 00000000000..1b915379739 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-relativelayout.jd @@ -0,0 +1,75 @@ +page.title=Hello, RelativeLayout +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.RelativeLayout} is a ViewGroup that allows you to layout child elements +in positions relative to the parent or siblings elements.

    + +
      +
    1. Start a new project/Activity called HelloRelativeLayout.
    2. +
    3. Open the layout file. Make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent">
      +
      +    <TextView
      +        android:id="@+id/label"
      +        android:layout_width="fill_parent"
      +        android:layout_height="wrap_content"
      +        android:text="Type here:"/>
      +
      +    <EditText
      +        android:id="@+id/entry"
      +        android:layout_width="fill_parent"
      +        android:layout_height="wrap_content"
      +        android:background="@android:drawable/editbox_background"
      +        android:layout_below="@id/label"/>
      +
      +    <Button
      +        android:id="@+id/ok"
      +        android:layout_width="wrap_content"
      +        android:layout_height="wrap_content"
      +        android:layout_below="@id/entry"
      +        android:layout_alignParentRight="true"
      +        android:layout_marginLeft="10dip"
      +        android:text="OK" />
      +
      +    <Button
      +        android:layout_width="wrap_content"
      +        android:layout_height="wrap_content"
      +        android:layout_toLeftOf="@id/ok"
      +        android:layout_alignTop="@id/ok"
      +        android:text="Cancel" />
      +
      +</RelativeLayout>
      +
      +

      Pay attention to each of the additional layout_* attributes (besides the +usual width and height, which are required for all elements). When using relative layout, +we use attributes like layout_below and layout_toLeftOf to describe +how we'd like to position each View. Naturally, these are different relative positions, and the +value of the attribute is the id of the element we want the position relative to.

      +
    4. +
    5. Make sure your Activity loads this layout in the onCreate() method:

      +
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +}
      +
      +

      R.layout.main refers to the main.xml layout file.

      +
    6. +
    7. Run it.
    8. +
    +

    You should see the following:

    + + +

    Resources

    +
      +
    • {@link android.widget.RelativeLayout}
    • +
    • {@link android.widget.TextView}
    • +
    • {@link android.widget.EditText}
    • +
    • {@link android.widget.Button}
    • +
    diff --git a/docs/html/resources/tutorials/views/hello-spinner.jd b/docs/html/resources/tutorials/views/hello-spinner.jd new file mode 100644 index 00000000000..3a04214a1f3 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-spinner.jd @@ -0,0 +1,106 @@ +page.title=Hello, Spinner +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.Spinner} is a widget that allows the user to select an item from a group. +It is similar to a dropdown list and will allow scrolling when the +list exceeds the available vertical space on the screen.

    + + +
      +
    1. Start a new project/Activity called HelloSpinner.
    2. +
    3. Open the layout file. + Make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:orientation="vertical"
      +    android:padding="10dip"
      +    android:layout_width="fill_parent"
      +    android:layout_height="wrap_content">
      +
      +    <TextView
      +        android:layout_width="fill_parent"
      +        android:layout_height="wrap_content"
      +        android:layout_marginTop="10dip"
      +        android:text="Please select a planet:"
      +    />
      +
      +    <Spinner 
      +        android:id="@+id/spinner"
      +        android:layout_width="fill_parent"
      +        android:layout_height="wrap_content"
      +        android:drawSelectorOnTop="true"
      +        android:prompt="@string/planet_prompt"
      +    />
      +
      +</LinearLayout>
      +
      +

      Notice that the Spinner's android:prompt is a string resource. In + this case, Android does not allow it to be a string, it must be a reference to a resource. + So...

      +
    4. + +
    5. Open the strings.xml file in res/values/ and add the following <string> +element inside the <resources> element: +
      +<string name="planet_prompt">Choose a planet</string>
      +
      +
    6. + +
    7. Create a new XML file in res/values/ called arrays.xml. Insert the following: +
      +<resources>
      +
      +    <string-array name="planets">
      +        <item>Mercury</item>
      +        <item>Venus</item>
      +        <item>Earth</item>
      +        <item>Mars</item>
      +        <item>Jupiter</item>
      +        <item>Saturn</item>
      +        <item>Uranus</item>
      +        <item>Neptune</item>
      +    </string-array>
      +    
      +</resources>
      +
      +

      This is the list of items (planets) that the user can select from in the Spinner widget.

      +
    8. + +
    9. Now open the HelloSpinner.java file. Insert the following code into the HelloSpinner class: +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +    Spinner s = (Spinner) findViewById(R.id.spinner);
      +    ArrayAdapter adapter = ArrayAdapter.createFromResource(
      +            this, R.array.planets, android.R.layout.simple_spinner_item);
      +    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      +    s.setAdapter(adapter);
      +}
      +
      +

      That's it. We start by creating a Spinner from our layout. We then create an {@link android.widget.ArrayAdapter} + that binds each element of our string array to a layout view—we pass createFromResource our Context, + the array of selectable items and the type of layout we'd like each one bound to. We then call + setDropDownViewResource() to define the type of layout in which to present the + entire collection. Finally, we set this Adapter to associate with our Spinner, + so the string items have a place to go.

      +
    10. + +
    11. Now run it.
    12. +
    +

    It should look like this:

    + + + +

    Resources

    +
      +
    • {@link android.R.layout}
    • +
    • {@link android.widget.ArrayAdapter}
    • +
    • {@link android.widget.Spinner}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-tablelayout.jd b/docs/html/resources/tutorials/views/hello-tablelayout.jd new file mode 100644 index 00000000000..83d6f5d46be --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-tablelayout.jd @@ -0,0 +1,118 @@ +page.title=Hello, TableLayout +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.TableLayout} is a ViewGroup that +will lay child View elements into rows and columns.

    + + +
      +
    1. Start a new project/Activity called HelloTableLayout.
    2. +
    3. Open the layout file. + Make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent"
      +    android:stretchColumns="1">
      +
      +    <TableRow>
      +        <TextView
      +            android:layout_column="1"
      +            android:text="Open..."
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Ctrl-O"
      +            android:gravity="right"
      +            android:padding="3dip" />
      +    </TableRow>
      +
      +    <TableRow>
      +        <TextView
      +            android:layout_column="1"
      +            android:text="Save..."
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Ctrl-S"
      +            android:gravity="right"
      +            android:padding="3dip" />
      +    </TableRow>
      +
      +    <TableRow>
      +        <TextView
      +            android:layout_column="1"
      +            android:text="Save As..."
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Ctrl-Shift-S"
      +            android:gravity="right"
      +            android:padding="3dip" />
      +    </TableRow>
      +
      +    <View
      +        android:layout_height="2dip"
      +        android:background="#FF909090" />
      +
      +    <TableRow>
      +        <TextView
      +            android:text="X"
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Import..."
      +            android:padding="3dip" />
      +    </TableRow>
      +
      +    <TableRow>
      +        <TextView
      +            android:text="X"
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Export..."
      +            android:padding="3dip" />
      +        <TextView
      +            android:text="Ctrl-E"
      +            android:gravity="right"
      +            android:padding="3dip" />
      +    </TableRow>
      +
      +    <View
      +        android:layout_height="2dip"
      +        android:background="#FF909090" />
      +
      +    <TableRow>
      +        <TextView
      +            android:layout_column="1"
      +            android:text="Quit"
      +            android:padding="3dip" />
      +    </TableRow>
      +</TableLayout>
      +
      +

      Notice how this resembles the structure of an HTML table. TableLayout is like the +table element; TableRow is like a tr element; but for our cells like +the html td element, we can use any kind of View. Here, we use TextView for the cells.

      + +
    4. +
    5. Make sure your Activity loads this layout in the onCreate() method: +
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +}
      +
      +

      R.layout.main refers to the main.xml layout file.

      +
    6. +
    7. Run it.
    8. +
    +

    You should see the following:

    + + +

    References

    +
      +
    • {@link android.widget.TableLayout}
    • +
    • {@link android.widget.TableRow}
    • +
    • {@link android.widget.TextView}
    • +
    + + diff --git a/docs/html/resources/tutorials/views/hello-tabwidget.jd b/docs/html/resources/tutorials/views/hello-tabwidget.jd new file mode 100644 index 00000000000..8424616ca5b --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-tabwidget.jd @@ -0,0 +1,124 @@ +page.title=Hello, TabWidget +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.TabWidget} offers the ability to easily draw an interface that uses +tabs to navigate between different views.

    + +
      +
    1. Start a new project/Activity called HelloTabWidget.
    2. +
    3. Open the layout file and make it like so:
    4. +
      +<?xml version="1.0" encoding="utf-8"?>
      +<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:id="@android:id/tabhost"
      +    android:layout_width="fill_parent"
      +    android:layout_height="fill_parent">
      +    <LinearLayout
      +        android:orientation="vertical"
      +        android:layout_width="fill_parent"
      +        android:layout_height="fill_parent">
      +        <TabWidget
      +            android:id="@android:id/tabs"
      +            android:layout_width="fill_parent"
      +            android:layout_height="wrap_content" />
      +        <FrameLayout
      +            android:id="@android:id/tabcontent"
      +            android:layout_width="fill_parent"
      +            android:layout_height="fill_parent">
      +            <TextView 
      +                android:id="@+id/textview1"
      +                android:layout_width="fill_parent"
      +                android:layout_height="fill_parent" 
      +                android:text="this is a tab" />
      +            <TextView 
      +                android:id="@+id/textview2"
      +                android:layout_width="fill_parent"
      +                android:layout_height="fill_parent" 
      +                android:text="this is another tab" />
      +            <TextView 
      +                android:id="@+id/textview3"
      +                android:layout_width="fill_parent"
      +                android:layout_height="fill_parent" 
      +                android:text="this is a third tab" />
      +    	</FrameLayout>
      +    </LinearLayout>
      +</TabHost>
      +
      +

      Here, we've created a {@link android.widget.TabHost} that contains the entire layout of the Activity. + A TabHost requires two descendant elements: a {@link android.widget.TabWidget} and a {@link android.widget.FrameLayout}. + In order to properly layout these elements, we've put them inside a vertical {@link android.widget.LinearLayout}. + The FrameLayout is where we keep the content that will change with each tab. Each child in the FrameLayout will + be associated with a different tab. + In this case, each tab simply shows a different {@link android.widget.TextView} with some text.

      +

      Notice that the TabWidget and the FrameLayout elements have specific android namespace IDs. These are necessary + so that the TabHost can automatically retireve references to them, populate the TabWidget with the tabs that we'll define + in our code, and swap the views in the FrameLayout. We've also defined our own IDs for each TextView, which we'll use to + associate each tab with the view that it should reveal.

      +

      Of course, you can + make these child views as large as complex as you'd like — instead of the TextView elements, + you could start with other layout views and build a unique layout hierarchy for each tab.

      + +
    5. Now we'll add our code. Open HelloTabWidget.java and make it a TabActivity. +

      By default, Eclipse creates a class that extends Activity. Change it to + extend TabActivity:

      +
      +public class HelloTabWidget extends TabActivity {
      +
      +
    6. +
    7. Now fill in the the onCreate method like this: +
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +    mTabHost = getTabHost();
      +    
      +    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1").setContent(R.id.textview1));
      +    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));
      +    mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("TAB 3").setContent(R.id.textview3));
      +    
      +    mTabHost.setCurrentTab(0);
      +}
      +
      +

      As usual, we start by setting our layout.

      +

      We then call the TabActivity method getTabHost(), + which returns us a reference to the TabHost we created in our layout. Upon our TabHost, we call addTab() + for each of the tabs that we want to add to the TabWidget. Each time we call this, we pass a + {@link android.widget.TabHost.TabSpec} that we build on the fly, and with it, chain together two necessary methods: + setIndicator() to set the text for the tab button, and setContent() to define + which View we want to associate with the tab and reveal when pressed. Our indicator is just a text string and + our content is an ID reference to the TextView elements we inserted in the FrameLayout.

      +

      At the end, we call setCurrentTab() to define which tab should be opened by default. The tabs + are saved like a zero-based array, so to open the first tab, we pass zero (0).

      +
    8. +
    9. To clean-up the presentation a bit more, let's remove the window title that appears at the top of the layout. + Android includes a theme that removes that title for us. To add it, open the Android Manifest file and add + the NoTitleBar theme to the <application> tag. It should end up like this: +
      +<application android:icon="@drawable/icon" android:theme="@android:style/Theme.NoTitleBar">
      +
      +
    10. +
    11. That's it. Run your application.
    12. + +
    + + +

    Your application should look like this:

    + + +

    You can include icons in your tabs by passing a +{@link android.graphics.drawable.Drawable} when you call setIndicator(). Here's an example +that uses a Drawable created from an image in the project resources:

    +
    setIndicator("TAB 1", getResources().getDrawable(R.drawable.tab_icon))
    +
    + +

    References

    +
      +
    • {@link android.widget.TabWidget}
    • +
    • {@link android.widget.TabHost}
    • +
    • {@link android.widget.TabHost.TabSpec}
    • +
    • {@link android.widget.FrameLayout}
    • +
    + diff --git a/docs/html/resources/tutorials/views/hello-timepicker.jd b/docs/html/resources/tutorials/views/hello-timepicker.jd new file mode 100644 index 00000000000..1a6c8f9eeb2 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-timepicker.jd @@ -0,0 +1,159 @@ +page.title=Hello, TimePicker +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.widget.TimePicker} is a widget that allows the +user to select the time by hour, minute and AM or PM.

    + + +
      +
    1. Start a new project/Activity called HelloTimePicker.
    2. +
    3. Open the layout file and make it like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:orientation="vertical">
      +
      +    <TextView android:id="@+id/timeDisplay"
      +        android:layout_width="wrap_content"
      +        android:layout_height="wrap_content"
      +        android:text=""/>
      +
      +    <Button android:id="@+id/pickTime"
      +        android:layout_width="wrap_content"
      +        android:layout_height="wrap_content"
      +        android:text="Change the time"/>
      +
      +</LinearLayout>
      +
      +

      For the layout, we're using a vertical LinearLayout, with a {@link android.widget.TextView} that + will display the time and a {@link android.widget.Button} that will initiate the + {@link android.widget.TimePicker} dialog. + With this layout, the TextView will sit above the Button. + The text value in the TextView is set empty, as it will be filled by our Activity + with the current time.

      +
    4. + +
    5. Open HelloTimePicker.java. Insert the following to the HelloTimePicker class: +
      +private TextView mTimeDisplay;
      +private Button mPickTime;
      +
      +private int mHour;
      +private int mMinute;
      +
      +static final int TIME_DIALOG_ID = 0;
      +
      +@Override
      +protected void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +    
      +    // capture our View elements
      +    mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);
      +    mPickTime = (Button) findViewById(R.id.pickTime);
      +
      +    // add a click listener to the button
      +    mPickTime.setOnClickListener(new View.OnClickListener() {
      +        public void onClick(View v) {
      +            showDialog(TIME_DIALOG_ID);
      +        }
      +    });
      +
      +    // get the current time
      +    final Calendar c = Calendar.getInstance();
      +    mHour = c.get(Calendar.HOUR_OF_DAY);
      +    mMinute = c.get(Calendar.MINUTE);
      +
      +    // display the current date
      +    updateDisplay();
      +}
      +
      +

      Tip: Press Ctrl(or Cmd) + Shift + O to import all needed packages.

      +

      We start by instantiating variables for our View elements and time fields. + The TIME_DIALOG_ID is a static integer that uniquely identifies the dialog. In the + onCreate() method, we get prepared by setting the layout and capturing the View elements. + We then set an on-click listener for the Button, so that when it is clicked, it will + show our TimePicker dialog. The showDialog() method will perform a callback + to our Activity. (We'll define this callback in the next section.) We then create an + instance of {@link java.util.Calendar} and get the current hour and minute. Finally, we call + updateDisplay()—our own method that will fill the TextView with the time.

      +
    6. + +
    7. After the onCreate() method, add the onCreateDialog() callback method: +
      +@Override
      +protected Dialog onCreateDialog(int id) {
      +    switch (id) {
      +    case TIME_DIALOG_ID:
      +        return new TimePickerDialog(this,
      +                mTimeSetListener, mHour, mMinute, false);
      +    }
      +    return null;
      +}
      +
      +

      This is passed the identifier we gave showDialog() and initializes + the TimePicker to the time we retrieved from our Calendar instance. It will be called by + showDialog().

      +
    8. + +
    9. Now add our updateDisplay() method: +
      +// updates the time we display in the TextView
      +private void updateDisplay() {
      +    mTimeDisplay.setText(
      +        new StringBuilder()
      +                .append(pad(mHour)).append(":")
      +                .append(pad(mMinute)));
      +}
      +
      +

      This simply takes our member fields for the time and inserts them in + the mTimeDisplay TextView. Note that we call a new method, pad(), + on the hour and minute. (We'll create this method in the last step.)

      +
    10. + +
    11. Next, add a listener to be called when the time is reset: +
      +// the callback received when the user "sets" the time in the dialog
      +private TimePickerDialog.OnTimeSetListener mTimeSetListener =
      +    new TimePickerDialog.OnTimeSetListener() {
      +        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
      +            mHour = hourOfDay;
      +            mMinute = minute;
      +            updateDisplay();
      +        }
      +    };
      +
      +

      Now when the user is done setting the time (clicks the "Set" button), we update our member fields with + the new time and update our TextView.

      +
    12. +
    13. Finally, add the pad() method that we called from the updateDisplay(): +
      +private static String pad(int c) {
      +    if (c >= 10)
      +        return String.valueOf(c);
      +    else
      +        return "0" + String.valueOf(c);
      +}
      +
      +

      This method returns the appropriate String representation of the hour or minute. + It will prefix a zero to the number if it's a single digit. +

      +
    14. + +
    15. Now run it.
    16. +
    +

    When you press the "Change the time" button, you should see the following:

    + + +

    References

    +
      +
    1. {@link android.widget.TimePicker}
    2. +
    3. {@link android.widget.Button}
    4. +
    5. {@link android.widget.TextView}
    6. +
    7. {@link java.util.Calendar}
    8. +
    + diff --git a/docs/html/resources/tutorials/views/hello-webview.jd b/docs/html/resources/tutorials/views/hello-webview.jd new file mode 100644 index 00000000000..c4388ea6ff1 --- /dev/null +++ b/docs/html/resources/tutorials/views/hello-webview.jd @@ -0,0 +1,118 @@ +page.title=Hello, WebView +parent.title=Hello, Views +parent.link=index.html +@jd:body + +

    A {@link android.webkit.WebView} allows you to create your own web browser Activity. In this tutorial, +we'll create a simple Activity that can view web pages.

    + +
      +
    1. Create a new project/Activity called HelloWebView.
    2. +
    3. Open the layout file. Insert a WebView so it looks like so: +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:orientation="vertical">
      +
      +    <WebView 
      +        android:id="@+id/webview"
      +        android:layout_width="fill_parent"
      +        android:layout_height="fill_parent"
      +    />
      +
      +</LinearLayout>
      +
    4. + +
    5. Now open the HelloWebView.java file. + At the top of the class, instantiate a WebView object: +
      WebView webview;
      +

      Then add the following at the end of the onCreate() method:

      +
      +webview = (WebView) findViewById(R.id.webview);
      +webview.getSettings().setJavaScriptEnabled(true);
      +webview.loadUrl("http://www.google.com");
      +
      + +

      This captures the WebView we created in our layout, then requests a + {@link android.webkit.WebSettings} object and enables JavaScript. + Then we load a URL.

    6. + +
    7. Because we're accessing the internet, we need to add the appropriate + permissions to the Android manifest file. So open the AndroidManifest.xml file + and, add the following as a child of the <manifest> element: + +
      <uses-permission android:name="android.permission.INTERNET" />
    8. + +
    9. Now run it.
    10. +
    +

    You now have the world's simplest web page viewer. + It's not quite a browser yet. It only loads the page we've requested.

    + +
    + +

    We can load a page, but as soon as we click a link, the default Android web browser +handles the Intent, instead of our own WebView handling the action. So now we'll +override the {@link android.webkit.WebViewClient} to enable us to handle our own URL loading.

    + +
      +
    1. In the HelloAndroid Activity, add this nested private class: +
      +private class HelloWebViewClient extends WebViewClient {
      +    @Override
      +    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      +        view.loadUrl(url);
      +        return true;
      +    }
      +}
    2. + +
    3. Now, in the onCreate() method, set an instance of the HelloWebViewClient + as our WebViewClient: +
      webview.setWebViewClient(new WebViewClientDemo());
      + +

      This line should immediately follow the initialization of our WebView object.

      +

      What we've done is create a WebViewClient that will load any URL selected in our +WebView in the same WebView. You can see this in the shouldOverrideUrlLoading() +method, above—it is passed the current WebView and the URL, so all we do +is load the URL in the given view. Returning true says that we've handled the URL +ourselves and the event should not bubble-up.

      +

      If you try it again, new pages will now load in the HelloWebView Activity. However, you'll notice that +we can't navigate back. We need to handle the back button +on the device, so that it will return to the previous page, rather than exit the application.

      +
    4. + +
    5. To handle the back button key press, add the following method inside the HelloWebView +Activity: +
       
      +@Override
      +public boolean onKeyDown(int keyCode, KeyEvent event) {
      +    if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
      +        webview.goBack();
      +        return true;
      +    }
      +    return super.onKeyDown(keyCode, event);
      +}
      +

      The condition uses a {@link android.view.KeyEvent} to check + whether the key pressed is the BACK button and whether the + WebView is actually capable of navigating back (if it has a history). If both are + not true, then we send the event up the chain (and the Activity will close). + But if both are true, then we call goBack(), + which will navigate back one step in the history. We then return true to indicate + that we've handled the event.

      +
    6. +
    +

    When you open the application, it should look like this:

    + + +

    Resource

    +
      +
    • {@link android.webkit.WebView}
    • +
    • {@link android.webkit.WebViewClient}
    • +
    • {@link android.view.KeyEvent}
    • +
    + + + + + diff --git a/docs/html/resources/tutorials/views/images/android.png b/docs/html/resources/tutorials/views/images/android.png new file mode 100755 index 0000000000000000000000000000000000000000..39a1ac729394b5f97674af47e2c04f37baf6be90 GIT binary patch literal 693 zcmV;m0!safP)QI`~3Ejy&93c7nQ#s|NsA&z$E|w|9(d{K*kShS=)UI9?IeNFR zIC<9|u5OH-r^WGZY9IykY>EfwJSNW&BO!Aju@}Sh^i$TnE7+s89~{ejELOQI`~3Ejy&93c7nQ#s|NsA&z$E|w|7etu0ssI2 z5Oh*bQ~&?}|NsC0|NsC0|NsC00N^8C82|tQ_(?=TRCwC#mf2#2APhwzEFvV%|Nm_h z78M6A(}(t@nGJ=*B{2h0ug-|*_4?+Px^yoqU5VwwToDNU03vJZER^jX(dekNMcFb5 zx1ID|5WXM$+9BW@;XFpq&>OOvKso?;4-oXKRdt0s;WL8%A zhENUs*peM0HsP)D%0@`o)V)E6v;rTX zJ+g0o^C~CgU*#86W^?R7ma;JW0do3_O(XIT21oPAv0cm~`=;~(vTuEVj-)Z-R7$BG zM(Jqt@tjZ(5McrYDCdcnW;x7q`$W9Dvy!ABsT(1+0|#y0CPrn?6{)AA?TJCzGg5gh zt~w+&m1)HOKqbzp#E(_nNyW8#;u#^&K1Z$$k07*qoM6N<$f+x{N761SM literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-autocomplete.png b/docs/html/resources/tutorials/views/images/hello-autocomplete.png new file mode 100755 index 0000000000000000000000000000000000000000..e1fd80dfbf8b95560436fb3c63698a8cc8f54e5e GIT binary patch literal 4601 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 Q`<4Od!tZHTsXImd3zG1;S^xk5 literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-datepicker.png b/docs/html/resources/tutorials/views/images/hello-datepicker.png new file mode 100755 index 0000000000000000000000000000000000000000..2075066bfdc17e38f02d8705509dd337d2e59ef7 GIT binary patch literal 7322 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 literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-formstuff.png b/docs/html/resources/tutorials/views/images/hello-formstuff.png new file mode 100755 index 0000000000000000000000000000000000000000..3b4bf54d10dd1f88ae4a0ed73155d8586720a52f GIT binary patch literal 4258 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 literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-gridview.png b/docs/html/resources/tutorials/views/images/hello-gridview.png new file mode 100755 index 0000000000000000000000000000000000000000..2def0df666a4490300b0e4310764d36849d4f972 GIT binary patch literal 21768 zcmV)2K+M01P)Gt)nTv+)>E*S%$BUV%NmpfD3k(BaSsZ z>dB?uXNZ=A;eQ}i5*yP-C;gtG^!NXe zVICkM7pP%l_V@LKf`k|t80Lw%>;M2$4oO5oRCwC#y^mkoSobbUVp5ApLkJX2X(9zF zMJJ#_1st>pD7GSM`VLgv$PBgAspzD%ooT7?uiv$HK=~1z_ndp?-k$Ggb^tLT?uTdn z+}V3=OZ$IFv-}I>M+HLD#?L^&8#rwbpFOR4+wJQYP6IzGkc|i(i9@&HwqprQ2HM^J zx94{(5%`4;{1%{T?_?x0-=^cWm+S58cl=mDR^wD;l8!|prvSt|`H6;S$j8oA9Dqau z5ibDPtX;kScucn^1E(+Pb|lgc0Q>;lejFgN^|!BJC)@LrJ68dEvVC|(f4rhCJMZH2>)y#7!1dz*q1Pv`CfBv~o%m$HVrgHUu1B=1 z2u(*Osrckh@i?xX!ns53DxkfK%v&-kKw#NfKm09X+4;EsV@R1HTI(QMSA})U>1*0z z@j|Bq)NdaP^yy?tot*CX@X zP8_B6Rsc&& z$MB&*8|SqGoQ@gq&`|S@dyFn{bobAGSkLbLo8QNs`!_`SKLh0S{PcXZod)0`FnDxt z|DUzqe;hdQX4cAHy$BenWJvcxb=q0#8!w)>k4gqNdLqWK8k5DkWvbeGm4M(E~@H`X> zB@&^jML1R_jJCfIZ;<-CAr-lzNKwU4%fj;V^3k%3qrF}aO&0~>MC1aSkplg?O;Hph zQ52kEL;%Y${hy#DLI(#8xgkq>Nmm-7gWwv=`2Ath62YkhKkH+4T`9q#<9AH81F8HF zknLcC9C*Vg(M4ztb~}Wi;CEf;WahPDH?aLU2e!K!V?beqHgmI?&CI5)3vZzu*5Bp}Y+T4-km% z>*zXg=JT;Wh2rzI^avxtE{sGdp+NuV7UgJz^%EdLIYAit5S=n$05AIhRP7g5N#lwq z#S^N?Epx@9tH{YRC%BdciV^|HW^I!$d}>o7Faj7r@}v{MF(6t>ICPMJ4nlX~Wk&C8 zSF6femyvKVdf@l@K(H7;Qvv~lH*sxm%{vMtL1YUaxBY$)E!jWiCqNKOmys!uHv|GW zCKg9Ti!O?C5jf!hNU^#sb8rK}B0wUWo3X-cufYhan0S(9PKJOaLZPq^8mp^|AO9J)<_IHQ**Zc- z!~xOb00?kG3G^~uT`pFk39>9uGRP4Zd36z^Uwc7|PJoINl&=%80j(j?I`DTC`2QVA z&;(GGR%2~#4a6!8Xi&6#9YvKjPAGMJ9p9R$@m{;vRJ2g4WMx~2=;h0HV==lNiW1R6 zLPA|eCI}-F$cQ??2uE|23|w%_ZSQiGD}#;*auJX~-?>QSRXcXLAc$b?P|1OkESkAt zM*K=cmK9bJI1Z2~jL(la-Vz|+Kz~$tL8E|>j=@NN7|1rt6lj+(5%T*apY9L&<;7^@ zMz9*8#ilIT$MrAWTb?nwaDw(v(usoRv2-B zjEN&aK(yByjfCuH6-v-JO;$QivWQ%0gNrEr69CVH(zT8 z5RuZ-v^or=g%Z&K`>U`%5d?_Vz;yZ1dr_1ss)V}1#)z- ztpowbHn@%LZwJ>vzOCFaVrI2OUjIN*&%vDhB@I< z)*8i_h*p>dN?I(KB)JJ+K12LBX(fysT0)cOD=NeQU1c{HE#eS^?`LPjJ^)gk14g2K zRtt1wX>np=;@bQ!_5)#0z*vbzs#@g1W_iF7Ryl#l76J0AZGXd4f%80{-wSA(!yI0aZRQLVGMXc63zfBW?SHSPU#Rg0*tgrfymKbn+*o>v)BfRmZ2j+ zh>VO(O&OvE$39_XyI-_a@Zu++8CBlna`DSxe7UNDqaiUuT0tG@X9PrRnWAK_N_#xZt}=&yq}XFbh-_Tc9E^^F0%0E0thLd04FgH|6+he* zf0zL}$=6hp8KXN2xcW|uZGgbRf74swHO&}_F3v3)x25+!;}4@#*FZuLq(oOB)LNV{ zfMCoBI>HXElEbZNS7EX z#V64iNtmAu0$Bt70NYA@;F=G<_D)t|G>HuOPzsnW1ze#He!T^*oozw%JIqKuxC|K`n$vl{hAOYzQoKLL`TCiV}AGkk$< zX8(me%m`q>2#cyB5YP|s>s9b0svwBxam(*%6+#tCgN9B7+}z1f7>`*7xNLvek3b+x zWLZXRp$J0s4|0W>V#kN4QSc;ii0L69Y-nn?2PMd=6EB{=c=7b|$$pC0&gdEK#iO6F zO;q&Iot2fjJ0M!vD0bK(3J_XB6jdy{FnY&mU4)1y)ojsWCw&3F@(93%h zkM9XHD*r;WHvb|xe%i0Fz6zS?eF#xNVfvN5lLR0lRYV+AnWr!f#OERhNCZw0U&T*( zyVWYFytO6}xnhPhMDQXgPiVDJMHm+*@u!;J#z zwx!vFgAbpdEG{acg!qEtA5t&4dj!Y57ZM2OqT$#lK=sw(5JiN%7QlEt0wjPUC5Vzr zQIaU|G|#tBdCGm?4PosYt3WJPc34LYd#RB07M{1Na2Gu}P;0i8c8ZMBa!EcV0k11Q zMQMn#APbG*ps|NzcXl`Uez8)S_)yQu>b{<4uXr_Wwx$p`4yaj>xg^}P1JSR7{Zmla{eCcDEQIkg@8os( zH;Tv3NhPHMfxUklZ)@;A1=6my`k;;kcdv2m9t1&~Wjfulju?A{zq)8^8ejySp2P z4ksQ3*~Ev=2U(d4f)n}cg~XD`bP3qFvqHc$>ivmTM$?K~k&;SGr;a0eAXwfVM;lYx z5~flbT|7MWVy0SLW?Jp|{N}Sjq5rE;mIhh~hqn)6L5b#^>`rq&1ywVaz%_)J0&!} zjFtwICAH9vt0HE%+<%r25A%o1Cs~Hxf%f~eAs`1!2M2)R8v;3i|HxEb5F9{`*r@Q% zDogz37X)%m$gqwa>`w1a?_M|fjJ5Cqd$8?aT8qk${(Su0Z@}<1J_8k>Cy18xGs2$0 zSI%j?fVl%hJP4%$J9vOgqg0eNhWSJ<|L0HxQ&u2A&WC_}!voL|EU1#Q%jK%T;o{3t z^n;*CYujILG(=e&_Uwpb8rtqODD(3m>k9{W6T3^Z(@WEd50Bxzfy1}-88O^35iJlb zn)XH<(Dv*eNUb%3!f2ET-cQn~Kbpk9s7%4K6W{s$wTWl}4#EfmVZ}EklE71GGh@Q01BC&p-cs4z4AsQrV68Fc1mIfWr{1=u(0t6V;rn+Gxm? zMY(tRZEf3s4FuWBH37%rYd`<2sj8}_(~@-VZMU`lPhdc%4!SA=8HJ&hV7Ex- zPhg>M=>r0Md>LkBwvP_@u91;lUjA%NVi*8KGY? z;$2qdBvf|4vepwUztS0DWVa8??%Oahf}%BT$k*p-01$o~e!rGL+4@W*Y><&y`!rwM zOMOha4+HSTVY8yi6YbAl zg9zpNTE9el(yDLm+GMTyzxao(7J85AUBj1PDF5gHlPo;&0TCg>;9B_06!JmZfFGd& zf$i=)+q-pmVvRd&HrqREDwT4lQhQdb^#bmBt|WUZq~r1EM8MKEuZQ zh<$2RXWw?GG8j&*!-{2(-{qD8jUtywiZVM(WNh~B+FIx{YRO|z z`u+@&Z9iCDwXLsWTVKbYSCf-h>+3)g9C5r`9RLhMCZ|1>s_~UdIx^1>1dVHc%&8zd z><&n^9=#6>H&A3qLb#^l>-XzEpBW>4Sc0VU7!BhSJeE+z9tYRH1PLRLhZ$) zU0r=}HTht&uYCnfZ-6D64H0#@nZKx2Dl%^$WW-M{gmgzx2$Jpaa-tU-ZOfS6iUxvl zexx2WG^7`(92^9Ly{Nt`Y$WNL-ZktNs`{X^v-|@a67pd3>m=R~0y%nkz8-%)UVpQL zQWv*gTv*S=ii;aCzdB^NZ@WoVPbrvh!Cwh1|D#7Z8q>91VIl(_t_1e$>VjTW!^f!civWG1C034WC16BU!Tr1 zUvxsxuWw1BjsqxzP=**eFhY~*=g*%{rOqC+H{3@STl!@G6R zj9&l8K|w44URQh66x`CJ6Q8AhIW)*$_0%Ya+P5X@gWBNllNNg`)eg1sAGsK9^c6UJ0$2YLh^VW+&^V@gXr7`Vb@Okh6!l0=S_;j~_5Sz{5^uAhZ-eLJ~T09j9oO;uP z%8pJQB3&7JjiI2aaQQH`C*ozK`1h{t-vTN1TGxLvrGcjRy-EMa z`gHUES|#(Q_ue!P2s?juypG3YfK?Qw)3IEwA739=aaLEPMn}UpO=|zpoOzad0D1De zyX$u$|KGB0ZN1xC-&%inmz-LM+XEZVNQ?l#tvbd6iT7gD2rD)G3M*dq2dorJX15i| zFZ4eKWb#3;-G%nx?t_6gX)9*4YL>$1@BSW0fc1-whQfOLa71ukWVNb$|6w4czpHTE z?KS+h*BnwdnanaLHh6Bi4TzEZAR}_4;cr=t)DG{I5BR87edJC5BoObZbqo10kPu3G zSSB43LuE87%Ur^5wp)O7bJ9)L4@l&OPn+z*m^|(%+j6xmvpeMX!UzyDNxakQYH6!a zSMkOE8#%{zh9;DE`ye>7*(_zhOC)Ox(EyCq2L_V6VkuLI#R_W6K6yKkZce&hf&?c~ zm3?g7VY#5`)5u5Af4^KV`%jF~g%L(rdh2ZKka>M|>^Q7>^REM&k@(K9*vv-+o`;+1ZR`VkjdcKr*(Z3g<<~gRX2n=o77SohmFW5FmdeTD?&M%9m)!)esAb z4AW9{l0)kac_k_tlJ#{I$TIxXA{C#!vV8n_`f+1^BaUqc?hA$M27sP*hle%_(BIOi zXsu>4l&I>`OM41iamS1uu#w#Y3pxvq({l2l1RwWP)qMyH^SEa(ZxpG(0&s}w%qwopSJi;#?(ToK^>1} zfJ~k)0CO=-6wgq$44Z}Rtfba90Z2iUbrDb4*uQ7wH_B%W%G``57#CaO-Jz)wtHoBA z=~#Q=^!2kqBmzLLkyt>jH$hbp3fwm+(D4l1vpAt{^kb;WSD9z8p2avp;sM9j<>idq zzGt=Ez4EY3?bWk|g|;SjoXC{pzhGo?oiYYr;2$+a^7QCPs@LaxW4fb$L_{F%_UqS& zn+A}sy2oQo7R0HG1AYaMmP}@nCs`(2q)mW0GC)a8(RIj%$o-Odapp@_5-`ctb zh_&~9Vsy5C3nQ$YbLDcbvWsqeK})(w=I7%ZmV%g0J4;E5X)&!5SIC}_1sA0f zlgyau$b-AFB-a!uRf4`}OM0meN45kwViz@@Z#F$ynE)BjNW^Bdt-o1ay+Smrs2Yl) z<%-^tB=9E8Z@1`(Ggr>-mvbC_dJaflz5Ix>1xVuaROMk#Wl+1p0oIw4fD0S4B?gq< zH2S?ui=2QLx3gJ@dJspc&H#`?ThsU^M`y}gfa4a?s^LW?3!r(kzItpE*+zp=7`?$r zf}$`oP|}_puOnhEmn+X)0+4n94cAAaB}7p+HBeCKmXtlIBND#mp|gN0n>6w4=rr7n zK%w}Ry5p#1v0f6woDxH6YD+k~|2IG^IFW>0^t0J46dSFg|4`&PS4&|;O0QpBo3&BV z5`hq>bM>+-Tan1c$B**{miVbu$H^QNxN<;3rFqRrK9gDVe8eF&`ST=bw{cAbF@utT z&NFpZ>M$?1wouv6#saY$K)Q`$Wtq$dDMQQ)+M4kY1~7u+m1PuGJ_BzE$9P84)_I53ikFb#0U2R^u9c(1 zavm8`guwdERWy@)#5QwwcV?xWE0@ba&4kklkO0Zq3jr7MdLXy+l-Q0(KnsK-0;sYX z)-=_12uVrHfMnGR7V84ASAduwH3b;~AS5onJ6=c5@f!Gs)o3Yn?F!^lo^llz$(9Q7 z$!kW;bY#(0K03QxaUMB=#iKpzUTV)e^Wt)bg0xUz1W8gEh6VXzIyn1@C_u@~YJp^J zaU~{G$if>k&!}vn01l;)MO7(*Cu04V2;){p_AV|62m*$LSdDM4<*J~xT1+8k?Ypu$ z%7{>Q0f@_)m6@ZNqx~c6s|`r5W{xV14t87Wv^bm*FHua1MNKD!uyqq4lXuZ-=@evP z@NzcEWL|*>Nyd@}A($i|Z5fQP;q_vQjd$faVJmW4e%Kbo{fE z8G>ZIXr<@fwNwh_D`mB|jR?L`UMb5b9Tj5dcegS^LG+MI@8_KM8K={|Z{K&)V5>SU z2LCx4gPKz)f#o$u6A6ya7$A4=&M<a`90*!i>vti;mO~ z2{db}+08^+-^x*0QB;}LZy3269cg5>berdRPcv|SdP8se~v*BKS4 zdqeR{3`p-JjyzsX9uQ|UTe zGOiE9srqp zB#Ur@TD^L3{NQ+X-DcUaj@Zo(!%|6T^ORBo>B?x__wNEx z7o*E;-Gq@2g*eWnECbn;7rxWLCfF~4PGdU&g$ zkTh4a0fu!5!a#{FCWF`vgoYF^2wb!2o=Lm+{<6By9QInx>V!}nnYW=z<3sLoP zj9luFGh~zJ7m@RJWFv+tWwJnPH#mATQ^qjDr`)vwP@)dKzeNThI0%a&ICks>&QrgS z0;!iIwF2oI1lj^^=lS+SXWDUp#^KodLj=#!Ds?D|YA20SJ{?2X>!vyajHnR1XA8B9 zSAke+C;oDCGjQk;n9(UVV;JF)khGoChh|L}pCCX4X0`6^x%2tGbrVKPlps?)$2Gsx z&Kd_mJWYFzPuo-bLWipglCEg)8 z7D$J#AT`t9?YzWxBuWy>bc|tdib>VY8NqbpJ|KZqIQDE|;n`-4tM+houJv6Ph4Dbz zY1(Xl53bQg^ZXz>OJ zYpNr64IuYZ?LsWJ@N6L#i?w-aWZsq}aJK=WbyFPhKf#Z1PWPq50eQXEZ6aDFk<$bT zA`7n4ma2sMeMg?W3IJ<|pi%dyygLkY{9(wjcx?G%$ zl-xvdY`rsTwM4{mc4h$Cx<8X^wEFpIF#s%UjPUjSajV1(0J%-F*ld-nE|;AIhgm*? z*OCfZ@Dr-6Qjku;ztS!t;;H4pa;15v-BYPlLY2ymM;Nuf0ObCe)&%eBUapdGcJ~=_wZ`eSADjDOg0Hod@RV4d?B!_JkF61|s z4(Oe_Smu{$K7KqVXV09+p0yE7j54wx9QEPBukcNtcY64A+nED*DX7woEiIWaatU}L z%k+3WyddK0(nfdHH;%dXKp>3zfXSr#fn@s)9L`*AVAzXhza%kr%}djTNO$ztgpp?p z0Hhs5!%s0rKN&#}4gIEF-siVsZu2LYCNU})**Pqg)xEeKrU$Bx6VC3^mMg5>LH&Q2{5 z03ccmgp)#nqDavqzM|34D~%R7ii6Ifcyw`?P$H!w?vHMy@c0v^k zG{5ZeEPHsK=lUYnafOz62=rrHgZ^VyHk+%q}=wrhdW{Xir&((Obv4a0Sk|{qVoB4zE^Z9wXXBb&|8wfVTkvTi={Z2Y{s`hPn+NIDDv zl-i*?;@;cao7uB_Xb!S{Qh5Q?qwW0^um|ji#3J0v$hbu)kV9va8M+;~fb`0Qk^fUI zyBP=&EXay`Z^oVf1TMwHVWa6~0CEaabqIvG)3@r#I3Q{!6FWc0fk<3eVf)8`Fo*d7 zLWvx@(R#USdC&>FJzwTYwRDIbuoAQv-gM~wUu1;%Bb`pyYGgrS924Guj1g9P{W>3b z9mu1~gXPM5+Po+4K03;K_%Freqa- zsrOJqbJfCX3$518?9%50`1|M#~4RYrbXApb)dF;<5e_YT{8 z-hbx$__1}QffeVfp>Nf1c#9ghn^uiR;XEFps=xjtGxBY2YR+hP=I-1f4q9ewWUkj5KQbfiHv(hoy0=3}R^WCGg#D3qk^rALDUyED}tkqQ-eQg`=)k>vW!MeG<=9eoWIaGB;U6m*n6msDxnVF8v4XVgB zA9qAa9ALymv`+X>hkFi-?b2bLzikQi)$zLR_!uiftRGJX2G+9&ZyMHo4=t`N-dSw; zqX(hTfl)s>dS`JF%XfCGUQR47ejmd~ACxJnF@;E79-fPSbm#~324!HxuOxtxL?g=j5+TA5)*}TVA4p|byzL*Yd|!0k#)#2^QZpws80dRK zus5rN%09}7chYLNUpg%Ay-NpPMyY8#*x&v_2?J#Yy32(6frPpxhXGK-?{5UBs%z1x zPrs=-oS4EY{EOGM>#rFZ(h*elscV}R^mERfT*I6BF=DHSx+tHii^~gwc zrC0MEE5n*I0uXMLJ>-`kIwjoLfz<`BY)IDJII9If-tE{NH9-~xj`rj=jn-xyXSVg# zu8zlP-f`7m4dUx4BZ&}7*P4=${F2Ug{O^_MVyF=%qLt_|GId>;8-bYW$hSTib9a^! zR4%8I(y4k!nj3V9jnNr&mK|%rL+A5+rPBP)i@91m_w@eLv-@u*k9SaMcG_HOeR2@W zFe7A31SK5ZR(yU|-`)-{P6fA@2p?V1LPmOJpeM#K(&_q?Lfq_KKV7kc^tOBdLyGc5=2h?UqXw1 zpYAj2S%(tQZprshmys@zm81Q|+*lpy;kZL6k+80m-l6zXqo*QTBG?r`_w5$JbCIW_~0T++Iwu+gNxfxH6S6bR-cn_IFr9 zMtatFZmwQkt=4Ez z7dq_*UwORla5{4{wm0j?$5&UQI${ul?cgAcrP6iKfly-U#%y)>KQ%;S~Nph20G*rZJ zhbtyJLKrdl`0KByPW7SX4`=h(y3MGRidY0bZC$t298aGr;Ev>QPlnB*i9Gs_C|^+pX(XXD*lf?)sjyTZTkSTIsd9*{~5EHwYs}sdPC+cHHY z6fHxr$Zi7TbfjNNf;uBA!i&o^uZnZs5WY)^NvhkYBM&8As5Ld7VzP(tiXDkm#8t6? zvDNX%!>4G=CRc5ar`F@z03&lmm$9M6^0j>16K7{Lp+p#t#G{{n3MZESguWAJxI#9n z03~6^<|EfgB!xL)bdU8&U>J;p=ekIy%shM7Y5|mof&_}8VWnJ(>HOzE41+L4gd)*a z$6x4NR#!pQkKg>9?q|e*Q=|xhtgUrif8B@o{;Dv?NYoB(X}ulU}AfH8<)Iw+#jPE`x4sd{fkTH7PKi;(rbqiInYE z5sHwq*od24h2waTk()BPyTLWTPkDHDf9uWG{TH^F-I{UmE03^J`k!YnCiY((y_h+A z@nU~}Vj^eeN2280o-(?6XUWf~rB+dt)Z#MLxEXga7#Z;+l7@oyK~j?%mM^BLz&s_j zIw$}6gi{(7EFX`|RMPgdtvB7aY9A1-X`^;M+z!@QX&=Iy`?mW}_Z?KK#@qQPq@MMk z``ZVYwoXjEAVuttOmu`z&)l@5nKCfK=qJVHPetIxAoQr4n;nggqA=T3`;UiGlFCq; zMhU9O)if-szPwyyTeyc7Bdb`bkrJHudqCbi9AIRZl;GbzSlXTSOZWEw+JCbD*Th3- zO`S>G`TY+B$fJEl58;Lu*o`|YD~o1~t**i<783}TB3@Q)M56{9B0N78JyVY z7@c@l(mYM*c?R5HhLrww+Ch|*&hqjJi(d&txm+TsovOL^&j15KlO6yvd(#g7ocKJk za%b_wpRzNj&NS_w{a=hy>HE4*Cy_h|7W^>N5!UXwyaWsmk{MmPTvAq)N)kgcqApz` z26zD=;^LCgnb_N^*35R`JI{bvwXO4>2dl0urIY|j2P?!&mE3+#)^$bIaxb2~c}m*D zF+g^A6CW1uP25wJMcvty_EjhU-KbrEzk<8fpw&X@SRBvDCG-+uIIOOUq-rw6@scbu z)LH-XE63=iH}?GpM(Wf-ttla^3jChXzV8+&sZ?BU=~$B)T>HKgURD&fvhw21(>Fgq z1=G;~G5)@i@3Y$?pTo z31YEDmQ~Rc)55|YJo&iO`aE2NwrH# zB{#9Py886#lY8&$13E(LTat>3OS9-oDj%Y`&UYDTIYWUZ5xI!#-ewu6{as{Jg-=-K5W?#2Tl z3YdT-d|XaYR414m$D8|qIQm7a?l)?S8&xi6u>iCF_Li(DEc08oK?t0PJQaJ zQOxGY6*yd%`-?046RwAzL92z8(n+mOte1{GeiZa8AN>ABUnm5g zegB0~%$N<6vfL9$%7Gap)f}$3h33Lmp%m2>mE}q$1iA{Z;87;8=bR(4R(%bCC|OA_ zsbFOx1BqNcSbr+(6fLOKm+l^s@Rs+#e%WR!XD=Q;1hca*4}2BVyVuq0jpFsbFaTLn zwiC*S#7~btPxWS!g|H^<#GS`;J<%G9wK(i6v@Q^tso=9*Gz3OC*KIDcZn7+yik8|| zaYG@A@>p%hlan@xoatrh{r0chzxK8Fk~nh)(aeX%iAw(`_>KDFM#0|c=~>+PVs<;c zyAPcgj9hx*Acl3!{~8^QV9t;SI8waa!v$*oDf<@^AY&Azic~d z6eUT5)4qQRN$#6BF9dP>*Z1$=|N4kPc=YQdXup1_9G%_!<(FR`z26>W1d&W%SLgO) zJ?kl>cJk5zo(dX-1W5sCqb~Q7S*&GlYUV$l(qUPK^?9TOda z*3l`I5z;Bg8{4rJ1nC#dvwj8;~`g8d0ThNB*SoD3G)USVT)O-(yw@GnZ zWaP7{j=;Y^+IJt>_uc!@dFO=FedKn}z_Gt*PtD*Y7kB}Ict(MAd|$dvQ5jXJH0@20 zsveHNZg3Dv9zEP&$$fbLUL7*O12x~n;YYz9Nx0zyp!xh91und{WGD#0Su)Gnb2Iz! zz2m(G-JV!+T2nJAcWN)Szk+j)Qu{=*$Zgb*D8K&NLn5i*+28-t9f|mhWbya|Q5cLo z`mn#BTWor?0nd&#g?ms)G49~Ov{5JB(Ee$n_`$c~u9hGaGe5$5pxZO46p{c4_E!Lo zH3d|poD(?l6LIX@iHyydcy?6wF9eK#dwcuWUwT7a#vKPHh+N$xK;GvdQO()8!NjV+ zyg0yklptl&4Tq0U2|c^vFKc0=Ffr)Klo=x)jJ2TiGbwoDT&y@#Ko6X9JEJ+Ldu9&; zl)aQSwP#IP1v4PO_K<+l{iO%tF9XKCYZ$)}3;bcizMtEt2XgkIO6k`n-)Fm}(r1^5 zl+A*|lZ_Fugz}VGtd%!bvXcnd%2!-&c(!N7byXlu#!C)kiMUCuMY{iM7tOC=Zw-M$ zDAzCu4g<)e+&H!2PWfgV(s@R#s`QS$wq!TBt3viG%QLx77Ph$@kza zB*I}VUQg8I^O9-Kj^Fi6>d1bSa@a`z#*(eb67F4w-zfMLVZ zA_K|cn4G=74c$X7y4Mx1HQmthdpBeNnD@DKI^Aq?O>KaY=RH@5HQzs@k;45c9#8ih zf!*n)$GZo!kGp$^nEMfqck#}neLEf=mnY@G0_r_(EQWYl2$WGq$k^{M-7&g8EPZrz zaR6XG?Exq}$8iHgrUn_$pQHFchkMu0KkpYgxG#PP9y~Vo5_tUF%(Hj6rptMRjs)zK zGq=Bw9Y-WxG#11|U|CES9baGQAuxJSdPcVg;}?SudpZqBa_)hV#)eVV-Kh7DkEH(l zb+vcnH+1#E_e;IH@Xx2sbcA>E&K&Q`!K25?=Z@?KjBfXh=N5v;WZti`Z8RAU@}t)v z8G#2h%U$D~71eH|1}dJl8VNE{BaFLy;`2lpw+kk-IT{IaY~um1Cdd==Qr(0R-p+e? z7sv5{hO1Uw_8Dv6z=_R}D~k;elX<^b{R4}olLK#c<0p#~%Il<*I;p1K=~Z=SJ43T- zx)b&4tnmipquAcl>uG#A(bf2D@)st4gty~r2A+dkg>$9t;MLLk5=v}68)hL-wI6Ka z*&rh>XFBKc7%}e*af^axPl-%RN|E&&bzB4TZT zzhQ*!n5+}&ZbS6{qM0qsGFyjY03p-sN({Fcye~T%#hRUV46uh#fFt{GIgPThF^$u>}Z8U#F z(mT2i_fknO8B3ud3L2e2k-46VO8FYN7nGk3VEy6vI$5*5-KdtMz5;oJ&5RMM$Q4hh zBK>K(xV*f4ROYy4PrFUif*_wz{AMIjh`pw9Q)%3A9blfENP~NM*ZslJK?u?y8H|dq zG~l_9m2ji5aN=z^5t<6Fu|8JUl~${y=m3q;(t$m*!o@vCA}j)l`dO-t%cudj#<2c| zYekkUU5yB$40T3>4^78c1SJAe_Wy=742rQ}RUU zAc4DicYu|W?hgVe1#sY|mf>({Ddf{x-PZvOB^^sJFhV=;HU)BBa2SgNR7pVsqf$EV z3NE|KjkYlx+EhnGjTTOd6c9rfi`C^SCv#N+>lIMYV}p@TF%UUM5>J4QEWluxf$}W= zL@3n2J-@Kji^PDLtjNmR8rk0vfdmyFfg#~yYJeot?R@PvMs`a6L?aY!_;9s#tJN|# zfb&OJ67=LSBR4ui0RR!VyDuUTfFg5%r6`k_o{u0SuiMB7h!svEBgKaYfG8kZezN7g zLJ5M(_&SY-kKn*|a1dGpN)#1d(siHi^Ha1Z9l4E>E1{7{R6%iJ!$>b)*5<;5E9;QB*MXi zU`N^3I7luPEViPri8SvS&xld;y<6V|yr7fleD%JExhVr}t|I`1l8eQ58*3_na#RIG z0!ktPBeW*8Umq?A1PCJv{5hG5H7Hu4P*}lrL>*icpb1Su@Aws*k&YfoloNG@YjQLv zD`ZDQ5G_7Eczt9@N8q+Y>Z?d6a(U*6)QofiJ?&my?wxUrfc51(%k;8$8G#TaqAY@? zrO)kl;q~Sxu)DY`HpN?0RCahRxD*Wfag~%GESJhvG*0Lcw}*9djFsa`MWgv<156hJ z5kc7lWyHCC#?m#?*qIDotpq5+-ZntYREKt=Qp0s+zD zMnjZU+>`hC%77B+mGe_@a|dux@OXYJBLck)##aVqcY#l*xhjW9DBz^QNc1Z{WfQbW zK2JyHPqn7)f)|+~(W?7F*I6G{Bk=n=0w56>F#e=GM@iQ)reRc$&&eIKTc!@8 zBHFM{`kOAA8jJfkVbM!)vn_>EfSs2njP&aWk3gy*TP~h=RjXBl5;V9HH^14w-!5qa z!w4G1XpTQL6tQ8^O8AUTF#Y~kvr>_;bV%#kYL;4hN!f1Z1Y^fZuv#>jU#>pFh{dRr zj>Bl{t9Di?gAY|&4W`^^DWcqB)$7{zHgiVWsO(ja_ms;t7%dLfy~_yqa-){2={kyg zwxehH8pkjr${qpL6e{aX;94SVVQ_oKtQ$$_mSU1Xya9pS6tD~@JO%UX$(t~u-dv5b zIBa&dHK&mM=F5v<&UK2aYgf1GNQQ>M3{;$3F5@^h5`xO!5K%|CSMgVxT53_6meDAP zT`7WNFxK*i!We0_07tliBG!TTw=X>e2tC77Ob2Tg<3>3Us^}d?^Q7~mIwJO$e7Dp( zYzXK6LHt)nKzci?U7IyC9bt>0BVc`@|8#lTg^Yl7fndp?-c&BK5kH5}Tgy@^lZ05Q ztHMLEmY>w{Q2gE9qp>&*8@gu6$;fPx;-OB)O_&&fA zmS+G6cv`j;(9UlhrkRd_XmONK#W;&bLO`@+p^B6EK(hG2hGm0MV-C7h;;eL%)UrPr zW+Xwjh$UNLhjBk|=xkD#NU5z3B`I0G1*)O@S{+{tmmMjZnX-3ItQ+LgD}u2)YVby1 z)p5Xe8;P4)|ym0wQ3~Jl9<6gkLv!g zj}%B-^W)a!xSx#9;?@i;2z5&(rNwj<$VR|mkqFQS>f`a|O>~6R0mr65kfkf#+G8S^-~8yHzB-?}ux>cISV-kzf7DfW2?`pC z%LswXh=Hh_Xvo076*7n(ua!RaK*qu?nIp z#pw3rxZdW`Ih zVWglIi;%Z-c^3t_6DCKJDp1Bh_gu~r6y zY?`A55NpWF!GWA;X+B4L_G(^mGeU0FstJxaw3-FNl5iim+M_5wW4r_jfo!nTP+FYF zE@0Jo$)4sIy;0G9YujG{$(J=qg0cBV#)Fc;2&t3~NUlpkgStoIqh*H8Uo&#tzp>*D zBS|VrQ5ir3N+A+W#=)TUj+J64jrTSYh~}`RY8D4AWwRi5@cscH#$Mx~Bj`rpTL%Z= za`H~B=d259yOV2RokHLC7wrG_&g7$vTmU0jDLs|GsUO&?mSw+$)d8)L0%OBk=@By> zA?u(t4Ycw^#ia!ju2hR0+cXL{M9{RhMhnZl)q44+Mioz(LP4W48D`Lr;KlJo5HeoK zqR2Qz)#Kr1G`e!y?#_Xz!MW}2ZbU|ajFw0PAT?6+o$s&M>lZ;3F}JEcSY3tNx-C9G zA2DS_(+Wkch-Fnf9R{QdD7n~4Vg7^;n&LE$`_Ca}SefM_Q;JwNUPU$sCZse5w{;Jq zPj5inhzexhho`pDQN}hwk%lf4R{R zGe&AyEHBOLra(F#Qj~iyWzW|faZ^8{6~Vb5T9LOsdmD0YlrqH#4kcW0z=&G&=O*zl zDzmV&6W{s0e_w)n!=M6KA&h*}iEQO6z^=@>qM-a}ox6;%1`afCLoJIq&V`Xn%8D^2 z#F05;mwRq|etzDZkpf5O9X5;2>h|E}AYSZNYXh~%)wU9&@<0FlGmYyBlPa|lkB=~N z0Capa1Z(LVSs)>~%262ya2KWSz!WmFb}dtB=E|;ff&&_M# zS12x><~2$MugPeq=cj>z>DY|}Y_p+*&_OU5tR}nrgtU}yyB-gFn%@iv zJ+7cNlES(2Gsa{~x4DjJI5r*ud$8v|32S{v)wm^Xq2$ z2unxYdu0BS4dpMj2b4g}uH|yMeQfEPSEEFg5}YsgU3OZisOiXIWPlNoQwF}h6WOSe zesfl&oxI<-c5Qpt{HCI1CRo>XFsW*_e1ug_`X)Hh8}AKNGtm2OMh437uiE!JHxK|HM!1yYiU@j zSX~ArNAY#@e1x5Uu!@_9V_RQeH+Dq4ItFWuHX;tnWq}-eFXgs7oi&Jtn$b!+GPu8u zvSy40`QLWGQYHAPVQghXegnhBxC8>=28VB?0w;585&pUcNjP85$B)NcXJ_{y60@zY z9zU2I*vfqJ>+13G>N?Ik!|fq}n+u$YePI{mO3pqowbHnz^Ohu4hRv74a&_B~iH zo}{Hpz9A$djAXO7Nmd<<4@6S&)p6rm?A|H})7|3-1GS3!@JxRFdVGv!G~$l=`3viO zTdi>PfQ~4T;6j$`58sq^Wlp}m|3ad-@S|Ui9Yfdw$ubkIew&4(GGG?;?iC)UUgFVP zN7lz)A7N9dBde4G7d4tX9b&|fmvsF8ewEjCvO6#P_E)xh>B%>s zB%?t3Hx%;W6j{09H)IuZ3nmLrqHy}#_?#WLLIfaJSN-Ldz7E#;>4G|b69)l<7KjWe zyMkj5c=L^&b%&6Klzn7be5o@4!ob$)$hkx0nXI3 z)2H5a`rIDbo4=U<+uOy(IYcvjdteMi2R<4SB&4L)aX*s2{f;^~7HNnV4%UrE@wXQk zPvVw{^=#&u<#$ll3$s{@{oiTB0$wL`Z;a6{9WRTw$h8Ecc)33C#`@pSpfj!cPIf{~ zwl8q|XX_6=gYNH2zGt!I`}qZgz_$4xe@>%sEF-wxak_S4#T~ile|$#90FgBMoQ$X9 z-c7cC(Nca;Mn(jzLsDgx=J|HpllGpUry+}I|M2sE$L?&v*2m0iFa0|c``@|o|JN|W z{@v~RZ9nwfc)TQMTqq^8RwbNNBX#fiQdTPIEu3sKblt8`(Q&x?=1^|?^`B#e_2M@1 zxK}aRR2CaJ6B@l2nsfM!1WZ%z^l)milYH z-g5SKv9b~4FIS>|SIwd>uG$i{K_2WFcYvS~My%~JNe zH?p;AXbIdWFLkw0h{ZBe%K;KNMzoZ<@kRK11y%2i*AdpewRLy-BtAJA{}}N`4kIt; zcYgbQCm!Ef$YctIOd->4@yV}WfBXH_LLr7(=O~c*WKzwR1lt3$sr>_@C0#!5icAK# zy3!=YF`f}+sN{Q}hRE5euDXwBgmuF|X6WB1*Z16!*DvQcHsaU-$;LtqzQzLCDhz{`Rbp%#QAF!{#l?3{Kq_?_XQ3YgMEcLj$0Tx+RA%B zdE4I8*PEN0FQIig8EBT*$!si+`__H6yr#YRQ6S#m3(qzeVuH#X_4^UHzY|n1;8-YV zVuwRu<3ww^-;FGVsfrkFU@6rEpXQbzgpuHz1<~O#m@oa$>RN+2h1ht+J;;d_tO+ZrMR3DEg4$Xl`bA4{)PBcvA za)SO12w`};&^2EuTPsuMR?CIET`ioxein#CJ^~O>69Yyj8Qa{68&E8k&7{$ACq5=K zQuu-OTrCtfH=e~fflzXP#(k8}r#?FFKA>3f;uWX}FG#IRWXhZo)<4&;B1>VFcUBZx zW%Q2VtPIq%Huob%0OD<*z7A||MqU9Wz=_c)FvA6c!(!lqM&Z_oOqR}=cy@Q@+2*r? zCNSFN5w4sewysdnN^I$T6S!(p3P<+Lb&mHVbN$;1RQ8*=+g%4&I^1l7f?6_FH({hv zj4j7dMG(nL8ctWsp7i(w zLtUyffs5C;Hb;4Z`xtMH0pgzN=w@xC0WHPf*JEwV$Zy}MX9TOZl`m&p9PK?v;o2ieh@u2EPK0jZ`aK-!RMYl0PE!FSb@MQuXEYH<1WTl= z1`>dsN$OcjV>&z`WXnFzv-ekgM+@BWRB$s`PL=xuEqujv-fym)bM8;h&|TSjb@B0H z-oO%XGo6xD!pUX~be&5#DI**dx{ z`t8Ahhlax0?fZgM;j3M@ey3Z6-;|LmDF*mpE3fgVwG<+WMCLELtZ29f66eLAWb1W_ z&SHREuh-3Vgajj8?afY-j6ro6ybgf+jFoJVD+d&X@)`hN(!y4SX0AYKO<)|TS+kCeOQO5wFFA7 z5kCaXunmKnJOpF5rwZzSeRrp1&8SQzIflfJbvm6+lJD*}N!knpmS*oV8iy~=Dute- zxNU}0cLE!3pqh)+wGaY|JT5N|jKP5aB}^Ase`(OKnc|6|V~7y87xEpK9-EG_{C4a+ zqkL`_BX4#~MC)8Dy1E&+L2yzeMUn)o@5OD4Dao?QC|80Di2;k;kYQKBmlV+8=>SI# zq5pg(Lek^$H=Na6;vkHKh^~uHZ(d;B14q=vjUB$jNBdmsEGgP` zutHq|qi_&FDSjkL(gwm+iu+20W$&_BcFJHsL-)Uw&j|6a?vL*$Qz_C*V3~T%ex-2n z0w_U|m*^KzuTRI2@8bcE9G#yZJ*6oyr0SR-ghFjFI6elJ#|iQrifyhnt?N220?;HY zf3;d&|3nDhI0$?VU5P7B3&;)~jL>12aEklqOGI~caF~s+^M<9VavPN{n1qE3NIDV% zBz3*JnY0|Qg!6~N#M1|4Q zwedx_tl6DE@#{DuV0(hKmom*koHz)HQvn@h`sw-c2a8$!&KAWRA%rd!&to%%-dPpg zt$XfmQ+)@e4sCjbEMz&x+Hok_4(F)H30s-oVKScUPCXfsV?-!RHTbARH*8H-wlv)0 zK#ijAgpS(!{4)nD!|fbVAzT@5KT6QV8c5NE;pz&)Y~TJ0O47cI0*@vOY&RJCI82|tZ z(1HI|v7p(6f1vWwHq!s`ZOI9 zlHMLwQIM4dRIC)CT@4qd{mO-nx>zO&o~#EH%SG$L;SmDY1=H=L;u)sHjc2|^``83x z14>t6O*0_tyY)_91|K7b@AIUNy%xEntPmtPbi#fkj!qdXXK3@zB*-g0e}%Pzu3lJM z_zoBDnTH?8l&-HC!pVS%BG2BwHppA~q;4zRJfoumJ!#D2B&mtsNDoVtvE!@n4z9GS zyf*3B^p-rU+_*zKb-Xs~=z?wU$s*hSJ7}nY97BMl%EF{5zo+Z{h}g zqnVd6wBl@SyIRS#BQqb~e0l2|omU;ocUQ;R*!``jGF?@b8hZ_%UlonFr{3{*={D!6 zp6U#Ge5E}o&g5w5RZUY|Ym|~ed7T0V<*)n9hId|mA)$PI{zk^Qt@?m3G2JhAdD7Zu z0*a#V(l;tj6dmK(yzK8RQ5>&c|BdX}WtE6{mB{IgPV4;xt3y~WMv0l2L8zdH@Cck z@%F#CpWS-+W=1{nXDdQkxF1b!65(EF$m3sc zW&n{V2d?@}q`VIsk7G`C%pd&OY3ln-O#u%9NwmJoP0f)HTA%T)CFNUP9PPvQ57M$0 z_Osf$4%RR2H@$iAz%}#ZXx7EK*KLJo**VAGj)C|U<;Th%qeeTwnVBTOo_`84G<+J2TT@z>FLgcxvE+2=u zwZk--#Zkjf?m2J>m5f{|Hv8oF8J+SmAX4aAM3&?aU`PzZvp$X9gl$ONL;^^1jwU26 zn@kJc=iQ9>bGm(a6Rueut@}~iXueG6i^IHNrrdz| zu#(@+2z?zqPx})G?|6NRiNM5m1Aw+#KUnu~>&IoVExve0OTJ~BJ-n4h6r|e_NguJ> z+TPwiOlxcFaySO`zj(8&Vc)2WT>ZINTsrY5E?Om}{mDqt^Ed!KnO;<9;ME6e%X^Vs znRi4|>tz}o9faH#nJFwo7tjh-Ee(tA%fY=|WPw&@3VZXN?I4Uv!1a*QMQ@}9&r9Jx zFj?tJNKDtFHzgY$&|&_7hJ~n~e+)c1PmhiQ2_FyddQZsoxb89KyAH7@~5 zjuK7kY?7QhPnCi=HMmh>>zWz@#adw5ohTw3>3 z=~oil@|wA)ReW+U#>_5tps?)b1?V`X=)6cb<()b>l0znZVW|WY_N0u$BhrX=F))Q^7%KeF-H$XL|Y+2ipcB#Cl+8Ii4eUm!C+TcMtkHBO#rs=&t<&;~p{b zITDpf_mS}XT2Y(~gy*)EfvK(Q@*OHg5n*wI6>Y9`LQS((c1!w@MPdkC_%jpB7)vd_ zRjPjozRAh5%s$zY*=`$w&U@>bLVcOr*b>KSRP>Ne;*i)uGJrK+rmC}*K5-miJXC`A z`@KUx$8dzUK|%AjJ5bQ$<^Y3Mpn{oIe>M;GM*NQH2;$~gbq|*G)KmF43GqDLR6o@R zOx2pQ!;Ds3&*G&{g?@9#JI2xZ!1@@Ak_7aZ=Hl?C9%jO31z!z9eS6Gx^Ok1o2OsKS zjYVHnd+v$}^yG<#Ry{uL@Ws`(Sm{pDob%Ul?#XuKWwx-=3?wShT=BE<|9+{k$Gwrs zYOQ{!jvB%)vAm49C0x?-A=wgRI`ScQ$vSPbv zyOfjE|LiR9x;{ErKZy|ozlSSe8UGiwfOIFCaj*WA|J97c@TCpiquO^jU=~p##2*FX ze12B&WiaOoSMWw-RvGP*YN%m)o{G+4DYROa!%5~Cm-Z&x@g}g*YR=SHWUDlbh;zB| zFdge)MGI}n=iI2_@k)xHW$?5bn)?YDTizl{uyBqDNuaIvsOJ?*u+#Sx`7;(IPVL9SqM4_Vc#UHVl+C}T%nnnlFnk;!5kCYa&ciTk zKdX0`IGHLrG==#cAlvu@l;42F_<9d|D#R*&{5IS1<|fZjCJS3ZJ=fh(zZi}lW5af{ zusq+gjN7`&nHK`Y_%OSL-3|Vm#eONZhwSW2EqrdoR*ytu{qHg=^wI~|n4`x{( zimb{U%4^t*kSHN*3F6gXkm5E!yBX&;m8gVHyi+d0@^j@M0koCs;=cxN_CR;;o%mdm z!eMS~Ri4i1%O8$+H*d)EK|MSUHh3E{JFy6Mhp3E;&_6EwfwG$-sM0P9Z zdZlAj>9O61=j_98sKxv$cZiKA9`=Z6ztT@5q0kguxMEa80S<3Gqb+wD7c5IkW;MoS zG9ZSW)))cV9f^3DbPA)H-Ft;tWPof(Sh8*VCu^fp%Uo-eb&*aEawEn-n|XaqYyd6FWhYr?V=tioLRXMyKYV% zS?Y?X2lPdq?fA5e!P!f#RwEooshB)A90Q}tsRg%k5fsanUP=e*0$Zm*SIA)D)sDkg~slW#Mci7J;Hr8y&h77PlR z@)B*D6~~voI0W-;HEy!>2@w(mWf;v`O;Dc_+nHF9RniModOh4Fik+JRp?lC9-WDIp z;)?WX<0}16Ey|6ezj{vHSV+GHudvfPO|sb>UFS=YpiwAfCs4_9-l0``Hzrp8J@rRq zLx6|-=5r$CDf*WFMx-EIweuxoq?7Q(itNTc6z-(}L6N#JQSw9B6#5Fp#-+0$)G|a8 zKMB%YhVrPth2C$#u=SXmU{*jJOrI0P{i|fbv5@{hs?t*SjW0{i^~zzo1K=!HA8Tg2 zox0j>gByY}qvf8RFk6DDr;vBnlsyUuz0&u6Nxjj&&WU@Xvb?KHTK^io=iYBA^|y^< zRYsW4pUaI(LK)BPTRN*HVkA0Cd=6@Tp(78gEPjJJ*$C}isJ@%fFUBqBz?pzlCGg>2 z)73W&yO244{C`sOzr*uCI17f`XOVut;r{0ICFT!&iQ3W0SL0;;Ve=qNq(laSoPQ8` zes;Mpc+mIBkvy(<=1VAk(>!ZR)=bFTVG5JP6I?yGX8=npw&?T^{Rgr3IW&7Tz0jY2u#qOS0lGQT6mPrh1133wk4D-58xSNKNj%=WK z*EEZK{H(9`G@;bdR4hnZ4dCISfvrINtdF*cyEir`H@y{AIAv&I^UE<<$sMY5HUDWw z&=*xxLJa||p`^BM>nF!}OBmtV<5r3OAXq<_2EMOVoeYu1iz62!KoBfnKDG=&cv!W` z#+ZVT0nL@h%bCyF>vAr<@AkD;28zw1&4x7|*)SH~juX>wW|^j0>2eAD^7Lu^r^fBP zcj!0CPii@xq-aPMgUA?d~aDpl{W981km;<9GX@TX= zB&&o27`J%gi*=PUp2FIeNJz-W&IGUiC4S=afkyP>?V?B_cr;8nfYIbm;IHRA`MNh* zUyrWsZVX3wL1HzHq~5RB0T@;pt1UuA4bj`@ z`}saU=H5AH=FZ%6XXbg%nOH3iWfDRrK;;iu+n@M9n7rS#fM*X^yBucfCgK;Fj9$`%B3v9z<*v9+}E_ZYL4dK}cJrKYF! zed7BowO2g6Jau(-?(Xh)_jl3J(GT8$2LynMit5S{Q1%9YduRJ01Mmo|1&^xYTCsI!1BuS zP+5kkyb3)#ABYJgDkl1n3;6r@um5}h_z&?4iVEFDNxgl&3hV$)6btjlhd;- zM8F8C>4SrUsE7f1`FV#ifam0Zgv8{B6aYLN4!{P`($eO@vW*_|{RxA}>-jD1o03G7 zl&35GRGSezNEr(ds#u)B>m*hEDzc7hs8LmVc<5aUkpECodsv&Vq0ZJ_9E*z~@thBo z@d}CN@YpKD(MgX!iJe66_3{&_7^gd|gK0-o9cN9|``u>mvEjQIva|P|VOzmkNfbXm zIzToAqFCfO#XhNi6_1^vlB)Dn*eGQ7O?KnQs-&7SrAPvgsgsvFppUTR+0ingLY!7P z^(tRsW*UJZI&A*Amr;+s3@7kk)#7wq!{s^jt9jPr{ggxA}wjNIL8NR!_G@h@!%?(;c1$c2Qy)2j5Nssj@_n21 zj%ZuZp;c?%_hy3NLucIlcM*s>WZh)jn#IF`*e(5vti=P~zT$;!8^cNn`rOJcf;3nC zU4=Gzoi) zG=4qfqF4L^ox$zSxIgz2B190vmJoXmKAd0g$ZgTOf9);zlHPEKUXanyGER=()bI~a zlH{mL;^s=U@BG$#Rz^eVBo+ked}HhD_fQRYlZ>0=TC9|ppqQ-{k(be1@MPclU71_} zkg9r=d+9x=A~g45Gh^BL{8B`$v-|FS=)AkK>U&_=>F$P;+*`4ky8Z>e^qJvv^`yci zV%x3lnd>UK(!IK0@9rI1S63!i;VGnp#W?V4Mj9aiIAB@f#gdFw>2X)kMj|R;NAUPC zTzZ0rRIIh}#^qUiHyE{K;U1VvqS&jjNC*D%hA$)WsO5AwP^{PJa4sJBrQU3HvgLHx z^{(x;Vhi9PFhJJ4Zs*v#$E4O*jKQ?k?~6&qq%$t;z$bp!wHpp`1zl2+$ys#{@1M~+ z*lulJZ~jByuXJj5=H#3WdUcwt4Zbtu@i|>Qx0E*hR!WLm{5Rtz7}RCXN3-|qfS7Z6 zV*cFH&E=l4b!OPAC!otTI2`-WuRBaK=lRo|T`c;t865WOaYW$j!{@Dg!{;kyy9WoJ zK>-1}Yu~m{bDp(bY?iUwd_r_Arruy|a!g!wRj|A9HctFE!<)7E{lI3V#*Lf+! zX%xAH(eA&%>#G$k^EefBcY1Z}aYazYZGj!C#!JSdvyPL7p=U^Xv65OZ_xAM6v&U?i z?=ny##2a|kc8kxuwQ1$w3rA^YG%nuV-h24;=JG$)su(zMd-_%RHd|93x~=6e&(;}= z+0;Zrgq^F|@IGJDtrYY`Yh{(^sOUP|sy*8p6NN)xdQrEMurN<xocf?1gPJ5m{j4M1Pe@G9#)?F zeEWxu6iK|hpGvrEQCYUX^FDADzTf- zyy(Tdi(Zt;S|o-8Zo-*zz({UmZ~vV`?>*eqsT7SA4vtC)%9t5MR^N?m7A&onb+S2K zb7l(We6|cWYJ88m<+!pki2=Xkk%RsR8o()+o%(~wMZRT0`T)_69w}(%Hym-z(a7(4 zqL7%%=)E=RR6A(objApND$G(%uDRgd5IQpLh4rHSgb17&XGi5}(oi4X)l`>3k!PG8sd*?YJNzD1XoAg>F4sT9!fX+J&y zO%r3wssjELPNjFw9M#Jky&KSPA4bJ zsvq}bp|0b`kc;bJM%2NbKh}O#5tXof8C6V8G}is2D#Cqo!B&9zwkxRy(HE)5$~N;; zC=$!67?G+fw40^Q?4akFCqG3YNXD`8Qk}IEVa$yIoXSIl;zhs8;)v1YAzO`+Q;M>K zU;0n~VEsV{?~Z-4G>6lV!jwoRPvC`(;_E303;ItKf*f!qX4483NVM>ca_Z%w;$Q`? zB({dSncr5lFW5f6ZfbIYN~szWe1BH~x5gfltP{S#`79w7B(BN`?^XlHiVXe|U>;zF zNgdLnQw3BZed-j+;R{~|SqY?Tq%mX^9F-`@m9x_Isgx?_`XiAlGv&m&&gEaOlDTxL zAW?6dwB3`z#9<~=YDJ0Zejl}TD~S1Zyaj`Jy*TMzc2qmh-!KMP)E*7zCc6CcMsYh` z`&l3P1~LNwgR79qn80AkoSSKqp44Pf5w03`2JhV;8KVd0{) zwiwu+!P+mA+`&(#rUNzc$t_>)y~N;eP&^i9AkFn$is!4?oyx~jEY&yA8c`={V}0M5 zKqI?gpB>lIl}p6TIitv48CJV>jmVra%YP7p#q#aLU5kdS(8s-7uQgrkY*P?Rby)3* z2Si$TRIMdXEgfwixXDmQtic~e&VI+L8ngfMxZG)PfOGQtBpkpF^nQo8?lsJxK+eGW zyd-~yPp*Iw=+Wr@?C{9R2b&oXle5M>9OlcWb74$SvsOHGhWOoG->7Yqo2sx|`qKSR zS@5B*j|%g~E)&_dJgAa9#sFtb=)1v9Q2w)#bq=HM*uzS!jmQQFiGDJ!wq;tBa4aTE zU_Qaxk92ZBMjBtKc!Q{|baGhWCQ)U)`=&m@FEes__o#lR;fcBu~3f6VF(WGm+d%|`8-;f^ z7|R9x#*^QPejjXW?*DFIL4U^1+dd!lm3THb9As4#A{Er)e5Tkgn^vEAfc!6Pg^E|~ zz4kP4ix>My)rY)hzDwSvZ}P>oD4%Dwg#A4g3MUM^{b9ZkSo`Cr12MWPNO!f{tIhN} zOK1|(jlGPH?Jx|Gv9)^(x7C(;5$HhuD`{;5;M=l8LW)_|Z~_}7jV-%qfXZrc6E8WD zF9}^x>;`}R@%r?eV&57-l>%3l&|cgFrX29qS&wq(liD{+42w{i$& z2#(B-HKZ*0OZp{i9L1)d8}lU0=AR5ArhyXIlUlt^KX5h7Tup(3n~6E>SM-<^1+3DD z31l#3pUn~8git$yL7e!L*PkgtDp=R$w6=>H_#vl@i?s6CFJ=(~LMN~)#czLe9lkU~ z;?XksTT>U%-L^ept}=v=#$WZ7btZn|Q%KAa*z_pQR{u?#wWZ$FAQ#u=aMCqKRAUVi z|D^sAv&ycznf5~}QecIXTDc})dVSf^TdXTj0K{xkGcYM}{TE~XQm zoy{H<8|O4DsPG4*4S--K3&z@TmD5nVQjB|U_cS^Y;QkoZn* zst8R^{*uja(K@&BsX?-qeOT$nP)9&`d@OQWRk#kW;Bgo#Y-LS7$IAkufbpS{gd-Y9QHM+RHmOiCP3&{a+Zbm8MTfIsIW3Js# z+DU1Ry#6eXX93jA_HC@vD9=s_Kfa!Sh_iphb6!x<@yu!o#WNxxvrDIQr?I$;g}9~M zh3V(oy5VItiQ~cgF1HL9wK+|OzILpYf9j<-m(?!FW}=Pl-Mr6@O0$zwH<95dx`43f zi5HCm8+WV-zeOaH^O0go5C||Bd_o5vNI=EYXgo~ap`hr|11H44m*@ra`Vjdv^0(Z}+Ed;8SW0o#`KgT{9n+Rof8LMAmSZlr5sD zs{@L@xxy0%uWs`FVjBn^3?#%-W5m>Wog5`OGt`kyuWphvK}No5p=DeBmudd#0Dd&b zSC84yrelu2udF}3+(hs5Y~-15R|Oc8453bSDF`5Acs8}Q(XXda^C*NpWvTd;!Y}~Z0t`d18n>f3 z&03mGd#6{Ejyg?*iWjgE*_56!5ThZ+j#Sztq9i6c{TkzWtm~7lYonI5OCJHzQFH)T zm=NSg227IjL!e%A@MG$q#sj2*bC=wlf?AWf?LUE!&(J?63g#sg$U!4(nMhmMVdC`* z6{Ad|WO6a*#mSICSD5dy|Y#L-4Lii#`NZa zASv|>C%>9kAX8M}^%SGXb-%~8oMh~}WUH=S)ZPWD^S?Jq9CKI7kTOc#g+BZ7hD)2| z`}7dI4{LO@or-p;Ygs!XqpQJ7<$+0lPMK>oCL{UTJ7OHKWDp0)g#-iw5mfX4%|U@z z4=gOV%q!*=pL$d-NPrUh-#g@YxiP1Oif2v9@w$B-7wqI{y>dPN9`)kZe;BT4Qhwq8 zee0>>yNccnay+;;)2&p73trEd^^-CVqjCp!2Pj(QfspK%)h^HG`TAeuUcFF$MfAF<39>M~*MszlU!fGI3epxUL7H+@w6E&dm<@{hGU{!9{5)qBRIc%0HC9 zbmF)|Q}2NHUcoyfABt_?k^W6=@EEVLLHQ%>9l3pk}`n^Xja`AutW0T?5G z99VxGf7{w`s5ZXh_A68%auVzL6F{=4eBkEh3PCR?F zexUBo5Y5-x{PkmZ9M#Jw#!w!saRxGOBHCIk%xY1pgv&mG>~7#Ypuctv4z+8#^2ck| z#P`yYUr-sYNG>F4t3xC4+5?+Skql-(Mp)^uC#v~AhD=R040@yZ+b|JcvK*MS#n2*? zyUh@^(ehtw*uMi6r%dx0we;@%yN}6yyx7w;Mmw`{ZXp~zl(m^{@f>pCKC23MIj!4; zB=SXyCBfpCQ~nhQmE5Z&^4_^CN@&LhEK$xR`IjQJUbxe7^jegG#lTCPW+WlmSe|W_ zn)i)?P=Xz{#Rzzd%4{%T48Y4k+2W~?$;cR1iY?0jHeNiVHU>1*A zc^!fuzl(mc+*W~F?|4kA$+TupV2$tRcr*MwXxgc&FrGY``$WY>}%$l82Qef z7gvF#4LyF)E_Ln8VM5RB8bWuEbJdm0y57czV`+!xzvW;y6}OhZR3b`j=6FbMp^dB6 z2E%xBd2}}oOC2FA_w)?m822}Qa53p{(Ozgty399{mPY2-H=BUlzgjb|B#cQuHA zGuXkG`SRMh{Y9a;4U1HtC7jjHHszw;;pL|$n@z6P1=V?#fe-bEYpgE+83}*59oVkn z`knrXN~2La*T0FdhjyXHCgcPnd2nfw|~JpWU#j7I=^v}h!{^rwNG(ZniVo$8RK>?WHXKm zOd?}ME#(>un^T-K$LfKOl0jb>Wt*%IuXA{NKCa;wPY`{YPxQh~lSea#W>ArENyi3# zW><__Qd?%n1)rMSmh7lYgCb_xHu^HEt&aPsb*weBKe3% z1FBfnO6>d@0T((;@R#fMKj!fuy=^^WpCL+pLE03%azEN30DXCpN>%<+h|WmG_DfkGP-Bf!ofEmTUaDKvZPiN|Gde zDq>@(LRYIzZ(%-u)3=#Lid&&T(5-ju=3zE6_=2J8l`iUm%F(J)H02ajvq)%WK3iJU zFd$1Jqvv6wpW*^48>9tis#R7S2$E4@H%kZv481^nNuk%lC_)KS6ps$WyN?s&dKMGJ zBgUD}@b>PWGmk6nvp-Y$Vnh(jE%5Hv*VM#k!AO6+94W=0DohY1NXurE5{1Fn^vy4S zlaWa1Ny9;*fB8SbG>Xjv2fjFwa^ZHNa{AX%=eTKYDH41m2q&Ibf(=G;RjPgv+Nzd^ z#cz0mO;5R+nyS@{o6duT9jiqe`gr>TlKK@k!U`iU0S_O;n{{a<_ B9`XPH literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-mapview.png b/docs/html/resources/tutorials/views/images/hello-mapview.png new file mode 100755 index 0000000000000000000000000000000000000000..0956760a39c345791fc0d52fc42a963a4edf4d0f GIT binary patch literal 16922 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 aIRLM(bscRIG4=No0ra$uwCXjUqyGoy!Fe?R literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-tabwidget.png b/docs/html/resources/tutorials/views/images/hello-tabwidget.png new file mode 100644 index 0000000000000000000000000000000000000000..6a52356c8f9972b6d66eec8f8415aeda6792e7d6 GIT binary patch literal 2117 zcmdT_`#aMM1OGaSxooU#1Njte4df|rmM3a0-k~Tn1O)Z!fEGj=SaYbr;a-79tNxHoyE%qdg*>$?M zGeIMn%6|x`skd~^m-Oo%W zv#6*jDJki7%WDs!2NH>lIUi$t(pE!50}h8nAP^lLZBePxNRb5;3ibD+oFNds{I<{l zAgh3NLU~@C{5%d$Ea-sCE<-&Y`{kWf6s8Gkat5s_JZZT_eb-G+JgT1q|)w*KP zp@?iiMN9G8J>opfdg={UhRlAmH=?TQsu_7ex`r*<~Kd&=ssFgQWP$RWzQmRt{gZ%yDZ)gAqh7Y(Vj z=lJOR_8NSOc%#L?ICR0T(RGJ4>(dhVwhfbw@Q3JOL+_P2dpwP?V&|HDw8YN}b9%9? zJ2D;kJiQOgDi+{T?C`Bu!J{i0LQ(HOLTc;=*MIJJa{F*31Lut(Yd-%hnpKwDS166s zH;%jM(0wLfbwN^@Z$y#2+Zq3~u)Htx0o)v#Rl!E@$*YpTW}wuL0#mL17%OThYqsV!b(bEzW@b z-ldd&4l}H`xPWc^ElznhxV#)xx~c;Ga}WV_EfI5-i4foCMqx*ro+@mq)g^e_^;PJ3 z=0iT- z*@)wb9w+=dLacmE=#<;3R30yq7FCl=W1Qlo)}4jEA4rqw$-C7l(4!=%H;d*I{G>#>iT36M7Yi!z!z;+i2lx{I{NE(!3w#ccv!v>_JWF_j%FOmD(GH$mP=Va3QXrET^HXfa;Gg=>ZUU<=TWWMG%F*@`_Tf|!to)G z=b$h$+NC$K{EAeiX+LE7e3&{>VVp+3eg}glpHp;rqw;yb(9UeT{}Sr;iMfOIe$b_#*Bp612Xo9vv`SZgFZwWZ7kznWZOn(gk|hK z^{hxWr9dPp??rLly1VZWLG`Br;jJn`0MpBB#&>6>GA_~6ch4sJReCW3kdjtD^>5g` zoUCNz+037h2^nZK*H!4N9WA-OSAY<}%yN%t0?A?n8uxNr4 I-yx9sFI5ViL;wH) literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-timepicker.png b/docs/html/resources/tutorials/views/images/hello-timepicker.png new file mode 100755 index 0000000000000000000000000000000000000000..bd5a1eeadaae59fd84601092564bee83f86feeb8 GIT binary patch literal 5644 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 SQ-A;O-T6pe6IHBg8T5Y*EwV8H literal 0 HcmV?d00001 diff --git a/docs/html/resources/tutorials/views/images/hello-webview.png b/docs/html/resources/tutorials/views/images/hello-webview.png new file mode 100755 index 0000000000000000000000000000000000000000..283ce7d0f4d60591db9ae2d8c5646b034c16fcf0 GIT binary patch literal 5874 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 +.view {float:left; margin:10px; font-size:120%; font-weight:bold;} +.view img {border:1px solid black; margin:5px 0 0; padding:5px;} + + +

    This collection of "Hello World"-style tutorials is designed +to get you quickly started with common Android Views and widgets. The aim is to let you copy and paste +these kinds of boring bits so you can focus on developing the code that makes your Android application rock. +Of course, we'll discuss some of the given code so that it all makes sense.

    + +
    +
      +
    • How to create a new Android project.
    • +
    • The basic structure of an Android project (resource files, layout files, etc.).
    • +
    • The essential components of an {@link android.app.Activity}.
    • +
    • How to build and run a project.
    • +
    +

    Please, also notice that, in order to make these tutorials simple, some may +not convey the better Android coding practices. In particular, many of them +use hard-coded strings in the layout files—the better practice is to reference strings from +your strings.xml file.

    +

    With this knowledge, you're ready to begin, so take your pick.

    + +
    + + + + + + + + + +
    +Spinner
    + +
    + + +
    +ListView
    + +
    +
    +GridView
    + +
    + +
    +Gallery
    + +
    + +
    +TabWidget
    + +
    + +
    +MapView
    + +
    + +
    +WebView
    + +
    + + + +

    +There are plenty more Views and widgets available. See the {@link android.view.View} class +for more on View layouts, and the {@link android.widget widget package} +for more useful widgets. And for more raw code samples, visit the +Api Demos. +These can also be found offline, in /<sdk>/samples/ApiDemos.

    +
    + diff --git a/docs/html/robots.txt b/docs/html/robots.txt index 7046373e957..878996fb704 100644 --- a/docs/html/robots.txt +++ b/docs/html/robots.txt @@ -4,5 +4,12 @@ Disallow: /gae_shell/ Disallow: /assets/ Disallow: /images/ Disallow: /sdk/preview/ +Disallow: /sdk/1.0_r1/ +Disallow: /sdk/1.0_r2/ +Disallow: /sdk/1.1_r1/ +Disallow: /sdk/1.5_r1/ +Disallow: /sdk/1.5_r2/ +Disallow: /sdk/1.5_r3/ +Disallow: /sdk/1.6_r1/ Disallow: /shareables/ Sitemap: http://developer.android.com/sitemap.txt diff --git a/docs/html/samples/index.jd b/docs/html/samples/index.jd deleted file mode 100644 index 06afd07f8de..00000000000 --- a/docs/html/samples/index.jd +++ /dev/null @@ -1,22 +0,0 @@ -page.title=Android SDK -page.onlyfortemplate=codesite -@jd:body -

    Sample Code

    - -

    The Android SDK ships with several sample projects. They are:

    - -
    -
    API Demos
    -
    A demonstration of many of the Android APIs.
    - -
    Lunar Lander
    -
    Your objective: to land on the moon.
    - -
    Note Pad
    -
    A simple note pad application.
    -
    - -

    To run these samples, you should import them into -Eclipse or build them with Ant, as described in -Developing in Other IDEs.

    diff --git a/docs/html/sdk/1.0_r1/index.jd b/docs/html/sdk/1.0_r1/index.jd index 6ef860f5395..b3804833119 100644 --- a/docs/html/sdk/1.0_r1/index.jd +++ b/docs/html/sdk/1.0_r1/index.jd @@ -1,68 +1,5 @@ page.title=Android 1.0 SDK, release 1 - -sdk.not_latest_version=true - -sdk.version=1.0_r1 -sdk.date=September 23, 2008 - -sdk.win_download=android-sdk-windows-1.0_r1.zip -sdk.win_bytes=89.7 MB -sdk.win_checksum=d69f4ee93d4010f726c04302662fd999 - -sdk.mac_download=android-sdk-mac_x86-1.0_r1.zip -sdk.mac_bytes=87.5 MB -sdk.mac_checksum=564876ada22872e50c2866806de9fc5c - -sdk.linux_download=android-sdk-linux_x86-1.0_r1.zip -sdk.linux_bytes=87.8 MB -sdk.linux_checksum=2660b4029039b7d714e59827e9a9a11d - +sdk.redirect=true +sdk.redirect.path=index.html @jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    Included in this SDK

    - -

    Development tools

    - -

    The SDK includes a variety of tools for developing and debugging application code and designing -an application UI. You can read about the tools in the documentation included with the SDK. -You can access the tools in the <sdk>/tools/ directory.

    - -

    System Images

    - -

    The Android system images listed below are included in this SDK.

    - - - - - - - - - - - - - - -
    System ImageAPI LevelNotesDescription
    Android 1.01N/AIncludes the {@code com.google.android.maps} external library and a set of standard development -applications.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the -documentation included with the SDK and access the sample code itself -in the <sdk>/samples/ directory of the SDK package.

    - -

    Documentation

    - -

    The SDK package provides a full set of local documentation, including installation and upgrade -instructions. To view it, open the <sdk>/documentation.html file in a web browser. -If you are developing in an IDE such as Eclipse, you can also view the reference documentation -directly in the IDE.

    - - - diff --git a/docs/html/sdk/1.0_r1/installing.jd b/docs/html/sdk/1.0_r1/installing.jd index 8ac524c4436..2ea04e46875 100644 --- a/docs/html/sdk/1.0_r1/installing.jd +++ b/docs/html/sdk/1.0_r1/installing.jd @@ -1,221 +1,8 @@ -page.title=Installing the SDK -sdk.version=1.0_r1 @jd:body -

    For the current SDK release, see the links under Current SDK Release in the side navigation.

    + -

    This page describes how to install the Android 1.0 SDK, Release 1, and set up your development environment. -If you haven't downloaded the SDK yet, you can so from the Download page.

    - -

    Before you begin, be sure that your development environment meets the SDK -System Requirements. If you encounter any problems during installation, -see the Installation Notes at the bottom of this page.

    - -

    Upgrading?

    -

    Note that a certain amount of knowledge is assumed for these tutorials. If you haven't +completed the Hello, World tutorial, +please do so—it will teach you many things you should know about basic +Android development and Eclipse features. More specifically, you should know:

    - - - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named android_sdk_<platform>_<release>_<build>. The directory contains a link to a local copy of the documentation and the subdirectories tools/, samples/, and others.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools.

    - -

    Optionally, you can add the path to the SDK tools directory to your path. As mentioned above, the tools/ directory is located in the SDK directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile, if - you haven't already set one up on your machine.
    • - -
    • On Windows, right click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path under System Variables. Add the full path to the tools/ directory to the path.
    • -
    - -

    Adding tools to your path lets you run Android Debug Bridge (adb) and the other command line tools without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.

    - - -

    If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next -section in order to install the Android Development Tools plugin and setup Eclipse. If you choose not to use Eclipse, you can -develop Android applications using other tools — read the guide to developing -In other IDEs.

    - - -

    Setting up Eclipse

    - -

    First, you should install a custom plugin called Android Development Tools (ADT), which adds integrated support for Android projects and tools. The ADT plugin includes a variety of powerful extensions that make creating, running, and debugging Android applications faster and easier. Developing in ADT/Eclipse is highly recommended for Eclipse users and those new to Android.

    - -

    To download and install the ADT plugin, follow the steps below for your respective Eclipse version.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    -
      -
    1. Start Eclipse, then select Help > Software Updates > Find - and Install....
    2. - -
    3. In the dialog that appears, select Search for new features to install and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for - Android Plugin > Developer Tools. - This will check both features: "Android Developer Tools", and "Android - Editors". The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next.
    12. -
    13. Read the license agreement and then select Accept terms of the license agreement. - Click Next.
    14. -
    15. Click Finish.
    16. - -
    17. The ADT plugin is not signed; you can accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - -
      -
    1. Start Eclipse, then select Help > Software Updates.... -
    2. -
    3. In the dialog that appears, click the Available Software tab. -
    4. -
    5. Click Add Site... -
    6. -
    7. Enter this as the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin. Select the checkbox next to - Developer Tools and click Install... -
    10. -
    11. On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. - The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next. -
    12. -
    13. Accept the license agreement and click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - - -

    Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel. (Mac OS X: Eclipse > Preferences)
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and locate the SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to begin developing Android applications. -We recommend you begin with the Hello World tutorial, -which will teach you some basics about Android applications and how to create projects using Eclipse.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > Preferences > General > Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there: -

    -
      -
    1. Download the ADT zip file (do not unpack it). -
    2. Follow steps 1 and 2 in the default install instructions (above). -
    3. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive... -
    4. Browse and select the downloaded the zip file. -
    5. Follow the remaining procedures, above, starting from steps 5. -
    -

    -Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.

    - -

    Note that the "Android Editors" feature of ADT requires several optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include those components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    Installation Notes

    -

    Ubuntu Linux Notes

    -
      -
    • If you need help installing and configuring Java on your -development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing -the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development -machine, you need to install the ia32-libs package using -apt-get:: -
        apt-get install ia32-libs
      2. -
      3. Next, install Java: -
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from -eclipse.org (http://www.eclipse.org/ -downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK -and the ADT plugin.
      8. -
      -
    -

    Other Linux Notes

    -
      -
    • If JDK is already installed on your development computer, please -take a moment to make sure that it meets the version requirements listed -at the top of this page. In particular, note that some Linux -distributions may include JDK 1.4 or Gnu Compiler for Java, both of -which are not supported for Android development.
    • -
    +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.0_r1/requirements.jd b/docs/html/sdk/1.0_r1/requirements.jd index 4163513174c..96fdcb26f6f 100644 --- a/docs/html/sdk/1.0_r1/requirements.jd +++ b/docs/html/sdk/1.0_r1/requirements.jd @@ -1,51 +1,8 @@ -page.title=System Requirements -sdk.version=1.0_r1 - - @jd:body -

    The sections below describe the system and software requirements for -developing Android applications using the Android SDK tools included in Android 1.0 SDK, Release 1.

    - -

    System and Software Requirements

    -

    The following systems and development environments are supported by this SDK.

    - -

    Supported Operating Systems:

    -
      -
    • Windows XP or Vista
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments:

    -
      -
    • Eclipse IDE - -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    + -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.0_r2/index.jd b/docs/html/sdk/1.0_r2/index.jd index a1989ba9393..c29c148a486 100644 --- a/docs/html/sdk/1.0_r2/index.jd +++ b/docs/html/sdk/1.0_r2/index.jd @@ -1,68 +1,5 @@ page.title=Android 1.0 SDK, release 2 - -sdk.not_latest_version=true - -sdk.version=1.0_r2 -sdk.date=November 2008 - -sdk.win_download=android-sdk-windows-1.0_r2.zip -sdk.win_bytes=98360564 -sdk.win_checksum=a5e1af8ac145946b4a9627516ad4a711 - -sdk.mac_download=android-sdk-mac_x86-1.0_r2.zip -sdk.mac_bytes=93771410 -sdk.mac_checksum=87b99d5e9f59b78363a63200c11498e8 - -sdk.linux_download=android-sdk-linux_x86-1.0_r2.zip -sdk.linux_bytes=94186463 -sdk.linux_checksum=a1f3b6d854596f850f5008856d0f380e - +sdk.redirect=true +sdk.redirect.path=index.html @jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    Included in this SDK

    - -

    Development tools

    - -

    The SDK includes a variety of tools for developing and debugging application code and designing -an application UI. You can read about the tools in the documentation included with the SDK. -You can access the tools in the <sdk>/tools/ directory.

    - -

    System Images

    - -

    The Android system images listed below are included in this SDK.

    - - - - - - - - - - - - - - -
    System ImageAPI LevelNotesDescription
    Android 1.01N/AIncludes the {@code com.google.android.maps} external library and a set of standard development -applications.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the -documentation included with the SDK and access the sample code itself -in the <sdk>/samples/ directory of the SDK package.

    - -

    Documentation

    - -

    The SDK package provides a full set of local documentation, including installation and upgrade -instructions. To view it, open the <sdk>/documentation.html file in a web browser. -If you are developing in an IDE such as Eclipse, you can also view the reference documentation -directly in the IDE.

    - - - diff --git a/docs/html/sdk/1.0_r2/installing.jd b/docs/html/sdk/1.0_r2/installing.jd index 2c58dfd9ad7..2ea04e46875 100644 --- a/docs/html/sdk/1.0_r2/installing.jd +++ b/docs/html/sdk/1.0_r2/installing.jd @@ -1,221 +1,8 @@ -page.title=Installing the SDK -sdk.version=1.0_r2 @jd:body -

    For the current SDK release, see the links under Current SDK Release in the side navigation.

    + -

    This page describes how to install the Android 1.0 SDK, Release 2, and set up your development environment. -If you haven't downloaded the SDK yet, you can so from the Download page.

    - -

    Before you begin, be sure that your development environment meets the SDK -System Requirements. If you encounter any problems during installation, -see the Installation Notes at the bottom of this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version of the -SDK, please skip this page and read the -Upgrading the SDK document instead. -

    - - - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named android_sdk_<platform>_<release>_<build>. The directory contains a link to a local copy of the documentation and the subdirectories tools/, samples/, and others.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools.

    - -

    Optionally, you can add the path to the SDK tools directory to your path. As mentioned above, the tools/ directory is located in the SDK directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile, if - you haven't already set one up on your machine.
    • - -
    • On Windows, right click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path under System Variables. Add the full path to the tools/ directory to the path.
    • -
    - -

    Adding tools to your path lets you run Android Debug Bridge (adb) and the other command line tools without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.

    - - -

    If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next -section in order to install the Android Development Tools plugin and setup Eclipse. If you choose not to use Eclipse, you can -develop Android applications using other tools — read the guide to developing -In other IDEs.

    - - -

    Setting up Eclipse

    - -

    First, you should install a custom plugin called Android Development Tools (ADT), which adds integrated support for Android projects and tools. The ADT plugin includes a variety of powerful extensions that make creating, running, and debugging Android applications faster and easier. Developing in ADT/Eclipse is highly recommended for Eclipse users and those new to Android.

    - -

    To download and install the ADT plugin, follow the steps below for your respective Eclipse version.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    -
      -
    1. Start Eclipse, then select Help > Software Updates > Find - and Install....
    2. - -
    3. In the dialog that appears, select Search for new features to install and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for - Android Plugin > Developer Tools. - This will check both features: "Android Developer Tools", and "Android - Editors". The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next.
    12. -
    13. Read the license agreement and then select Accept terms of the license agreement. - Click Next.
    14. -
    15. Click Finish.
    16. - -
    17. The ADT plugin is not signed; you can accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - -
      -
    1. Start Eclipse, then select Help > Software Updates.... -
    2. -
    3. In the dialog that appears, click the Available Software tab. -
    4. -
    5. Click Add Site... -
    6. -
    7. Enter this as the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin. Select the checkbox next to - Developer Tools and click Install... -
    10. -
    11. On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. - The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next. -
    12. -
    13. Accept the license agreement and click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - - -

    Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel. (Mac OS X: Eclipse > Preferences)
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and locate the SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to begin developing Android applications. -We recommend you begin with the Hello World tutorial, -which will teach you some basics about Android applications and how to create projects using Eclipse.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > Preferences > General > Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there: -

    -
      -
    1. Download the ADT zip file (do not unpack it). -
    2. Follow steps 1 and 2 in the default install instructions (above). -
    3. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive... -
    4. Browse and select the downloaded the zip file. -
    5. Follow the remaining procedures, above, starting from steps 5. -
    -

    -Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.

    - -

    Note that the "Android Editors" feature of ADT requires several optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include those components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    Installation Notes

    -

    Ubuntu Linux Notes

    -
      -
    • If you need help installing and configuring Java on your -development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing -the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development -machine, you need to install the ia32-libs package using -apt-get:: -
        apt-get install ia32-libs
      2. -
      3. Next, install Java: -
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from -eclipse.org (http://www.eclipse.org/ -downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK -and the ADT plugin.
      8. -
      -
    -

    Other Linux Notes

    -
      -
    • If JDK is already installed on your development computer, please -take a moment to make sure that it meets the version requirements listed -at the top of this page. In particular, note that some Linux -distributions may include JDK 1.4 or Gnu Compiler for Java, both of -which are not supported for Android development.
    • -
    +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.0_r2/requirements.jd b/docs/html/sdk/1.0_r2/requirements.jd index 4f7c093cad5..96fdcb26f6f 100644 --- a/docs/html/sdk/1.0_r2/requirements.jd +++ b/docs/html/sdk/1.0_r2/requirements.jd @@ -1,50 +1,8 @@ -page.title=System Requirements -sdk.version=1.0_r2 - - @jd:body -

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android 1.0 SDK, Release 2.

    - -

    System and Software Requirements

    -

    The following systems and development environments are supported by this SDK.

    - -

    Supported Operating Systems:

    -
      -
    • Windows XP or Vista
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments:

    -
      -
    • Eclipse IDE - -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    + -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.1_r1/index.jd b/docs/html/sdk/1.1_r1/index.jd index f6582162fb9..63fe51d759a 100644 --- a/docs/html/sdk/1.1_r1/index.jd +++ b/docs/html/sdk/1.1_r1/index.jd @@ -1,66 +1,5 @@ page.title=Android 1.1 SDK, Release 1 - -sdk.not_latest_version=true -sdk.version=1.1_r1 -sdk.date=February 2009 - -sdk.win_download=android-sdk-windows-1.1_r1.zip -sdk.win_bytes=86038515 -sdk.win_checksum=8c4b9080b430025370689e03d20842f3 - -sdk.mac_download=android-sdk-mac_x86-1.1_r1.zip -sdk.mac_bytes=79046151 -sdk.mac_checksum=becf0f1763d61eedce15d2a903d6c1dd - -sdk.linux_download=android-sdk-linux_x86-1.1_r1.zip -sdk.linux_bytes=79345522 -sdk.linux_checksum=ebcb16b0cd4aef198b4dd9a1418efbf1 - +sdk.redirect=true +sdk.redirect.path=index.html @jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    SDK Contents

    - -

    Development tools

    - -

    The SDK includes a variety of tools for developing and debugging application code and designing an application UI. You can read about the tools in the -Dev Guide and access them in the <sdk>/tools/ directory. - -

    The tools package included in this SDK is the same as that included in the Android 1.0, Release 2 SDK.

    - -

    System Images

    - -

    The Android system images listed below are included in this SDK. For more information about a system image — features, applications included, localizations, API changes, and so on — see its Version Notes.

    - - - - - - - - - - - - - - -
    System ImageAPI LevelNotesDescription
    Android 1.12Version NotesIncludes com.google.android.maps external library and a set of standard development applications.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the Dev Guide and access the sample code itself -in the <sdk>/samples/ directory of the SDK package.

    - -

    Documentation

    - -

    The SDK package includes a full set of local documentation. To view it, open the <sdk>/documentation.html file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE.

    - -

    The most current documentation is always available on the Android Developers site:

    - -

    http://developer.android.com/

    - - diff --git a/docs/html/sdk/1.1_r1/installing.jd b/docs/html/sdk/1.1_r1/installing.jd index 2da24799f95..2ea04e46875 100644 --- a/docs/html/sdk/1.1_r1/installing.jd +++ b/docs/html/sdk/1.1_r1/installing.jd @@ -1,312 +1,8 @@ -page.title=Installing the Android SDK -sdk.version=1.1_r1 - @jd:body + -

    This page describes how to install the Android SDK and set up your -development environment. If you haven't downloaded the SDK, you can -do so from the -Download page.

    - -

    If you encounter any problems during installation, see the -Installation Notes at the bottom of -this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version of the -SDK, please skip this page and read the -Upgrading the SDK document instead. -

    - - -

    Preparing for Installation

    - -

    Before you get started with the Android SDK, take a moment to confirm -that your development machine meets the system requirements. -

    - -

    If you will be developing on Eclipse with the Android Development -Tools (ADT) Plugin — the recommended path if you are new to -Android — make sure that you have a suitable version of Eclipse -installed on your computer. If you need to install Eclipse, you can -download it from this location:

    - -

    http://www.eclipse.org/downloads/

    - -

    A Java or RCP version of Eclipse is recommended.

    - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. By default, the SDK files are unpacked into a directory named android_sdk_<platform>_<release>_<build>. The directory contains a link to a local copy of the documentation and the subdirectories tools/, samples/, and others.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you will need to refer to the SDK directory later, when setting up the Android plugin or using SDK tools.

    - -

    Optionally, you can add the path to the SDK tools directory to your path. As mentioned above, the tools/ directory is located in the SDK directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile, if - you haven't already set one up on your machine.
    • - -
    • On Windows, right click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path under System Variables. Add the full path to the tools/ directory to the path.
    • -
    - -

    Adding tools to your path lets you run Android Debug Bridge (adb) and the other command line tools without needing to supply the full path to the tools directory. Note that, if you update your SDK, you should remember to update your PATH settings to point to the new location, if different.

    - - -

    If you will be using the Eclipse IDE as your environment for developing Android applications, continue reading the next -section in order to install the Android Development Tools plugin and set up Eclipse. If you choose not to use Eclipse, you can -develop Android applications using other tools — read the guide to developing -in other IDEs.

    - - -

    Installing the ADT Plugin for Eclipse

    - -

    Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, -integrated environment in which to build Android applications. It -extends the capabilites of Eclipse to let you quickly set up new Android -projects, create an application UI, add components based on the Android -Framework API, and debug using the Android SDK tools.

    - -

    If you are new to Android or want to develop using the Eclipse IDE, -the ADT plugin will be an essential part of your development -environment. In general, using Eclipse with ADT is a highly recommended -approach and is the fastest way to get started. This section describes -how to install ADT into your Eclipse environment. - -

    If you prefer to work in a development environment other than Eclipse, -you do not need to install Eclipse or the ADT Plugin. Instead, you can -access the SDK tools directly to build and debug your application.

    - -

    Once you have Eclipse installed, as described in -Preparing for Installation, follow the steps below to -download the ADT plugin and install it in your respective Eclipse -environment.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    -
      -
    1. Start Eclipse, then select Help > Software Updates > Find - and Install....
    2. - -
    3. In the dialog that appears, select Search for new features to install and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for - Android Plugin > Developer Tools. - This will check both features: "Android Developer Tools", and "Android - Editors". The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next.
    12. -
    13. Read the license agreement and then select Accept terms of the license agreement. - Click Next.
    14. -
    15. Click Finish.
    16. - -
    17. The ADT plugin is not signed; you can accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - -
      -
    1. Start Eclipse, then select Help > Software Updates.... -
    2. -
    3. In the dialog that appears, click the Available Software tab. -
    4. -
    5. Click Add Site... -
    6. -
    7. Enter this as the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Alternatively, you can use http in the Location URL, if you are having - trouble with https (https is preferred for security reasons).

      -
      http://dl-ssl.google.com/android/eclipse/
      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin. Select the checkbox next to - Developer Tools and click Install... -
    10. -
    11. On the subsequent Install window, "Android Developer Tools", and "Android Editors" should both be checked. - The Android Editors feature is optional, but recommended. If - you choose to install it, you need the WST plugin mentioned earlier in this - page. Click Next. -
    12. -
    13. Accept the license agreement and click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - -

    Now, you just need to modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel. (Mac OS X: Eclipse > Preferences)
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and locate the SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to -begin developing Android applications. See the After -Installation: Next Steps section for suggestions on how to start.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > Preferences > General > Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you can download the ADT files to your local machine using a browser and the install the files in Eclipse from there: -

    -
      -
    1. Download the ADT zip file (do not unpack it). -
    2. Follow steps 1 and 2 in the default install instructions (above). -
    3. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive... -
    4. Browse and select the downloaded the zip file. -
    5. Follow the remaining procedures, above, starting from steps 5. -
    -

    -Note that to update your plugin, you will have to follow these steps again instead of the default update instructions.

    - -

    Note that the "Android Editors" feature of ADT requires several optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include those components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    After Installation: Next Steps

    -

    Once you have installed the SDK and the ADT Plugin, you are ready to -begin developing applications. Here are a few ways you can get started:

    - -

    Learn about Android

    -
      -
    • Take a look at the Dev -Guide and the types of information it provides
    • -
    • Read an introduction to Android as a platform in What is -Android?
    • -
    • Learn about the Android framework and how applications run on it in -Application -Fundamentals
    • -
    • Take a look at the Android framework API specification in the Reference tab
    • -
    - -

    Explore the SDK

    - - -

    Explore some code

    -
      -
    • Set up a Hello -World application
    • -
    • Follow the -Notepad Tutorial to build a full Android application
    • -
    • Create a new project for one of the other sample applications -included in <sdk>/samples, then compile and run it in -your development environment
    • -
    - -

    Visit the Android developer groups

    -
      -
    • Take a look at the Community tab to see a list of -Android developers groups. In particular, you might want to look at the -Android -Developers group to get a sense for what the Android developer -community is like.
    • -
    - - -

    Installation Notes

    -

    Ubuntu Linux Notes

    -
      -
    • If you need help installing and configuring Java on your -development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing -the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development -machine, you need to install the ia32-libs package using -apt-get:: -
        apt-get install ia32-libs
      2. -
      3. Next, install Java: -
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from -eclipse.org (http://www.eclipse.org/ -downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK -and the ADT plugin.
      8. -
      -
    -

    Other Linux Notes

    -
      -
    • If JDK is already installed on your development computer, please -take a moment to make sure that it meets the version requirements listed -in the System Requirements. -In particular, note that some Linux distributions may include JDK 1.4 or Gnu -Compiler for Java, both of which are not supported for Android development.
    • -
    - - +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.1_r1/requirements.jd b/docs/html/sdk/1.1_r1/requirements.jd index 9d8f9eb1e09..96fdcb26f6f 100644 --- a/docs/html/sdk/1.1_r1/requirements.jd +++ b/docs/html/sdk/1.1_r1/requirements.jd @@ -1,48 +1,8 @@ -page.title=System Requirements - -sdk.version=1.1_r1 -sdk.date=February 2009 - @jd:body -

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android 1.1 SDK, Release 1.

    - -

    Supported Operating Systems

    -
      -
    • Windows XP (32-bit) or Vista (32- or 64-bit)
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments

    -
      -
    • Eclipse IDE - -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    + -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.1_r1/upgrading.jd b/docs/html/sdk/1.1_r1/upgrading.jd index 19095c0be94..5628d04e7f7 100644 --- a/docs/html/sdk/1.1_r1/upgrading.jd +++ b/docs/html/sdk/1.1_r1/upgrading.jd @@ -145,6 +145,6 @@ to seek help from other Android developers.

    to the new SDK, note that you will need to uninstall the version of ApiDemos that comes preinstalled in the emulator. For more information, or if you encounter an "reinstallation" error when running or installing ApiDemos, see the troubleshooting topic -I can't install ApiDemos +I can't install ApiDemos apps in my IDE because of a signing error for information about how to solve the problem.

    diff --git a/docs/html/sdk/1.5_r1/index.jd b/docs/html/sdk/1.5_r1/index.jd index 405f56ce960..60dfc142e4f 100644 --- a/docs/html/sdk/1.5_r1/index.jd +++ b/docs/html/sdk/1.5_r1/index.jd @@ -1,89 +1,5 @@ -sdk.version=1.5 -sdk.rel.id=1 -sdk.date=April 2009 -sdk.not_latest_version=true - -sdk.win_download=android-sdk-windows-1.5_r1.zip -sdk.win_bytes=176263368 -sdk.win_checksum=42be980eb2d3efaced01ea6c32c0045f - -sdk.mac_download=android-sdk-mac_x86-1.5_r1.zip -sdk.mac_bytes=167848675 -sdk.mac_checksum=5b2a8d9f096032db4a75bfa0d689a51b - -sdk.linux_download=android-sdk-linux_x86-1.5_r1.zip -sdk.linux_bytes=162938845 -sdk.linux_checksum=2addfd315da0ad8b5bde6b09d5ff3b06 - page.title=Android 1.5 SDK, Release 1 -@jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    SDK Contents

    - -

    Development tools

    - -

    The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the -Dev Guide and access them in the <sdk>/tools/ directory. - -

    The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see Upgrading the SDK. - -

    For more information about the new tools features, see the SDK Release Notes. - -

    Android Platforms

    - -

    This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version — features, applications included, localizations, API changes, and so on — see its Version Notes.

    - - - - - - - - - - - - - - - - - - - -
    PlatformAPI LevelNotesDescription
    Android 1.53Version NotesIncludes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).
    Android 1.12Version NotesIncludes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).
    - -

    SDK Add-Ons

    - -

    An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.

    - - - - - - - - - - - -
    Add-OnAPI LevelNotesDescription
    Google APIs3 Includes the com.google.android.maps external library, a compliant -system image, a {@link android.location.Geocoder Geocoder} -backend service implementation, documentation, and sample code.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the Dev Guide and access the sample code itself -in the <sdk>/platforms/android-1.5/samples/ directory of the SDK package. Note the new location — the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory.

    - -

    Documentation

    - -

    The SDK package includes a full set of local documentation. To view it, open the <sdk>/documentation.html file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE.

    - -

    The most current documentation is always available on the Android Developers site:

    - -

    http://developer.android.com/

    +sdk.redirect=true +sdk.redirect.path=index.html +@jd:body diff --git a/docs/html/sdk/1.5_r1/installing.jd b/docs/html/sdk/1.5_r1/installing.jd index ac6af616d9e..2ea04e46875 100644 --- a/docs/html/sdk/1.5_r1/installing.jd +++ b/docs/html/sdk/1.5_r1/installing.jd @@ -1,332 +1,8 @@ -sdk.version=1.5 -sdk.rel.id=1 -sdk.date=April 2009 - -page.title=Installing the Android SDK @jd:body + -

    This page describes how to install the Android SDK and set up your -development environment. If you haven't downloaded the SDK, you can -do so from the -Download page. Once you've downloaded -the SDK, return here.

    - -

    If you encounter any problems during installation, see the -Installation Notes at the bottom of -this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version -of the SDK, please skip this page and read the -Upgrading the -SDK document instead. -

    - - -

    Preparing for Installation

    - -

    Before you begin, take a moment to confirm that your development machine meets the -System Requirements. -

    - -

    If you will be developing on Eclipse with the Android Development -Tools (ADT) Plugin — the recommended path if you are new to -Android — make sure that you have a suitable version of Eclipse -installed on your computer (3.3 or newer). If you need to install Eclipse, you can -download it from this location:

    - -

    http://www.eclipse.org/downloads/

    - -

    A Java or RCP version of Eclipse is recommended.

    - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. -By default, the SDK files are unpacked into a directory named -android_sdk_<platform>_<release>. -The directory contains a local copy of the documentation (accessible by opening -documentation.html in your browser) and the subdirectories -tools/, add-ons/, platforms/, and others. Inside -each subdirectory of platforms/ you'll find samples/, which includes -code samples that are specific to each version of the platform.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you -will need to refer to the SDK directory later, when setting up the Android plugin or when -using the SDK tools.

    - -

    Optionally, you may want to add the location of the SDK's primary tools directory -to your system PATH. The primary tools/ directory is located at the root of the -SDK folder. Adding tools to your path lets you run Android Debug Bridge (adb) and -the other command line tools without -needing to supply the full path to the tools directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile if - you haven't already set one up on your machine.
    • - -
    • On Windows, right-click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path (under System Variables). Add the full path to the - tools/ directory to the path.
    • -
    - -

    Note that, if you update your SDK in the future, you -should remember to update your PATH settings to point to the new location, if different.

    - -

    If you will be using the Eclipse IDE as your development environment, -the next section describes how to install the Android Development Tools plugin and set up Eclipse. -If you choose not to use Eclipse, you can -develop Android applications in an IDE of your choice and then compile, debug and deploy using -the tools included in the SDK (skip to Next Steps).

    - - -

    Installing the ADT Plugin for Eclipse

    - -

    Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, -integrated environment in which to build Android applications. It -extends the capabilites of Eclipse to let you quickly set up new Android -projects, create an application UI, add components based on the Android -Framework API, debug your applications using the Android SDK tools, and even export -signed (or unsigned) APKs in order to distribute your application.

    - -

    In general, using Eclipse with ADT is a highly recommended -approach to Android development and is the fastest way to get started. -(If you prefer to work in an IDE other than Eclipse, -you do not need to install Eclipse or ADT, instead, you can directly -use the SDK tools to build and debug your application.)

    - -

    Once you have Eclipse installed, as described in Preparing for -Installation, follow the steps below to -download the ADT plugin and install it in your respective Eclipse -environment.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    - -
      -
    1. Start Eclipse, then select Help > Software Updates -> Find and Install....
    2. -
    3. In the dialog that appears, select Search for new features to install -and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and - enter the URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for the - "Android Plugin". - This will select the nested tools: "Android DDMS" and "Android Development Tools". - Click Next.
    12. -
    13. Read and accept the license agreement, then click Next.
    14. -
    15. On the following Installation window, click Finish.
    16. -
    17. The ADT plugin is not digitally signed. Accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - - -
      -
    1. Start Eclipse, then select Help > Software Updates....
    2. -
    3. In the dialog that appears, click the Available Software tab.
    4. -
    5. Click Add Site...
    6. -
    7. Enter the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the Location URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin listed by the URL, - with "Developer Tools" nested within it. Select the checkbox next to - Developer Tools and click Install...
    10. -
    11. On the subsequent Install window, "Android DDMS" and "Android Development Tools" - should both be checked. Click Next.
    12. -
    13. Read and accept the license agreement, then click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - -

    Now modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel (Mac: Eclipse > Preferences).
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and -locate your downloaded SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to -begin developing Android applications. See the -Next Steps section for suggestions on how to start.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are -some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing - the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > - Preferences > General > - Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you -can download the ADT zip file to your local machine and manually install the it: -

    -
      -
    1. Download the ADT zip file (do not unpack it).
    2. -
    3. Follow steps 1 and 2 in the default install instructions (above).
    4. -
    5. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive...
    6. -
    7. Browse and select the downloaded zip file.
    8. -
    9. Follow the remaining procedures, above, starting from steps 5.
    10. -
    -

    To update your plugin once you've installed using the zip file, you will have to -follow these steps again instead of the default update instructions.

    - -

    Other install errors

    - -

    Note that there are features of ADT that require some optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include these components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT -Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    Next Steps

    -

    Once you have completed installation, you are ready to -begin developing applications. Here are a few ways you can get started:

    - -

    Learn about Android

    -
      -
    • Take a look at the Dev - Guide and the types of information it provides
    • -
    • Read an introduction to Android as a platform in What is - Android?
    • -
    • Learn about the Android framework and how applications run on it in - Application - Fundamentals
    • -
    • Take a look at the Android framework API specification in the Reference tab
    • -
    - -

    Explore the SDK

    - - -

    Explore some code

    -
      -
    • Set up a Hello - World application (highly recommended, especially for Eclipse users)
    • -
    • Follow the - Notepad Tutorial to build a full Android application
    • -
    • Create a new project for one of the other sample applications - included in <sdk>/platforms/<platfrom>/samples, - then compile and run it in your development environment
    • -
    - -

    Visit the Android developer groups

    -
      -
    • Take a look at the Community tab to see a list of - Android developers groups. In particular, you might want to look at the - Android - Developers group to get a sense for what the Android developer - community is like.
    • -
    - - -

    Installation Notes

    - -

    Ubuntu Linux Notes

    - -
      -
    • If you need help installing and configuring Java on your - development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing - the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development - machine, you need to install the ia32-libs package using - apt-get:: -
        apt-get install ia32-libs
        -
      2. -
      3. Next, install Java:
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from - eclipse.org (http://www.eclipse.org/ - downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK - and the ADT plugin.
      8. -
      -
    • -
    - -

    Other Linux Notes

    - -
      -
    • If JDK is already installed on your development computer, please - take a moment to make sure that it meets the version requirements listed - in the System Requirements. - In particular, note that some Linux distributions may include JDK 1.4 or Gnu - Compiler for Java, both of which are not supported for Android development.
    • -
    - - - +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.5_r1/requirements.jd b/docs/html/sdk/1.5_r1/requirements.jd index c10ccac561e..96fdcb26f6f 100644 --- a/docs/html/sdk/1.5_r1/requirements.jd +++ b/docs/html/sdk/1.5_r1/requirements.jd @@ -1,45 +1,8 @@ -page.title=System Requirements @jd:body -

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android SDK, Release .

    + -

    Supported Operating Systems

    -
      -
    • Windows XP (32-bit) or Vista (32- or 64-bit)
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments

    -
      -
    • Eclipse IDE -
        -
      • Eclipse 3.3 (Europa), 3.4 (Ganymede) -
          -
        • Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers
        • -
        • Eclipse JDT plugin (included in most Eclipse IDE packages)
        • -
        • Eclipse Classic IDE package is not supported.
        • -
        -
      • -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Android Development Tools plugin (optional)
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    - -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.5_r2/index.jd b/docs/html/sdk/1.5_r2/index.jd index 15342a43399..4fb99b60470 100644 --- a/docs/html/sdk/1.5_r2/index.jd +++ b/docs/html/sdk/1.5_r2/index.jd @@ -1,87 +1,5 @@ -sdk.version=1.5 -sdk.rel.id=2 -sdk.date=May 2009 - -sdk.win_download=android-sdk-windows-1.5_r2.zip -sdk.win_bytes=178346828 -sdk.win_checksum=ba54ac6bda45921d442b74b6de6ff6a9 - -sdk.mac_download=android-sdk-mac_x86-1.5_r2.zip -sdk.mac_bytes=169945128 -sdk.mac_checksum=f4e06a5194410243f213d0177713d6c9 - -sdk.linux_download=android-sdk-linux_x86-1.5_r2.zip -sdk.linux_bytes=165035130 -sdk.linux_checksum=1d3c3d099e95a31c43a7b3e6ae307ed3 - page.title=Android 1.5 SDK, Release 2 -@jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    SDK Contents

    - -

    Development tools

    - -

    The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the -Dev Guide and access them in the <sdk>/tools/ directory. - -

    The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see Upgrading the SDK. - -

    For more information about the new tools features, see the SDK Release Notes. - -

    Android Platforms

    - -

    This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version — features, applications included, localizations, API changes, and so on — see its Version Notes.

    - - - - - - - - - - - - - - - - - - -
    PlatformAPI LevelNotesDescription
    Android 1.53Version NotesIncludes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).
    Android 1.12Version NotesIncludes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).
    - -

    SDK Add-Ons

    - -

    An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.

    - - - - - - - - - - - -
    Add-OnAPI LevelNotesDescription
    Google APIs3 Includes the com.google.android.maps external library, a compliant -system image, a {@link android.location.Geocoder Geocoder} -backend service implementation, documentation, and sample code.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the Dev Guide and access the sample code itself -in the <sdk>/platforms/android-1.5/samples/ directory of the SDK package. Note the new location — the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory.

    - -

    Documentation

    - -

    The SDK package includes a full set of local documentation. To view it, open the <sdk>/documentation.html file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE.

    - -

    The most current documentation is always available on the Android Developers site:

    - -

    http://developer.android.com/

    +sdk.redirect=true +sdk.redirect.path=index.html +@jd:body diff --git a/docs/html/sdk/1.5_r2/installing.jd b/docs/html/sdk/1.5_r2/installing.jd index 1e4e0f2479c..2ea04e46875 100644 --- a/docs/html/sdk/1.5_r2/installing.jd +++ b/docs/html/sdk/1.5_r2/installing.jd @@ -1,332 +1,8 @@ -sdk.version=1.5 -sdk.rel.id=2 -sdk.date=April 2009 - -page.title=Installing the Android SDK @jd:body + -

    This page describes how to install the Android SDK and set up your -development environment. If you haven't downloaded the SDK, you can -do so from the -Download page. Once you've downloaded -the SDK, return here.

    - -

    If you encounter any problems during installation, see the -Installation Notes at the bottom of -this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version -of the SDK, please read -Upgrading the -SDK, instead. -

    - - -

    Preparing for Installation

    - -

    Before you begin, take a moment to confirm that your development machine meets the -System Requirements. -

    - -

    If you will be developing on Eclipse with the Android Development -Tools (ADT) Plugin — the recommended path if you are new to -Android — make sure that you have a suitable version of Eclipse -installed on your computer (3.3 or newer). If you need to install Eclipse, you can -download it from this location:

    - -

    http://www.eclipse.org/downloads/

    - -

    A Java or RCP version of Eclipse is recommended.

    - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. -By default, the SDK files are unpacked into a directory named -android_sdk_<platform>_<release>. -The directory contains a local copy of the documentation (accessible by opening -documentation.html in your browser) and the subdirectories -tools/, add-ons/, platforms/, and others. Inside -each subdirectory of platforms/ you'll find samples/, which includes -code samples that are specific to each version of the platform.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you -will need to refer to the SDK directory later, when setting up the Android plugin or when -using the SDK tools.

    - -

    Optionally, you may want to add the location of the SDK's primary tools directory -to your system PATH. The primary tools/ directory is located at the root of the -SDK folder. Adding tools to your path lets you run Android Debug Bridge (adb) and -the other command line tools without -needing to supply the full path to the tools directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile if - you haven't already set one up on your machine.
    • - -
    • On Windows, right-click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path (under System Variables). Add the full path to the - tools/ directory to the path.
    • -
    - -

    Note that, if you update your SDK in the future, you -should remember to update your PATH settings to point to the new location, if different.

    - -

    If you will be using the Eclipse IDE as your development environment, -the next section describes how to install the Android Development Tools plugin and set up Eclipse. -If you choose not to use Eclipse, you can -develop Android applications in an IDE of your choice and then compile, debug and deploy using -the tools included in the SDK (skip to Next Steps).

    - - -

    Installing the ADT Plugin for Eclipse

    - -

    Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, -integrated environment in which to build Android applications. It -extends the capabilites of Eclipse to let you quickly set up new Android -projects, create an application UI, add components based on the Android -Framework API, debug your applications using the Android SDK tools, and even export -signed (or unsigned) APKs in order to distribute your application.

    - -

    In general, using Eclipse with ADT is a highly recommended -approach to Android development and is the fastest way to get started. -(If you prefer to work in an IDE other than Eclipse, -you do not need to install Eclipse or ADT, instead, you can directly -use the SDK tools to build and debug your application.)

    - -

    Once you have Eclipse installed, as described in Preparing for -Installation, follow the steps below to -download the ADT plugin and install it in your respective Eclipse -environment.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    - -
      -
    1. Start Eclipse, then select Help > Software Updates -> Find and Install....
    2. -
    3. In the dialog that appears, select Search for new features to install -and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and - enter the URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for the - "Android Plugin". - This will select the nested tools: "Android DDMS" and "Android Development Tools". - Click Next.
    12. -
    13. Read and accept the license agreement, then click Next.
    14. -
    15. On the following Installation window, click Finish.
    16. -
    17. The ADT plugin is not digitally signed. Accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - - -
      -
    1. Start Eclipse, then select Help > Software Updates....
    2. -
    3. In the dialog that appears, click the Available Software tab.
    4. -
    5. Click Add Site...
    6. -
    7. Enter the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the Location URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin listed by the URL, - with "Developer Tools" nested within it. Select the checkbox next to - Developer Tools and click Install...
    10. -
    11. On the subsequent Install window, "Android DDMS" and "Android Development Tools" - should both be checked. Click Next.
    12. -
    13. Read and accept the license agreement, then click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - -

    Now modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel (Mac: Eclipse > Preferences).
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and -locate your downloaded SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to -begin developing Android applications. See the -Next Steps section for suggestions on how to start.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are -some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing - the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > - Preferences > General > - Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you -can download the ADT zip file to your local machine and manually install the it: -

    -
      -
    1. Download the ADT zip file (do not unpack it).
    2. -
    3. Follow steps 1 and 2 in the default install instructions (above).
    4. -
    5. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive...
    6. -
    7. Browse and select the downloaded zip file.
    8. -
    9. Follow the remaining procedures, above, starting from steps 5.
    10. -
    -

    To update your plugin once you've installed using the zip file, you will have to -follow these steps again instead of the default update instructions.

    - -

    Other install errors

    - -

    Note that there are features of ADT that require some optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include these components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT -Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    Next Steps

    -

    Once you have completed installation, you are ready to -begin developing applications. Here are a few ways you can get started:

    - -

    Learn about Android

    -
      -
    • Take a look at the Dev - Guide and the types of information it provides
    • -
    • Read an introduction to Android as a platform in What is - Android?
    • -
    • Learn about the Android framework and how applications run on it in - Application - Fundamentals
    • -
    • Take a look at the Android framework API specification in the Reference tab
    • -
    - -

    Explore the SDK

    - - -

    Explore some code

    -
      -
    • Set up a Hello - World application (highly recommended, especially for Eclipse users)
    • -
    • Follow the - Notepad Tutorial to build a full Android application
    • -
    • Create a new project for one of the other sample applications - included in <sdk>/platforms/<platfrom>/samples, - then compile and run it in your development environment
    • -
    - -

    Visit the Android developer groups

    -
      -
    • Take a look at the Community tab to see a list of - Android developers groups. In particular, you might want to look at the - Android - Developers group to get a sense for what the Android developer - community is like.
    • -
    - - -

    Installation Notes

    - -

    Ubuntu Linux Notes

    - -
      -
    • If you need help installing and configuring Java on your - development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing - the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development - machine, you need to install the ia32-libs package using - apt-get:: -
        apt-get install ia32-libs
        -
      2. -
      3. Next, install Java:
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from - eclipse.org (http://www.eclipse.org/ - downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK - and the ADT plugin.
      8. -
      -
    • -
    - -

    Other Linux Notes

    - -
      -
    • If JDK is already installed on your development computer, please - take a moment to make sure that it meets the version requirements listed - in the System Requirements. - In particular, note that some Linux distributions may include JDK 1.4 or Gnu - Compiler for Java, both of which are not supported for Android development.
    • -
    - - - +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.5_r2/requirements.jd b/docs/html/sdk/1.5_r2/requirements.jd index c10ccac561e..96fdcb26f6f 100644 --- a/docs/html/sdk/1.5_r2/requirements.jd +++ b/docs/html/sdk/1.5_r2/requirements.jd @@ -1,45 +1,8 @@ -page.title=System Requirements @jd:body -

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android SDK, Release .

    + -

    Supported Operating Systems

    -
      -
    • Windows XP (32-bit) or Vista (32- or 64-bit)
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments

    -
      -
    • Eclipse IDE -
        -
      • Eclipse 3.3 (Europa), 3.4 (Ganymede) -
          -
        • Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers
        • -
        • Eclipse JDT plugin (included in most Eclipse IDE packages)
        • -
        • Eclipse Classic IDE package is not supported.
        • -
        -
      • -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Android Development Tools plugin (optional)
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    - -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.5_r3/index.jd b/docs/html/sdk/1.5_r3/index.jd index a79fe43e414..eb10f5ee435 100644 --- a/docs/html/sdk/1.5_r3/index.jd +++ b/docs/html/sdk/1.5_r3/index.jd @@ -1,88 +1,5 @@ -sdk.version=1.5 -sdk.rel.id=3 - -sdk.date=July 2009 - -sdk.win_download=android-sdk-windows-1.5_r3.zip -sdk.win_bytes=191477853 -sdk.win_checksum=1725fd6963ce69102ba7192568dfc711 - -sdk.mac_download=android-sdk-mac_x86-1.5_r3.zip -sdk.mac_bytes=183024673 -sdk.mac_checksum=b1bafdaefdcec89a14b604b504e7daec - -sdk.linux_download=android-sdk-linux_x86-1.5_r3.zip -sdk.linux_bytes=178117561 -sdk.linux_checksum=350d0211678ced38da926b8c9ffa4fac - page.title=Android 1.5 SDK, Release 3 -@jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    SDK Contents

    - -

    Development tools

    - -

    The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the -Dev Guide and access them in the <sdk>/tools/ directory. - -

    The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see Upgrading the SDK. - -

    For more information about the new tools features, see the SDK Release Notes. - -

    Android Platforms

    - -

    This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version — features, applications included, localizations, API changes, and so on — see its Version Notes.

    - - - - - - - - - - - - - - - - - - -
    PlatformAPI LevelNotesDescription
    Android 1.53Version NotesIncludes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).
    Android 1.12Version NotesIncludes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).
    - -

    SDK Add-Ons

    - -

    An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.

    - - - - - - - - - - - -
    Add-OnAPI LevelNotesDescription
    Google APIs3 Includes the com.google.android.maps external library, a compliant -system image, a {@link android.location.Geocoder Geocoder} -backend service implementation, documentation, and sample code.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the Dev Guide and access the sample code itself -in the <sdk>/platforms/android-1.5/samples/ directory of the SDK package. Note the new location — the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory.

    - -

    Documentation

    - -

    The SDK package includes a full set of local documentation. To view it, open the <sdk>/documentation.html file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE.

    - -

    The most current documentation is always available on the Android Developers site:

    - -

    http://developer.android.com/

    +sdk.redirect=true +sdk.redirect.path=index.html +@jd:body diff --git a/docs/html/sdk/1.5_r3/installing.jd b/docs/html/sdk/1.5_r3/installing.jd index ac475d1260c..2ea04e46875 100644 --- a/docs/html/sdk/1.5_r3/installing.jd +++ b/docs/html/sdk/1.5_r3/installing.jd @@ -1,332 +1,8 @@ -sdk.version=1.5 -sdk.rel.id=3 -sdk.date=April 2009 - -page.title=Installing the Android SDK @jd:body + -

    This page describes how to install the Android SDK and set up your -development environment. If you haven't downloaded the SDK, you can -do so from the -Download page. Once you've downloaded -the SDK, return here.

    - -

    If you encounter any problems during installation, see the -Installation Notes at the bottom of -this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version -of the SDK, please read -Upgrading the -SDK, instead. -

    - - -

    Preparing for Installation

    - -

    Before you begin, take a moment to confirm that your development machine meets the -System Requirements. -

    - -

    If you will be developing on Eclipse with the Android Development -Tools (ADT) Plugin — the recommended path if you are new to -Android — make sure that you have a suitable version of Eclipse -installed on your computer (3.3 or newer). If you need to install Eclipse, you can -download it from this location:

    - -

    http://www.eclipse.org/downloads/

    - -

    A Java or RCP version of Eclipse is recommended.

    - -

    Installing the SDK

    - -

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. -By default, the SDK files are unpacked into a directory named -android_sdk_<platform>_<release>. -The directory contains a local copy of the documentation (accessible by opening -documentation.html in your browser) and the subdirectories -tools/, add-ons/, platforms/, and others. Inside -each subdirectory of platforms/ you'll find samples/, which includes -code samples that are specific to each version of the platform.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you -will need to refer to the SDK directory later, when setting up the Android plugin or when -using the SDK tools.

    - -

    Optionally, you may want to add the location of the SDK's primary tools directory -to your system PATH. The primary tools/ directory is located at the root of the -SDK folder. Adding tools to your path lets you run Android Debug Bridge (adb) and -the other command line tools without -needing to supply the full path to the tools directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile if - you haven't already set one up on your machine.
    • - -
    • On Windows, right-click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path (under System Variables). Add the full path to the - tools/ directory to the path.
    • -
    - -

    Note that, if you update your SDK in the future, you -should remember to update your PATH settings to point to the new location, if different.

    - -

    If you will be using the Eclipse IDE as your development environment, -the next section describes how to install the Android Development Tools plugin and set up Eclipse. -If you choose not to use Eclipse, you can -develop Android applications in an IDE of your choice and then compile, debug and deploy using -the tools included in the SDK (skip to Next Steps).

    - - -

    Installing the ADT Plugin for Eclipse

    - -

    Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, -integrated environment in which to build Android applications. It -extends the capabilites of Eclipse to let you quickly set up new Android -projects, create an application UI, add components based on the Android -Framework API, debug your applications using the Android SDK tools, and even export -signed (or unsigned) APKs in order to distribute your application.

    - -

    In general, using Eclipse with ADT is a highly recommended -approach to Android development and is the fastest way to get started. -(If you prefer to work in an IDE other than Eclipse, -you do not need to install Eclipse or ADT, instead, you can directly -use the SDK tools to build and debug your application.)

    - -

    Once you have Eclipse installed, as described in Preparing for -Installation, follow the steps below to -download the ADT plugin and install it in your respective Eclipse -environment.

    - - - - - - - -
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    - -
      -
    1. Start Eclipse, then select Help > Software Updates -> Find and Install....
    2. -
    3. In the dialog that appears, select Search for new features to install -and click Next.
    4. -
    5. Click New Remote Site.
    6. -
    7. In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and - enter the URL: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. You should now see the new site added to the search list (and checked). - Click Finish.
    10. -
    11. In the subsequent Search Results dialog box, select the checkbox for the - "Android Plugin". - This will select the nested tools: "Android DDMS" and "Android Development Tools". - Click Next.
    12. -
    13. Read and accept the license agreement, then click Next.
    14. -
    15. On the following Installation window, click Finish.
    16. -
    17. The ADT plugin is not digitally signed. Accept the installation anyway - by clicking Install All.
    18. -
    19. Restart Eclipse.
    20. -
    - -
    - - -
      -
    1. Start Eclipse, then select Help > Software Updates....
    2. -
    3. In the dialog that appears, click the Available Software tab.
    4. -
    5. Click Add Site...
    6. -
    7. Enter the Location: -
      https://dl-ssl.google.com/android/eclipse/
      -

      If you have trouble aqcuiring the plugin, try using "http" in the Location URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    8. -
    9. Back in the Available Software view, you should see the plugin listed by the URL, - with "Developer Tools" nested within it. Select the checkbox next to - Developer Tools and click Install...
    10. -
    11. On the subsequent Install window, "Android DDMS" and "Android Development Tools" - should both be checked. Click Next.
    12. -
    13. Read and accept the license agreement, then click Finish.
    14. -
    15. Restart Eclipse.
    16. -
    - -
    - -

    Now modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel (Mac: Eclipse > Preferences).
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and -locate your downloaded SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to -begin developing Android applications. See the -Next Steps section for suggestions on how to start.

    - - -

    Troubleshooting ADT Installation

    -

    -If you are having trouble downloading the ADT plugin after following the steps above, here are -some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing - the remote site URL to use http, rather than https. That is, set the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make - sure that you have properly configured your proxy settings in Eclipse. - In Eclipse 3.3/3.4, you can configure proxy information from the main - Eclipse menu in Window (on Mac, Eclipse) > - Preferences > General > - Network Connections.
    • -
    -

    -If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you -can download the ADT zip file to your local machine and manually install the it: -

    -
      -
    1. Download the ADT zip file (do not unpack it).
    2. -
    3. Follow steps 1 and 2 in the default install instructions (above).
    4. -
    5. In Eclipse 3.3, click New Archive Site....
      - In Eclipse 3.4, click Add Site..., then Archive...
    6. -
    7. Browse and select the downloaded zip file.
    8. -
    9. Follow the remaining procedures, above, starting from steps 5.
    10. -
    -

    To update your plugin once you've installed using the zip file, you will have to -follow these steps again instead of the default update instructions.

    - -

    Other install errors

    - -

    Note that there are features of ADT that require some optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include these components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT -Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - - -

    Next Steps

    -

    Once you have completed installation, you are ready to -begin developing applications. Here are a few ways you can get started:

    - -

    Learn about Android

    -
      -
    • Take a look at the Dev - Guide and the types of information it provides
    • -
    • Read an introduction to Android as a platform in What is - Android?
    • -
    • Learn about the Android framework and how applications run on it in - Application - Fundamentals
    • -
    • Take a look at the Android framework API specification in the Reference tab
    • -
    - -

    Explore the SDK

    - - -

    Explore some code

    -
      -
    • Set up a Hello - World application (highly recommended, especially for Eclipse users)
    • -
    • Follow the - Notepad Tutorial to build a full Android application
    • -
    • Create a new project for one of the other sample applications - included in <sdk>/platforms/<platfrom>/samples, - then compile and run it in your development environment
    • -
    - -

    Visit the Android developer groups

    -
      -
    • Take a look at the Community tab to see a list of - Android developers groups. In particular, you might want to look at the - Android - Developers group to get a sense for what the Android developer - community is like.
    • -
    - - -

    Installation Notes

    - -

    Ubuntu Linux Notes

    - -
      -
    • If you need help installing and configuring Java on your - development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing - the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development - machine, you need to install the ia32-libs package using - apt-get:: -
        apt-get install ia32-libs
        -
      2. -
      3. Next, install Java:
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from - eclipse.org (http://www.eclipse.org/ - downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK - and the ADT plugin.
      8. -
      -
    • -
    - -

    Other Linux Notes

    - -
      -
    • If JDK is already installed on your development computer, please - take a moment to make sure that it meets the version requirements listed - in the System Requirements. - In particular, note that some Linux distributions may include JDK 1.4 or Gnu - Compiler for Java, both of which are not supported for Android development.
    • -
    - - - +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.5_r3/requirements.jd b/docs/html/sdk/1.5_r3/requirements.jd index 5bcee27ed75..96fdcb26f6f 100644 --- a/docs/html/sdk/1.5_r3/requirements.jd +++ b/docs/html/sdk/1.5_r3/requirements.jd @@ -1,48 +1,8 @@ -sdk.version=1.5 -sdk.rel.id=3 -page.title=System Requirements - @jd:body -

    The sections below describe the system and software requirements for developing Android applications using the Android SDK tools included in Android SDK, Release .

    - -

    Supported Operating Systems

    -
      -
    • Windows XP (32-bit) or Vista (32- or 64-bit)
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Dapper Drake) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments

    -
      -
    • Eclipse IDE -
        -
      • Eclipse 3.3 (Europa), 3.4 (Ganymede) -
          -
        • Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers
        • -
        • Eclipse JDT plugin (included in most Eclipse IDE packages)
        • -
        • Eclipse Classic IDE package is not supported.
        • -
        -
      • -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Android Development Tools plugin (optional)
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    + -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    \ No newline at end of file +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/1.6_r1/index.jd b/docs/html/sdk/1.6_r1/index.jd index 8f33949c05d..e7f9112ce2f 100644 --- a/docs/html/sdk/1.6_r1/index.jd +++ b/docs/html/sdk/1.6_r1/index.jd @@ -1,140 +1,5 @@ page.title=Android 1.6 SDK, Release 1 -sdk.redirect=0 -sdk.version=1.6 - -sdk.date=September 2009 - -sdk.win_download=android-sdk-windows-1.6_r1.zip -sdk.win_bytes=260529085 -sdk.win_checksum=2bcbacbc7af0363058ca1cac6abad848 - -sdk.mac_download=android-sdk-mac_x86-1.6_r1.zip -sdk.mac_bytes=247412515 -sdk.mac_checksum=eb13cc79602d492e89103efcf48ac1f6 - -sdk.linux_download=android-sdk-linux_x86-1.6_r1.tgz -sdk.linux_bytes=238224860 -sdk.linux_checksum=b4bf0e610ff6db2fb6fb09c49cba1e79 - -adt.zip_download=ADT-0.9.3.zip -adt.zip_version=0.9.3 -adt.zip_bytes=3252487 -adt.zip_checksum=c296488ac35772667c0f49e822156979 +sdk.redirect=true +sdk.redirect.path=index.html @jd:body - -

    For more information on this SDK release, read the -Release Notes.

    - -

    SDK Contents

    - -

    Development tools

    - -

    The SDK includes a full set of tools for developing and debugging application -code and designing an application UI. You can read about the tools in the Dev Guide and access them -in the <sdk>/tools/ directory. - -

    The tools package in this SDK includes updates from those provided in the -previous SDK. The tools use the same project structure as in the previous SDK -(Android 1.5). If you have application projects developed in the Android 1.5 -SDK, you can migrate them to the latest SDK without modification. For more -information about how to migrate, see Upgrading the -SDK. - -

    Android Platforms

    - -

    This SDK includes multiple Android platform versions that you can use to -develop applications. For each version, both a fully compliant Android library -and system image are provided. The table below lists the platform versions -included in this SDK. For more information about a platform version — -features, applications included, localizations, API changes, and so on — -see its Version Notes.

    - - - - - - - - - - - - - - - - - -
    PlatformAPI -LevelNotesDescription
    Android 1.64Version -NotesIncludes a standard Android 1.6 library and system image with a set of -development applications. Does not include any external libraries (such as the -Maps external library).
    Android 1.53Version -NotesIncludes a standard Android 1.5 library and system image with a set of -development applications. Does not include any external libraries (such as the -Maps external library).
    - -

    Note that you can use the Android SDK and AVD Manager to download other -platform versions into your development environment.. - -

    SDK Add-Ons

    - -

    An SDK add-on provides a development environment for an Android external -library or a customized (but fully compliant) Android system image. This SDK -includes the SDK add-ons listed below. The Android system API Level required by -the add-ons are noted.

    - - - - - - - - - - - - - - - - - - -
    Add-OnAPI LevelNotesDescription
    Google APIs4 Includes the com.google.android.maps external library, a compliant -Android 1.6 system image, a {@link android.location.Geocoder Geocoder} -backend service implementation, documentation, and sample code.
    Google APIs3 Includes the com.google.android.maps external library, a compliant -Android 1.5 system image, a {@link android.location.Geocoder Geocoder} -backend service implementation, documentation, and sample code.
    - -

    Sample Code and Applications

    - -

    You can look at a variety of tutorials and samples in the Dev Guide and access the sample -code itself in the <sdk>/platforms/<platform>/samples/ -directory of the SDK package. Note the new location — the SDK now includes -multiple platform versions that you can develop against and each has its own -sample code directory.

    - -

    For example, to view or build the samples available for the Android -1.6 platform (AVD target "Android 1.6"), you will find the samples in the -<sdk>/platforms/android-1.6/samples/ directory of the SDK -package.

    - -

    Documentation

    - -

    The SDK package includes a full set of local documentation. To view it, open -the <sdk>/documentation.html file in a web browser. If you -are developing in an IDE such as Eclipse, you can also view the reference -documentation directly in the IDE.

    - -

    The most current documentation is always available on the Android Developers -site:

    - -

    http://developer.android.com/ -

    - - diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd index 954bfa3f003..2ea04e46875 100644 --- a/docs/html/sdk/1.6_r1/installing.jd +++ b/docs/html/sdk/1.6_r1/installing.jd @@ -1,441 +1,8 @@ -page.title=Installing the Android 1.6 SDK -sdk.version=1.6 -sdk.preview=0 - @jd:body - - -

    This page describes how to install the Android SDK and set up your -development environment.

    - -

    If you encounter any problems during installation, see the -Installation Notes at the bottom of -this page.

    - -

    Upgrading?

    -

    If you have already developed applications using an earlier version -of the Android SDK, please read Upgrading the SDK, instead. -

    - - -

    Prepare for Installation

    - -

    Before you begin, take a moment to confirm that your development machine -meets the System Requirements.

    - -

    If you will be developing on Eclipse with the Android Development -Tools (ADT) Plugin — the recommended path if you are new to -Android — make sure that you have a suitable version of Eclipse -installed on your computer (3.4 or newer is recommended). If you need -to install Eclipse, you can download it from this location:

    - -

    http://www.eclipse.org/downloads/

    - -

    A Java or RCP version of Eclipse is recommended.

    - -

    Install the SDK

    - -

    After downloading the Android SDK, unpack the Android SDK .zip archive -to a suitable location on your machine. By default, the SDK files are unpacked -into a directory named android_sdk_<platform>_<release>.

    - -

    Make a note of the name and location of the unpacked SDK directory on your system — you -will need to refer to the SDK directory later, when setting up the Android plugin or when -using the SDK tools.

    - -

    Optionally, you may want to add the location of the SDK's primary tools directory -to your system PATH. The primary tools/ directory is located at the root of the -SDK folder. Adding tools to your path lets you run Android Debug Bridge (adb) and -the other command line tools without -needing to supply the full path to the tools directory.

    -
      -
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look - for a line that sets the PATH environment variable and add the - full path to the tools/ directory to it. If you don't - see a line setting the path, you can add one:
    • - -
        export PATH=${PATH}:<your_sdk_dir>/tools
      - -
    • On a Mac, look in your home directory for .bash_profile and - proceed as for Linux. You can create the .bash_profile if - you haven't already set one up on your machine.
    • - -
    • On Windows, right-click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path (under System Variables). Add the full path to the - tools/ directory to the path.
    • -
    - -

    Note that, if you update your SDK in the future, you -should remember to update your PATH settings to point to the new location, if different.

    - -

    If you will be using the Eclipse IDE as your development environment, -the next section describes how to install the Android Development Tools (ADT) plugin and set up Eclipse. -If you choose not to use Eclipse, you can -develop Android applications in an IDE of your choice and then compile, debug and deploy using -the tools included in the SDK (skip to Next Steps).

    - - -

    Install the ADT Plugin for Eclipse

    - -

    Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, -integrated environment in which to build Android applications. It -extends the capabilites of Eclipse to let you quickly set up new Android -projects, create an application UI, add components based on the Android -Framework API, debug your applications using the Android SDK tools, and even export -signed (or unsigned) APKs in order to distribute your application.

    - -

    In general, using Eclipse with ADT is a highly recommended approach to -Android development and is the fastest way to get started. (If you prefer to -work in an IDE other than Eclipse, you do not need to install Eclipse or ADT, -instead, you can directly use the SDK tools to build and debug your -application—skip to Next Steps.)

    - -

    Once you have the Eclipse IDE installed, as described in Preparing for Installation, follow the steps below to -download the ADT plugin and install it in your respective Eclipse environment. -

    - - - - - - - -
    Eclipse 3.4 (Ganymede)Eclipse 3.5 (Galileo)
    - -
      -
    1. Start Eclipse, then select Help > Software Updates.... - In the dialog that appears, click the Available Software tab.
    2. -
    3. Click Add Site...
    4. -
    5. In the Add Site dialog that appears, enter this URL in the "Location" field: -
      https://dl-ssl.google.com/android/eclipse/
      -

      Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL, - instead of "https" (https is preferred for security reasons).

      -

      Click OK.

    6. -
    7. Back in the Available Software view, you should see the plugin listed by the URL, - with "Developer Tools" nested within it. Select the checkbox next to - Developer Tools and click Install...
    8. -
    9. On the subsequent Install window, "Android DDMS" and "Android Development Tools" - should both be checked. Click Next.
    10. -
    11. Read and accept the license agreement, then click Finish.
    12. -
    13. Restart Eclipse.
    14. -
    - -
    - -
      -
    1. Start Eclipse, then select Help > Install - New Softare.
    2. -
    3. In the Available Software dialog, click Add....
    4. -
    5. In the Add Site dialog that appears, enter a name for the remote site - (e.g., "Android Plugin") in the "Name" field. -

      In the "Location" field, enter this URL:

      -
      https://dl-ssl.google.com/android/eclipse/
      -

      Note: If you have trouble aqcuiring the plugin, you can try - using "http" in the URL, instead of "https" (https is preferred for - security reasons).

      -

      Click OK.

      -
    6. -
    7. Back in the Available Software view, you should now see "Developer - Tools" added to the list. Select the checkbox next to Developer Tools, - which will automatically select the nested tools Android DDMS and Android - Development Tools. - Click Next.
    8. -
    9. In the resulting Install Details dialog, the Android DDMS and Android - Development Tools features are listed. Click Next to - read and accept the license agreement and install any dependencies, - then click Finish.
    10. -
    11. Restart Eclipse.
    12. - -
    -
    - -

    Now modify your Eclipse preferences to point to the Android SDK directory:

    -
      -
    1. Select Window > Preferences... to open the Preferences - panel (Mac: Eclipse > Preferences).
    2. -
    3. Select Android from the left panel.
    4. -
    5. For the SDK Location in the main panel, click Browse... and - locate your downloaded SDK directory.
    6. -
    7. Click Apply, then OK.
    8. -
    - -

    Done! If you haven't encountered any problems, then you're ready to -begin developing Android applications. See the -Next Steps section for suggestions on how to start.

    - - -

    Contents of the SDK

    - -

    Once you've downloaded and unpacked the SDK, open the SDK directory -and take a look at what's inside. - -

    The table below describes the SDK directory contents.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    add-ons/Contains add-ons to the Android SDK development -environment, which let you develop against external libraries that are available on some -devices.
    docs/A full set of documentation in HTML format, including the Developer's Guide, -API Reference, and other information.
    platforms/Contains a set of Android platform versions that you can develop -applications against, each in a separate directory.
    <platform>/Platform version directory, for example "Android 1.6". All platform version -directories contain a similar set of files and subdirectory structure.
     data/Storage area for default fonts and resource definitions.
    images/Storage area for default disk images, including the Android system image, -the default userdata image, the default ramdisk image, and more. The images -are used in emulator sessions.
    samples/Contains a wide variety of sample applications that you can load as projects -into your development environment, compile, and run on the emulator.
    skins/A set of emulator skins available for the platform version. Each skin is -designed for a specific screen resolution.
    templates/Storage area for file templates used by the SDK development tools.
    tools/Any development tools that are specific to the platform version.
    android.jarThe Android library used when compiling applications against this platform -version.
    tools/Contains the set of development and profiling tools available to you, such -as the emulator, the android tool, adb, ddms, and more.
    RELEASE_NOTES.htmlA file that loads the local version of the SDK release notes, if -available.
    documentation.htmlA file that loads the entry page for the local Android SDK -documentation.
    - -

    Next Steps

    -

    Once you have completed installation, you are ready to -begin developing applications. Here are a few ways you can get started:

    - -

    Learn about Android

    -
      -
    • Take a look at the Dev - Guide and the types of information it provides
    • -
    • Read an introduction to Android as a platform in What is - Android?
    • -
    • Learn about the Android framework and how applications run on it in - Application - Fundamentals
    • -
    • Take a look at the Android framework API specification in the Reference tab
    • -
    - -

    Explore the SDK

    - - -

    Explore some code

    -
      -
    • Set up a Hello - World application (highly recommended, especially for Eclipse users)
    • -
    • Follow the - Notepad Tutorial to build a full Android application
    • -
    • Create a new project for one of the other sample applications - included in <sdk>/platforms/<platform>/samples, - then compile and run it in your development environment
    • -
    - -

    Visit the Android developer groups

    -
      -
    • Take a look at the Community tab to see a list of - Android developers groups. In particular, you might want to look at the - Android - Developers group to get a sense for what the Android developer - community is like.
    • -
    - - -

    Installation Notes

    - -

    Ubuntu Linux Notes

    - -
      -
    • If you need help installing and configuring Java on your - development machine, you might find these resources helpful: - -
    • -
    • Here are the steps to install Java and Eclipse, prior to installing - the Android SDK and ADT Plugin. -
        -
      1. If you are running a 64-bit distribution on your development - machine, you need to install the ia32-libs package using - apt-get:: -
        apt-get install ia32-libs
        -
      2. -
      3. Next, install Java:
        apt-get install sun-java6-bin
      4. -
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from - eclipse.org (http://www.eclipse.org/ - downloads/). A Java or RCP version of Eclipse is recommended.
      6. -
      7. Follow the steps given in previous sections to install the SDK - and the ADT plugin.
      8. -
      -
    • -
    - -

    Other Linux Notes

    - -
      -
    • If JDK is already installed on your development computer, please - take a moment to make sure that it meets the version requirements listed - in the System Requirements. - In particular, note that some Linux distributions may include JDK 1.4 or Gnu - Compiler for Java, both of which are not supported for Android development.
    • -
    - - -

    Troubleshooting ADT Installation

    - -

    If you are having trouble downloading the ADT plugin after following the -steps above, here are some suggestions:

    - -
      -
    • If Eclipse can not find the remote update site containing the ADT plugin, -try changing the remote site URL to use http, rather than https. That is, set -the Location for the remote site to: -
      http://dl-ssl.google.com/android/eclipse/
    • -
    • If you are behind a firewall (such as a corporate firewall), make sure that -you have properly configured your proxy settings in Eclipse. In Eclipse 3.3/3.4, -you can configure proxy information from the main Eclipse menu in -Window (on Mac, Eclipse) > -Preferences > General > Network -Connections.
    • -
    - -

    If you are still unable to use Eclipse to download the ADT plugin as a -remote update site, you can download the ADT zip file to your local machine and -manually install it:

    - -
      -
    1. Download the - ADT Plugin zip file (do not unpack it).
    2. -
    3. Follow steps 1 and 2 in the default install - instructions (above).
    4. -
    5. In the Add Site dialog, click Archive.
    6. -
    7. Browse and select the downloaded zip file.
    8. -
    9. In Eclipse 3.5 only, enter a name for the local update site (e.g., - "Android Plugin") in the "Name" field.
    10. -
    11. Click OK. -
    12. Follow the remaining procedures as listed for - default installation above, - starting from step 4.
    13. -
    - -

    To update your plugin once you've installed using the zip file, you will have -to follow these steps again instead of the default update instructions.

    - -

    Other install errors

    - -

    Note that there are features of ADT that require some optional -Eclipse components (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include these components. -For information about how to quickly add the necessary components to your -Eclipse installation, see the troubleshooting topic -ADT -Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    - -

    For Linux users

    -

    If you encounter this error when installing the ADT Plugin for Eclipse: -

    -An error occurred during provisioning.
    -Cannot connect to keystore.
    -JKS
    -

    -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.

    - + +

    You should have already been redirected by your browser. Please go to +Installing the Android SDK.

    \ No newline at end of file diff --git a/docs/html/sdk/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd index 8cfc0494b82..96fdcb26f6f 100644 --- a/docs/html/sdk/1.6_r1/requirements.jd +++ b/docs/html/sdk/1.6_r1/requirements.jd @@ -1,57 +1,8 @@ -page.title=System Requirements -sdk.version=1.6 -sdk.preview=0 @jd:body -

    The sections below describe the system and software requirements for developing -Android applications using the Android SDK tools included in Android - SDK, Release .

    - -

    Supported Operating Systems

    -
      -
    • Windows XP (32-bit) or Vista (32- or 64-bit)
    • -
    • Mac OS X 10.4.8 or later (x86 only)
    • -
    • Linux (tested on Linux Ubuntu Hardy Heron) -
        -
      • 64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the Installation Notes.
      • -
      -
    • -
    - -

    Supported Development Environments

    -
      -
    • Eclipse IDE -
        -
      • Eclipse 3.4 (Ganymede) or 3.5 (Galileo) -
          -
        • Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to - Eclipse 3.4 or 3.5.
        • -
        • Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers
        • -
        • Eclipse JDT plugin (included in most Eclipse IDE packages)
        • -
        • Eclipse Classic IDE package is not supported.
        • -
        -
      • -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Android Development Tools plugin (optional)
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    • Other development environments or IDEs -
        -
      • JDK 5 or JDK 6 (JRE alone is not sufficient)
      • -
      • Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
      • -
      • Not compatible with Gnu Compiler for Java (gcj)
      • -
      -
    • -
    - -

    Note: If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development.

    - -

    Hardware requirements

    -
      -
    • For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed.
    • -
    + +

    You should have already been redirected by your browser. Please go to +System Requirements.

    \ No newline at end of file diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd index bca89f610b7..2c1d4951b69 100644 --- a/docs/html/sdk/RELEASENOTES.jd +++ b/docs/html/sdk/RELEASENOTES.jd @@ -28,16 +28,16 @@ keep your development environment up-to-date.

    Note that if you are currently using the Android 1.6 SDK, you do not necessarily need to install the new SDK, since your existing SDK already -includes the Android SDK and AVD Manager tool. To develop against Android 2.0, -for example, you could just download the Android 2.0 platform into your existing +includes the Android SDK and AVD Manager tool. To develop against Android 2.0.1, +for example, you could just download the Android 2.0.1 platform into your existing SDK.

    Release notes for Android platforms and other SDK components are now available from the "SDK" tab, under "Downloadable SDK Components."

    For details about the Android platforms included in the SDK — including -bug fixes, features, and API changes — please read the Version Notes -documents available at left. For a list of Android platforms included in this -release, see the Download -page. Note that you can use the Android SDK and AVD Manager to download -additional platforms.

    +bug fixes, features, and API changes — please read the Android 1.6 version notes.

    Installation and Upgrade Notes

    @@ -96,10 +93,6 @@ to migrate the application to the new SDK, compile it using the platform matching the application's original API Level, and run it against the most current platform.

    -

    If you're installing the Android SDK for the first time, please see -the instructions in Installing the SDK. -

    ADT Plugin for Eclipse

    An updated version of the ADT Plugin for Eclipse is available with the @@ -115,8 +108,8 @@ Plugin (0.9.3 or higher).

    The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to -download the plugin, please see Upgrading -Your Eclipse Plugin.

    +download the plugin, please see Installing and Updating ADT.

    Android SDK and AVD Manager

    @@ -208,11 +201,9 @@ properly, you do not need to upgrade to the new driver. However, we recommend upgrading if you have had any problems with the older driver or simply want to upgrade to the latest version.

    -

    The USB driver files are located in the -<SDK>/usb_driver directory. For driver installation or +

    For driver installation or upgrade instructions, see Installing the WinUSB -Driver.

    +href="{@docRoot}sdk/win-usb.html">USB Driver for Windows.

    Emulator Skins, Android 1.6 Platform

    @@ -360,10 +351,8 @@ Android project.

    For details about the Android platforms included in the SDK — including -bug fixes, features, and API changes — please read the Version Notes -documents available at left. For a list of Android platforms included in this -release, see the Download -page.

    +bug fixes, features, and API changes — please read the Android 1.5 version notes.

    Installation and Upgrade Notes

    @@ -379,10 +368,6 @@ to migrate the application to the new SDK, compile it using the platform matching the application's original API Level, and run it against the most current platform.

    -

    If you're installing the Android SDK for the first time, please see -the instructions in Installing the SDK. -

    SDK Add-Ons

    This version of the SDK introduces support for SDK add-ons, which extend the @@ -457,11 +442,9 @@ these USB drivers that you can install, to let you develop on the device:

  • USB driver for 64-bit Vista only
  • -

    The USB driver files are located in the -<SDK>/usb_driver directory. For details and -installation instructions, see Setting Up a -Device for Development.

    +

    For driver installation or +upgrade instructions, see USB Driver for Windows.

    Resolved Issues, Changes

    @@ -508,7 +491,7 @@ as well as a few minor API changes from the 1.0 version.

    For details about the Android 1.1 system image included in the SDK — including bug fixes, features, and API changes — please read the Android 1.1 Version Notes.

    +href="{@docRoot}sdk/android-1.1.html">Android 1.1 version notes.

    App Versioning for Android 1.1

    @@ -562,8 +545,7 @@ testing.

    Plugin for Eclipse is 0.8.0. If you are using a previous version of ADT, you should update to the latest version for use with this SDK. For information about how to update your ADT plugin, see -Upgrading -the SDK.

    +Installing and Updating ADT.

    Installation and Upgrade Notes

    @@ -572,10 +554,6 @@ changes to your application are needed. You may want to wipe application user data (emulator option -wipe-data) when running your application on the Android 1.1 emulator for the first time.

    -

    If you're installing the Android SDK for the first time, please see -the instructions in Installing the SDK. -

    Other Notes

    MapView API Key

    @@ -626,7 +604,7 @@ Device for Development.

    classes, you can do so. However, you need to set up a custom JUnit configuration before your tests will run properly. For detailed information about how to set up the JUnit configuration, see the troubleshooting topic Running a Junit test class +href="{@docRoot}resources/faq/troubleshooting.html#addjunit">Running a Junit test class in Eclipse. @@ -673,13 +651,7 @@ added.

    Development Tools (ADT) Plugin for Eclipse is 0.8.0. If you are using a previous version of ADT, you should update to the latest version for use with this SDK. For information about how to update your ADT plugin, see Upgrading the SDK.

    - -

    Installation and Upgrade Notes

    - -

    If you're installing the Android SDK for the first time, please see the -instructions in Installing the -SDK. +href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT.

    Other Notes

    @@ -765,8 +737,6 @@ to this release.

    If you've been developing an application using a previous SDK version and you want the application to run on Android-powered mobile devices, you must port the application to the Android 1.0 SDK. Please see Upgrading the SDK for detailed instructions on how to make the transition to this release. Be sure to wipe application user data (emulator option -wipe-data) when running your application on the Android 1.0 SDK emulator.

    -

    If you're installing the Android SDK for the first time, please see the instructions in Installing the SDK. -

    Other Notes

    MapView API Key

    diff --git a/docs/html/sdk/adt-notes.jd b/docs/html/sdk/adt-notes.jd index 639d5e80118..361d99aea3f 100644 --- a/docs/html/sdk/adt-notes.jd +++ b/docs/html/sdk/adt-notes.jd @@ -16,16 +16,40 @@ android.com/sdk/adt-notes.html.

    feature. For more information, see Installing and Updating ADT.

    + +

    ADT 0.9.5

    + +

    December 2009. ADT 0.9.5 provides several bug fixes for developers, +as described below. +

    + +

    Dependencies

    + +

    ADT 0.9.5 requires features provided in SDK Tools r4. If you install +ADT 0.9.5, which is highly recommended, you should use the Android SDK and AVD +Manager to download SDK Tools r4 or higher into your SDK. For more information, +see Adding SDK Components. +

    + +

    General Notes

    +
      +
    • AVD Launch dialog now shows scale value.
    • +
    • Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.
    • +
    • Fixes XML validation issue in on older Java versions.
    • +
    • .apk packaging now properly ignores vi swap files as well as hidden files.
    • +
    + +

    ADT 0.9.4

    -

    ADT 0.9.4 provides several new features for developers, as described below. +

    October 2009. ADT 0.9.4 provides several new features for developers, as described below.

    Dependencies

    -

    ADT 0.9.4 requires features provided in SDK Tools, Revision 3. If you install +

    ADT 0.9.4 requires features provided in SDK Tools, revision 3. If you install ADT 0.9.4, which is highly recommended, you should use the Android SDK and AVD -Manager to download SDK Tools 3 or higher into your SDK. For more information, +Manager to download SDK Tools r3 or higher into your SDK. For more information, see Adding SDK Components.

    diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd index 6ce76343aa8..6dbca482369 100644 --- a/docs/html/sdk/adt_download.jd +++ b/docs/html/sdk/adt_download.jd @@ -22,10 +22,17 @@ ADT Installation.

    Notes - 0.9.4 - ADT-0.9.4.zip + 0.9.5 + ADT-0.9.5.zip {@adtZipBytes} bytes {@adtZipChecksum} + Requires SDK Tools, Revision 4 December 2009 + + + 0.9.4 + ADT-0.9.4.zip + 3367536 bytes + 4cdecd72b3e28022d8a55891f13e7d43 Requires SDK Tools, Revision 3 October 2009 diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd index 4b659a1af62..7151325626b 100644 --- a/docs/html/sdk/android-1.6.jd +++ b/docs/html/sdk/android-1.6.jd @@ -1,8 +1,8 @@ -page.title=Android 1.6, Release 1 +page.title=Android 1.6, Release 2 sdk.platform.version=1.6 sdk.platform.apiLevel=4 sdk.platform.majorMinor=minor -sdk.platform.releaseDate=September 2009 +sdk.platform.releaseDate=December 2009 sdk.platform.deployableDate=October 2009 @jd:body @@ -13,6 +13,7 @@ sdk.platform.deployableDate=October 2009

    In this document

    1. Platform Highlights
    2. +
    3. Release Notes
    4. Built-in Applications
    5. Locales
    6. Emulator Skins
    7. @@ -37,20 +38,21 @@ sdk.platform.deployableDate=October 2009 API Level: {@sdkPlatformApiLevel}

      Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}. -The release includes new features for users and developers, as well as changes +deployable to Android-powered handsets since {@sdkPlatformDeployableDate}. +The platform includes new features for users and developers, as well as changes in the Android framework API.

      -

      For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform is fully -compliant and includes no external libraries.

      +

      For developers, a new release of the Android {@sdkPlatformVersion} platform +is available as a downloadable component for the Android SDK. The platform +— Android 1.6 r2 — includes a fully compliant Android library and +system image, as well as a set of emulator skins, sample applications, and minor +development updates. The downloadable platform is fully compliant (API Level 4) +and includes no external libraries.

      To get started developing or testing against the Android {@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your Android 1.6 or later SDK. For more information, -see Adding SDK +download the latest Android 1.6 platform into your Android 1.6 or later SDK. For +more information, see Adding SDK Components.

      @@ -61,6 +63,45 @@ href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights. {@sdkPlatformVersion} Platform Highlights document.

      +

      Release Notes

      + +

      The sections below provide information about the available releases of the +Android 1.6 platform.

      + +

      Android 1.6, Release 2

      + +

      December 2009. Requires SDK Tools r4 or higher.

      + +

      API related:

      +
        +
      • Properly exposes CDMA-related constants in {@link android.telephony.TelephonyManager android.telephony.TelephonyManager}: DATA_ACTIVITY_DORMANT, +PHONE_TYPE_CDMA, NETWORK_TYPE_CDMA, +NETWORK_TYPE_EVDO_0, NETWORK_TYPE_EVDO_A, and +NETWORK_TYPE_1xRTT.
      • +
      +

      System image:

      +
        +
      • Fixes bug so that Bitmap's density is now propagated through Parcelable.
      • +
      • Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.
      • +
      • Fixes TextView to properly compute styled font metrics based on the screen density.
      • +
      • Updates kernel to 2.6.29, to match kernel on commercially +available Android-powered devices.
      • +
      +

      Tools:

      +
        +
      • Adds new Ant build system with support for Emma instrumentation projects +(code coverage).
      • +
      • Fixes emulator skins to properly emulate d-pad in landscape mode.
      • +
      • Fixes density rendering in the layout editor in ADT.
      • +
      + + + +

      Android 1.6, Release 1

      + +

      September 2009. Initial release. Requires SDK Tools r3 or higher.

      + +

      Built-in Applications

      The system image included in the downloadable platform provides these @@ -321,15 +362,15 @@ determining the density of the current device screen.

    8. New attributes for the {@code <uses-sdk>} element:
        -
      • maxSdkVersion: This indicates the maximum API Level on which an application is - designed to run. If an application declares this attribute, the Android system prevents the user - from installing the application if the system's API Level is higher than the value specified in - this attribute.
      • -
      • targetSdkVersion: This indicates the API Level that the application is targeting. +
      • targetSdkVersion: Indicates the API Level that the application is targeting. It is able to run on older versions (down to minSdkVersion), but was explicitly tested to work with the version specified here. Specifying this version allows the platform to disable compatibility code that is not required or enable newer features that are not available to older applications.
      • +
      • maxSdkVersion: Indicates the maximum API Level on which an application is + designed to run. Important: Please read the <uses-sdk> + documentation before using this attribute.
    9. diff --git a/docs/html/sdk/android-2.0.1.jd b/docs/html/sdk/android-2.0.1.jd new file mode 100644 index 00000000000..43b1710d859 --- /dev/null +++ b/docs/html/sdk/android-2.0.1.jd @@ -0,0 +1,304 @@ +page.title=Android 2.0.1, Release 1 +sdk.platform.version=2.0.1 +sdk.platform.apiLevel=6 +sdk.platform.majorMinor=minor +sdk.platform.releaseDate=December 2009 +sdk.platform.deployableDate=December 2009 + +@jd:body + + + +

      +Date: {@sdkPlatformReleaseDate}
      +API Level: {@sdkPlatformApiLevel}

      + +

      Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release +deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}. +This release includes minor API +changes, bug fixes and framework behavioral changes. For information on changes +and fixes, see the Framework API section.

      + +

      For developers, the Android {@sdkPlatformVersion} platform is available as a +downloadable component for the Android SDK. The downloadable platform includes a +fully compliant Android library and system image, as well as a set of emulator +skins, sample applications, and more. The downloadable platform +includes no external libraries.

      + +

      To get started developing or testing against the Android +{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to +download the platform into your Android 1.6 or later SDK. For more information, +see Adding SDK +Components.

      + + +

      Platform Highlights

      + +

      For a list of new user features and platform highlights, see the Android +2.0 Platform Highlights document.

      + +

      Built-in Applications

      + +

      The system image included in the downloadable platform provides these +built-in applications:

      + + + + + + +
      +
        +
      • Alarm Clock
      • +
      • Browser
      • +
      • Calculator
      • +
      • Camcorder
      • +
      • Camera
      • +
      • Contacts
      • +
      • Custom Locale (developer app)
      • +
      • Dev Tools (developer app)
      • +
      • Dialer
      • +
      +
      +
        +
      • Email
      • +
      • Gallery
      • +
      • Gestures Builder
      • +
      • IME for Japanese text input
      • +
      • Messaging
      • +
      • Music
      • +
      • Settings
      • +
      • Spare Parts (developer app)
      • +
      +
      + +

      New with 2.0.1 The Dev Tools app now +includes a "Sync Tester" application to provide quick and easy testing of +third-party sync adapters.

      + +

      Locales

      + +

      The system image included in the downloadable platform provides a variety of +built-in locales. In some cases, region-specific strings are available for the +locales. In other cases, a default version of the language is used. The +languages that are available in the Android {@sdkPlatformVersion} system +image are listed below (with language_country/region locale +descriptor).

      + + + + + + +
      +
        +
      • Chinese, PRC (zh_CN)
      • +
      • Chinese, Taiwan (zh_TW)
      • +
      • Czech (cs_CZ)
      • +
      • Dutch, Netherlands (nl_NL)
      • +
      • Dutch, Belgium (nl_BE)
      • +
      • English, US (en_US)
      • +
      • English, Britain (en_GB)
      • +
      • English, Canada (en_CA)
      • +
      • English, Australia (en_AU)
      • +
      • English, New Zealand (en_NZ)
      • +
      • English, Singapore(en_SG)
      • +
      • French, France (fr_FR)
      • +
      • French, Belgium (fr_BE)
      • +
      +
      +
    10. French, Canada (fr_CA)
    11. +
    12. French, Switzerland (fr_CH)
    13. +
    14. German, Germany (de_DE)
    15. +
    16. German, Austria (de_AT)
    17. +
    18. German, Switzerland (de_CH)
    19. +
    20. German, Liechtenstein (de_LI)
    21. +
    22. Italian, Italy (it_IT)
    23. +
    24. Italian, Switzerland (it_CH)
    25. +
    26. Japanese (ja_JP)
    27. +
    28. Korean (ko_KR)
    29. +
    30. Polish (pl_PL)
    31. +
    32. Russian (ru_RU)
    33. +
    34. Spanish (es_ES)
    35. +
      + +

      Localized UI strings match the locales that are accessible +through Settings.

      + +

      Emulator Skins

      + +

      The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are:

      + +
        +
      • + QVGA (240x320, low density, small screen) +
      • +
      • + WQVGA (240x400, low density, normal screen) +
      • +
      • + FWQVGA (240x432, low density, normal screen) +
      • +
      • + HVGA (320x480, medium density, normal screen) +
      • +
      • + WVGA800 (480x800, high density, normal screen) +
      • +
      • + WVGA854 (480x854 high density, normal screen) +
      • +
      + +

      For more information about how to develop an application that displays and functions properly on all Android-powered devices, see Supporting Multiple Screens.

      + +

      Developer Features

      + +

      The sections below provide information about new developer features offered by the downloadable Android 2.0 platform component.

      + +

      Ant Support

      + +
        +
      • Debug- and release-mode application signing. Release-mode signing includes integrated support for zipalign optimization. For more information, see Signing Your Applications.
      • + +
      • Adds new Ant build system with support for Emma instrumentation projects (code coverage).
      • +
      + +

      Framework API

      + +

      The sections below provide information about changes made to the application +framework API provided by the Android {@sdkPlatformVersion} platform. Note, +however, that Android 2.0.1 is a minor release to Android 2.0, so for more +information about the changes made to in Android 2.0, please refer to the +Android 2.0 version notes.

      + + +

      API level

      + +

      The Android {@sdkPlatformVersion} platform delivers an updated version of the framework +API. The Android {@sdkPlatformVersion} API +is assigned an integer identifier — {@sdkPlatformApiLevel} — that is +stored in the system itself. This identifier, called the "API Level", allows the +system to correctly determine whether an application is compatible with +the system, prior to installing the application.

      + +

      To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to +set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <uses-sdk> +element in your application's manifest.

      + +

      For more information about how to use API Level, see the API Levels document.

      + + +

      API changes summary

      + +

      The following is a summary of changes to the framework APIs.

      + +
        +
      • New {@code quickContactBadgeStyle*} attributes that let +applications apply necessary styles to the {@link +android.widget.QuickContactBadge} widget.
      • + +
      • Remove support for the {@link +android.content.Intent#ACTION_CONFIGURATION_CHANGED} broadcast when declared as +a filter in the manifest. To receive this broadcast, an application must +do so from the application at run-time, with {@link +android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter)}.
      • +
      + +

      Behavior changes

      + +

      The following is a summary of changes that affect the behavior of some +framework APIs but do not add or remove API functionality.

      + +

      Bluetooth

      + +

      Changes to the values returned by {@link +android.bluetooth.BluetoothAdapter#ACTION_REQUEST_ENABLE} and +{@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_DISCOVERABLE}:

      + +
        +
      • {@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_ENABLE} now +returns {@link android.app.Activity#RESULT_OK} if Bluetooth was successfully +enabled and {@link android.app.Activity#RESULT_CANCELED} if the user rejected +the request to enable Bluetooth, rather than 0 and -1 (or -2), +respectively.
      • + +
      • {@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_DISCOVERABLE} +now returns {@link android.app.Activity#RESULT_CANCELED} if the user rejected +the request to enable discoverability or if Bluetooth is not enabled, rather +than -1 and -2, respectively.
      • +
      + +

      Contacts

      + +

      The {@link android.content.Intent#ACTION_INSERT} Intent now returns {@link +android.app.Activity#RESULT_CANCELED} in cases where the contact was not +persisted (for example, if the save was trimmed to a no-op).

      + + +

      Bug fixes

      + +

      The following is a summary of bug fixes that affect some framework APIs.

      + +

      Resources

      + +

      The framework now correctly selects application resources in project +folders that use the API Level qualifier. For example, {@code drawable-v4/} is a +folder of drawable resources for API Level 4 (or higher) devices. This version +matching did not work properly and has been fixed.

      + +

      Contacts

      + +

      The {@link android.content.Intent#ACTION_INSERT} Intent now returns the +appropriate kind of URI when the request is made using the (now +deprecated) {@link android.provider.Contacts} APIs.

      + +

      Other Framework fixes

      + +
        +
      • {@link android.app.Activity#getCallingPackage()} now properly reports the +package name, rather than the process name.
      • +
      + + +

      API differences report

      + +

      For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to +API Level 5, see the API +Differences Report. There are very few API changes in API Level 6, +so you might also be interested in reviewing the API +differences between 4 and 5.

      + diff --git a/docs/html/sdk/android-2.1.jd b/docs/html/sdk/android-2.1.jd new file mode 100644 index 00000000000..7f9141e6a5a --- /dev/null +++ b/docs/html/sdk/android-2.1.jd @@ -0,0 +1,280 @@ +page.title=Android 2.1, Release 1 +sdk.platform.version=2.1 +sdk.platform.apiLevel=7 +sdk.platform.majorMinor=minor +sdk.platform.releaseDate=January 2010 +sdk.platform.deployableDate=January 2010 + +@jd:body + + + +

      +Date: {@sdkPlatformReleaseDate}
      +API Level: {@sdkPlatformApiLevel}

      + +

      Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release +deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}. +This release includes new API +changes and bug fixes. For information on changes, see the Framework API +section.

      + +

      For developers, the Android {@sdkPlatformVersion} platform is available as a +downloadable component for the Android SDK. The downloadable platform includes a +fully compliant Android library and system image, as well as a set of emulator +skins, sample applications, and more. The downloadable platform +includes no external libraries.

      + +

      To get started developing or testing against the Android +{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to +download the platform into your Android SDK. For more information, +see Adding SDK +Components.

      + + +

      Platform Highlights

      + +

      Android {@sdkPlatformVersion} does not add significant user features, see the Android +2.0 Platform Highlights document for the latest user features.

      + +

      Built-in Applications

      + +

      The system image included in the downloadable platform provides these +built-in applications:

      + + + + + + +
      +
        +
      • Alarm Clock
      • +
      • Browser
      • +
      • Calculator
      • +
      • Camcorder
      • +
      • Camera
      • +
      • Contacts
      • +
      • Custom Locale (developer app)
      • +
      • Dev Tools (developer app)
      • +
      • Dialer
      • +
      +
      +
        +
      • Email
      • +
      • Gallery
      • +
      • Gestures Builder
      • +
      • IME for Japanese text input
      • +
      • Messaging
      • +
      • Music
      • +
      • Settings
      • +
      • Spare Parts (developer app)
      • +
      +
      + +

      Locales

      + +

      The system image included in the downloadable platform provides a variety of +built-in locales. In some cases, region-specific strings are available for the +locales. In other cases, a default version of the language is used. The +languages that are available in the Android {@sdkPlatformVersion} system +image are listed below (with language_country/region locale +descriptor).

      + + + + + + +
      +
        +
      • Chinese, PRC (zh_CN)
      • +
      • Chinese, Taiwan (zh_TW)
      • +
      • Czech (cs_CZ)
      • +
      • Dutch, Netherlands (nl_NL)
      • +
      • Dutch, Belgium (nl_BE)
      • +
      • English, US (en_US)
      • +
      • English, Britain (en_GB)
      • +
      • English, Canada (en_CA)
      • +
      • English, Australia (en_AU)
      • +
      • English, New Zealand (en_NZ)
      • +
      • English, Singapore(en_SG)
      • +
      • French, France (fr_FR)
      • +
      • French, Belgium (fr_BE)
      • +
      +
      +
    36. French, Canada (fr_CA)
    37. +
    38. French, Switzerland (fr_CH)
    39. +
    40. German, Germany (de_DE)
    41. +
    42. German, Austria (de_AT)
    43. +
    44. German, Switzerland (de_CH)
    45. +
    46. German, Liechtenstein (de_LI)
    47. +
    48. Italian, Italy (it_IT)
    49. +
    50. Italian, Switzerland (it_CH)
    51. +
    52. Japanese (ja_JP)
    53. +
    54. Korean (ko_KR)
    55. +
    56. Polish (pl_PL)
    57. +
    58. Russian (ru_RU)
    59. +
    60. Spanish (es_ES)
    61. +
      + +

      Localized UI strings match the locales that are accessible +through Settings.

      + +

      Emulator Skins

      + +

      The downloadable platform includes a set of emulator skins that you can use +for modeling your application in different screen sizes and resolutions. The +emulator skins are:

      + +
        +
      • + QVGA (240x320, low density, small screen) +
      • +
      • + WQVGA (240x400, low density, normal screen) +
      • +
      • + FWQVGA (240x432, low density, normal screen) +
      • +
      • + HVGA (320x480, medium density, normal screen) +
      • +
      • + WVGA800 (480x800, high density, normal screen) +
      • +
      • + WVGA854 (480x854 high density, normal screen) +
      • +
      + +

      For more information about how to develop an application that displays +and functions properly on all Android-powered devices, see Supporting Multiple +Screens.

      + +

      Framework API

      + +

      The sections below provide information about changes made to the application +framework API provided by the Android {@sdkPlatformVersion} platform.

      + + +

      API level

      + +

      The Android {@sdkPlatformVersion} platform delivers an updated version of +the framework API. The Android {@sdkPlatformVersion} API +is assigned an integer identifier — +{@sdkPlatformApiLevel} — that is +stored in the system itself. This identifier, called the "API Level", allows the +system to correctly determine whether an application is compatible with +the system, prior to installing the application.

      + +

      To use APIs introduced in Android {@sdkPlatformVersion} in your +application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the +attributes of the <uses-sdk> element in your application's +manifest.

      + +

      For more information about how to use API Level, see the API Levels document.

      + + +

      API changes summary

      + +

      The following is a summary of some notable changes to the framework APIs.

      + +

      Live Wallpapers

      + +

      The following additions provide APIs for you to develop animated wallpapers:

      +
        +
      • New {@link android.service.wallpaper} package.
      • +
      • New {@link android.app.WallpaperInfo} class.
      • +
      • Updated {@link android.app.WallpaperManager}.
      • +
      + +

      Telephony

      + +
        +
      • New {@link android.telephony.SignalStrength} class provides information +about the device's current network signal. This can be acquired from the +new {@link +android.telephony.PhoneStateListener#onSignalStrengthsChanged(SignalStrength)} +callback.
      • + +
      • New {@link +android.telephony.PhoneStateListener#onDataConnectionStateChanged(int,int)} +callback.
      • +
      + +

      Views

      + +
        +
      • New {@link android.view.View} methods {@link android.view.View#isOpaque()} +and {@link android.view.View#onDrawScrollBars(Canvas)}.
      • + +
      • New {@link android.widget.RemoteViews} methods {@link +android.widget.RemoteViews#addView(int,RemoteViews)} and {@link +android.widget.RemoteViews#removeAllViews(int)}.
      • + +
      • New {@link android.view.ViewGroup} methods {@link +android.view.ViewGroup#isChildrenDrawingOrderEnabled()} and {@link +android.view.ViewGroup#setChildrenDrawingOrderEnabled(boolean)}.
      • +
      + +

      WebKit

      + +
        +
      • New {@link android.webkit.WebStorage} methods to manipulate web +storage databases.
      • + +
      • New {@link android.webkit.GeolocationPermissions} methods to +get Geolocation permissions from, and set them on the WebView.
      • + +
      • New {@link android.webkit.WebSettings} methods to manage settings for +app cache, web storage, and zooming based on screen density.
      • + +
      • New {@link android.webkit.WebChromeClient} methods for handling video, +browsing history, custom Views, app cache limits, and more.
      • +
      + + + + + +

      API differences report

      + +

      For a detailed view of all API changes in Android {@sdkPlatformVersion} (API +Level {@sdkPlatformApiLevel}), as compared to API Level 6, see the API +Differences Report.

      + diff --git a/docs/html/sdk/api_diff/3/changes.html b/docs/html/sdk/api_diff/3/changes.html index 9bc67b98771..2500357deeb 100644 --- a/docs/html/sdk/api_diff/3/changes.html +++ b/docs/html/sdk/api_diff/3/changes.html @@ -4,7 +4,7 @@ - + @@ -23,24 +23,23 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </head> -<FRAMESET COLS="242,**" framespacing="1" frameborder="yes" border="1" bordercolor="#e9e9e9"> +<frameset cols="242,**" framespacing="1" frameborder="yes" border="1" bordercolor="#e9e9e9"> <frameset rows="174,**" framespacing="1" frameborder="yes" border="1" bordercolor="#e9e9e9"> - <FRAME SRC="changes/jdiff_topleftframe.html" SCROLLING="no" NAME="topleftframe" frameborder="1"> - <FRAME SRC="changes/alldiffs_index_all.html" SCROLLING="auto" NAME="bottomleftframe" frameborder="1"> - </FRAMESET> - <FRAME SRC="changes/changes-summary.html" SCROLLING="auto" NAME="rightframe" frameborder="1"> -</FRAMESET> -<NOFRAMES> -<H2> + <frame src="changes/jdiff_topleftframe.html" scrolling="no" name="topleftframe" frameborder="1"> + <frame src="changes/alldiffs_index_all.html" scrolling="auto" name="bottomleftframe" frameborder="1"> + </frameset> + <frame src="changes/changes-summary.html" scrolling="auto" name="rightframe" frameborder="1"> +</frameset> +<noframes> +<h2> Frame Alert -</H2> +</h2> -<P> +<p> This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. -<BR> -Link to <A HREF="changes/changes-summary.html" target="_top">Non-frame version.</A> -</NOFRAMES> -</HTML> +<br> +Link to <a href="changes/changes-summary.html" target="_top">Non-frame version.</A> +</noframes> +</html> diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html index 41f78ab79d9..bf2c09f7e34 100644 --- a/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html @@ -22,10 +22,9 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> -<BODY class="gc-documentation"> +<BODY class="gc-documentation" style="padding:12px;"> <a NAME="topheader"></a> <table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;"> <tr> @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;} </td> </tr> </table> -<div id="indexTableCaption"> -<font size="-2"><strong>Bold</strong> indicates New; <strike>Strike</strike> indicates deleted. Plain indicates changed.</font> +<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:.5em;"> +Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font> </div> <!-- Constructor AbsoluteSizeSpan --> <A NAME="A"></A> @@ -487,12 +486,12 @@ body{background-image:url();padding:12px;} (<code>int, String</code>)</A></nobr><br> <!-- Field CREATOR --> <i>CREATOR</i><br> - in  -<nobr><A HREF="android.content.res.AssetFileDescriptor.html#android.content.res.AssetFileDescriptor.CREATOR" class="hiddenlink" target="rightframe">android.content.res.AssetFileDescriptor</A> +<nobr> in  +<A HREF="android.content.res.AssetFileDescriptor.html#android.content.res.AssetFileDescriptor.CREATOR" class="hiddenlink" target="rightframe">android.content.res.AssetFileDescriptor</A> </nobr><br> <!-- Field CREATOR --> - in  -<nobr><A HREF="android.graphics.RectF.html#android.graphics.RectF.CREATOR" class="hiddenlink" target="rightframe">android.graphics.RectF</A> +<nobr> in  +<A HREF="android.graphics.RectF.html#android.graphics.RectF.CREATOR" class="hiddenlink" target="rightframe">android.graphics.RectF</A> </nobr><br> <!-- Field cut --> <nobr><A HREF="android.R.id.html#android.R.id.cut" class="hiddenlink" target="rightframe">cut</A> @@ -660,6 +659,10 @@ body{background-image:url();padding:12px;} (<code>InstrumentationTestCase, View, int, int, int</code>)</A></nobr><br> <!-- Method dragViewToBottom --> <i>dragViewToBottom</i><br> +  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" class="hiddenlink" target="rightframe">type <b> +(<code>InstrumentationTestCase, Activity, View</code>)</b> in android.test.TouchUtils +</A></nobr><br> +<!-- Method dragViewToBottom -->   <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_added(android.test.ActivityInstrumentationTestCase, android.view.View, int)" class="hiddenlink" target="rightframe">type <b> (<code>ActivityInstrumentationTestCase, View, int</code>)</b> in android.test.TouchUtils </A></nobr><br> @@ -897,11 +900,23 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.text.style.ForegroundColorSpan.html#android.text.style.ForegroundColorSpan.ctor_added(android.os.Parcel)" class="hiddenlink" target="rightframe"><b>ForegroundColorSpan</b> (<code>Parcel</code>)</A></nobr> constructor<br> <!-- Method forkAndSpecialize --> -<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe"><b>forkAndSpecialize</b> -(<code>int, int, int[], int, int[][]</code>)</A></nobr><br> +<i>forkAndSpecialize</i><br> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], int, int[][]</code>)</b> in dalvik.system.Zygote +</A></nobr><br> +<!-- Method forkAndSpecialize --> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_added(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], boolean, int[][]</code>)</b> in dalvik.system.Zygote +</A></nobr><br> +<!-- Method forkSystemServer --> +<i>forkSystemServer</i><br> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], int, int[][]</code>)</b> in dalvik.system.Zygote +</A></nobr><br> <!-- Method forkSystemServer --> -<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe"><b>forkSystemServer</b> -(<code>int, int, int[], int, int[][]</code>)</A></nobr><br> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_added(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], boolean, int[][]</code>)</b> in dalvik.system.Zygote +</A></nobr><br> <!-- Field FORMAT_JAPAN --> <nobr><A HREF="android.telephony.PhoneNumberUtils.html#android.telephony.PhoneNumberUtils.FORMAT_JAPAN" class="hiddenlink" target="rightframe">FORMAT_JAPAN</A> </nobr><br> @@ -1391,12 +1406,12 @@ body{background-image:url();padding:12px;} <A HREF="pkg_android.os.html#Handler.Callback" class="hiddenlink" target="rightframe"><b><i>Handler.Callback</i></b></A><br> <!-- Field HAPTIC_FEEDBACK_ENABLED --> <i>HAPTIC_FEEDBACK_ENABLED</i><br> - in  -<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.provider.Settings.System</A> +<nobr> in  +<A HREF="android.provider.Settings.System.html#android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.provider.Settings.System</A> </nobr><br> <!-- Field HAPTIC_FEEDBACK_ENABLED --> - in  -<nobr><A HREF="android.view.View.html#android.view.View.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.view.View</A> +<nobr> in  +<A HREF="android.view.View.html#android.view.View.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.view.View</A> </nobr><br> <!-- Class HapticFeedbackConstants --> <A HREF="pkg_android.view.html#HapticFeedbackConstants" class="hiddenlink" target="rightframe"><b>HapticFeedbackConstants</b></A><br> @@ -1633,9 +1648,62 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.widget.PopupWindow.html#android.widget.PopupWindow.isTouchable_added()" class="hiddenlink" target="rightframe"><b>isTouchable</b> ()</A></nobr><br> <!-- Package java.beans --> -<A NAME="J"></A> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="changes-summary.html#java.beans" class="hiddenlink" target="rightframe"><b>java.beans</b></A><br> <!-- Class JetPlayer --> +<A NAME="J"></A> +<br><font size="+2">J</font>  +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> <A HREF="pkg_android.media.html#JetPlayer" class="hiddenlink" target="rightframe"><b>JetPlayer</b></A><br> <!-- Class JetPlayer.OnJetEventListener --> <A HREF="pkg_android.media.html#JetPlayer.OnJetEventListener" class="hiddenlink" target="rightframe"><b><i>JetPlayer.OnJetEventListener</i></b></A><br> @@ -2108,12 +2176,12 @@ body{background-image:url();padding:12px;} </A></nobr><br> <!-- Field PHONETIC_NAME --> <i>PHONETIC_NAME</i><br> - in  -<nobr><A HREF="android.provider.Contacts.Intents.Insert.html#android.provider.Contacts.Intents.Insert.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.Intents.Insert</A> +<nobr> in  +<A HREF="android.provider.Contacts.Intents.Insert.html#android.provider.Contacts.Intents.Insert.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.Intents.Insert</A> </nobr><br> <!-- Field PHONETIC_NAME --> - in  -<nobr><A HREF="android.provider.Contacts.PeopleColumns.html#android.provider.Contacts.PeopleColumns.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.PeopleColumns</A> +<nobr> in  +<A HREF="android.provider.Contacts.PeopleColumns.html#android.provider.Contacts.PeopleColumns.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.PeopleColumns</A> </nobr><br> <!-- Method playSoundEffect --> <nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.playSoundEffect_added(int, float)" class="hiddenlink" target="rightframe"><b>playSoundEffect</b> @@ -2402,6 +2470,14 @@ body{background-image:url();padding:12px;} (<code>boolean</code>)</A></nobr><br> <!-- Method setButton --> <i>setButton</i><br> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <b> +(<code>int, CharSequence, OnClickListener</code>)</b> in android.app.AlertDialog +</A></nobr><br> +<!-- Method setButton --> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <b> +(<code>int, CharSequence, Message</code>)</b> in android.app.AlertDialog +</A></nobr><br> +<!-- Method setButton -->   <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <b> (<code>CharSequence, OnClickListener</code>)</b> in android.app.AlertDialog </A></nobr><br> @@ -2620,12 +2696,12 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Field sharedUserLabel --> <i>sharedUserLabel</i><br> - in  -<nobr><A HREF="android.R.attr.html#android.R.attr.sharedUserLabel" class="hiddenlink" target="rightframe">android.R.attr</A> +<nobr> in  +<A HREF="android.R.attr.html#android.R.attr.sharedUserLabel" class="hiddenlink" target="rightframe">android.R.attr</A> </nobr><br> <!-- Field sharedUserLabel --> - in  -<nobr><A HREF="android.content.pm.PackageInfo.html#android.content.pm.PackageInfo.sharedUserLabel" class="hiddenlink" target="rightframe">android.content.pm.PackageInfo</A> +<nobr> in  +<A HREF="android.content.pm.PackageInfo.html#android.content.pm.PackageInfo.sharedUserLabel" class="hiddenlink" target="rightframe">android.content.pm.PackageInfo</A> </nobr><br> <!-- Field SHOW_OR_CREATE_CONTACT --> <nobr><A HREF="android.provider.Contacts.Intents.html#android.provider.Contacts.Intents.SHOW_OR_CREATE_CONTACT" class="hiddenlink" target="rightframe">SHOW_OR_CREATE_CONTACT</A> @@ -2682,12 +2758,12 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Field softInputMode --> <i>softInputMode</i><br> - in  -<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.softInputMode" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A> +<nobr> in  +<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.softInputMode" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A> </nobr><br> <!-- Field softInputMode --> - in  -<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.softInputMode" class="hiddenlink" target="rightframe">android.view.WindowManager.LayoutParams</A> +<nobr> in  +<A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.softInputMode" class="hiddenlink" target="rightframe">android.view.WindowManager.LayoutParams</A> </nobr><br> <!-- Method sort --> <nobr><A HREF="android.widget.ArrayAdapter.html#android.widget.ArrayAdapter.sort_added(java.util.Comparator<? super T>)" class="hiddenlink" target="rightframe"><b>sort</b> diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html index 48da98bb877..055d4bfd609 100644 --- a/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html @@ -22,10 +22,9 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> -<BODY class="gc-documentation"> +<BODY class="gc-documentation" style="padding:12px;"> <a NAME="topheader"></a> <table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;"> <tr> @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;} </td> </tr> </table> -<div id="indexTableCaption"> -<font size="-2"><strong>Bold</strong> indicates New; <strike>Strike</strike> indicates deleted. Plain indicates changed.</font> +<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:.5em;"> +Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font> </div> <!-- Class AbsListView --> <A NAME="A"></A> @@ -203,9 +202,6 @@ body{background-image:url();padding:12px;}   <nobr><A HREF="java.util.logging.LogManager.html#java.util.logging.LogManager.addPropertyChangeListener_added(java.beans.PropertyChangeListener)" class="hiddenlink" target="rightframe">type <b> (<code>PropertyChangeListener</code>)</b> in java.util.logging.LogManager </A></nobr><br> -<!-- Method addRequirements --> -<nobr><A HREF="android.test.suitebuilder.TestSuiteBuilder.html#android.test.suitebuilder.TestSuiteBuilder.addRequirements_changed(com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>...)" class="hiddenlink" target="rightframe">addRequirements -(<code>Predicate<TestMethod></code>)</A></nobr><br> <!-- Method addTestProvider --> <nobr><A HREF="android.location.LocationManager.html#android.location.LocationManager.addTestProvider_added(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)" class="hiddenlink" target="rightframe"><b>addTestProvider</b> (<code>String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int</code>)</A></nobr><br> @@ -680,12 +676,12 @@ body{background-image:url();padding:12px;} (<code>int, String</code>)</A></nobr><br> <!-- Field CREATOR --> <i>CREATOR</i><br> - in  -<nobr><A HREF="android.content.res.AssetFileDescriptor.html#android.content.res.AssetFileDescriptor.CREATOR" class="hiddenlink" target="rightframe">android.content.res.AssetFileDescriptor</A> +<nobr> in  +<A HREF="android.content.res.AssetFileDescriptor.html#android.content.res.AssetFileDescriptor.CREATOR" class="hiddenlink" target="rightframe">android.content.res.AssetFileDescriptor</A> </nobr><br> <!-- Field CREATOR --> - in  -<nobr><A HREF="android.graphics.RectF.html#android.graphics.RectF.CREATOR" class="hiddenlink" target="rightframe">android.graphics.RectF</A> +<nobr> in  +<A HREF="android.graphics.RectF.html#android.graphics.RectF.CREATOR" class="hiddenlink" target="rightframe">android.graphics.RectF</A> </nobr><br> <!-- Class Cursor --> <A HREF="android.database.Cursor.html" class="hiddenlink" target="rightframe"><i>Cursor</i></A><br> @@ -697,9 +693,64 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.R.id.html#android.R.id.cut" class="hiddenlink" target="rightframe">cut</A> </nobr><br> <!-- Package dalvik.system --> -<A NAME="D"></A> +<span class="letterIndexHead">D +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#J"><font size="-2">J</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_dalvik.system.html" class="hiddenlink" target="rightframe">dalvik.system</A><br> <!-- Field dark_header --> +<A NAME="D"></A> +<br><font size="+2">D</font>  +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#J"><font size="-2">J</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> <nobr><A HREF="android.R.drawable.html#android.R.drawable.dark_header" class="hiddenlink" target="rightframe">dark_header</A> </nobr><br> <!-- Field DATA_ROAMING --> @@ -716,15 +767,6 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Class DatabaseUtils --> <A HREF="android.database.DatabaseUtils.html" class="hiddenlink" target="rightframe">DatabaseUtils</A><br> -<!-- Class Date --> -<i>Date</i><br> -  <A HREF="java.util.Date.html" class="hiddenlink" target="rightframe">java.util</A><br> -<!-- Constructor Date --> -  <nobr><A HREF="java.util.Date.html#java.util.Date.ctor_changed()" class="hiddenlink" target="rightframe">Date -()</A></nobr> constructor<br> -<!-- Constructor Date --> -  <nobr><A HREF="java.util.Date.html#java.util.Date.ctor_changed(int, int, int, int, int, int)" class="hiddenlink" target="rightframe">Date -(<code>int, int, int, int, int, int</code>)</A></nobr> constructor<br> <!-- Class DateKeyListener --> <A HREF="android.text.method.DateKeyListener.html" class="hiddenlink" target="rightframe">DateKeyListener</A><br> <!-- Class DateTimeKeyListener --> @@ -742,12 +784,12 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Field DEFAULT_SORT_ORDER --> <i>DEFAULT_SORT_ORDER</i><br> - in  -<nobr><A HREF="android.provider.MediaStore.Images.Media.html#android.provider.MediaStore.Images.Media.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Images.Media</A> +<nobr> in  +<A HREF="android.provider.MediaStore.Images.Media.html#android.provider.MediaStore.Images.Media.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Images.Media</A> </nobr><br> <!-- Field DEFAULT_SORT_ORDER --> - in  -<nobr><A HREF="android.provider.MediaStore.Video.html#android.provider.MediaStore.Video.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Video</A> +<nobr> in  +<A HREF="android.provider.MediaStore.Video.html#android.provider.MediaStore.Video.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Video</A> </nobr><br> <!-- Method describeContents --> <i>describeContents</i><br> @@ -916,6 +958,14 @@ body{background-image:url();padding:12px;} </A></nobr><br> <!-- Method dragViewToBottom --> <i>dragViewToBottom</i><br> +  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_removed(android.test.ActivityInstrumentationTestCase, android.view.View, int)" class="hiddenlink" target="rightframe">type <strike> +(<code>ActivityInstrumentationTestCase, View, int</code>)</strike> in android.test.TouchUtils +</A></nobr><br> +<!-- Method dragViewToBottom --> +  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" class="hiddenlink" target="rightframe">type <b> +(<code>InstrumentationTestCase, Activity, View</code>)</b> in android.test.TouchUtils +</A></nobr><br> +<!-- Method dragViewToBottom -->   <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_added(android.test.ActivityInstrumentationTestCase, android.view.View, int)" class="hiddenlink" target="rightframe">type <b> (<code>ActivityInstrumentationTestCase, View, int</code>)</b> in android.test.TouchUtils </A></nobr><br> @@ -927,10 +977,6 @@ body{background-image:url();padding:12px;}   <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_changed(android.test.ActivityInstrumentationTestCase, android.view.View)" class="hiddenlink" target="rightframe">type  (<code>ActivityInstrumentationTestCase, View</code>) in android.test.TouchUtils </A></nobr><br> -<!-- Method dragViewToBottom --> -  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_changed(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" class="hiddenlink" target="rightframe">type  -(<code>InstrumentationTestCase, Activity, View</code>) in android.test.TouchUtils -</A></nobr><br> <!-- Method dragViewToTop --> <i>dragViewToTop</i><br>   <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToTop_added(android.test.InstrumentationTestCase, android.view.View)" class="hiddenlink" target="rightframe">type <b> @@ -1200,21 +1246,29 @@ body{background-image:url();padding:12px;} (<code>Parcel</code>)</A></nobr> constructor<br> <!-- Method forkAndSpecialize --> <i>forkAndSpecialize</i><br> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_removed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <strike> +(<code>int, int, int[], boolean, int[][]</code>)</strike> in dalvik.system.Zygote +</A></nobr><br> +<!-- Method forkAndSpecialize -->   <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe">type <b> (<code>int, int, int[], int, int[][]</code>)</b> in dalvik.system.Zygote </A></nobr><br> <!-- Method forkAndSpecialize --> -  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_changed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type  -(<code>int, int, int[], boolean, int[][]</code>) in dalvik.system.Zygote +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_added(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], boolean, int[][]</code>)</b> in dalvik.system.Zygote </A></nobr><br> <!-- Method forkSystemServer --> <i>forkSystemServer</i><br> +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_removed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <strike> +(<code>int, int, int[], boolean, int[][]</code>)</strike> in dalvik.system.Zygote +</A></nobr><br> +<!-- Method forkSystemServer -->   <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_added(int, int, int[], int, int[][])" class="hiddenlink" target="rightframe">type <b> (<code>int, int, int[], int, int[][]</code>)</b> in dalvik.system.Zygote </A></nobr><br> <!-- Method forkSystemServer --> -  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_changed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type  -(<code>int, int, int[], boolean, int[][]</code>) in dalvik.system.Zygote +  <nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_added(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">type <b> +(<code>int, int, int[], boolean, int[][]</code>)</b> in dalvik.system.Zygote </A></nobr><br> <!-- Field FORMAT_JAPAN --> <nobr><A HREF="android.telephony.PhoneNumberUtils.html#android.telephony.PhoneNumberUtils.FORMAT_JAPAN" class="hiddenlink" target="rightframe">FORMAT_JAPAN</A> @@ -1564,9 +1618,6 @@ body{background-image:url();padding:12px;} <!-- Method getPrivateImeOptions --> <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getPrivateImeOptions_added()" class="hiddenlink" target="rightframe"><b>getPrivateImeOptions</b> ()</A></nobr><br> -<!-- Method getProxyClass --> -<nobr><A HREF="java.lang.reflect.Proxy.html#java.lang.reflect.Proxy.getProxyClass_changed(java.lang.ClassLoader, java.lang.Class<?>...)" class="hiddenlink" target="rightframe">getProxyClass -(<code>ClassLoader, Class<?></code>)</A></nobr><br> <!-- Method getRotationMatrix --> <nobr><A HREF="android.hardware.SensorManager.html#android.hardware.SensorManager.getRotationMatrix_added(float[], float[], float[], float[])" class="hiddenlink" target="rightframe"><b>getRotationMatrix</b> (<code>float[], float[], float[], float[]</code>)</A></nobr><br> @@ -1810,12 +1861,12 @@ body{background-image:url();padding:12px;} <A HREF="pkg_android.os.html#Handler.Callback" class="hiddenlink" target="rightframe"><b><i>Handler.Callback</i></b></A><br> <!-- Field HAPTIC_FEEDBACK_ENABLED --> <i>HAPTIC_FEEDBACK_ENABLED</i><br> - in  -<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.provider.Settings.System</A> +<nobr> in  +<A HREF="android.provider.Settings.System.html#android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.provider.Settings.System</A> </nobr><br> <!-- Field HAPTIC_FEEDBACK_ENABLED --> - in  -<nobr><A HREF="android.view.View.html#android.view.View.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.view.View</A> +<nobr> in  +<A HREF="android.view.View.html#android.view.View.HAPTIC_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">android.view.View</A> </nobr><br> <!-- Class HapticFeedbackConstants --> <A HREF="pkg_android.view.html#HapticFeedbackConstants" class="hiddenlink" target="rightframe"><b>HapticFeedbackConstants</b></A><br> @@ -2075,21 +2126,154 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.widget.PopupWindow.html#android.widget.PopupWindow.isTouchable_added()" class="hiddenlink" target="rightframe"><b>isTouchable</b> ()</A></nobr><br> <!-- Package java.beans --> -<A NAME="J"></A> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="changes-summary.html#java.beans" class="hiddenlink" target="rightframe"><b>java.beans</b></A><br> <!-- Package java.lang --> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.lang.html" class="hiddenlink" target="rightframe">java.lang</A><br> -<!-- Package java.lang.reflect --> -<A HREF="pkg_java.lang.reflect.html" class="hiddenlink" target="rightframe">java.lang.reflect</A><br> -<!-- Package java.net --> -<A HREF="pkg_java.net.html" class="hiddenlink" target="rightframe">java.net</A><br> -<!-- Package java.util --> -<A HREF="pkg_java.util.html" class="hiddenlink" target="rightframe">java.util</A><br> <!-- Package java.util.jar --> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.util.jar.html" class="hiddenlink" target="rightframe">java.util.jar</A><br> <!-- Package java.util.logging --> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.util.logging.html" class="hiddenlink" target="rightframe">java.util.logging</A><br> <!-- Class JetPlayer --> +<A NAME="J"></A> +<br><font size="+2">J</font>  +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> <A HREF="pkg_android.media.html#JetPlayer" class="hiddenlink" target="rightframe"><b>JetPlayer</b></A><br> <!-- Class JetPlayer.OnJetEventListener --> <A HREF="pkg_android.media.html#JetPlayer.OnJetEventListener" class="hiddenlink" target="rightframe"><b><i>JetPlayer.OnJetEventListener</i></b></A><br> @@ -2704,12 +2888,12 @@ body{background-image:url();padding:12px;} <A HREF="android.telephony.PhoneNumberUtils.html" class="hiddenlink" target="rightframe">PhoneNumberUtils</A><br> <!-- Field PHONETIC_NAME --> <i>PHONETIC_NAME</i><br> - in  -<nobr><A HREF="android.provider.Contacts.Intents.Insert.html#android.provider.Contacts.Intents.Insert.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.Intents.Insert</A> +<nobr> in  +<A HREF="android.provider.Contacts.Intents.Insert.html#android.provider.Contacts.Intents.Insert.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.Intents.Insert</A> </nobr><br> <!-- Field PHONETIC_NAME --> - in  -<nobr><A HREF="android.provider.Contacts.PeopleColumns.html#android.provider.Contacts.PeopleColumns.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.PeopleColumns</A> +<nobr> in  +<A HREF="android.provider.Contacts.PeopleColumns.html#android.provider.Contacts.PeopleColumns.PHONETIC_NAME" class="hiddenlink" target="rightframe">android.provider.Contacts.PeopleColumns</A> </nobr><br> <!-- Method playSoundEffect --> <i>playSoundEffect</i><br> @@ -2749,8 +2933,6 @@ body{background-image:url();padding:12px;} <A HREF="android.test.ProviderTestCase.html" class="hiddenlink" target="rightframe">ProviderTestCase</A><br> <!-- Class ProviderTestCase2 --> <A HREF="pkg_android.test.html#ProviderTestCase2" class="hiddenlink" target="rightframe"><b>ProviderTestCase2</b></A><br> -<!-- Class Proxy --> -<A HREF="java.lang.reflect.Proxy.html" class="hiddenlink" target="rightframe">Proxy</A><br> <!-- Method putLong --> <nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.putLong_added(android.content.ContentResolver, java.lang.String, long)" class="hiddenlink" target="rightframe"><b>putLong</b> (<code>ContentResolver, String, long</code>)</A></nobr><br> @@ -3151,20 +3333,28 @@ body{background-image:url();padding:12px;} (<code>boolean</code>)</A></nobr><br> <!-- Method setButton --> <i>setButton</i><br> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <b> -(<code>CharSequence, OnClickListener</code>)</b> in android.app.AlertDialog +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <strike> +(<code>CharSequence, OnClickListener</code>)</strike> in android.app.AlertDialog </A></nobr><br> <!-- Method setButton --> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <b> -(<code>CharSequence, Message</code>)</b> in android.app.AlertDialog +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <strike> +(<code>CharSequence, Message</code>)</strike> in android.app.AlertDialog </A></nobr><br> <!-- Method setButton --> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type  -(<code>int, CharSequence, OnClickListener</code>) in android.app.AlertDialog +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <b> +(<code>int, CharSequence, OnClickListener</code>)</b> in android.app.AlertDialog </A></nobr><br> <!-- Method setButton --> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type  -(<code>int, CharSequence, Message</code>) in android.app.AlertDialog +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <b> +(<code>int, CharSequence, Message</code>)</b> in android.app.AlertDialog +</A></nobr><br> +<!-- Method setButton --> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <b> +(<code>CharSequence, OnClickListener</code>)</b> in android.app.AlertDialog +</A></nobr><br> +<!-- Method setButton --> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <b> +(<code>CharSequence, Message</code>)</b> in android.app.AlertDialog </A></nobr><br> <!-- Method setButton2 --> <i>setButton2</i><br> @@ -3410,12 +3600,12 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Field sharedUserLabel --> <i>sharedUserLabel</i><br> - in  -<nobr><A HREF="android.R.attr.html#android.R.attr.sharedUserLabel" class="hiddenlink" target="rightframe">android.R.attr</A> +<nobr> in  +<A HREF="android.R.attr.html#android.R.attr.sharedUserLabel" class="hiddenlink" target="rightframe">android.R.attr</A> </nobr><br> <!-- Field sharedUserLabel --> - in  -<nobr><A HREF="android.content.pm.PackageInfo.html#android.content.pm.PackageInfo.sharedUserLabel" class="hiddenlink" target="rightframe">android.content.pm.PackageInfo</A> +<nobr> in  +<A HREF="android.content.pm.PackageInfo.html#android.content.pm.PackageInfo.sharedUserLabel" class="hiddenlink" target="rightframe">android.content.pm.PackageInfo</A> </nobr><br> <!-- Field SHOW_OR_CREATE_CONTACT --> <nobr><A HREF="android.provider.Contacts.Intents.html#android.provider.Contacts.Intents.SHOW_OR_CREATE_CONTACT" class="hiddenlink" target="rightframe">SHOW_OR_CREATE_CONTACT</A> @@ -3438,24 +3628,6 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Class SmsMessage --> <A HREF="android.telephony.gsm.SmsMessage.html" class="hiddenlink" target="rightframe">SmsMessage</A><br> -<!-- Class Socket --> -<i>Socket</i><br> -  <A HREF="java.net.Socket.html" class="hiddenlink" target="rightframe">java.net</A><br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed()" class="hiddenlink" target="rightframe">Socket -()</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.lang.String, int)" class="hiddenlink" target="rightframe">Socket -(<code>String, int</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.lang.String, int, java.net.InetAddress, int)" class="hiddenlink" target="rightframe">Socket -(<code>String, int, InetAddress, int</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.net.Proxy)" class="hiddenlink" target="rightframe">Socket -(<code>Proxy</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.net.SocketImpl)" class="hiddenlink" target="rightframe">Socket -(<code>SocketImpl</code>)</A></nobr> constructor<br> <!-- Field SOFT_INPUT_ADJUST_PAN --> <nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN" class="hiddenlink" target="rightframe">SOFT_INPUT_ADJUST_PAN</A> </nobr><br> @@ -3497,12 +3669,12 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Field softInputMode --> <i>softInputMode</i><br> - in  -<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.softInputMode" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A> +<nobr> in  +<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.softInputMode" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A> </nobr><br> <!-- Field softInputMode --> - in  -<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.softInputMode" class="hiddenlink" target="rightframe">android.view.WindowManager.LayoutParams</A> +<nobr> in  +<A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.softInputMode" class="hiddenlink" target="rightframe">android.view.WindowManager.LayoutParams</A> </nobr><br> <!-- Method sort --> <nobr><A HREF="android.widget.ArrayAdapter.html#android.widget.ArrayAdapter.sort_added(java.util.Comparator<? super T>)" class="hiddenlink" target="rightframe"><b>sort</b> @@ -3547,24 +3719,6 @@ body{background-image:url();padding:12px;} <!-- Constructor StrikethroughSpan -->   <nobr><A HREF="android.text.style.StrikethroughSpan.html#android.text.style.StrikethroughSpan.ctor_added(android.os.Parcel)" class="hiddenlink" target="rightframe"><b>StrikethroughSpan</b> (<code>Parcel</code>)</A></nobr> constructor<br> -<!-- Class String --> -<i>String</i><br> -  <A HREF="java.lang.String.html" class="hiddenlink" target="rightframe">java.lang</A><br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed()" class="hiddenlink" target="rightframe">String -()</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[])" class="hiddenlink" target="rightframe">String -(<code>byte[]</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int, int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int, int</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int, int, int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int, int, int</code>)</A></nobr> constructor<br> <!-- Class StyleSpan --> <i>StyleSpan</i><br>   <A HREF="android.text.style.StyleSpan.html" class="hiddenlink" target="rightframe">android.text.style</A><br> @@ -3637,8 +3791,6 @@ body{background-image:url();padding:12px;} <!-- Constructor TestMethod -->   <nobr><A HREF="android.test.suitebuilder.TestMethod.html#android.test.suitebuilder.TestMethod.ctor_added(junit.framework.TestCase)" class="hiddenlink" target="rightframe"><b>TestMethod</b> (<code>TestCase</code>)</A></nobr> constructor<br> -<!-- Class TestSuiteBuilder --> -<A HREF="android.test.suitebuilder.TestSuiteBuilder.html" class="hiddenlink" target="rightframe">TestSuiteBuilder</A><br> <!-- Class TextAppearanceSpan --> <i>TextAppearanceSpan</i><br>   <A HREF="android.text.style.TextAppearanceSpan.html" class="hiddenlink" target="rightframe">android.text.style</A><br> diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html index b35bdb35ce4..df82cd4f52b 100644 --- a/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html @@ -22,10 +22,9 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> -<BODY class="gc-documentation"> +<BODY class="gc-documentation" style="padding:12px;"> <a NAME="topheader"></a> <table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;"> <tr> @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;} </td> </tr> </table> -<div id="indexTableCaption"> -<font size="-2"><strong>Bold</strong> indicates New; <strike>Strike</strike> indicates deleted. Plain indicates changed.</font> +<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:.5em;"> +Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font> </div> <!-- Class AbsListView --> <A NAME="A"></A> @@ -95,9 +94,6 @@ body{background-image:url();padding:12px;} <!-- Field ADB_ENABLED --> <nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ADB_ENABLED" class="hiddenlink" target="rightframe">ADB_ENABLED</A> </nobr><br> -<!-- Method addRequirements --> -<nobr><A HREF="android.test.suitebuilder.TestSuiteBuilder.html#android.test.suitebuilder.TestSuiteBuilder.addRequirements_changed(com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>...)" class="hiddenlink" target="rightframe">addRequirements -(<code>Predicate<TestMethod></code>)</A></nobr><br> <!-- Class AlarmManager --> <A HREF="android.app.AlarmManager.html" class="hiddenlink" target="rightframe">AlarmManager</A><br> <!-- Class AlertDialog --> @@ -321,9 +317,64 @@ body{background-image:url();padding:12px;} <!-- Class CursorWrapper --> <A HREF="android.database.CursorWrapper.html" class="hiddenlink" target="rightframe">CursorWrapper</A><br> <!-- Package dalvik.system --> -<A NAME="D"></A> +<span class="letterIndexHead">D +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#J"><font size="-2">J</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_dalvik.system.html" class="hiddenlink" target="rightframe">dalvik.system</A><br> <!-- Field DATA_ROAMING --> +<A NAME="D"></A> +<br><font size="+2">D</font>  +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#J"><font size="-2">J</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> <nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DATA_ROAMING" class="hiddenlink" target="rightframe">DATA_ROAMING</A> </nobr><br> <!-- Field DATA_X --> @@ -337,15 +388,6 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Class DatabaseUtils --> <A HREF="android.database.DatabaseUtils.html" class="hiddenlink" target="rightframe">DatabaseUtils</A><br> -<!-- Class Date --> -<i>Date</i><br> -  <A HREF="java.util.Date.html" class="hiddenlink" target="rightframe">java.util</A><br> -<!-- Constructor Date --> -  <nobr><A HREF="java.util.Date.html#java.util.Date.ctor_changed()" class="hiddenlink" target="rightframe">Date -()</A></nobr> constructor<br> -<!-- Constructor Date --> -  <nobr><A HREF="java.util.Date.html#java.util.Date.ctor_changed(int, int, int, int, int, int)" class="hiddenlink" target="rightframe">Date -(<code>int, int, int, int, int, int</code>)</A></nobr> constructor<br> <!-- Class DateKeyListener --> <A HREF="android.text.method.DateKeyListener.html" class="hiddenlink" target="rightframe">DateKeyListener</A><br> <!-- Class DateTimeKeyListener --> @@ -354,12 +396,12 @@ body{background-image:url();padding:12px;} <A HREF="android.os.Debug.html" class="hiddenlink" target="rightframe">Debug</A><br> <!-- Field DEFAULT_SORT_ORDER --> <i>DEFAULT_SORT_ORDER</i><br> - in  -<nobr><A HREF="android.provider.MediaStore.Images.Media.html#android.provider.MediaStore.Images.Media.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Images.Media</A> +<nobr> in  +<A HREF="android.provider.MediaStore.Images.Media.html#android.provider.MediaStore.Images.Media.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Images.Media</A> </nobr><br> <!-- Field DEFAULT_SORT_ORDER --> - in  -<nobr><A HREF="android.provider.MediaStore.Video.html#android.provider.MediaStore.Video.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Video</A> +<nobr> in  +<A HREF="android.provider.MediaStore.Video.html#android.provider.MediaStore.Video.DEFAULT_SORT_ORDER" class="hiddenlink" target="rightframe">android.provider.MediaStore.Video</A> </nobr><br> <!-- Field DEVICE_PROVISIONED --> <nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DEVICE_PROVISIONED" class="hiddenlink" target="rightframe">DEVICE_PROVISIONED</A> @@ -390,14 +432,8 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewTo_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)" class="hiddenlink" target="rightframe">dragViewTo (<code>ActivityInstrumentationTestCase, View, int, int, int</code>)</A></nobr><br> <!-- Method dragViewToBottom --> -<i>dragViewToBottom</i><br> -  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_changed(android.test.ActivityInstrumentationTestCase, android.view.View)" class="hiddenlink" target="rightframe">type  -(<code>ActivityInstrumentationTestCase, View</code>) in android.test.TouchUtils -</A></nobr><br> -<!-- Method dragViewToBottom --> -  <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_changed(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" class="hiddenlink" target="rightframe">type  -(<code>InstrumentationTestCase, Activity, View</code>) in android.test.TouchUtils -</A></nobr><br> +<nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_changed(android.test.ActivityInstrumentationTestCase, android.view.View)" class="hiddenlink" target="rightframe">dragViewToBottom +(<code>ActivityInstrumentationTestCase, View</code>)</A></nobr><br> <!-- Method dragViewToTop --> <i>dragViewToTop</i><br>   <nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToTop_changed(android.test.ActivityInstrumentationTestCase, android.view.View)" class="hiddenlink" target="rightframe">type  @@ -483,12 +519,6 @@ body{background-image:url();padding:12px;} <a href="#topheader"><font size="-2">TOP</font></a> <p><div style="line-height:1.5em;color:black"> <A HREF="android.text.style.ForegroundColorSpan.html" class="hiddenlink" target="rightframe">ForegroundColorSpan</A><br> -<!-- Method forkAndSpecialize --> -<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_changed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">forkAndSpecialize -(<code>int, int, int[], boolean, int[][]</code>)</A></nobr><br> -<!-- Method forkSystemServer --> -<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_changed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe">forkSystemServer -(<code>int, int, int[], boolean, int[][]</code>)</A></nobr><br> <!-- Method forName --> <nobr><A HREF="java.lang.Character.UnicodeBlock.html#java.lang.Character.UnicodeBlock.forName_changed(java.lang.String)" class="hiddenlink" target="rightframe">forName (<code>String</code>)</A></nobr><br> @@ -585,9 +615,6 @@ body{background-image:url();padding:12px;} <!-- Method getMinimumFlingVelocity --> <nobr><A HREF="android.view.ViewConfiguration.html#android.view.ViewConfiguration.getMinimumFlingVelocity_changed()" class="hiddenlink" target="rightframe">getMinimumFlingVelocity ()</A></nobr><br> -<!-- Method getProxyClass --> -<nobr><A HREF="java.lang.reflect.Proxy.html#java.lang.reflect.Proxy.getProxyClass_changed(java.lang.ClassLoader, java.lang.Class<?>...)" class="hiddenlink" target="rightframe">getProxyClass -(<code>ClassLoader, Class<?></code>)</A></nobr><br> <!-- Method getScrollBarSize --> <nobr><A HREF="android.view.ViewConfiguration.html#android.view.ViewConfiguration.getScrollBarSize_changed()" class="hiddenlink" target="rightframe">getScrollBarSize ()</A></nobr><br> @@ -697,17 +724,94 @@ body{background-image:url();padding:12px;} <nobr><A HREF="android.webkit.URLUtil.html#android.webkit.URLUtil.isCookielessProxyUrl_changed(java.lang.String)" class="hiddenlink" target="rightframe">isCookielessProxyUrl (<code>String</code>)</A></nobr><br> <!-- Package java.lang --> -<A NAME="J"></A> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.lang.html" class="hiddenlink" target="rightframe">java.lang</A><br> -<!-- Package java.lang.reflect --> -<A HREF="pkg_java.lang.reflect.html" class="hiddenlink" target="rightframe">java.lang.reflect</A><br> -<!-- Package java.net --> -<A HREF="pkg_java.net.html" class="hiddenlink" target="rightframe">java.net</A><br> -<!-- Package java.util --> -<A HREF="pkg_java.util.html" class="hiddenlink" target="rightframe">java.util</A><br> <!-- Package java.util.jar --> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.util.jar.html" class="hiddenlink" target="rightframe">java.util.jar</A><br> <!-- Package java.util.logging --> +<span class="letterIndexHead">J +<a href="#A"><font size="-2">A</font></a> +<a href="#B"><font size="-2">B</font></a> +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#E"><font size="-2">E</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#G"><font size="-2">G</font></a> +<a href="#H"><font size="-2">H</font></a> +<a href="#I"><font size="-2">I</font></a> +<a href="#K"><font size="-2">K</font></a> +<a href="#L"><font size="-2">L</font></a> +<a href="#M"><font size="-2">M</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#O"><font size="-2">O</font></a> +<a href="#P"><font size="-2">P</font></a> +<a href="#Q"><font size="-2">Q</font></a> +<a href="#R"><font size="-2">R</font></a> +<a href="#S"><font size="-2">S</font></a> +<a href="#T"><font size="-2">T</font></a> +<a href="#U"><font size="-2">U</font></a> +<a href="#V"><font size="-2">V</font></a> +<a href="#W"><font size="-2">W</font></a> +<a href="#Y"><font size="-2">Y</font></a> +<a href="#Z"><font size="-2">Z</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +</span> <A HREF="pkg_java.util.logging.html" class="hiddenlink" target="rightframe">java.util.logging</A><br> <!-- Class KeyCharacterMap --> <A NAME="K"></A> @@ -1018,8 +1122,6 @@ body{background-image:url();padding:12px;} <A HREF="android.widget.ProgressBar.html" class="hiddenlink" target="rightframe">ProgressBar</A><br> <!-- Class ProviderTestCase --> <A HREF="android.test.ProviderTestCase.html" class="hiddenlink" target="rightframe">ProviderTestCase</A><br> -<!-- Class Proxy --> -<A HREF="java.lang.reflect.Proxy.html" class="hiddenlink" target="rightframe">Proxy</A><br> <!-- Class QuoteSpan --> <A NAME="Q"></A> <br><font size="+2">Q</font>  @@ -1225,15 +1327,6 @@ body{background-image:url();padding:12px;} <!-- Method service --> <nobr><A HREF="android.webkit.UrlInterceptHandler.html#android.webkit.UrlInterceptHandler.service_changed(java.lang.String, java.util.Map<java.lang.String, java.lang.String>)" class="hiddenlink" target="rightframe">service (<code>String, Map<String, String></code>)</A></nobr><br> -<!-- Method setButton --> -<i>setButton</i><br> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type  -(<code>int, CharSequence, OnClickListener</code>) in android.app.AlertDialog -</A></nobr><br> -<!-- Method setButton --> -  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type  -(<code>int, CharSequence, Message</code>) in android.app.AlertDialog -</A></nobr><br> <!-- Method setButton2 --> <i>setButton2</i><br>   <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton2_changed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type  @@ -1274,24 +1367,6 @@ body{background-image:url();padding:12px;} </nobr><br> <!-- Class SmsMessage --> <A HREF="android.telephony.gsm.SmsMessage.html" class="hiddenlink" target="rightframe">SmsMessage</A><br> -<!-- Class Socket --> -<i>Socket</i><br> -  <A HREF="java.net.Socket.html" class="hiddenlink" target="rightframe">java.net</A><br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed()" class="hiddenlink" target="rightframe">Socket -()</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.lang.String, int)" class="hiddenlink" target="rightframe">Socket -(<code>String, int</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.lang.String, int, java.net.InetAddress, int)" class="hiddenlink" target="rightframe">Socket -(<code>String, int, InetAddress, int</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.net.Proxy)" class="hiddenlink" target="rightframe">Socket -(<code>Proxy</code>)</A></nobr> constructor<br> -<!-- Constructor Socket --> -  <nobr><A HREF="java.net.Socket.html#java.net.Socket.ctor_changed(java.net.SocketImpl)" class="hiddenlink" target="rightframe">Socket -(<code>SocketImpl</code>)</A></nobr> constructor<br> <!-- Class SoundPool --> <A HREF="android.media.SoundPool.html" class="hiddenlink" target="rightframe">SoundPool</A><br> <!-- Class Spanned --> @@ -1304,24 +1379,6 @@ body{background-image:url();padding:12px;} <A HREF="android.database.sqlite.SQLiteDatabase.html" class="hiddenlink" target="rightframe">SQLiteDatabase</A><br> <!-- Class StrikethroughSpan --> <A HREF="android.text.style.StrikethroughSpan.html" class="hiddenlink" target="rightframe">StrikethroughSpan</A><br> -<!-- Class String --> -<i>String</i><br> -  <A HREF="java.lang.String.html" class="hiddenlink" target="rightframe">java.lang</A><br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed()" class="hiddenlink" target="rightframe">String -()</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[])" class="hiddenlink" target="rightframe">String -(<code>byte[]</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int, int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int, int</code>)</A></nobr> constructor<br> -<!-- Constructor String --> -  <nobr><A HREF="java.lang.String.html#java.lang.String.ctor_changed(byte[], int, int, int)" class="hiddenlink" target="rightframe">String -(<code>byte[], int, int, int</code>)</A></nobr> constructor<br> <!-- Class StyleSpan --> <A HREF="android.text.style.StyleSpan.html" class="hiddenlink" target="rightframe">StyleSpan</A><br> <!-- Class SubscriptSpan --> @@ -1360,8 +1417,6 @@ body{background-image:url();padding:12px;} <A HREF="android.telephony.TelephonyManager.html" class="hiddenlink" target="rightframe">TelephonyManager</A><br> <!-- Class TestMethod --> <A HREF="android.test.suitebuilder.TestMethod.html" class="hiddenlink" target="rightframe">TestMethod</A><br> -<!-- Class TestSuiteBuilder --> -<A HREF="android.test.suitebuilder.TestSuiteBuilder.html" class="hiddenlink" target="rightframe">TestSuiteBuilder</A><br> <!-- Class TextAppearanceSpan --> <A HREF="android.text.style.TextAppearanceSpan.html" class="hiddenlink" target="rightframe">TextAppearanceSpan</A><br> <!-- Class TextKeyListener --> diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html index 662b26690d2..0f55f31f46b 100644 --- a/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html @@ -22,10 +22,9 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> -<BODY class="gc-documentation"> +<BODY class="gc-documentation" style="padding:12px;"> <a NAME="topheader"></a> <table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;"> <tr> @@ -45,25 +44,73 @@ body{background-image:url();padding:12px;} </td> </tr> </table> -<div id="indexTableCaption"> -<font size="-2"><strong>Bold</strong> indicates New; <strike>Strike</strike> indicates deleted. Plain indicates changed.</font> +<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:.5em;"> +Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font> </div> <!-- Field CATEGORY_GADGET --> <A NAME="C"></A> <br><font size="+2">C</font>  +<a href="#D"><font size="-2">D</font></a> +<a href="#F"><font size="-2">F</font></a> <a href="#N"><font size="-2">N</font></a> +<a href="#S"><font size="-2">S</font></a> <a href="#topheader"><font size="-2">TOP</font></a> <p><div style="line-height:1.5em;color:black"> <nobr><A HREF="android.content.Intent.html#android.content.Intent.CATEGORY_GADGET" class="hiddenlink" target="rightframe"><strike>CATEGORY_GADGET</strike></A> </nobr><br> +<!-- Method dragViewToBottom --> +<A NAME="D"></A> +<br><font size="+2">D</font>  +<a href="#C"><font size="-2">C</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#S"><font size="-2">S</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +<nobr><A HREF="android.test.TouchUtils.html#android.test.TouchUtils.dragViewToBottom_removed(android.test.ActivityInstrumentationTestCase, android.view.View, int)" class="hiddenlink" target="rightframe"><strike>dragViewToBottom</strike> +(<code>ActivityInstrumentationTestCase, View, int</code>)</A></nobr><br> +<!-- Method forkAndSpecialize --> +<A NAME="F"></A> +<br><font size="+2">F</font>  +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#N"><font size="-2">N</font></a> +<a href="#S"><font size="-2">S</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkAndSpecialize_removed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe"><strike>forkAndSpecialize</strike> +(<code>int, int, int[], boolean, int[][]</code>)</A></nobr><br> +<!-- Method forkSystemServer --> +<nobr><A HREF="dalvik.system.Zygote.html#dalvik.system.Zygote.forkSystemServer_removed(int, int, int[], boolean, int[][])" class="hiddenlink" target="rightframe"><strike>forkSystemServer</strike> +(<code>int, int, int[], boolean, int[][]</code>)</A></nobr><br> <!-- Constructor NetworkInfo --> <A NAME="N"></A> <br><font size="+2">N</font>  <a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#S"><font size="-2">S</font></a> <a href="#topheader"><font size="-2">TOP</font></a> <p><div style="line-height:1.5em;color:black"> <nobr><A HREF="android.net.NetworkInfo.html#android.net.NetworkInfo.ctor_removed(int)" class="hiddenlink" target="rightframe"><strike>NetworkInfo</strike> (<code>int</code>)</A></nobr> constructor<br> +<!-- Method setButton --> +<A NAME="S"></A> +<br><font size="+2">S</font>  +<a href="#C"><font size="-2">C</font></a> +<a href="#D"><font size="-2">D</font></a> +<a href="#F"><font size="-2">F</font></a> +<a href="#N"><font size="-2">N</font></a> + <a href="#topheader"><font size="-2">TOP</font></a> +<p><div style="line-height:1.5em;color:black"> +<i>setButton</i><br> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" class="hiddenlink" target="rightframe">type <strike> +(<code>CharSequence, OnClickListener</code>)</strike> in android.app.AlertDialog +</A></nobr><br> +<!-- Method setButton --> +  <nobr><A HREF="android.app.AlertDialog.html#android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.os.Message)" class="hiddenlink" target="rightframe">type <strike> +(<code>CharSequence, Message</code>)</strike> in android.app.AlertDialog +</A></nobr><br> <script src="http://www.google-analytics.com/ga.js" type="text/javascript"> </script> <script type="text/javascript"> diff --git a/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html b/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html index 76591022179..fd78ed82806 100644 --- a/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html +++ b/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/Manifest.permission.html" target="_top"><font size="+3"><tt>Manifest.permission</tt></font></A> +Class android.<A HREF="../../../../reference/android/Manifest.permission.html" target="_top"><font size="+2"><code>Manifest.permission</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,35 +85,35 @@ Class android.<A HREF="../../../../reference/android/Manifest.permission.html" t <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.Manifest.permission.BIND_APPWIDGET"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#BIND_APPWIDGET" target="_top"><xfont size="+1"><tt>BIND_APPWIDGET</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#BIND_APPWIDGET" target="_top"><code>BIND_APPWIDGET</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.Manifest.permission.BIND_INPUT_METHOD"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#BIND_INPUT_METHOD" target="_top"><xfont size="+1"><tt>BIND_INPUT_METHOD</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#BIND_INPUT_METHOD" target="_top"><code>BIND_INPUT_METHOD</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.Manifest.permission.MOUNT_FORMAT_FILESYSTEMS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#MOUNT_FORMAT_FILESYSTEMS" target="_top"><xfont size="+1"><tt>MOUNT_FORMAT_FILESYSTEMS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#MOUNT_FORMAT_FILESYSTEMS" target="_top"><code>MOUNT_FORMAT_FILESYSTEMS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.Manifest.permission.UPDATE_DEVICE_STATS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#UPDATE_DEVICE_STATS" target="_top"><xfont size="+1"><tt>UPDATE_DEVICE_STATS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#UPDATE_DEVICE_STATS" target="_top"><code>UPDATE_DEVICE_STATS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.Manifest.permission.WRITE_SECURE_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#WRITE_SECURE_SETTINGS" target="_top"><xfont size="+1"><tt>WRITE_SECURE_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission.html#WRITE_SECURE_SETTINGS" target="_top"><code>WRITE_SECURE_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.R.attr.html b/docs/html/sdk/api_diff/3/changes/android.R.attr.html index 7df16a12132..d35804eb9cf 100644 --- a/docs/html/sdk/api_diff/3/changes/android.R.attr.html +++ b/docs/html/sdk/api_diff/3/changes/android.R.attr.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"><font size="+3"><tt>R.attr</tt></font></A> +Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"><font size="+2"><code>R.attr</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,525 +85,525 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.allowSingleTap"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#allowSingleTap" target="_top"><xfont size="+1"><tt>allowSingleTap</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#allowSingleTap" target="_top"><code>allowSingleTap</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.animateOnClick"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#animateOnClick" target="_top"><xfont size="+1"><tt>animateOnClick</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#animateOnClick" target="_top"><code>animateOnClick</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.backgroundDimEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#backgroundDimEnabled" target="_top"><xfont size="+1"><tt>backgroundDimEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#backgroundDimEnabled" target="_top"><code>backgroundDimEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.bottomOffset"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#bottomOffset" target="_top"><xfont size="+1"><tt>bottomOffset</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#bottomOffset" target="_top"><code>bottomOffset</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.candidatesTextStyleSpans"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#candidatesTextStyleSpans" target="_top"><xfont size="+1"><tt>candidatesTextStyleSpans</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#candidatesTextStyleSpans" target="_top"><code>candidatesTextStyleSpans</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.codes"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#codes" target="_top"><xfont size="+1"><tt>codes</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#codes" target="_top"><code>codes</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.configure"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#configure" target="_top"><xfont size="+1"><tt>configure</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#configure" target="_top"><code>configure</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.content"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#content" target="_top"><xfont size="+1"><tt>content</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#content" target="_top"><code>content</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.dropDownAnchor"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#dropDownAnchor" target="_top"><xfont size="+1"><tt>dropDownAnchor</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#dropDownAnchor" target="_top"><code>dropDownAnchor</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.dropDownWidth"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#dropDownWidth" target="_top"><xfont size="+1"><tt>dropDownWidth</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#dropDownWidth" target="_top"><code>dropDownWidth</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.editorExtras"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#editorExtras" target="_top"><xfont size="+1"><tt>editorExtras</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#editorExtras" target="_top"><code>editorExtras</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.fastScrollEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#fastScrollEnabled" target="_top"><xfont size="+1"><tt>fastScrollEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#fastScrollEnabled" target="_top"><code>fastScrollEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.fillEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#fillEnabled" target="_top"><xfont size="+1"><tt>fillEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#fillEnabled" target="_top"><code>fillEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.footerDividersEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#footerDividersEnabled" target="_top"><xfont size="+1"><tt>footerDividersEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#footerDividersEnabled" target="_top"><code>footerDividersEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.handle"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#handle" target="_top"><xfont size="+1"><tt>handle</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#handle" target="_top"><code>handle</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.hapticFeedbackEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#hapticFeedbackEnabled" target="_top"><xfont size="+1"><tt>hapticFeedbackEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#hapticFeedbackEnabled" target="_top"><code>hapticFeedbackEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.headerDividersEnabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#headerDividersEnabled" target="_top"><xfont size="+1"><tt>headerDividersEnabled</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#headerDividersEnabled" target="_top"><code>headerDividersEnabled</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.horizontalGap"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#horizontalGap" target="_top"><xfont size="+1"><tt>horizontalGap</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#horizontalGap" target="_top"><code>horizontalGap</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.iconPreview"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#iconPreview" target="_top"><xfont size="+1"><tt>iconPreview</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#iconPreview" target="_top"><code>iconPreview</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeActionId"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeActionId" target="_top"><xfont size="+1"><tt>imeActionId</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeActionId" target="_top"><code>imeActionId</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeActionLabel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeActionLabel" target="_top"><xfont size="+1"><tt>imeActionLabel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeActionLabel" target="_top"><code>imeActionLabel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeExtractEnterAnimation"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeExtractEnterAnimation" target="_top"><xfont size="+1"><tt>imeExtractEnterAnimation</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeExtractEnterAnimation" target="_top"><code>imeExtractEnterAnimation</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeExtractExitAnimation"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeExtractExitAnimation" target="_top"><xfont size="+1"><tt>imeExtractExitAnimation</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeExtractExitAnimation" target="_top"><code>imeExtractExitAnimation</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeFullscreenBackground"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeFullscreenBackground" target="_top"><xfont size="+1"><tt>imeFullscreenBackground</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeFullscreenBackground" target="_top"><code>imeFullscreenBackground</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.imeOptions"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeOptions" target="_top"><xfont size="+1"><tt>imeOptions</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#imeOptions" target="_top"><code>imeOptions</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.initialLayout"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#initialLayout" target="_top"><xfont size="+1"><tt>initialLayout</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#initialLayout" target="_top"><code>initialLayout</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.innerRadius"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#innerRadius" target="_top"><xfont size="+1"><tt>innerRadius</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#innerRadius" target="_top"><code>innerRadius</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.inputType"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#inputType" target="_top"><xfont size="+1"><tt>inputType</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#inputType" target="_top"><code>inputType</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.isDefault"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isDefault" target="_top"><xfont size="+1"><tt>isDefault</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isDefault" target="_top"><code>isDefault</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.isModifier"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isModifier" target="_top"><xfont size="+1"><tt>isModifier</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isModifier" target="_top"><code>isModifier</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.isRepeatable"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isRepeatable" target="_top"><xfont size="+1"><tt>isRepeatable</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isRepeatable" target="_top"><code>isRepeatable</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.isScrollContainer"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isScrollContainer" target="_top"><xfont size="+1"><tt>isScrollContainer</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isScrollContainer" target="_top"><code>isScrollContainer</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.isSticky"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isSticky" target="_top"><xfont size="+1"><tt>isSticky</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#isSticky" target="_top"><code>isSticky</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyBackground"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyBackground" target="_top"><xfont size="+1"><tt>keyBackground</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyBackground" target="_top"><code>keyBackground</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyEdgeFlags"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyEdgeFlags" target="_top"><xfont size="+1"><tt>keyEdgeFlags</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyEdgeFlags" target="_top"><code>keyEdgeFlags</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyHeight"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyHeight" target="_top"><xfont size="+1"><tt>keyHeight</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyHeight" target="_top"><code>keyHeight</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyIcon"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyIcon" target="_top"><xfont size="+1"><tt>keyIcon</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyIcon" target="_top"><code>keyIcon</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyLabel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyLabel" target="_top"><xfont size="+1"><tt>keyLabel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyLabel" target="_top"><code>keyLabel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyOutputText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyOutputText" target="_top"><xfont size="+1"><tt>keyOutputText</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyOutputText" target="_top"><code>keyOutputText</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyPreviewHeight"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewHeight" target="_top"><xfont size="+1"><tt>keyPreviewHeight</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewHeight" target="_top"><code>keyPreviewHeight</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyPreviewLayout"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewLayout" target="_top"><xfont size="+1"><tt>keyPreviewLayout</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewLayout" target="_top"><code>keyPreviewLayout</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyPreviewOffset"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewOffset" target="_top"><xfont size="+1"><tt>keyPreviewOffset</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyPreviewOffset" target="_top"><code>keyPreviewOffset</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyTextColor"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyTextColor" target="_top"><xfont size="+1"><tt>keyTextColor</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyTextColor" target="_top"><code>keyTextColor</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyTextSize"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyTextSize" target="_top"><xfont size="+1"><tt>keyTextSize</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyTextSize" target="_top"><code>keyTextSize</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyWidth"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyWidth" target="_top"><xfont size="+1"><tt>keyWidth</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyWidth" target="_top"><code>keyWidth</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.keyboardMode"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyboardMode" target="_top"><xfont size="+1"><tt>keyboardMode</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#keyboardMode" target="_top"><code>keyboardMode</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.labelTextSize"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#labelTextSize" target="_top"><xfont size="+1"><tt>labelTextSize</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#labelTextSize" target="_top"><code>labelTextSize</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.noHistory"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#noHistory" target="_top"><xfont size="+1"><tt>noHistory</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#noHistory" target="_top"><code>noHistory</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.popupCharacters"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupCharacters" target="_top"><xfont size="+1"><tt>popupCharacters</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupCharacters" target="_top"><code>popupCharacters</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.popupKeyboard"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupKeyboard" target="_top"><xfont size="+1"><tt>popupKeyboard</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupKeyboard" target="_top"><code>popupKeyboard</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.popupLayout"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupLayout" target="_top"><xfont size="+1"><tt>popupLayout</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#popupLayout" target="_top"><code>popupLayout</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.privateImeOptions"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#privateImeOptions" target="_top"><xfont size="+1"><tt>privateImeOptions</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#privateImeOptions" target="_top"><code>privateImeOptions</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.reqFiveWayNav"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqFiveWayNav" target="_top"><xfont size="+1"><tt>reqFiveWayNav</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqFiveWayNav" target="_top"><code>reqFiveWayNav</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.reqHardKeyboard"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqHardKeyboard" target="_top"><xfont size="+1"><tt>reqHardKeyboard</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqHardKeyboard" target="_top"><code>reqHardKeyboard</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.reqKeyboardType"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqKeyboardType" target="_top"><xfont size="+1"><tt>reqKeyboardType</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqKeyboardType" target="_top"><code>reqKeyboardType</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.reqNavigation"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqNavigation" target="_top"><xfont size="+1"><tt>reqNavigation</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqNavigation" target="_top"><code>reqNavigation</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.reqTouchScreen"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqTouchScreen" target="_top"><xfont size="+1"><tt>reqTouchScreen</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#reqTouchScreen" target="_top"><code>reqTouchScreen</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.rowEdgeFlags"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#rowEdgeFlags" target="_top"><xfont size="+1"><tt>rowEdgeFlags</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#rowEdgeFlags" target="_top"><code>rowEdgeFlags</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.settingsActivity"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#settingsActivity" target="_top"><xfont size="+1"><tt>settingsActivity</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#settingsActivity" target="_top"><code>settingsActivity</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.sharedUserLabel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#sharedUserLabel" target="_top"><xfont size="+1"><tt>sharedUserLabel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#sharedUserLabel" target="_top"><code>sharedUserLabel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.smoothScrollbar"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#smoothScrollbar" target="_top"><xfont size="+1"><tt>smoothScrollbar</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#smoothScrollbar" target="_top"><code>smoothScrollbar</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.state_long_pressable"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#state_long_pressable" target="_top"><xfont size="+1"><tt>state_long_pressable</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#state_long_pressable" target="_top"><code>state_long_pressable</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.thickness"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#thickness" target="_top"><xfont size="+1"><tt>thickness</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#thickness" target="_top"><code>thickness</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.topOffset"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#topOffset" target="_top"><xfont size="+1"><tt>topOffset</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#topOffset" target="_top"><code>topOffset</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.updatePeriodMillis"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#updatePeriodMillis" target="_top"><xfont size="+1"><tt>updatePeriodMillis</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#updatePeriodMillis" target="_top"><code>updatePeriodMillis</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.verticalCorrection"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#verticalCorrection" target="_top"><xfont size="+1"><tt>verticalCorrection</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#verticalCorrection" target="_top"><code>verticalCorrection</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.verticalGap"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#verticalGap" target="_top"><xfont size="+1"><tt>verticalGap</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#verticalGap" target="_top"><code>verticalGap</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.voiceLanguage"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceLanguage" target="_top"><xfont size="+1"><tt>voiceLanguage</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceLanguage" target="_top"><code>voiceLanguage</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.voiceLanguageModel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceLanguageModel" target="_top"><xfont size="+1"><tt>voiceLanguageModel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceLanguageModel" target="_top"><code>voiceLanguageModel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.voiceMaxResults"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceMaxResults" target="_top"><xfont size="+1"><tt>voiceMaxResults</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceMaxResults" target="_top"><code>voiceMaxResults</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.voicePromptText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voicePromptText" target="_top"><xfont size="+1"><tt>voicePromptText</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voicePromptText" target="_top"><code>voicePromptText</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.voiceSearchMode"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceSearchMode" target="_top"><xfont size="+1"><tt>voiceSearchMode</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#voiceSearchMode" target="_top"><code>voiceSearchMode</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.windowDisablePreview"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowDisablePreview" target="_top"><xfont size="+1"><tt>windowDisablePreview</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowDisablePreview" target="_top"><code>windowDisablePreview</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.windowNoDisplay"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowNoDisplay" target="_top"><xfont size="+1"><tt>windowNoDisplay</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowNoDisplay" target="_top"><code>windowNoDisplay</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.windowSoftInputMode"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowSoftInputMode" target="_top"><xfont size="+1"><tt>windowSoftInputMode</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#windowSoftInputMode" target="_top"><code>windowSoftInputMode</code></A></nobr> </TD> <TD> </TD> </TR> @@ -619,7 +618,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.autoText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#autoText" target="_top"><xfont size="+1"><tt>autoText</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#autoText" target="_top"><code>autoText</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -628,7 +627,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.capitalize"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#capitalize" target="_top"><xfont size="+1"><tt>capitalize</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#capitalize" target="_top"><code>capitalize</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -637,7 +636,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.editable"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#editable" target="_top"><xfont size="+1"><tt>editable</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#editable" target="_top"><code>editable</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -646,7 +645,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.enabled"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#enabled" target="_top"><xfont size="+1"><tt>enabled</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#enabled" target="_top"><code>enabled</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -655,7 +654,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.inputMethod"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#inputMethod" target="_top"><xfont size="+1"><tt>inputMethod</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#inputMethod" target="_top"><code>inputMethod</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -664,7 +663,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.numeric"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#numeric" target="_top"><xfont size="+1"><tt>numeric</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#numeric" target="_top"><code>numeric</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -673,7 +672,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.password"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#password" target="_top"><xfont size="+1"><tt>password</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#password" target="_top"><code>password</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -682,7 +681,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.phoneNumber"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#phoneNumber" target="_top"><xfont size="+1"><tt>phoneNumber</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#phoneNumber" target="_top"><code>phoneNumber</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -691,7 +690,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.searchButtonText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#searchButtonText" target="_top"><xfont size="+1"><tt>searchButtonText</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#searchButtonText" target="_top"><code>searchButtonText</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -700,7 +699,7 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.attr.singleLine"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#singleLine" target="_top"><xfont size="+1"><tt>singleLine</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#singleLine" target="_top"><code>singleLine</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.R.drawable.html b/docs/html/sdk/api_diff/3/changes/android.R.drawable.html index fe046dd7370..ec91c69d35c 100644 --- a/docs/html/sdk/api_diff/3/changes/android.R.drawable.html +++ b/docs/html/sdk/api_diff/3/changes/android.R.drawable.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/R.drawable.html" target="_top"><font size="+3"><tt>R.drawable</tt></font></A> +Class android.<A HREF="../../../../reference/android/R.drawable.html" target="_top"><font size="+2"><code>R.drawable</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,21 +85,21 @@ Class android.<A HREF="../../../../reference/android/R.drawable.html" target="_t <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.drawable.dark_header"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#dark_header" target="_top"><xfont size="+1"><tt>dark_header</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#dark_header" target="_top"><code>dark_header</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.drawable.ic_btn_speak_now"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#ic_btn_speak_now" target="_top"><xfont size="+1"><tt>ic_btn_speak_now</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#ic_btn_speak_now" target="_top"><code>ic_btn_speak_now</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.drawable.title_bar_tall"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#title_bar_tall" target="_top"><xfont size="+1"><tt>title_bar_tall</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#title_bar_tall" target="_top"><code>title_bar_tall</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.R.id.html b/docs/html/sdk/api_diff/3/changes/android.R.id.html index d30fc1da3b7..b4eed46ead6 100644 --- a/docs/html/sdk/api_diff/3/changes/android.R.id.html +++ b/docs/html/sdk/api_diff/3/changes/android.R.id.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/R.id.html" target="_top"><font size="+3"><tt>R.id</tt></font></A> +Class android.<A HREF="../../../../reference/android/R.id.html" target="_top"><font size="+2"><code>R.id</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,105 +85,105 @@ Class android.<A HREF="../../../../reference/android/R.id.html" target="_top"><f <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.addToDictionary"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#addToDictionary" target="_top"><xfont size="+1"><tt>addToDictionary</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#addToDictionary" target="_top"><code>addToDictionary</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.candidatesArea"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#candidatesArea" target="_top"><xfont size="+1"><tt>candidatesArea</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#candidatesArea" target="_top"><code>candidatesArea</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.closeButton"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#closeButton" target="_top"><xfont size="+1"><tt>closeButton</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#closeButton" target="_top"><code>closeButton</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.copy"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#copy" target="_top"><xfont size="+1"><tt>copy</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#copy" target="_top"><code>copy</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.copyUrl"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#copyUrl" target="_top"><xfont size="+1"><tt>copyUrl</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#copyUrl" target="_top"><code>copyUrl</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.cut"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#cut" target="_top"><xfont size="+1"><tt>cut</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#cut" target="_top"><code>cut</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.extractArea"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#extractArea" target="_top"><xfont size="+1"><tt>extractArea</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#extractArea" target="_top"><code>extractArea</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.inputArea"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#inputArea" target="_top"><xfont size="+1"><tt>inputArea</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#inputArea" target="_top"><code>inputArea</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.inputExtractEditText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#inputExtractEditText" target="_top"><xfont size="+1"><tt>inputExtractEditText</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#inputExtractEditText" target="_top"><code>inputExtractEditText</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.keyboardView"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#keyboardView" target="_top"><xfont size="+1"><tt>keyboardView</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#keyboardView" target="_top"><code>keyboardView</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.paste"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#paste" target="_top"><xfont size="+1"><tt>paste</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#paste" target="_top"><code>paste</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.selectAll"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#selectAll" target="_top"><xfont size="+1"><tt>selectAll</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#selectAll" target="_top"><code>selectAll</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.startSelectingText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#startSelectingText" target="_top"><xfont size="+1"><tt>startSelectingText</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#startSelectingText" target="_top"><code>startSelectingText</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.stopSelectingText"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#stopSelectingText" target="_top"><xfont size="+1"><tt>stopSelectingText</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#stopSelectingText" target="_top"><code>stopSelectingText</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.id.switchInputMethod"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#switchInputMethod" target="_top"><xfont size="+1"><tt>switchInputMethod</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#switchInputMethod" target="_top"><code>switchInputMethod</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.R.string.html b/docs/html/sdk/api_diff/3/changes/android.R.string.html index 5d18ffa187c..8c700c02fe0 100644 --- a/docs/html/sdk/api_diff/3/changes/android.R.string.html +++ b/docs/html/sdk/api_diff/3/changes/android.R.string.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/R.string.html" target="_top"><font size="+3"><tt>R.string</tt></font></A> +Class android.<A HREF="../../../../reference/android/R.string.html" target="_top"><font size="+2"><code>R.string</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,14 +85,14 @@ Class android.<A HREF="../../../../reference/android/R.string.html" target="_top <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.string.VideoView_error_text_invalid_progressive_playback"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#VideoView_error_text_invalid_progressive_playback" target="_top"><xfont size="+1"><tt>VideoView_error_text_invalid_progressive_playback</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#VideoView_error_text_invalid_progressive_playback" target="_top"><code>VideoView_error_text_invalid_progressive_playback</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.string.dialog_alert_title"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#dialog_alert_title" target="_top"><xfont size="+1"><tt>dialog_alert_title</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#dialog_alert_title" target="_top"><code>dialog_alert_title</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.R.style.html b/docs/html/sdk/api_diff/3/changes/android.R.style.html index 726bab9fb2b..fa925bb5cf3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.R.style.html +++ b/docs/html/sdk/api_diff/3/changes/android.R.style.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.<A HREF="../../../../reference/android/R.style.html" target="_top"><font size="+3"><tt>R.style</tt></font></A> +Class android.<A HREF="../../../../reference/android/R.style.html" target="_top"><font size="+2"><code>R.style</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,35 +85,35 @@ Class android.<A HREF="../../../../reference/android/R.style.html" target="_top" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.style.Theme_InputMethod"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_InputMethod" target="_top"><xfont size="+1"><tt>Theme_InputMethod</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_InputMethod" target="_top"><code>Theme_InputMethod</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.style.Theme_Light_Panel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_Light_Panel" target="_top"><xfont size="+1"><tt>Theme_Light_Panel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_Light_Panel" target="_top"><code>Theme_Light_Panel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.style.Theme_NoDisplay"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_NoDisplay" target="_top"><xfont size="+1"><tt>Theme_NoDisplay</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_NoDisplay" target="_top"><code>Theme_NoDisplay</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.style.Theme_Panel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_Panel" target="_top"><xfont size="+1"><tt>Theme_Panel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Theme_Panel" target="_top"><code>Theme_Panel</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.R.style.Widget_KeyboardView"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_KeyboardView" target="_top"><xfont size="+1"><tt>Widget_KeyboardView</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_KeyboardView" target="_top"><code>Widget_KeyboardView</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.Activity.html b/docs/html/sdk/api_diff/3/changes/android.app.Activity.html index 7ff5871e76c..59c2711f3e4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.Activity.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.Activity.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/Activity.html" target="_top"><font size="+3"><tt>Activity</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/Activity.html" target="_top"><font size="+2"><code>Activity</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,35 +84,35 @@ Class android.app.<A HREF="../../../../reference/android/app/Activity.html" targ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Activity.closeContextMenu_added()"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#closeContextMenu()" target="_top"><xfont size="+1"><tt>closeContextMenu</tt></font></A>()</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#closeContextMenu()" target="_top"><code>closeContextMenu</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Activity.hasWindowFocus_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/app/Activity.html#hasWindowFocus()" target="_top"><xfont size="+1"><tt>hasWindowFocus</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/app/Activity.html#hasWindowFocus()" target="_top"><code>hasWindowFocus</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Activity.onUserInteraction_added()"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#onUserInteraction()" target="_top"><xfont size="+1"><tt>onUserInteraction</tt></font></A>()</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#onUserInteraction()" target="_top"><code>onUserInteraction</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Activity.onUserLeaveHint_added()"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#onUserLeaveHint()" target="_top"><xfont size="+1"><tt>onUserLeaveHint</tt></font></A>()</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#onUserLeaveHint()" target="_top"><code>onUserLeaveHint</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Activity.setVisible_added(boolean)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#setVisible(boolean)" target="_top"><xfont size="+1"><tt>setVisible</tt></font></A>(<code>boolean</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/Activity.html#setVisible(boolean)" target="_top"><code>setVisible</code></A>(<code>boolean</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html b/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html index bd473fb8a39..422a675676a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/ActivityManager.html" target="_top"><font size="+3"><tt>ActivityManager</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/ActivityManager.html" target="_top"><font size="+2"><code>ActivityManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.app.<A HREF="../../../../reference/android/app/ActivityManager.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.ActivityManager.getDeviceConfigurationInfo_added()"></A> - <nobr><code>ConfigurationInfo</code> <A HREF="../../../../reference/android/app/ActivityManager.html#getDeviceConfigurationInfo()" target="_top"><xfont size="+1"><tt>getDeviceConfigurationInfo</tt></font></A>()</nobr> + <nobr><code>ConfigurationInfo</code> <A HREF="../../../../reference/android/app/ActivityManager.html#getDeviceConfigurationInfo()" target="_top"><code>getDeviceConfigurationInfo</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.ActivityManager.getRunningAppProcesses_added()"></A> - <nobr><code>List<RunningAppProcessInfo></code> <A HREF="../../../../reference/android/app/ActivityManager.html#getRunningAppProcesses()" target="_top"><xfont size="+1"><tt>getRunningAppProcesses</tt></font></A>()</nobr> + <nobr><code>List<RunningAppProcessInfo></code> <A HREF="../../../../reference/android/app/ActivityManager.html#getRunningAppProcesses()" target="_top"><code>getRunningAppProcesses</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.ActivityManager.restartPackage_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/ActivityManager.html#restartPackage(java.lang.String)" target="_top"><xfont size="+1"><tt>restartPackage</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/ActivityManager.html#restartPackage(java.lang.String)" target="_top"><code>restartPackage</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html b/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html index b8280f2fc9b..1be5089ea2e 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/AlarmManager.html" target="_top"><font size="+3"><tt>AlarmManager</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/AlarmManager.html" target="_top"><font size="+2"><code>AlarmManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.app.<A HREF="../../../../reference/android/app/AlarmManager.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.setInexactRepeating_added(int, long, long, android.app.PendingIntent)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlarmManager.html#setInexactRepeating(int, long, long, android.app.PendingIntent)" target="_top"><xfont size="+1"><tt>setInexactRepeating</tt></font></A>(<code>int,</nobr> long<nobr>,</nobr> long<nobr>,</nobr> PendingIntent<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlarmManager.html#setInexactRepeating(int, long, long, android.app.PendingIntent)" target="_top"><code>setInexactRepeating</code></A>(<code>int,</nobr> long<nobr>,</nobr> long<nobr>,</nobr> PendingIntent<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -101,35 +100,35 @@ Class android.app.<A HREF="../../../../reference/android/app/AlarmManager.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.INTERVAL_DAY"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_DAY" target="_top"><xfont size="+1"><tt>INTERVAL_DAY</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_DAY" target="_top"><code>INTERVAL_DAY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.INTERVAL_FIFTEEN_MINUTES"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_FIFTEEN_MINUTES" target="_top"><xfont size="+1"><tt>INTERVAL_FIFTEEN_MINUTES</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_FIFTEEN_MINUTES" target="_top"><code>INTERVAL_FIFTEEN_MINUTES</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.INTERVAL_HALF_DAY"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HALF_DAY" target="_top"><xfont size="+1"><tt>INTERVAL_HALF_DAY</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HALF_DAY" target="_top"><code>INTERVAL_HALF_DAY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.INTERVAL_HALF_HOUR"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HALF_HOUR" target="_top"><xfont size="+1"><tt>INTERVAL_HALF_HOUR</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HALF_HOUR" target="_top"><code>INTERVAL_HALF_HOUR</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlarmManager.INTERVAL_HOUR"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HOUR" target="_top"><xfont size="+1"><tt>INTERVAL_HOUR</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/app/AlarmManager.html#INTERVAL_HOUR" target="_top"><code>INTERVAL_HOUR</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html b/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html index bb8cdb1624f..37f5cd4bfc6 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,15 +67,37 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/AlertDialog.html" target="_top"><font size="+3"><tt>AlertDialog</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/AlertDialog.html" target="_top"><font size="+2"><code>AlertDialog</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> <p> +<a NAME="Removed"></a> +<TABLE summary="Removed Methods" WIDTH="100%"> +<TR> + <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD> +</TH> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> + <nobr><code>void</code> setButton(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>)</nobr> + </TD> + <TD> </TD> +</TR> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.app.AlertDialog.setButton_removed(java.lang.CharSequence, android.os.Message)"></A> + <nobr><code>void</code> setButton(<code>CharSequence,</nobr> Message<nobr><nobr></code>)</nobr> + </TD> + <TD> </TD> +</TR> +</TABLE> +  +<p> <a NAME="Added"></a> <TABLE summary="Added Methods" WIDTH="100%"> <TR> @@ -85,35 +106,49 @@ Class android.app.<A HREF="../../../../reference/android/app/AlertDialog.html" t <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.getButton_added(int)"></A> - <nobr><code>Button</code> <A HREF="../../../../reference/android/app/AlertDialog.html#getButton(int)" target="_top"><xfont size="+1"><tt>getButton</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>Button</code> <A HREF="../../../../reference/android/app/AlertDialog.html#getButton(int)" target="_top"><code>getButton</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.getListView_added()"></A> - <nobr><code>ListView</code> <A HREF="../../../../reference/android/app/AlertDialog.html#getListView()" target="_top"><xfont size="+1"><tt>getListView</tt></font></A>()</nobr> + <nobr><code>ListView</code> <A HREF="../../../../reference/android/app/AlertDialog.html#getListView()" target="_top"><code>getListView</code></A>()</nobr> + </TD> + <TD> </TD> +</TR> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><code>setButton</code></A>(<code>int,</nobr> CharSequence<nobr>,</nobr> OnClickListener<nobr><nobr></code>)</nobr> + </TD> + <TD> </TD> +</TR> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.app.AlertDialog.setButton_added(int, java.lang.CharSequence, android.os.Message)"></A> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(int, java.lang.CharSequence, android.os.Message)" target="_top"><code>setButton</code></A>(<code>int,</nobr> CharSequence<nobr>,</nobr> Message<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><xfont size="+1"><tt>setButton</tt></font></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><code>setButton</code></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton_added(java.lang.CharSequence, android.os.Message)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(java.lang.CharSequence, android.os.Message)" target="_top"><xfont size="+1"><tt>setButton</tt></font></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(java.lang.CharSequence, android.os.Message)" target="_top"><code>setButton</code></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setView_added(android.view.View, int, int, int, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setView(android.view.View, int, int, int, int)" target="_top"><xfont size="+1"><tt>setView</tt></font></A>(<code>View,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setView(android.view.View, int, int, int, int)" target="_top"><code>setView</code></A>(<code>View,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -125,30 +160,10 @@ Class android.app.<A HREF="../../../../reference/android/app/AlertDialog.html" t <TR> <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD> </TH> -<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> - <TD VALIGN="TOP" WIDTH="25%"> - <A NAME="android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><xfont size="+1"><tt>setButton</tt></font></A>(<code>int,</nobr> CharSequence<nobr>,</nobr> OnClickListener<nobr><nobr></code>) </nobr> - </TD> - <TD VALIGN="TOP" WIDTH="30%"> -Change in signature from (<code>CharSequence, OnClickListener</code>) to (<code>int, CharSequence, OnClickListener</code>).<br> - </TD> - <TD> </TD> -</TR> -<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> - <TD VALIGN="TOP" WIDTH="25%"> - <A NAME="android.app.AlertDialog.setButton_changed(int, java.lang.CharSequence, android.os.Message)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton(int, java.lang.CharSequence, android.os.Message)" target="_top"><xfont size="+1"><tt>setButton</tt></font></A>(<code>int,</nobr> CharSequence<nobr>,</nobr> Message<nobr><nobr></code>) </nobr> - </TD> - <TD VALIGN="TOP" WIDTH="30%"> -Change in signature from (<code>CharSequence, Message</code>) to (<code>int, CharSequence, Message</code>).<br> - </TD> - <TD> </TD> -</TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton2_changed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton2(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><xfont size="+1"><tt>setButton2</tt></font></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton2(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><code>setButton2</code></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -158,7 +173,7 @@ Change in signature from (<code>CharSequence, Message</code>) to (<code>int, Cha <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton2_changed(java.lang.CharSequence, android.os.Message)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton2(java.lang.CharSequence, android.os.Message)" target="_top"><xfont size="+1"><tt>setButton2</tt></font></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton2(java.lang.CharSequence, android.os.Message)" target="_top"><code>setButton2</code></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -168,7 +183,7 @@ Change in signature from (<code>CharSequence, Message</code>) to (<code>int, Cha <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton3_changed(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton3(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><xfont size="+1"><tt>setButton3</tt></font></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton3(java.lang.CharSequence, android.content.DialogInterface.OnClickListener)" target="_top"><code>setButton3</code></A>(<code>CharSequence,</nobr> OnClickListener<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -178,7 +193,7 @@ Change in signature from (<code>CharSequence, Message</code>) to (<code>int, Cha <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.AlertDialog.setButton3_changed(java.lang.CharSequence, android.os.Message)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton3(java.lang.CharSequence, android.os.Message)" target="_top"><xfont size="+1"><tt>setButton3</tt></font></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/AlertDialog.html#setButton3(java.lang.CharSequence, android.os.Message)" target="_top"><code>setButton3</code></A>(<code>CharSequence,</nobr> Message<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html b/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html index b6f26a6df96..0d56b9c74a3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/Instrumentation.html" target="_top"><font size="+3"><tt>Instrumentation</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/Instrumentation.html" target="_top"><font size="+2"><code>Instrumentation</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.app.<A HREF="../../../../reference/android/app/Instrumentation.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.Instrumentation.callActivityOnUserLeaving_added(android.app.Activity)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/app/Instrumentation.html#callActivityOnUserLeaving(android.app.Activity)" target="_top"><xfont size="+1"><tt>callActivityOnUserLeaving</tt></font></A>(<code>Activity</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/app/Instrumentation.html#callActivityOnUserLeaving(android.app.Activity)" target="_top"><code>callActivityOnUserLeaving</code></A>(<code>Activity</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html b/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html index 60f7f29a607..bcfcabb42a9 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/LauncherActivity.html" target="_top"><font size="+3"><tt>LauncherActivity</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/LauncherActivity.html" target="_top"><font size="+2"><code>LauncherActivity</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,14 +84,14 @@ Class android.app.<A HREF="../../../../reference/android/app/LauncherActivity.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.LauncherActivity.intentForPosition_added(int)"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/app/LauncherActivity.html#intentForPosition(int)" target="_top"><xfont size="+1"><tt>intentForPosition</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/app/LauncherActivity.html#intentForPosition(int)" target="_top"><code>intentForPosition</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.LauncherActivity.makeListItems_added()"></A> - <nobr><code>List<ListItem></code> <A HREF="../../../../reference/android/app/LauncherActivity.html#makeListItems()" target="_top"><xfont size="+1"><tt>makeListItems</tt></font></A>()</nobr> + <nobr><code>List<ListItem></code> <A HREF="../../../../reference/android/app/LauncherActivity.html#makeListItems()" target="_top"><code>makeListItems</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -107,7 +106,7 @@ Class android.app.<A HREF="../../../../reference/android/app/LauncherActivity.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.LauncherActivity.getTargetIntent_changed()"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/app/LauncherActivity.html#getTargetIntent()" target="_top"><xfont size="+1"><tt>getTargetIntent</tt></font></A>() </nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/app/LauncherActivity.html#getTargetIntent()" target="_top"><code>getTargetIntent</code></A>() </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Changed from abstract to non-abstract. diff --git a/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html index 6155508fcd8..58421a383f8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html +++ b/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.app.<A HREF="../../../../reference/android/app/PendingIntent.html" target="_top"><font size="+3"><tt>PendingIntent</tt></font></A> +Class android.app.<A HREF="../../../../reference/android/app/PendingIntent.html" target="_top"><font size="+2"><code>PendingIntent</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.app.<A HREF="../../../../reference/android/app/PendingIntent.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.app.PendingIntent.FLAG_UPDATE_CURRENT"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/app/PendingIntent.html#FLAG_UPDATE_CURRENT" target="_top"><xfont size="+1"><tt>FLAG_UPDATE_CURRENT</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/app/PendingIntent.html#FLAG_UPDATE_CURRENT" target="_top"><code>FLAG_UPDATE_CURRENT</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html b/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html index bd8cc8ccadb..8056fdb74ba 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.<A HREF="../../../../reference/android/content/BroadcastReceiver.html" target="_top"><font size="+3"><tt>BroadcastReceiver</tt></font></A> +Class android.content.<A HREF="../../../../reference/android/content/BroadcastReceiver.html" target="_top"><font size="+2"><code>BroadcastReceiver</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.content.<A HREF="../../../../reference/android/content/BroadcastRe <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.BroadcastReceiver.peekService_added(android.content.Context, android.content.Intent)"></A> - <nobr><code>IBinder</code> <A HREF="../../../../reference/android/content/BroadcastReceiver.html#peekService(android.content.Context, android.content.Intent)" target="_top"><xfont size="+1"><tt>peekService</tt></font></A>(<code>Context,</nobr> Intent<nobr><nobr></code>)</nobr> + <nobr><code>IBinder</code> <A HREF="../../../../reference/android/content/BroadcastReceiver.html#peekService(android.content.Context, android.content.Intent)" target="_top"><code>peekService</code></A>(<code>Context,</nobr> Intent<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html b/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html index c6de3260516..438aeb25953 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.<A HREF="../../../../reference/android/content/ContentProvider.html" target="_top"><font size="+3"><tt>ContentProvider</tt></font></A> +Class android.content.<A HREF="../../../../reference/android/content/ContentProvider.html" target="_top"><font size="+2"><code>ContentProvider</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.content.<A HREF="../../../../reference/android/content/ContentProv <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.ContentProvider.openAssetFile_added(android.net.Uri, java.lang.String)"></A> - <nobr><code>AssetFileDescriptor</code> <A HREF="../../../../reference/android/content/ContentProvider.html#openAssetFile(android.net.Uri, java.lang.String)" target="_top"><xfont size="+1"><tt>openAssetFile</tt></font></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>AssetFileDescriptor</code> <A HREF="../../../../reference/android/content/ContentProvider.html#openAssetFile(android.net.Uri, java.lang.String)" target="_top"><code>openAssetFile</code></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html b/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html index 2101198a7f0..97bb8f7bea4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.<A HREF="../../../../reference/android/content/ContentResolver.html" target="_top"><font size="+3"><tt>ContentResolver</tt></font></A> +Class android.content.<A HREF="../../../../reference/android/content/ContentResolver.html" target="_top"><font size="+2"><code>ContentResolver</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,14 +84,14 @@ Class android.content.<A HREF="../../../../reference/android/content/ContentReso <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.ContentResolver.openAssetFileDescriptor_added(android.net.Uri, java.lang.String)"></A> - <nobr><code>AssetFileDescriptor</code> <A HREF="../../../../reference/android/content/ContentResolver.html#openAssetFileDescriptor(android.net.Uri, java.lang.String)" target="_top"><xfont size="+1"><tt>openAssetFileDescriptor</tt></font></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>AssetFileDescriptor</code> <A HREF="../../../../reference/android/content/ContentResolver.html#openAssetFileDescriptor(android.net.Uri, java.lang.String)" target="_top"><code>openAssetFileDescriptor</code></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.ContentResolver.openOutputStream_added(android.net.Uri, java.lang.String)"></A> - <nobr><code>OutputStream</code> <A HREF="../../../../reference/android/content/ContentResolver.html#openOutputStream(android.net.Uri, java.lang.String)" target="_top"><xfont size="+1"><tt>openOutputStream</tt></font></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>OutputStream</code> <A HREF="../../../../reference/android/content/ContentResolver.html#openOutputStream(android.net.Uri, java.lang.String)" target="_top"><code>openOutputStream</code></A>(<code>Uri,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.Context.html b/docs/html/sdk/api_diff/3/changes/android.content.Context.html index ac3d99da74f..d41db1b59fa 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.Context.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.Context.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.<A HREF="../../../../reference/android/content/Context.html" target="_top"><font size="+3"><tt>Context</tt></font></A> +Class android.content.<A HREF="../../../../reference/android/content/Context.html" target="_top"><font size="+2"><code>Context</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.content.<A HREF="../../../../reference/android/content/Context.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Context.INPUT_METHOD_SERVICE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Context.html#INPUT_METHOD_SERVICE" target="_top"><xfont size="+1"><tt>INPUT_METHOD_SERVICE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Context.html#INPUT_METHOD_SERVICE" target="_top"><code>INPUT_METHOD_SERVICE</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html b/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html index 17dd651368b..3cce190d224 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.content.<A HREF="../../../../reference/android/content/DialogInterface.html" target="_top"><font size="+3"><tt>DialogInterface</tt></font></A> +Interface android.content.<A HREF="../../../../reference/android/content/DialogInterface.html" target="_top"><font size="+2"><code>DialogInterface</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,21 +85,21 @@ Interface android.content.<A HREF="../../../../reference/android/content/DialogI <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON_NEGATIVE"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_NEGATIVE" target="_top"><xfont size="+1"><tt>BUTTON_NEGATIVE</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_NEGATIVE" target="_top"><code>BUTTON_NEGATIVE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON_NEUTRAL"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_NEUTRAL" target="_top"><xfont size="+1"><tt>BUTTON_NEUTRAL</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_NEUTRAL" target="_top"><code>BUTTON_NEUTRAL</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON_POSITIVE"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_POSITIVE" target="_top"><xfont size="+1"><tt>BUTTON_POSITIVE</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON_POSITIVE" target="_top"><code>BUTTON_POSITIVE</code></A></nobr> </TD> <TD> </TD> </TR> @@ -115,7 +114,7 @@ Interface android.content.<A HREF="../../../../reference/android/content/DialogI <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON1"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON1" target="_top"><xfont size="+1"><tt>BUTTON1</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON1" target="_top"><code>BUTTON1</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -124,7 +123,7 @@ Interface android.content.<A HREF="../../../../reference/android/content/DialogI <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON2"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON2" target="_top"><xfont size="+1"><tt>BUTTON2</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON2" target="_top"><code>BUTTON2</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -133,7 +132,7 @@ Interface android.content.<A HREF="../../../../reference/android/content/DialogI <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.DialogInterface.BUTTON3"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON3" target="_top"><xfont size="+1"><tt>BUTTON3</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/DialogInterface.html#BUTTON3" target="_top"><code>BUTTON3</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.Intent.html b/docs/html/sdk/api_diff/3/changes/android.content.Intent.html index edb02387b0a..5053901b569 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.Intent.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.Intent.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.<A HREF="../../../../reference/android/content/Intent.html" target="_top"><font size="+3"><tt>Intent</tt></font></A> +Class android.content.<A HREF="../../../../reference/android/content/Intent.html" target="_top"><font size="+2"><code>Intent</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,14 +84,14 @@ Class android.content.<A HREF="../../../../reference/android/content/Intent.html <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.replaceExtras_added(android.content.Intent)"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/Intent.html#replaceExtras(android.content.Intent)" target="_top"><xfont size="+1"><tt>replaceExtras</tt></font></A>(<code>Intent</code>)</nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/Intent.html#replaceExtras(android.content.Intent)" target="_top"><code>replaceExtras</code></A>(<code>Intent</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.replaceExtras_added(android.os.Bundle)"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/Intent.html#replaceExtras(android.os.Bundle)" target="_top"><xfont size="+1"><tt>replaceExtras</tt></font></A>(<code>Bundle</code>)</nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/Intent.html#replaceExtras(android.os.Bundle)" target="_top"><code>replaceExtras</code></A>(<code>Bundle</code>)</nobr> </TD> <TD> </TD> </TR> @@ -123,98 +122,98 @@ Class android.content.<A HREF="../../../../reference/android/content/Intent.html <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_INPUT_METHOD_CHANGED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_INPUT_METHOD_CHANGED" target="_top"><xfont size="+1"><tt>ACTION_INPUT_METHOD_CHANGED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_INPUT_METHOD_CHANGED" target="_top"><code>ACTION_INPUT_METHOD_CHANGED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_MEDIA_CHECKING"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_MEDIA_CHECKING" target="_top"><xfont size="+1"><tt>ACTION_MEDIA_CHECKING</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_MEDIA_CHECKING" target="_top"><code>ACTION_MEDIA_CHECKING</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_MEDIA_NOFS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_MEDIA_NOFS" target="_top"><xfont size="+1"><tt>ACTION_MEDIA_NOFS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_MEDIA_NOFS" target="_top"><code>ACTION_MEDIA_NOFS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_PACKAGE_DATA_CLEARED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_PACKAGE_DATA_CLEARED" target="_top"><xfont size="+1"><tt>ACTION_PACKAGE_DATA_CLEARED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_PACKAGE_DATA_CLEARED" target="_top"><code>ACTION_PACKAGE_DATA_CLEARED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_PACKAGE_REPLACED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_PACKAGE_REPLACED" target="_top"><xfont size="+1"><tt>ACTION_PACKAGE_REPLACED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_PACKAGE_REPLACED" target="_top"><code>ACTION_PACKAGE_REPLACED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_SEARCH_LONG_PRESS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_SEARCH_LONG_PRESS" target="_top"><xfont size="+1"><tt>ACTION_SEARCH_LONG_PRESS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_SEARCH_LONG_PRESS" target="_top"><code>ACTION_SEARCH_LONG_PRESS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_SYSTEM_TUTORIAL"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_SYSTEM_TUTORIAL" target="_top"><xfont size="+1"><tt>ACTION_SYSTEM_TUTORIAL</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_SYSTEM_TUTORIAL" target="_top"><code>ACTION_SYSTEM_TUTORIAL</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.ACTION_USER_PRESENT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_USER_PRESENT" target="_top"><xfont size="+1"><tt>ACTION_USER_PRESENT</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_USER_PRESENT" target="_top"><code>ACTION_USER_PRESENT</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.CATEGORY_INFO"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#CATEGORY_INFO" target="_top"><xfont size="+1"><tt>CATEGORY_INFO</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#CATEGORY_INFO" target="_top"><code>CATEGORY_INFO</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.EXTRA_DATA_REMOVED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_DATA_REMOVED" target="_top"><xfont size="+1"><tt>EXTRA_DATA_REMOVED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_DATA_REMOVED" target="_top"><code>EXTRA_DATA_REMOVED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.EXTRA_REPLACING"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_REPLACING" target="_top"><xfont size="+1"><tt>EXTRA_REPLACING</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_REPLACING" target="_top"><code>EXTRA_REPLACING</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET" target="_top"><xfont size="+1"><tt>FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET" target="_top"><code>FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.FLAG_ACTIVITY_NO_USER_ACTION"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_NO_USER_ACTION" target="_top"><xfont size="+1"><tt>FLAG_ACTIVITY_NO_USER_ACTION</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_NO_USER_ACTION" target="_top"><code>FLAG_ACTIVITY_NO_USER_ACTION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.Intent.FLAG_ACTIVITY_REORDER_TO_FRONT"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT" target="_top"><xfont size="+1"><tt>FLAG_ACTIVITY_REORDER_TO_FRONT</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT" target="_top"><code>FLAG_ACTIVITY_REORDER_TO_FRONT</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html index 5c62f6b769d..c8b3f786d01 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ActivityInfo.html" target="_top"><font size="+3"><tt>ActivityInfo</tt></font></A> +Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ActivityInfo.html" target="_top"><font size="+2"><code>ActivityInfo</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,14 +85,14 @@ Class android.content.pm.<A HREF="../../../../reference/android/content/pm/Activ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.ActivityInfo.FLAG_NO_HISTORY"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#FLAG_NO_HISTORY" target="_top"><xfont size="+1"><tt>FLAG_NO_HISTORY</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#FLAG_NO_HISTORY" target="_top"><code>FLAG_NO_HISTORY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.ActivityInfo.softInputMode"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#softInputMode" target="_top"><xfont size="+1"><tt>softInputMode</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#softInputMode" target="_top"><code>softInputMode</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html index b360d7c2bba..d9fb46bdd71 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PackageInfo.html" target="_top"><font size="+3"><tt>PackageInfo</tt></font></A> +Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PackageInfo.html" target="_top"><font size="+2"><code>PackageInfo</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,21 +85,21 @@ Class android.content.pm.<A HREF="../../../../reference/android/content/pm/Packa <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageInfo.configPreferences"></A> - <nobr><code>ConfigurationInfo[]</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#configPreferences" target="_top"><xfont size="+1"><tt>configPreferences</tt></font></A></nobr> + <nobr><code>ConfigurationInfo[]</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#configPreferences" target="_top"><code>configPreferences</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageInfo.sharedUserId"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#sharedUserId" target="_top"><xfont size="+1"><tt>sharedUserId</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#sharedUserId" target="_top"><code>sharedUserId</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageInfo.sharedUserLabel"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#sharedUserLabel" target="_top"><xfont size="+1"><tt>sharedUserLabel</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageInfo.html#sharedUserLabel" target="_top"><code>sharedUserLabel</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html index efd37c54f3b..12395cca929 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PackageManager.html" target="_top"><font size="+3"><tt>PackageManager</tt></font></A> +Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PackageManager.html" target="_top"><font size="+2"><code>PackageManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.content.pm.<A HREF="../../../../reference/android/content/pm/Packa <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.getLaunchIntentForPackage_added(java.lang.String)"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String)" target="_top"><xfont size="+1"><tt>getLaunchIntentForPackage</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String)" target="_top"><code>getLaunchIntentForPackage</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.getSystemSharedLibraryNames_added()"></A> - <nobr><code>String[]</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#getSystemSharedLibraryNames()" target="_top"><xfont size="+1"><tt>getSystemSharedLibraryNames</tt></font></A>()</nobr> + <nobr><code>String[]</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#getSystemSharedLibraryNames()" target="_top"><code>getSystemSharedLibraryNames</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.isSafeMode_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#isSafeMode()" target="_top"><xfont size="+1"><tt>isSafeMode</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#isSafeMode()" target="_top"><code>isSafeMode</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -115,21 +114,21 @@ Class android.content.pm.<A HREF="../../../../reference/android/content/pm/Packa <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.GET_CONFIGURATIONS"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#GET_CONFIGURATIONS" target="_top"><xfont size="+1"><tt>GET_CONFIGURATIONS</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#GET_CONFIGURATIONS" target="_top"><code>GET_CONFIGURATIONS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#GET_UNINSTALLED_PACKAGES" target="_top"><xfont size="+1"><tt>GET_UNINSTALLED_PACKAGES</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#GET_UNINSTALLED_PACKAGES" target="_top"><code>GET_UNINSTALLED_PACKAGES</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.pm.PackageManager.INSTALL_FAILED_CONFLICTING_PROVIDER"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#INSTALL_FAILED_CONFLICTING_PROVIDER" target="_top"><xfont size="+1"><tt>INSTALL_FAILED_CONFLICTING_PROVIDER</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#INSTALL_FAILED_CONFLICTING_PROVIDER" target="_top"><code>INSTALL_FAILED_CONFLICTING_PROVIDER</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html b/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html index 458a70a74ec..4b08d377ba0 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.res.<A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html" target="_top"><font size="+3"><tt>AssetFileDescriptor</tt></font></A> +Class android.content.res.<A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html" target="_top"><font size="+2"><code>AssetFileDescriptor</code></font></A> </H2> <p><font xsize="+1">Added interface <code>android.os.Parcelable</code>.<br></font> <a NAME="constructors"></a> @@ -86,35 +85,35 @@ Class android.content.res.<A HREF="../../../../reference/android/content/res/Ass <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.createInputStream_added()"></A> - <nobr><code>FileInputStream</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#createInputStream()" target="_top"><xfont size="+1"><tt>createInputStream</tt></font></A>()</nobr> + <nobr><code>FileInputStream</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#createInputStream()" target="_top"><code>createInputStream</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.createOutputStream_added()"></A> - <nobr><code>FileOutputStream</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#createOutputStream()" target="_top"><xfont size="+1"><tt>createOutputStream</tt></font></A>()</nobr> + <nobr><code>FileOutputStream</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#createOutputStream()" target="_top"><code>createOutputStream</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.describeContents_added()"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#describeContents()" target="_top"><xfont size="+1"><tt>describeContents</tt></font></A>()</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#describeContents()" target="_top"><code>describeContents</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.getDeclaredLength_added()"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#getDeclaredLength()" target="_top"><xfont size="+1"><tt>getDeclaredLength</tt></font></A>()</nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#getDeclaredLength()" target="_top"><code>getDeclaredLength</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.writeToParcel_added(android.os.Parcel, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#writeToParcel(android.os.Parcel, int)" target="_top"><xfont size="+1"><tt>writeToParcel</tt></font></A>(<code>Parcel,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#writeToParcel(android.os.Parcel, int)" target="_top"><code>writeToParcel</code></A>(<code>Parcel,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -130,14 +129,14 @@ Class android.content.res.<A HREF="../../../../reference/android/content/res/Ass <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.CREATOR"></A> - <nobr><code>Creator</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#CREATOR" target="_top"><xfont size="+1"><tt>CREATOR</tt></font></A></nobr> + <nobr><code>Creator</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#CREATOR" target="_top"><code>CREATOR</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.AssetFileDescriptor.UNKNOWN_LENGTH"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#UNKNOWN_LENGTH" target="_top"><xfont size="+1"><tt>UNKNOWN_LENGTH</tt></font></A></nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/content/res/AssetFileDescriptor.html#UNKNOWN_LENGTH" target="_top"><code>UNKNOWN_LENGTH</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html index 3b8f943aceb..29023994f9d 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.res.<A HREF="../../../../reference/android/content/res/Configuration.html" target="_top"><font size="+3"><tt>Configuration</tt></font></A> +Class android.content.res.<A HREF="../../../../reference/android/content/res/Configuration.html" target="_top"><font size="+2"><code>Configuration</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,28 +85,28 @@ Class android.content.res.<A HREF="../../../../reference/android/content/res/Con <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Configuration.HARDKEYBOARDHIDDEN_NO"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_NO" target="_top"><xfont size="+1"><tt>HARDKEYBOARDHIDDEN_NO</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_NO" target="_top"><code>HARDKEYBOARDHIDDEN_NO</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Configuration.HARDKEYBOARDHIDDEN_UNDEFINED"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_UNDEFINED" target="_top"><xfont size="+1"><tt>HARDKEYBOARDHIDDEN_UNDEFINED</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_UNDEFINED" target="_top"><code>HARDKEYBOARDHIDDEN_UNDEFINED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Configuration.HARDKEYBOARDHIDDEN_YES"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_YES" target="_top"><xfont size="+1"><tt>HARDKEYBOARDHIDDEN_YES</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#HARDKEYBOARDHIDDEN_YES" target="_top"><code>HARDKEYBOARDHIDDEN_YES</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Configuration.hardKeyboardHidden"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#hardKeyboardHidden" target="_top"><xfont size="+1"><tt>hardKeyboardHidden</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#hardKeyboardHidden" target="_top"><code>hardKeyboardHidden</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html b/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html index 7fde1f98331..c3c057317dd 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.res.<A HREF="../../../../reference/android/content/res/Resources.html" target="_top"><font size="+3"><tt>Resources</tt></font></A> +Class android.content.res.<A HREF="../../../../reference/android/content/res/Resources.html" target="_top"><font size="+2"><code>Resources</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,35 +84,35 @@ Class android.content.res.<A HREF="../../../../reference/android/content/res/Res <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Resources.getBoolean_added(int)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/content/res/Resources.html#getBoolean(int)" target="_top"><xfont size="+1"><tt>getBoolean</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/content/res/Resources.html#getBoolean(int)" target="_top"><code>getBoolean</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Resources.getFraction_added(int, int, int)"></A> - <nobr><code>float</code> <A HREF="../../../../reference/android/content/res/Resources.html#getFraction(int, int, int)" target="_top"><xfont size="+1"><tt>getFraction</tt></font></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>float</code> <A HREF="../../../../reference/android/content/res/Resources.html#getFraction(int, int, int)" target="_top"><code>getFraction</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Resources.openRawResource_added(int, android.util.TypedValue)"></A> - <nobr><code>InputStream</code> <A HREF="../../../../reference/android/content/res/Resources.html#openRawResource(int, android.util.TypedValue)" target="_top"><xfont size="+1"><tt>openRawResource</tt></font></A>(<code>int,</nobr> TypedValue<nobr><nobr></code>)</nobr> + <nobr><code>InputStream</code> <A HREF="../../../../reference/android/content/res/Resources.html#openRawResource(int, android.util.TypedValue)" target="_top"><code>openRawResource</code></A>(<code>int,</nobr> TypedValue<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Resources.parseBundleExtra_added(java.lang.String, android.util.AttributeSet, android.os.Bundle)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Resources.html#parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle)" target="_top"><xfont size="+1"><tt>parseBundleExtra</tt></font></A>(<code>String,</nobr> AttributeSet<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Resources.html#parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle)" target="_top"><code>parseBundleExtra</code></A>(<code>String,</nobr> AttributeSet<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.Resources.parseBundleExtras_added(android.content.res.XmlResourceParser, android.os.Bundle)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Resources.html#parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle)" target="_top"><xfont size="+1"><tt>parseBundleExtras</tt></font></A>(<code>XmlResourceParser,</nobr> Bundle<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Resources.html#parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle)" target="_top"><code>parseBundleExtras</code></A>(<code>XmlResourceParser,</nobr> Bundle<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html b/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html index f1336fc7d7e..bb67b6d7c9f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.content.res.<A HREF="../../../../reference/android/content/res/TypedArray.html" target="_top"><font size="+3"><tt>TypedArray</tt></font></A> +Class android.content.res.<A HREF="../../../../reference/android/content/res/TypedArray.html" target="_top"><font size="+2"><code>TypedArray</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.content.res.<A HREF="../../../../reference/android/content/res/Typ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.content.res.TypedArray.getLayoutDimension_added(int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/TypedArray.html#getLayoutDimension(int, int)" target="_top"><xfont size="+1"><tt>getLayoutDimension</tt></font></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/TypedArray.html#getLayoutDimension(int, int)" target="_top"><code>getLayoutDimension</code></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html b/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html index 020402a4c71..f0725983811 100644 --- a/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html +++ b/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.database.<A HREF="../../../../reference/android/database/Cursor.html" target="_top"><font size="+3"><tt>Cursor</tt></font></A> +Interface android.database.<A HREF="../../../../reference/android/database/Cursor.html" target="_top"><font size="+2"><code>Cursor</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Interface android.database.<A HREF="../../../../reference/android/database/Curso <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.database.Cursor.getColumnIndex_changed(java.lang.String)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/database/Cursor.html#getColumnIndex(java.lang.String)" target="_top"><xfont size="+1"><tt>getColumnIndex</tt></font></A>(<code>String</code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/database/Cursor.html#getColumnIndex(java.lang.String)" target="_top"><code>getColumnIndex</code></A>(<code>String</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html b/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html index 3a7675d57da..ab1c1831203 100644 --- a/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html +++ b/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.database.<A HREF="../../../../reference/android/database/CursorWrapper.html" target="_top"><font size="+3"><tt>CursorWrapper</tt></font></A> +Class android.database.<A HREF="../../../../reference/android/database/CursorWrapper.html" target="_top"><font size="+2"><code>CursorWrapper</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.database.<A HREF="../../../../reference/android/database/CursorWra <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.database.CursorWrapper.getColumnIndex_changed(java.lang.String)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/database/CursorWrapper.html#getColumnIndex(java.lang.String)" target="_top"><xfont size="+1"><tt>getColumnIndex</tt></font></A>(<code>String</code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/database/CursorWrapper.html#getColumnIndex(java.lang.String)" target="_top"><code>getColumnIndex</code></A>(<code>String</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html b/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html index 114beaeeee6..fa57630811a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html +++ b/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.database.<A HREF="../../../../reference/android/database/DatabaseUtils.html" target="_top"><font size="+3"><tt>DatabaseUtils</tt></font></A> +Class android.database.<A HREF="../../../../reference/android/database/DatabaseUtils.html" target="_top"><font size="+2"><code>DatabaseUtils</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.database.<A HREF="../../../../reference/android/database/DatabaseU <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.database.DatabaseUtils.appendEscapedSQLString_changed(java.lang.StringBuilder, java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/database/DatabaseUtils.html#appendEscapedSQLString(java.lang.StringBuilder, java.lang.String)" target="_top"><xfont size="+1"><tt>appendEscapedSQLString</tt></font></A>(<code>StringBuilder,</nobr> String<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/database/DatabaseUtils.html#appendEscapedSQLString(java.lang.StringBuilder, java.lang.String)" target="_top"><code>appendEscapedSQLString</code></A>(<code>StringBuilder,</nobr> String<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html b/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html index cd59c1b8543..491a7076f28 100644 --- a/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html +++ b/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.database.sqlite.<A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html" target="_top"><font size="+3"><tt>SQLiteDatabase</tt></font></A> +Class android.database.sqlite.<A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html" target="_top"><font size="+2"><code>SQLiteDatabase</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.database.sqlite.<A HREF="../../../../reference/android/database/sq <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.database.sqlite.SQLiteDatabase.yieldIfContendedSafely_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html#yieldIfContendedSafely()" target="_top"><xfont size="+1"><tt>yieldIfContendedSafely</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html#yieldIfContendedSafely()" target="_top"><code>yieldIfContendedSafely</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -100,7 +99,7 @@ Class android.database.sqlite.<A HREF="../../../../reference/android/database/sq <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.database.sqlite.SQLiteDatabase.yieldIfContended_changed()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html#yieldIfContended()" target="_top"><xfont size="+1"><tt>yieldIfContended</tt></font></A>() </nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/database/sqlite/SQLiteDatabase.html#yieldIfContended()" target="_top"><code>yieldIfContended</code></A>() </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html index f6ddc29c10b..a2df5de1ad3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.<A HREF="../../../../reference/android/graphics/Bitmap.html" target="_top"><font size="+3"><tt>Bitmap</tt></font></A> +Class android.graphics.<A HREF="../../../../reference/android/graphics/Bitmap.html" target="_top"><font size="+2"><code>Bitmap</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.<A HREF="../../../../reference/android/graphics/Bitmap.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.Bitmap.copyPixelsFromBuffer_added(java.nio.Buffer)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#copyPixelsFromBuffer(java.nio.Buffer)" target="_top"><xfont size="+1"><tt>copyPixelsFromBuffer</tt></font></A>(<code>Buffer</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#copyPixelsFromBuffer(java.nio.Buffer)" target="_top"><code>copyPixelsFromBuffer</code></A>(<code>Buffer</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html index cf8ceef7ab5..01842b7a11a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.<A HREF="../../../../reference/android/graphics/Canvas.html" target="_top"><font size="+3"><tt>Canvas</tt></font></A> +Class android.graphics.<A HREF="../../../../reference/android/graphics/Canvas.html" target="_top"><font size="+2"><code>Canvas</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.<A HREF="../../../../reference/android/graphics/Canvas.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.Canvas.drawBitmap_added(int[], int, int, float, float, int, int, boolean, android.graphics.Paint)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Canvas.html#drawBitmap(int[], int, int, float, float, int, int, boolean, android.graphics.Paint)" target="_top"><xfont size="+1"><tt>drawBitmap</tt></font></A>(<code>int[],</nobr> int<nobr>,</nobr> int<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> boolean<nobr>,</nobr> Paint<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Canvas.html#drawBitmap(int[], int, int, float, float, int, int, boolean, android.graphics.Paint)" target="_top"><code>drawBitmap</code></A>(<code>int[],</nobr> int<nobr>,</nobr> int<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> boolean<nobr>,</nobr> Paint<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html index 1c0b1f342d3..0db409c7b20 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.<A HREF="../../../../reference/android/graphics/Rect.html" target="_top"><font size="+3"><tt>Rect</tt></font></A> +Class android.graphics.<A HREF="../../../../reference/android/graphics/Rect.html" target="_top"><font size="+2"><code>Rect</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.<A HREF="../../../../reference/android/graphics/Rect.html <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.Rect.toShortString_added()"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/graphics/Rect.html#toShortString()" target="_top"><xfont size="+1"><tt>toShortString</tt></font></A>()</nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/graphics/Rect.html#toShortString()" target="_top"><code>toShortString</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html b/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html index 4e9b91b2a2e..05c1da65e77 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.<A HREF="../../../../reference/android/graphics/RectF.html" target="_top"><font size="+3"><tt>RectF</tt></font></A> +Class android.graphics.<A HREF="../../../../reference/android/graphics/RectF.html" target="_top"><font size="+2"><code>RectF</code></font></A> </H2> <p><font xsize="+1">Added interface <code>android.os.Parcelable</code>.<br></font> <a NAME="constructors"></a> @@ -86,21 +85,21 @@ Class android.graphics.<A HREF="../../../../reference/android/graphics/RectF.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.RectF.describeContents_added()"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/graphics/RectF.html#describeContents()" target="_top"><xfont size="+1"><tt>describeContents</tt></font></A>()</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/graphics/RectF.html#describeContents()" target="_top"><code>describeContents</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.RectF.readFromParcel_added(android.os.Parcel)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/RectF.html#readFromParcel(android.os.Parcel)" target="_top"><xfont size="+1"><tt>readFromParcel</tt></font></A>(<code>Parcel</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/RectF.html#readFromParcel(android.os.Parcel)" target="_top"><code>readFromParcel</code></A>(<code>Parcel</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.RectF.writeToParcel_added(android.os.Parcel, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/RectF.html#writeToParcel(android.os.Parcel, int)" target="_top"><xfont size="+1"><tt>writeToParcel</tt></font></A>(<code>Parcel,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/RectF.html#writeToParcel(android.os.Parcel, int)" target="_top"><code>writeToParcel</code></A>(<code>Parcel,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -116,7 +115,7 @@ Class android.graphics.<A HREF="../../../../reference/android/graphics/RectF.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.RectF.CREATOR"></A> - <nobr><code>Creator</code> <A HREF="../../../../reference/android/graphics/RectF.html#CREATOR" target="_top"><xfont size="+1"><tt>CREATOR</tt></font></A></nobr> + <nobr><code>Creator</code> <A HREF="../../../../reference/android/graphics/RectF.html#CREATOR" target="_top"><code>CREATOR</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html index faa70b96da4..6b05cbfa3f2 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/Drawable.html" target="_top"><font size="+3"><tt>Drawable</tt></font></A> +Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/Drawable.html" target="_top"><font size="+2"><code>Drawable</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.drawable.Drawable.mutate_added()"></A> - <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/Drawable.html#mutate()" target="_top"><xfont size="+1"><tt>mutate</tt></font></A>()</nobr> + <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/Drawable.html#mutate()" target="_top"><code>mutate</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html index 8cffe1e0bdb..f4b8d7b3299 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/RotateDrawable.html" target="_top"><font size="+3"><tt>RotateDrawable</tt></font></A> +Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/RotateDrawable.html" target="_top"><font size="+2"><code>RotateDrawable</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.drawable.RotateDrawable.getDrawable_added()"></A> - <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/RotateDrawable.html#getDrawable()" target="_top"><xfont size="+1"><tt>getDrawable</tt></font></A>()</nobr> + <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/RotateDrawable.html#getDrawable()" target="_top"><code>getDrawable</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html index 529f38026eb..d525dd73e23 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/ScaleDrawable.html" target="_top"><font size="+3"><tt>ScaleDrawable</tt></font></A> +Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/ScaleDrawable.html" target="_top"><font size="+2"><code>ScaleDrawable</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.drawable.ScaleDrawable.getDrawable_added()"></A> - <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/ScaleDrawable.html#getDrawable()" target="_top"><xfont size="+1"><tt>getDrawable</tt></font></A>()</nobr> + <nobr><code>Drawable</code> <A HREF="../../../../reference/android/graphics/drawable/ScaleDrawable.html#getDrawable()" target="_top"><code>getDrawable</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html index d7dc8eafcf3..520dcd46a82 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/TransitionDrawable.html" target="_top"><font size="+3"><tt>TransitionDrawable</tt></font></A> +Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/drawable/TransitionDrawable.html" target="_top"><font size="+2"><code>TransitionDrawable</code></font></A> </H2> <a NAME="constructors"></a> <p> @@ -84,7 +83,7 @@ Class android.graphics.drawable.<A HREF="../../../../reference/android/graphics/ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.drawable.TransitionDrawable.ctor_added(android.graphics.drawable.Drawable[])"></A> - <nobr><A HREF="../../../../reference/android/graphics/drawable/TransitionDrawable.html#TransitionDrawable(android.graphics.drawable.Drawable[])" target="_top"><xfont size="+1"><tt>TransitionDrawable</tt></font></A>(<code>Drawable[]</code>)</nobr> + <nobr><A HREF="../../../../reference/android/graphics/drawable/TransitionDrawable.html#TransitionDrawable(android.graphics.drawable.Drawable[])" target="_top"><code>TransitionDrawable</code></A>(<code>Drawable[]</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html index 836aa921591..5f03e03ed4b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.graphics.drawable.shapes.<A HREF="../../../../reference/android/graphics/drawable/shapes/Shape.html" target="_top"><font size="+3"><tt>Shape</tt></font></A> +Class android.graphics.drawable.shapes.<A HREF="../../../../reference/android/graphics/drawable/shapes/Shape.html" target="_top"><font size="+2"><code>Shape</code></font></A> </H2> <p><font xsize="+1">Added interface <code>java.lang.Cloneable</code>.<br></font> <a NAME="constructors"></a> @@ -86,11 +85,11 @@ Class android.graphics.drawable.shapes.<A HREF="../../../../reference/android/gr <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.graphics.drawable.shapes.Shape.clone_changed()"></A> - <nobr><code>Shape</code> <A HREF="../../../../reference/android/graphics/drawable/shapes/Shape.html#clone()" target="_top"><xfont size="+1"><tt>clone</tt></font></A>() </nobr> + <nobr><code>Shape</code> <A HREF="../../../../reference/android/graphics/drawable/shapes/Shape.html#clone()" target="_top"><code>clone</code></A>() </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change in return type from <code>Object</code> to <code>Shape</code>.<br> - Method was inherited from <tt>java.lang.Object</tt>, but is now defined locally. Change of visibility from protected to public.<br> + Method was inherited from <code>java.lang.Object</code>, but is now defined locally. Change of visibility from protected to public.<br> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html b/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html index b7a0dd37a12..84fea2af51e 100644 --- a/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.html" target="_top"><font size="+3"><tt>Camera</tt></font></A> +Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.html" target="_top"><font size="+2"><code>Camera</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.Camera.setOneShotPreviewCallback_added(android.hardware.Camera.PreviewCallback)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/Camera.html#setOneShotPreviewCallback(android.hardware.Camera.PreviewCallback)" target="_top"><xfont size="+1"><tt>setOneShotPreviewCallback</tt></font></A>(<code>PreviewCallback</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/Camera.html#setOneShotPreviewCallback(android.hardware.Camera.PreviewCallback)" target="_top"><code>setOneShotPreviewCallback</code></A>(<code>PreviewCallback</code>)</nobr> </TD> <TD> </TD> </TR> @@ -100,7 +99,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.Camera.setPreviewDisplay_changed(android.view.SurfaceHolder)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/Camera.html#setPreviewDisplay(android.view.SurfaceHolder)" target="_top"><xfont size="+1"><tt>setPreviewDisplay</tt></font></A>(<code>SurfaceHolder</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/Camera.html#setPreviewDisplay(android.view.SurfaceHolder)" target="_top"><code>setPreviewDisplay</code></A>(<code>SurfaceHolder</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change in exceptions thrown from no exceptions to <code>java.io.IOException</code>.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html index 9b63571fcf5..8a4f15aadf8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.hardware.<A HREF="../../../../reference/android/hardware/SensorListener.html" target="_top"><font size="+3"><tt>SensorListener</tt></font></A> +Interface android.hardware.<A HREF="../../../../reference/android/hardware/SensorListener.html" target="_top"><font size="+2"><code>SensorListener</code></font></A> </H2> <p><b>Now deprecated</b>.<br> <a NAME="constructors"></a> diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html index e42eebaf21f..d276bd78094 100644 --- a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorManager.html" target="_top"><font size="+3"><tt>SensorManager</tt></font></A> +Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorManager.html" target="_top"><font size="+2"><code>SensorManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,70 +84,70 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getDefaultSensor_added(int)"></A> - <nobr><code>Sensor</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getDefaultSensor(int)" target="_top"><xfont size="+1"><tt>getDefaultSensor</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>Sensor</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getDefaultSensor(int)" target="_top"><code>getDefaultSensor</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getInclination_added(float[])"></A> - <nobr><code>float</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getInclination(float[])" target="_top"><xfont size="+1"><tt>getInclination</tt></font></A>(<code>float[]</code>)</nobr> + <nobr><code>float</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getInclination(float[])" target="_top"><code>getInclination</code></A>(<code>float[]</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getOrientation_added(float[], float[])"></A> - <nobr><code>float[]</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getOrientation(float[], float[])" target="_top"><xfont size="+1"><tt>getOrientation</tt></font></A>(<code>float[],</nobr> float[]<nobr><nobr></code>)</nobr> + <nobr><code>float[]</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getOrientation(float[], float[])" target="_top"><code>getOrientation</code></A>(<code>float[],</nobr> float[]<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getRotationMatrix_added(float[], float[], float[], float[])"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getRotationMatrix(float[], float[], float[], float[])" target="_top"><xfont size="+1"><tt>getRotationMatrix</tt></font></A>(<code>float[],</nobr> float[]<nobr>,</nobr> float[]<nobr>,</nobr> float[]<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getRotationMatrix(float[], float[], float[], float[])" target="_top"><code>getRotationMatrix</code></A>(<code>float[],</nobr> float[]<nobr>,</nobr> float[]<nobr>,</nobr> float[]<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getSensorList_added(int)"></A> - <nobr><code>List<Sensor></code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getSensorList(int)" target="_top"><xfont size="+1"><tt>getSensorList</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>List<Sensor></code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getSensorList(int)" target="_top"><code>getSensorList</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.registerListener_added(android.hardware.SensorEventListener, android.hardware.Sensor, int)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int)" target="_top"><xfont size="+1"><tt>registerListener</tt></font></A>(<code>SensorEventListener,</nobr> Sensor<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int)" target="_top"><code>registerListener</code></A>(<code>SensorEventListener,</nobr> Sensor<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.registerListener_added(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler)" target="_top"><xfont size="+1"><tt>registerListener</tt></font></A>(<code>SensorEventListener,</nobr> Sensor<nobr>,</nobr> int<nobr>,</nobr> Handler<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler)" target="_top"><code>registerListener</code></A>(<code>SensorEventListener,</nobr> Sensor<nobr>,</nobr> int<nobr>,</nobr> Handler<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.remapCoordinateSystem_added(float[], int, int, float[])"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#remapCoordinateSystem(float[], int, int, float[])" target="_top"><xfont size="+1"><tt>remapCoordinateSystem</tt></font></A>(<code>float[],</nobr> int<nobr>,</nobr> int<nobr>,</nobr> float[]<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#remapCoordinateSystem(float[], int, int, float[])" target="_top"><code>remapCoordinateSystem</code></A>(<code>float[],</nobr> int<nobr>,</nobr> int<nobr>,</nobr> float[]<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.unregisterListener_added(android.hardware.SensorEventListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorEventListener)" target="_top"><xfont size="+1"><tt>unregisterListener</tt></font></A>(<code>SensorEventListener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorEventListener)" target="_top"><code>unregisterListener</code></A>(<code>SensorEventListener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.unregisterListener_added(android.hardware.SensorEventListener, android.hardware.Sensor)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorEventListener, android.hardware.Sensor)" target="_top"><xfont size="+1"><tt>unregisterListener</tt></font></A>(<code>SensorEventListener,</nobr> Sensor<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorEventListener, android.hardware.Sensor)" target="_top"><code>unregisterListener</code></A>(<code>SensorEventListener,</nobr> Sensor<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -163,7 +162,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.getSensors_changed()"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getSensors()" target="_top"><xfont size="+1"><tt>getSensors</tt></font></A>() </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#getSensors()" target="_top"><code>getSensors</code></A>() </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -173,7 +172,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.registerListener_changed(android.hardware.SensorListener, int)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorListener, int)" target="_top"><xfont size="+1"><tt>registerListener</tt></font></A>(<code>SensorListener,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorListener, int)" target="_top"><code>registerListener</code></A>(<code>SensorListener,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -183,7 +182,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.registerListener_changed(android.hardware.SensorListener, int, int)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorListener, int, int)" target="_top"><xfont size="+1"><tt>registerListener</tt></font></A>(<code>SensorListener,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorListener, int, int)" target="_top"><code>registerListener</code></A>(<code>SensorListener,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -193,7 +192,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.unregisterListener_changed(android.hardware.SensorListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorListener)" target="_top"><xfont size="+1"><tt>unregisterListener</tt></font></A>(<code>SensorListener</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorListener)" target="_top"><code>unregisterListener</code></A>(<code>SensorListener</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -203,7 +202,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.unregisterListener_changed(android.hardware.SensorListener, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorListener, int)" target="_top"><xfont size="+1"><tt>unregisterListener</tt></font></A>(<code>SensorListener,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#unregisterListener(android.hardware.SensorListener, int)" target="_top"><code>unregisterListener</code></A>(<code>SensorListener,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -222,42 +221,42 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_MINUS_X"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_X" target="_top"><xfont size="+1"><tt>AXIS_MINUS_X</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_X" target="_top"><code>AXIS_MINUS_X</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_MINUS_Y"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_Y" target="_top"><xfont size="+1"><tt>AXIS_MINUS_Y</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_Y" target="_top"><code>AXIS_MINUS_Y</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_MINUS_Z"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_Z" target="_top"><xfont size="+1"><tt>AXIS_MINUS_Z</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_MINUS_Z" target="_top"><code>AXIS_MINUS_Z</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_X"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_X" target="_top"><xfont size="+1"><tt>AXIS_X</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_X" target="_top"><code>AXIS_X</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_Y"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_Y" target="_top"><xfont size="+1"><tt>AXIS_Y</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_Y" target="_top"><code>AXIS_Y</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.AXIS_Z"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_Z" target="_top"><xfont size="+1"><tt>AXIS_Z</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#AXIS_Z" target="_top"><code>AXIS_Z</code></A></nobr> </TD> <TD> </TD> </TR> @@ -272,7 +271,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.DATA_X"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_X" target="_top"><xfont size="+1"><tt>DATA_X</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_X" target="_top"><code>DATA_X</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -281,7 +280,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.DATA_Y"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_Y" target="_top"><xfont size="+1"><tt>DATA_Y</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_Y" target="_top"><code>DATA_Y</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -290,7 +289,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.DATA_Z"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_Z" target="_top"><xfont size="+1"><tt>DATA_Z</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#DATA_Z" target="_top"><code>DATA_Z</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -299,7 +298,7 @@ Class android.hardware.<A HREF="../../../../reference/android/hardware/SensorMan <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.LIGHT_NO_MOON"></A> - <nobr><code>float</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#LIGHT_NO_MOON" target="_top"><xfont size="+1"><tt>LIGHT_NO_MOON</tt></font></A></nobr> </TD> + <nobr><code>float</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#LIGHT_NO_MOON" target="_top"><code>LIGHT_NO_MOON</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Changed in value from 0.0010f to 0.001f. </TD> @@ -308,7 +307,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.RAW_DATA_INDEX"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_INDEX" target="_top"><xfont size="+1"><tt>RAW_DATA_INDEX</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_INDEX" target="_top"><code>RAW_DATA_INDEX</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -317,7 +316,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.RAW_DATA_X"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_X" target="_top"><xfont size="+1"><tt>RAW_DATA_X</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_X" target="_top"><code>RAW_DATA_X</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -326,7 +325,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.RAW_DATA_Y"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_Y" target="_top"><xfont size="+1"><tt>RAW_DATA_Y</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_Y" target="_top"><code>RAW_DATA_Y</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -335,7 +334,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.RAW_DATA_Z"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_Z" target="_top"><xfont size="+1"><tt>RAW_DATA_Z</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#RAW_DATA_Z" target="_top"><code>RAW_DATA_Z</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -344,7 +343,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_ACCELEROMETER"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ACCELEROMETER" target="_top"><xfont size="+1"><tt>SENSOR_ACCELEROMETER</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ACCELEROMETER" target="_top"><code>SENSOR_ACCELEROMETER</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -353,7 +352,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_ALL"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ALL" target="_top"><xfont size="+1"><tt>SENSOR_ALL</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ALL" target="_top"><code>SENSOR_ALL</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -362,7 +361,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_LIGHT"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_LIGHT" target="_top"><xfont size="+1"><tt>SENSOR_LIGHT</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_LIGHT" target="_top"><code>SENSOR_LIGHT</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -371,7 +370,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_MAGNETIC_FIELD"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MAGNETIC_FIELD" target="_top"><xfont size="+1"><tt>SENSOR_MAGNETIC_FIELD</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MAGNETIC_FIELD" target="_top"><code>SENSOR_MAGNETIC_FIELD</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -380,7 +379,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_MAX"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MAX" target="_top"><xfont size="+1"><tt>SENSOR_MAX</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MAX" target="_top"><code>SENSOR_MAX</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -389,7 +388,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_MIN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MIN" target="_top"><xfont size="+1"><tt>SENSOR_MIN</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_MIN" target="_top"><code>SENSOR_MIN</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -398,7 +397,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_ORIENTATION"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ORIENTATION" target="_top"><xfont size="+1"><tt>SENSOR_ORIENTATION</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ORIENTATION" target="_top"><code>SENSOR_ORIENTATION</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -407,7 +406,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_ORIENTATION_RAW"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ORIENTATION_RAW" target="_top"><xfont size="+1"><tt>SENSOR_ORIENTATION_RAW</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_ORIENTATION_RAW" target="_top"><code>SENSOR_ORIENTATION_RAW</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -416,7 +415,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_PROXIMITY"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_PROXIMITY" target="_top"><xfont size="+1"><tt>SENSOR_PROXIMITY</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_PROXIMITY" target="_top"><code>SENSOR_PROXIMITY</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -425,7 +424,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_TEMPERATURE"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_TEMPERATURE" target="_top"><xfont size="+1"><tt>SENSOR_TEMPERATURE</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_TEMPERATURE" target="_top"><code>SENSOR_TEMPERATURE</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -434,7 +433,7 @@ Changed in value from 0.0010f to 0.001f. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.hardware.SensorManager.SENSOR_TRICORDER"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_TRICORDER" target="_top"><xfont size="+1"><tt>SENSOR_TRICORDER</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/hardware/SensorManager.html#SENSOR_TRICORDER" target="_top"><code>SENSOR_TRICORDER</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.location.Location.html b/docs/html/sdk/api_diff/3/changes/android.location.Location.html index 03d3f894f33..05f5191fe15 100644 --- a/docs/html/sdk/api_diff/3/changes/android.location.Location.html +++ b/docs/html/sdk/api_diff/3/changes/android.location.Location.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.location.<A HREF="../../../../reference/android/location/Location.html" target="_top"><font size="+3"><tt>Location</tt></font></A> +Class android.location.<A HREF="../../../../reference/android/location/Location.html" target="_top"><font size="+2"><code>Location</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.location.<A HREF="../../../../reference/android/location/Location. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.Location.dump_added(android.util.Printer, java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/Location.html#dump(android.util.Printer, java.lang.String)" target="_top"><xfont size="+1"><tt>dump</tt></font></A>(<code>Printer,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/Location.html#dump(android.util.Printer, java.lang.String)" target="_top"><code>dump</code></A>(<code>Printer,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html b/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html index 4cd68386cbd..d98b5f38c56 100644 --- a/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.location.<A HREF="../../../../reference/android/location/LocationManager.html" target="_top"><font size="+3"><tt>LocationManager</tt></font></A> +Class android.location.<A HREF="../../../../reference/android/location/LocationManager.html" target="_top"><font size="+2"><code>LocationManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,98 +84,98 @@ Class android.location.<A HREF="../../../../reference/android/location/LocationM <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.addGpsStatusListener_added(android.location.GpsStatus.Listener)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationManager.html#addGpsStatusListener(android.location.GpsStatus.Listener)" target="_top"><xfont size="+1"><tt>addGpsStatusListener</tt></font></A>(<code>Listener</code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationManager.html#addGpsStatusListener(android.location.GpsStatus.Listener)" target="_top"><code>addGpsStatusListener</code></A>(<code>Listener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.addTestProvider_added(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)" target="_top"><xfont size="+1"><tt>addTestProvider</tt></font></A>(<code>String,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)" target="_top"><code>addTestProvider</code></A>(<code>String,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.clearTestProviderEnabled_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderEnabled(java.lang.String)" target="_top"><xfont size="+1"><tt>clearTestProviderEnabled</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderEnabled(java.lang.String)" target="_top"><code>clearTestProviderEnabled</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.clearTestProviderLocation_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderLocation(java.lang.String)" target="_top"><xfont size="+1"><tt>clearTestProviderLocation</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderLocation(java.lang.String)" target="_top"><code>clearTestProviderLocation</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.clearTestProviderStatus_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderStatus(java.lang.String)" target="_top"><xfont size="+1"><tt>clearTestProviderStatus</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#clearTestProviderStatus(java.lang.String)" target="_top"><code>clearTestProviderStatus</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.getGpsStatus_added(android.location.GpsStatus)"></A> - <nobr><code>GpsStatus</code> <A HREF="../../../../reference/android/location/LocationManager.html#getGpsStatus(android.location.GpsStatus)" target="_top"><xfont size="+1"><tt>getGpsStatus</tt></font></A>(<code>GpsStatus</code>)</nobr> + <nobr><code>GpsStatus</code> <A HREF="../../../../reference/android/location/LocationManager.html#getGpsStatus(android.location.GpsStatus)" target="_top"><code>getGpsStatus</code></A>(<code>GpsStatus</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.removeGpsStatusListener_added(android.location.GpsStatus.Listener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeGpsStatusListener(android.location.GpsStatus.Listener)" target="_top"><xfont size="+1"><tt>removeGpsStatusListener</tt></font></A>(<code>Listener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeGpsStatusListener(android.location.GpsStatus.Listener)" target="_top"><code>removeGpsStatusListener</code></A>(<code>Listener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.removeTestProvider_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeTestProvider(java.lang.String)" target="_top"><xfont size="+1"><tt>removeTestProvider</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeTestProvider(java.lang.String)" target="_top"><code>removeTestProvider</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.removeUpdates_added(android.app.PendingIntent)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeUpdates(android.app.PendingIntent)" target="_top"><xfont size="+1"><tt>removeUpdates</tt></font></A>(<code>PendingIntent</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#removeUpdates(android.app.PendingIntent)" target="_top"><code>removeUpdates</code></A>(<code>PendingIntent</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.requestLocationUpdates_added(java.lang.String, long, float, android.app.PendingIntent)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String, long, float, android.app.PendingIntent)" target="_top"><xfont size="+1"><tt>requestLocationUpdates</tt></font></A>(<code>String,</nobr> long<nobr>,</nobr> float<nobr>,</nobr> PendingIntent<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String, long, float, android.app.PendingIntent)" target="_top"><code>requestLocationUpdates</code></A>(<code>String,</nobr> long<nobr>,</nobr> float<nobr>,</nobr> PendingIntent<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.sendExtraCommand_added(java.lang.String, java.lang.String, android.os.Bundle)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationManager.html#sendExtraCommand(java.lang.String, java.lang.String, android.os.Bundle)" target="_top"><xfont size="+1"><tt>sendExtraCommand</tt></font></A>(<code>String,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationManager.html#sendExtraCommand(java.lang.String, java.lang.String, android.os.Bundle)" target="_top"><code>sendExtraCommand</code></A>(<code>String,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.setTestProviderEnabled_added(java.lang.String, boolean)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderEnabled(java.lang.String, boolean)" target="_top"><xfont size="+1"><tt>setTestProviderEnabled</tt></font></A>(<code>String,</nobr> boolean<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderEnabled(java.lang.String, boolean)" target="_top"><code>setTestProviderEnabled</code></A>(<code>String,</nobr> boolean<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.setTestProviderLocation_added(java.lang.String, android.location.Location)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderLocation(java.lang.String, android.location.Location)" target="_top"><xfont size="+1"><tt>setTestProviderLocation</tt></font></A>(<code>String,</nobr> Location<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderLocation(java.lang.String, android.location.Location)" target="_top"><code>setTestProviderLocation</code></A>(<code>String,</nobr> Location<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.setTestProviderStatus_added(java.lang.String, int, android.os.Bundle, long)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderStatus(java.lang.String, int, android.os.Bundle, long)" target="_top"><xfont size="+1"><tt>setTestProviderStatus</tt></font></A>(<code>String,</nobr> int<nobr>,</nobr> Bundle<nobr>,</nobr> long<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/location/LocationManager.html#setTestProviderStatus(java.lang.String, int, android.os.Bundle, long)" target="_top"><code>setTestProviderStatus</code></A>(<code>String,</nobr> int<nobr>,</nobr> Bundle<nobr>,</nobr> long<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -192,21 +191,21 @@ Class android.location.<A HREF="../../../../reference/android/location/LocationM <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.KEY_LOCATION_CHANGED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_LOCATION_CHANGED" target="_top"><xfont size="+1"><tt>KEY_LOCATION_CHANGED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_LOCATION_CHANGED" target="_top"><code>KEY_LOCATION_CHANGED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.KEY_PROVIDER_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_PROVIDER_ENABLED" target="_top"><xfont size="+1"><tt>KEY_PROVIDER_ENABLED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_PROVIDER_ENABLED" target="_top"><code>KEY_PROVIDER_ENABLED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.location.LocationManager.KEY_STATUS_CHANGED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_STATUS_CHANGED" target="_top"><xfont size="+1"><tt>KEY_STATUS_CHANGED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/location/LocationManager.html#KEY_STATUS_CHANGED" target="_top"><code>KEY_STATUS_CHANGED</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html index a98d840ffaf..00c04bf77c0 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/AudioManager.html" target="_top"><font size="+3"><tt>AudioManager</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/AudioManager.html" target="_top"><font size="+2"><code>AudioManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.media.<A HREF="../../../../reference/android/media/AudioManager.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.isBluetoothA2dpOn_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/media/AudioManager.html#isBluetoothA2dpOn()" target="_top"><xfont size="+1"><tt>isBluetoothA2dpOn</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/media/AudioManager.html#isBluetoothA2dpOn()" target="_top"><code>isBluetoothA2dpOn</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.playSoundEffect_added(int, float)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/AudioManager.html#playSoundEffect(int, float)" target="_top"><xfont size="+1"><tt>playSoundEffect</tt></font></A>(<code>int,</nobr> float<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/AudioManager.html#playSoundEffect(int, float)" target="_top"><code>playSoundEffect</code></A>(<code>int,</nobr> float<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.setBluetoothA2dpOn_added(boolean)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/AudioManager.html#setBluetoothA2dpOn(boolean)" target="_top"><xfont size="+1"><tt>setBluetoothA2dpOn</tt></font></A>(<code>boolean</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/AudioManager.html#setBluetoothA2dpOn(boolean)" target="_top"><code>setBluetoothA2dpOn</code></A>(<code>boolean</code>)</nobr> </TD> <TD> </TD> </TR> @@ -115,56 +114,56 @@ Class android.media.<A HREF="../../../../reference/android/media/AudioManager.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/media/AudioManager.html#ACTION_AUDIO_BECOMING_NOISY" target="_top"><xfont size="+1"><tt>ACTION_AUDIO_BECOMING_NOISY</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/media/AudioManager.html#ACTION_AUDIO_BECOMING_NOISY" target="_top"><code>ACTION_AUDIO_BECOMING_NOISY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.FX_KEYPRESS_DELETE"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_DELETE" target="_top"><xfont size="+1"><tt>FX_KEYPRESS_DELETE</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_DELETE" target="_top"><code>FX_KEYPRESS_DELETE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.FX_KEYPRESS_RETURN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_RETURN" target="_top"><xfont size="+1"><tt>FX_KEYPRESS_RETURN</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_RETURN" target="_top"><code>FX_KEYPRESS_RETURN</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.FX_KEYPRESS_SPACEBAR"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_SPACEBAR" target="_top"><xfont size="+1"><tt>FX_KEYPRESS_SPACEBAR</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_SPACEBAR" target="_top"><code>FX_KEYPRESS_SPACEBAR</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.FX_KEYPRESS_STANDARD"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_STANDARD" target="_top"><xfont size="+1"><tt>FX_KEYPRESS_STANDARD</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#FX_KEYPRESS_STANDARD" target="_top"><code>FX_KEYPRESS_STANDARD</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.ROUTE_BLUETOOTH_A2DP"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH_A2DP" target="_top"><xfont size="+1"><tt>ROUTE_BLUETOOTH_A2DP</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH_A2DP" target="_top"><code>ROUTE_BLUETOOTH_A2DP</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.ROUTE_BLUETOOTH_SCO"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH_SCO" target="_top"><xfont size="+1"><tt>ROUTE_BLUETOOTH_SCO</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH_SCO" target="_top"><code>ROUTE_BLUETOOTH_SCO</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.STREAM_NOTIFICATION"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#STREAM_NOTIFICATION" target="_top"><xfont size="+1"><tt>STREAM_NOTIFICATION</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#STREAM_NOTIFICATION" target="_top"><code>STREAM_NOTIFICATION</code></A></nobr> </TD> <TD> </TD> </TR> @@ -179,7 +178,7 @@ Class android.media.<A HREF="../../../../reference/android/media/AudioManager.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.NUM_STREAMS"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#NUM_STREAMS" target="_top"><xfont size="+1"><tt>NUM_STREAMS</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#NUM_STREAMS" target="_top"><code>NUM_STREAMS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -188,7 +187,7 @@ Class android.media.<A HREF="../../../../reference/android/media/AudioManager.ht <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.AudioManager.ROUTE_BLUETOOTH"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH" target="_top"><xfont size="+1"><tt>ROUTE_BLUETOOTH</tt></font></A></nobr> </TD> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/AudioManager.html#ROUTE_BLUETOOTH" target="_top"><code>ROUTE_BLUETOOTH</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html index 7704e1232ee..f3e24db7ec9 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/MediaPlayer.html" target="_top"><font size="+3"><tt>MediaPlayer</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/MediaPlayer.html" target="_top"><font size="+2"><code>MediaPlayer</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.media.<A HREF="../../../../reference/android/media/MediaPlayer.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.isLooping_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#isLooping()" target="_top"><xfont size="+1"><tt>isLooping</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#isLooping()" target="_top"><code>isLooping</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#setOnInfoListener(android.media.MediaPlayer.OnInfoListener)" target="_top"><xfont size="+1"><tt>setOnInfoListener</tt></font></A>(<code>OnInfoListener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#setOnInfoListener(android.media.MediaPlayer.OnInfoListener)" target="_top"><code>setOnInfoListener</code></A>(<code>OnInfoListener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.setOnVideoSizeChangedListener_added(android.media.MediaPlayer.OnVideoSizeChangedListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener)" target="_top"><xfont size="+1"><tt>setOnVideoSizeChangedListener</tt></font></A>(<code>OnVideoSizeChangedListener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener)" target="_top"><code>setOnVideoSizeChangedListener</code></A>(<code>OnVideoSizeChangedListener</code>)</nobr> </TD> <TD> </TD> </TR> @@ -115,35 +114,35 @@ Class android.media.<A HREF="../../../../reference/android/media/MediaPlayer.htm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK" target="_top"><xfont size="+1"><tt>MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK" target="_top"><code>MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.MEDIA_INFO_BAD_INTERLEAVING"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_BAD_INTERLEAVING" target="_top"><xfont size="+1"><tt>MEDIA_INFO_BAD_INTERLEAVING</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_BAD_INTERLEAVING" target="_top"><code>MEDIA_INFO_BAD_INTERLEAVING</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.MEDIA_INFO_NOT_SEEKABLE"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_NOT_SEEKABLE" target="_top"><xfont size="+1"><tt>MEDIA_INFO_NOT_SEEKABLE</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_NOT_SEEKABLE" target="_top"><code>MEDIA_INFO_NOT_SEEKABLE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.MEDIA_INFO_UNKNOWN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_UNKNOWN" target="_top"><xfont size="+1"><tt>MEDIA_INFO_UNKNOWN</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_UNKNOWN" target="_top"><code>MEDIA_INFO_UNKNOWN</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaPlayer.MEDIA_INFO_VIDEO_TRACK_LAGGING"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_VIDEO_TRACK_LAGGING" target="_top"><xfont size="+1"><tt>MEDIA_INFO_VIDEO_TRACK_LAGGING</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_VIDEO_TRACK_LAGGING" target="_top"><code>MEDIA_INFO_VIDEO_TRACK_LAGGING</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html index 0967c567c7f..d6340c16570 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.OutputFormat.html" target="_top"><font size="+3"><tt>MediaRecorder.OutputFormat</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.OutputFormat.html" target="_top"><font size="+2"><code>MediaRecorder.OutputFormat</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.O <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.OutputFormat.RAW_AMR"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.OutputFormat.html#RAW_AMR" target="_top"><xfont size="+1"><tt>RAW_AMR</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.OutputFormat.html#RAW_AMR" target="_top"><code>RAW_AMR</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html index 9daf4c350aa..ff464811551 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.html" target="_top"><font size="+3"><tt>MediaRecorder</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.html" target="_top"><font size="+2"><code>MediaRecorder</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,70 +84,70 @@ Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.h <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setCamera_added(android.hardware.Camera)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera)" target="_top"><xfont size="+1"><tt>setCamera</tt></font></A>(<code>Camera</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera)" target="_top"><code>setCamera</code></A>(<code>Camera</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setMaxDuration_added(int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setMaxDuration(int)" target="_top"><xfont size="+1"><tt>setMaxDuration</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setMaxDuration(int)" target="_top"><code>setMaxDuration</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setMaxFileSize_added(long)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setMaxFileSize(long)" target="_top"><xfont size="+1"><tt>setMaxFileSize</tt></font></A>(<code>long</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setMaxFileSize(long)" target="_top"><code>setMaxFileSize</code></A>(<code>long</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setOnErrorListener_added(android.media.MediaRecorder.OnErrorListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOnErrorListener(android.media.MediaRecorder.OnErrorListener)" target="_top"><xfont size="+1"><tt>setOnErrorListener</tt></font></A>(<code>OnErrorListener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOnErrorListener(android.media.MediaRecorder.OnErrorListener)" target="_top"><code>setOnErrorListener</code></A>(<code>OnErrorListener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setOnInfoListener_added(android.media.MediaRecorder.OnInfoListener)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOnInfoListener(android.media.MediaRecorder.OnInfoListener)" target="_top"><xfont size="+1"><tt>setOnInfoListener</tt></font></A>(<code>OnInfoListener</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOnInfoListener(android.media.MediaRecorder.OnInfoListener)" target="_top"><code>setOnInfoListener</code></A>(<code>OnInfoListener</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setOutputFile_added(java.io.FileDescriptor)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOutputFile(java.io.FileDescriptor)" target="_top"><xfont size="+1"><tt>setOutputFile</tt></font></A>(<code>FileDescriptor</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setOutputFile(java.io.FileDescriptor)" target="_top"><code>setOutputFile</code></A>(<code>FileDescriptor</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setVideoEncoder_added(int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoEncoder(int)" target="_top"><xfont size="+1"><tt>setVideoEncoder</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoEncoder(int)" target="_top"><code>setVideoEncoder</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setVideoFrameRate_added(int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoFrameRate(int)" target="_top"><xfont size="+1"><tt>setVideoFrameRate</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoFrameRate(int)" target="_top"><code>setVideoFrameRate</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setVideoSize_added(int, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoSize(int, int)" target="_top"><xfont size="+1"><tt>setVideoSize</tt></font></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoSize(int, int)" target="_top"><code>setVideoSize</code></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.setVideoSource_added(int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoSource(int)" target="_top"><xfont size="+1"><tt>setVideoSource</tt></font></A>(<code>int</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#setVideoSource(int)" target="_top"><code>setVideoSource</code></A>(<code>int</code>)</nobr> </TD> <TD> </TD> </TR> @@ -163,7 +162,7 @@ Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.h <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.prepare_changed()"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#prepare()" target="_top"><xfont size="+1"><tt>prepare</tt></font></A>() </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#prepare()" target="_top"><code>prepare</code></A>() </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change in exceptions thrown from <code>java.lang.IllegalStateException</code> to (<code>java.io.IOException, java.lang.IllegalStateException</code>).<br> @@ -182,28 +181,28 @@ Change in exceptions thrown from <code>java.lang.IllegalStateException</code> to <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_ERROR_UNKNOWN" target="_top"><xfont size="+1"><tt>MEDIA_RECORDER_ERROR_UNKNOWN</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_ERROR_UNKNOWN" target="_top"><code>MEDIA_RECORDER_ERROR_UNKNOWN</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_MAX_DURATION_REACHED" target="_top"><xfont size="+1"><tt>MEDIA_RECORDER_INFO_MAX_DURATION_REACHED</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_MAX_DURATION_REACHED" target="_top"><code>MEDIA_RECORDER_INFO_MAX_DURATION_REACHED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED" target="_top"><xfont size="+1"><tt>MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED" target="_top"><code>MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.MediaRecorder.MEDIA_RECORDER_INFO_UNKNOWN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_UNKNOWN" target="_top"><xfont size="+1"><tt>MEDIA_RECORDER_INFO_UNKNOWN</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_RECORDER_INFO_UNKNOWN" target="_top"><code>MEDIA_RECORDER_INFO_UNKNOWN</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html b/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html index e9fdbfc24b0..a4f729a1f4a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/RingtoneManager.html" target="_top"><font size="+3"><tt>RingtoneManager</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/RingtoneManager.html" target="_top"><font size="+2"><code>RingtoneManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.media.<A HREF="../../../../reference/android/media/RingtoneManager <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.RingtoneManager.inferStreamType_added()"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/RingtoneManager.html#inferStreamType()" target="_top"><xfont size="+1"><tt>inferStreamType</tt></font></A>()</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/RingtoneManager.html#inferStreamType()" target="_top"><code>inferStreamType</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html b/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html index 6e765d837f7..52f33011880 100644 --- a/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html +++ b/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.media.<A HREF="../../../../reference/android/media/SoundPool.html" target="_top"><font size="+3"><tt>SoundPool</tt></font></A> +Class android.media.<A HREF="../../../../reference/android/media/SoundPool.html" target="_top"><font size="+2"><code>SoundPool</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,14 +84,14 @@ Class android.media.<A HREF="../../../../reference/android/media/SoundPool.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.SoundPool.load_added(android.content.res.AssetFileDescriptor, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/SoundPool.html#load(android.content.res.AssetFileDescriptor, int)" target="_top"><xfont size="+1"><tt>load</tt></font></A>(<code>AssetFileDescriptor,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/SoundPool.html#load(android.content.res.AssetFileDescriptor, int)" target="_top"><code>load</code></A>(<code>AssetFileDescriptor,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.media.SoundPool.load_added(java.io.FileDescriptor, long, long, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/media/SoundPool.html#load(java.io.FileDescriptor, long, long, int)" target="_top"><xfont size="+1"><tt>load</tt></font></A>(<code>FileDescriptor,</nobr> long<nobr>,</nobr> long<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/media/SoundPool.html#load(java.io.FileDescriptor, long, long, int)" target="_top"><code>load</code></A>(<code>FileDescriptor,</nobr> long<nobr>,</nobr> long<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html b/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html index 7b0750e02f1..b78d6a0e9c2 100644 --- a/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.net.<A HREF="../../../../reference/android/net/ConnectivityManager.html" target="_top"><font size="+3"><tt>ConnectivityManager</tt></font></A> +Class android.net.<A HREF="../../../../reference/android/net/ConnectivityManager.html" target="_top"><font size="+2"><code>ConnectivityManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.net.<A HREF="../../../../reference/android/net/ConnectivityManager <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.ConnectivityManager.getBackgroundDataSetting_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/net/ConnectivityManager.html#getBackgroundDataSetting()" target="_top"><xfont size="+1"><tt>getBackgroundDataSetting</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/net/ConnectivityManager.html#getBackgroundDataSetting()" target="_top"><code>getBackgroundDataSetting</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -101,7 +100,7 @@ Class android.net.<A HREF="../../../../reference/android/net/ConnectivityManager <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/net/ConnectivityManager.html#ACTION_BACKGROUND_DATA_SETTING_CHANGED" target="_top"><xfont size="+1"><tt>ACTION_BACKGROUND_DATA_SETTING_CHANGED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/net/ConnectivityManager.html#ACTION_BACKGROUND_DATA_SETTING_CHANGED" target="_top"><code>ACTION_BACKGROUND_DATA_SETTING_CHANGED</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html b/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html index 6c3c26d2c4c..1f3768ed964 100644 --- a/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html +++ b/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.net.<A HREF="../../../../reference/android/net/NetworkInfo.html" target="_top"><font size="+3"><tt>NetworkInfo</tt></font></A> +Class android.net.<A HREF="../../../../reference/android/net/NetworkInfo.html" target="_top"><font size="+2"><code>NetworkInfo</code></font></A> </H2> <a NAME="constructors"></a> <p> @@ -100,21 +99,21 @@ Class android.net.<A HREF="../../../../reference/android/net/NetworkInfo.html" t <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.NetworkInfo.getSubtype_added()"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#getSubtype()" target="_top"><xfont size="+1"><tt>getSubtype</tt></font></A>()</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#getSubtype()" target="_top"><code>getSubtype</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.NetworkInfo.getSubtypeName_added()"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#getSubtypeName()" target="_top"><xfont size="+1"><tt>getSubtypeName</tt></font></A>()</nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#getSubtypeName()" target="_top"><code>getSubtypeName</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.NetworkInfo.isRoaming_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#isRoaming()" target="_top"><xfont size="+1"><tt>isRoaming</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/net/NetworkInfo.html#isRoaming()" target="_top"><code>isRoaming</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html b/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html index 2e79642e766..4fd3f6e36f3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.net.wifi.<A HREF="../../../../reference/android/net/wifi/WifiManager.html" target="_top"><font size="+3"><tt>WifiManager</tt></font></A> +Class android.net.wifi.<A HREF="../../../../reference/android/net/wifi/WifiManager.html" target="_top"><font size="+2"><code>WifiManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.net.wifi.<A HREF="../../../../reference/android/net/wifi/WifiManag <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.wifi.WifiManager.createWifiLock_added(int, java.lang.String)"></A> - <nobr><code>WifiLock</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#createWifiLock(int, java.lang.String)" target="_top"><xfont size="+1"><tt>createWifiLock</tt></font></A>(<code>int,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>WifiLock</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#createWifiLock(int, java.lang.String)" target="_top"><code>createWifiLock</code></A>(<code>int,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -101,14 +100,14 @@ Class android.net.wifi.<A HREF="../../../../reference/android/net/wifi/WifiManag <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.wifi.WifiManager.WIFI_MODE_FULL"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#WIFI_MODE_FULL" target="_top"><xfont size="+1"><tt>WIFI_MODE_FULL</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#WIFI_MODE_FULL" target="_top"><code>WIFI_MODE_FULL</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.net.wifi.WifiManager.WIFI_MODE_SCAN_ONLY"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#WIFI_MODE_SCAN_ONLY" target="_top"><xfont size="+1"><tt>WIFI_MODE_SCAN_ONLY</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/net/wifi/WifiManager.html#WIFI_MODE_SCAN_ONLY" target="_top"><code>WIFI_MODE_SCAN_ONLY</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Binder.html b/docs/html/sdk/api_diff/3/changes/android.os.Binder.html index 882803adaf4..9fec6a46a32 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Binder.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Binder.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Binder.html" target="_top"><font size="+3"><tt>Binder</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Binder.html" target="_top"><font size="+2"><code>Binder</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Binder.html" target=" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Binder.dump_added(java.io.FileDescriptor, java.lang.String[])"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/Binder.html#dump(java.io.FileDescriptor, java.lang.String[])" target="_top"><xfont size="+1"><tt>dump</tt></font></A>(<code>FileDescriptor,</nobr> String[]<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/Binder.html#dump(java.io.FileDescriptor, java.lang.String[])" target="_top"><code>dump</code></A>(<code>FileDescriptor,</nobr> String[]<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Build.html b/docs/html/sdk/api_diff/3/changes/android.os.Build.html index 2a69a8c7c20..cf738eb760f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Build.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Build.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Build.html" target="_top"><font size="+3"><tt>Build</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Build.html" target="_top"><font size="+2"><code>Build</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Build.html" target="_ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Build.DISPLAY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/os/Build.html#DISPLAY" target="_top"><xfont size="+1"><tt>DISPLAY</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/os/Build.html#DISPLAY" target="_top"><code>DISPLAY</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Debug.html b/docs/html/sdk/api_diff/3/changes/android.os.Debug.html index 8e7e2db3eef..c2aead7b651 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Debug.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Debug.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Debug.html" target="_top"><font size="+3"><tt>Debug</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Debug.html" target="_top"><font size="+2"><code>Debug</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Debug.html" target="_ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Debug.dumpHprofData_added(java.lang.String)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/Debug.html#dumpHprofData(java.lang.String)" target="_top"><xfont size="+1"><tt>dumpHprofData</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/Debug.html#dumpHprofData(java.lang.String)" target="_top"><code>dumpHprofData</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> @@ -100,7 +99,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Debug.html" target="_ <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Debug.changeDebugPort_changed(int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/Debug.html#changeDebugPort(int)" target="_top"><xfont size="+1"><tt>changeDebugPort</tt></font></A>(<code>int</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/Debug.html#changeDebugPort(int)" target="_top"><code>changeDebugPort</code></A>(<code>int</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Environment.html b/docs/html/sdk/api_diff/3/changes/android.os.Environment.html index 4cc764375c6..115102177e9 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Environment.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Environment.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Environment.html" target="_top"><font size="+3"><tt>Environment</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Environment.html" target="_top"><font size="+2"><code>Environment</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,14 +85,14 @@ Class android.os.<A HREF="../../../../reference/android/os/Environment.html" tar <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Environment.MEDIA_CHECKING"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/os/Environment.html#MEDIA_CHECKING" target="_top"><xfont size="+1"><tt>MEDIA_CHECKING</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/os/Environment.html#MEDIA_CHECKING" target="_top"><code>MEDIA_CHECKING</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Environment.MEDIA_NOFS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/os/Environment.html#MEDIA_NOFS" target="_top"><xfont size="+1"><tt>MEDIA_NOFS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/os/Environment.html#MEDIA_NOFS" target="_top"><code>MEDIA_NOFS</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Handler.html b/docs/html/sdk/api_diff/3/changes/android.os.Handler.html index fc10c9b29cd..dcc1da8ba03 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Handler.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Handler.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Handler.html" target="_top"><font size="+3"><tt>Handler</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Handler.html" target="_top"><font size="+2"><code>Handler</code></font></A> </H2> <a NAME="constructors"></a> <p> @@ -84,14 +83,14 @@ Class android.os.<A HREF="../../../../reference/android/os/Handler.html" target= <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Handler.ctor_added(android.os.Handler.Callback)"></A> - <nobr><A HREF="../../../../reference/android/os/Handler.html#Handler(android.os.Handler.Callback)" target="_top"><xfont size="+1"><tt>Handler</tt></font></A>(<code>Callback</code>)</nobr> + <nobr><A HREF="../../../../reference/android/os/Handler.html#Handler(android.os.Handler.Callback)" target="_top"><code>Handler</code></A>(<code>Callback</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Handler.ctor_added(android.os.Looper, android.os.Handler.Callback)"></A> - <nobr><A HREF="../../../../reference/android/os/Handler.html#Handler(android.os.Looper, android.os.Handler.Callback)" target="_top"><xfont size="+1"><tt>Handler</tt></font></A>(<code>Looper,</nobr> Callback<nobr><nobr></code>)</nobr> + <nobr><A HREF="../../../../reference/android/os/Handler.html#Handler(android.os.Looper, android.os.Handler.Callback)" target="_top"><code>Handler</code></A>(<code>Looper,</nobr> Callback<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html b/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html index 95745dc7d4a..1328f2661d8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.os.<A HREF="../../../../reference/android/os/IBinder.html" target="_top"><font size="+3"><tt>IBinder</tt></font></A> +Interface android.os.<A HREF="../../../../reference/android/os/IBinder.html" target="_top"><font size="+2"><code>IBinder</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Interface android.os.<A HREF="../../../../reference/android/os/IBinder.html" tar <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.IBinder.dump_added(java.io.FileDescriptor, java.lang.String[])"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/IBinder.html#dump(java.io.FileDescriptor, java.lang.String[])" target="_top"><xfont size="+1"><tt>dump</tt></font></A>(<code>FileDescriptor,</nobr> String[]<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/IBinder.html#dump(java.io.FileDescriptor, java.lang.String[])" target="_top"><code>dump</code></A>(<code>FileDescriptor,</nobr> String[]<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Looper.html b/docs/html/sdk/api_diff/3/changes/android.os.Looper.html index d79ae756786..9910373a8ad 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Looper.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Looper.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Looper.html" target="_top"><font size="+3"><tt>Looper</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Looper.html" target="_top"><font size="+2"><code>Looper</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Looper.html" target=" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Looper.getThread_added()"></A> - <nobr><code>Thread</code> <A HREF="../../../../reference/android/os/Looper.html#getThread()" target="_top"><xfont size="+1"><tt>getThread</tt></font></A>()</nobr> + <nobr><code>Thread</code> <A HREF="../../../../reference/android/os/Looper.html#getThread()" target="_top"><code>getThread</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html b/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html index 317b722d9f0..70eb25d8016 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/Parcel.html" target="_top"><font size="+3"><tt>Parcel</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/Parcel.html" target="_top"><font size="+2"><code>Parcel</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.os.<A HREF="../../../../reference/android/os/Parcel.html" target=" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Parcel.readHashMap_changed(java.lang.ClassLoader)"></A> - <nobr><code>HashMap</code> <A HREF="../../../../reference/android/os/Parcel.html#readHashMap(java.lang.ClassLoader)" target="_top"><xfont size="+1"><tt>readHashMap</tt></font></A>(<code>ClassLoader</code>) </nobr> + <nobr><code>HashMap</code> <A HREF="../../../../reference/android/os/Parcel.html#readHashMap(java.lang.ClassLoader)" target="_top"><code>readHashMap</code></A>(<code>ClassLoader</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> @@ -95,7 +94,7 @@ Change from deprecated to undeprecated.<br> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Parcel.readMap_changed(java.util.Map, java.lang.ClassLoader)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/Parcel.html#readMap(java.util.Map, java.lang.ClassLoader)" target="_top"><xfont size="+1"><tt>readMap</tt></font></A>(<code>Map,</nobr> ClassLoader<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/Parcel.html#readMap(java.util.Map, java.lang.ClassLoader)" target="_top"><code>readMap</code></A>(<code>Map,</nobr> ClassLoader<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> @@ -105,7 +104,7 @@ Change from deprecated to undeprecated.<br> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.Parcel.writeMap_changed(java.util.Map)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/os/Parcel.html#writeMap(java.util.Map)" target="_top"><xfont size="+1"><tt>writeMap</tt></font></A>(<code>Map</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/os/Parcel.html#writeMap(java.util.Map)" target="_top"><code>writeMap</code></A>(<code>Map</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Change from deprecated to undeprecated.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html b/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html index 77641d54c4d..605c019857f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html +++ b/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.os.<A HREF="../../../../reference/android/os/ParcelFileDescriptor.html" target="_top"><font size="+3"><tt>ParcelFileDescriptor</tt></font></A> +Class android.os.<A HREF="../../../../reference/android/os/ParcelFileDescriptor.html" target="_top"><font size="+2"><code>ParcelFileDescriptor</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.os.<A HREF="../../../../reference/android/os/ParcelFileDescriptor. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.ParcelFileDescriptor.getStatSize_added()"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/os/ParcelFileDescriptor.html#getStatSize()" target="_top"><xfont size="+1"><tt>getStatSize</tt></font></A>()</nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/os/ParcelFileDescriptor.html#getStatSize()" target="_top"><code>getStatSize</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -101,7 +100,7 @@ Class android.os.<A HREF="../../../../reference/android/os/ParcelFileDescriptor. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.os.ParcelFileDescriptor.MODE_APPEND"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/os/ParcelFileDescriptor.html#MODE_APPEND" target="_top"><xfont size="+1"><tt>MODE_APPEND</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/os/ParcelFileDescriptor.html#MODE_APPEND" target="_top"><code>MODE_APPEND</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html b/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html index 93e05e7c632..7acc308919b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html +++ b/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.preference.<A HREF="../../../../reference/android/preference/DialogPreference.html" target="_top"><font size="+3"><tt>DialogPreference</tt></font></A> +Class android.preference.<A HREF="../../../../reference/android/preference/DialogPreference.html" target="_top"><font size="+2"><code>DialogPreference</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.preference.<A HREF="../../../../reference/android/preference/Dialo <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.preference.DialogPreference.getDialog_added()"></A> - <nobr><code>Dialog</code> <A HREF="../../../../reference/android/preference/DialogPreference.html#getDialog()" target="_top"><xfont size="+1"><tt>getDialog</tt></font></A>()</nobr> + <nobr><code>Dialog</code> <A HREF="../../../../reference/android/preference/DialogPreference.html#getDialog()" target="_top"><code>getDialog</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html b/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html index 9a9a4b80ef0..110d28afe1b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/Browser.html" target="_top"><font size="+3"><tt>Browser</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/Browser.html" target="_top"><font size="+2"><code>Browser</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Browser.h <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Browser.EXTRA_APPLICATION_ID"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Browser.html#EXTRA_APPLICATION_ID" target="_top"><xfont size="+1"><tt>EXTRA_APPLICATION_ID</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Browser.html#EXTRA_APPLICATION_ID" target="_top"><code>EXTRA_APPLICATION_ID</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html index 32541826a88..0f2a63b1229 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html" target="_top"><font size="+3"><tt>Contacts.Intents.Insert</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html" target="_top"><font size="+2"><code>Contacts.Intents.Insert</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,63 +85,63 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Contacts. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.PHONETIC_NAME"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#PHONETIC_NAME" target="_top"><xfont size="+1"><tt>PHONETIC_NAME</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#PHONETIC_NAME" target="_top"><code>PHONETIC_NAME</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.SECONDARY_EMAIL"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_EMAIL" target="_top"><xfont size="+1"><tt>SECONDARY_EMAIL</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_EMAIL" target="_top"><code>SECONDARY_EMAIL</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.SECONDARY_EMAIL_TYPE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_EMAIL_TYPE" target="_top"><xfont size="+1"><tt>SECONDARY_EMAIL_TYPE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_EMAIL_TYPE" target="_top"><code>SECONDARY_EMAIL_TYPE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.SECONDARY_PHONE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_PHONE" target="_top"><xfont size="+1"><tt>SECONDARY_PHONE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_PHONE" target="_top"><code>SECONDARY_PHONE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.SECONDARY_PHONE_TYPE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_PHONE_TYPE" target="_top"><xfont size="+1"><tt>SECONDARY_PHONE_TYPE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#SECONDARY_PHONE_TYPE" target="_top"><code>SECONDARY_PHONE_TYPE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.TERTIARY_EMAIL"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_EMAIL" target="_top"><xfont size="+1"><tt>TERTIARY_EMAIL</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_EMAIL" target="_top"><code>TERTIARY_EMAIL</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.TERTIARY_EMAIL_TYPE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_EMAIL_TYPE" target="_top"><xfont size="+1"><tt>TERTIARY_EMAIL_TYPE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_EMAIL_TYPE" target="_top"><code>TERTIARY_EMAIL_TYPE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.TERTIARY_PHONE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_PHONE" target="_top"><xfont size="+1"><tt>TERTIARY_PHONE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_PHONE" target="_top"><code>TERTIARY_PHONE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.Insert.TERTIARY_PHONE_TYPE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_PHONE_TYPE" target="_top"><xfont size="+1"><tt>TERTIARY_PHONE_TYPE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.Insert.html#TERTIARY_PHONE_TYPE" target="_top"><code>TERTIARY_PHONE_TYPE</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html index 1f758333c47..c2694d40537 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/Contacts.Intents.html" target="_top"><font size="+3"><tt>Contacts.Intents</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/Contacts.Intents.html" target="_top"><font size="+2"><code>Contacts.Intents</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,21 +85,21 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Contacts. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.EXTRA_CREATE_DESCRIPTION"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#EXTRA_CREATE_DESCRIPTION" target="_top"><xfont size="+1"><tt>EXTRA_CREATE_DESCRIPTION</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#EXTRA_CREATE_DESCRIPTION" target="_top"><code>EXTRA_CREATE_DESCRIPTION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.EXTRA_FORCE_CREATE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#EXTRA_FORCE_CREATE" target="_top"><xfont size="+1"><tt>EXTRA_FORCE_CREATE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#EXTRA_FORCE_CREATE" target="_top"><code>EXTRA_FORCE_CREATE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.Intents.SHOW_OR_CREATE_CONTACT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#SHOW_OR_CREATE_CONTACT" target="_top"><xfont size="+1"><tt>SHOW_OR_CREATE_CONTACT</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.Intents.html#SHOW_OR_CREATE_CONTACT" target="_top"><code>SHOW_OR_CREATE_CONTACT</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html index e8c0f4d6d2c..758917df36e 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.provider.<A HREF="../../../../reference/android/provider/Contacts.PeopleColumns.html" target="_top"><font size="+3"><tt>Contacts.PeopleColumns</tt></font></A> +Interface android.provider.<A HREF="../../../../reference/android/provider/Contacts.PeopleColumns.html" target="_top"><font size="+2"><code>Contacts.PeopleColumns</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Interface android.provider.<A HREF="../../../../reference/android/provider/Conta <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Contacts.PeopleColumns.PHONETIC_NAME"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.PeopleColumns.html#PHONETIC_NAME" target="_top"><xfont size="+1"><tt>PHONETIC_NAME</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Contacts.PeopleColumns.html#PHONETIC_NAME" target="_top"><code>PHONETIC_NAME</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html index ade1498b308..1b14ca53e3e 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Audio.AlbumColumns.html" target="_top"><font size="+3"><tt>MediaStore.Audio.AlbumColumns</tt></font></A> +Interface android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Audio.AlbumColumns.html" target="_top"><font size="+2"><code>MediaStore.Audio.AlbumColumns</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Interface android.provider.<A HREF="../../../../reference/android/provider/Media <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Audio.AlbumColumns.NUMBER_OF_SONGS_FOR_ARTIST"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Audio.AlbumColumns.html#NUMBER_OF_SONGS_FOR_ARTIST" target="_top"><xfont size="+1"><tt>NUMBER_OF_SONGS_FOR_ARTIST</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Audio.AlbumColumns.html#NUMBER_OF_SONGS_FOR_ARTIST" target="_top"><code>NUMBER_OF_SONGS_FOR_ARTIST</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html index 52bae9d6f27..cecc4f60ed3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Audio.Media.html" target="_top"><font size="+3"><tt>MediaStore.Audio.Media</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Audio.Media.html" target="_top"><font size="+2"><code>MediaStore.Audio.Media</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/MediaStor <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Audio.Media.EXTRA_MAX_BYTES"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Audio.Media.html#EXTRA_MAX_BYTES" target="_top"><xfont size="+1"><tt>EXTRA_MAX_BYTES</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Audio.Media.html#EXTRA_MAX_BYTES" target="_top"><code>EXTRA_MAX_BYTES</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html index b375c3f9959..7eb4f8f5ac6 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Images.Media.html" target="_top"><font size="+3"><tt>MediaStore.Images.Media</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Images.Media.html" target="_top"><font size="+2"><code>MediaStore.Images.Media</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/MediaStor <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Images.Media.DEFAULT_SORT_ORDER"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Images.Media.html#DEFAULT_SORT_ORDER" target="_top"><xfont size="+1"><tt>DEFAULT_SORT_ORDER</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Images.Media.html#DEFAULT_SORT_ORDER" target="_top"><code>DEFAULT_SORT_ORDER</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Changed in value from "name ASC" to "bucket_display_name". </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html index 43494502563..d4ebdafe47f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Interface android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html" target="_top"><font size="+3"><tt>MediaStore.Video.VideoColumns</tt></font></A> +Interface android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html" target="_top"><font size="+2"><code>MediaStore.Video.VideoColumns</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,21 +85,21 @@ Interface android.provider.<A HREF="../../../../reference/android/provider/Media <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Video.VideoColumns.BOOKMARK"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BOOKMARK" target="_top"><xfont size="+1"><tt>BOOKMARK</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BOOKMARK" target="_top"><code>BOOKMARK</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Video.VideoColumns.BUCKET_DISPLAY_NAME"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BUCKET_DISPLAY_NAME" target="_top"><xfont size="+1"><tt>BUCKET_DISPLAY_NAME</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BUCKET_DISPLAY_NAME" target="_top"><code>BUCKET_DISPLAY_NAME</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Video.VideoColumns.BUCKET_ID"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BUCKET_ID" target="_top"><xfont size="+1"><tt>BUCKET_ID</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.VideoColumns.html#BUCKET_ID" target="_top"><code>BUCKET_ID</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html index 60437625988..76a3df394b8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Video.html" target="_top"><font size="+3"><tt>MediaStore.Video</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.Video.html" target="_top"><font size="+2"><code>MediaStore.Video</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,7 +85,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/MediaStor <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.Video.DEFAULT_SORT_ORDER"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.html#DEFAULT_SORT_ORDER" target="_top"><xfont size="+1"><tt>DEFAULT_SORT_ORDER</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.Video.html#DEFAULT_SORT_ORDER" target="_top"><code>DEFAULT_SORT_ORDER</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> Changed in value from "name ASC" to "_display_name". </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html index 0d6a4cdce69..8c61a9acd7a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.html" target="_top"><font size="+3"><tt>MediaStore</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.html" target="_top"><font size="+2"><code>MediaStore</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,91 +85,91 @@ Class android.provider.<A HREF="../../../../reference/android/provider/MediaStor <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.ACTION_IMAGE_CAPTURE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE" target="_top"><xfont size="+1"><tt>ACTION_IMAGE_CAPTURE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE" target="_top"><code>ACTION_IMAGE_CAPTURE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.ACTION_VIDEO_CAPTURE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#ACTION_VIDEO_CAPTURE" target="_top"><xfont size="+1"><tt>ACTION_VIDEO_CAPTURE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#ACTION_VIDEO_CAPTURE" target="_top"><code>ACTION_VIDEO_CAPTURE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_FINISH_ON_COMPLETION"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_FINISH_ON_COMPLETION" target="_top"><xfont size="+1"><tt>EXTRA_FINISH_ON_COMPLETION</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_FINISH_ON_COMPLETION" target="_top"><code>EXTRA_FINISH_ON_COMPLETION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_MEDIA_ALBUM"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_ALBUM" target="_top"><xfont size="+1"><tt>EXTRA_MEDIA_ALBUM</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_ALBUM" target="_top"><code>EXTRA_MEDIA_ALBUM</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_MEDIA_ARTIST"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_ARTIST" target="_top"><xfont size="+1"><tt>EXTRA_MEDIA_ARTIST</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_ARTIST" target="_top"><code>EXTRA_MEDIA_ARTIST</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_MEDIA_FOCUS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_FOCUS" target="_top"><xfont size="+1"><tt>EXTRA_MEDIA_FOCUS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_FOCUS" target="_top"><code>EXTRA_MEDIA_FOCUS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_MEDIA_TITLE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_TITLE" target="_top"><xfont size="+1"><tt>EXTRA_MEDIA_TITLE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_MEDIA_TITLE" target="_top"><code>EXTRA_MEDIA_TITLE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_OUTPUT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_OUTPUT" target="_top"><xfont size="+1"><tt>EXTRA_OUTPUT</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_OUTPUT" target="_top"><code>EXTRA_OUTPUT</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_SCREEN_ORIENTATION"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_SCREEN_ORIENTATION" target="_top"><xfont size="+1"><tt>EXTRA_SCREEN_ORIENTATION</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_SCREEN_ORIENTATION" target="_top"><code>EXTRA_SCREEN_ORIENTATION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.EXTRA_VIDEO_QUALITY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_VIDEO_QUALITY" target="_top"><xfont size="+1"><tt>EXTRA_VIDEO_QUALITY</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#EXTRA_VIDEO_QUALITY" target="_top"><code>EXTRA_VIDEO_QUALITY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.INTENT_ACTION_MEDIA_SEARCH"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_MEDIA_SEARCH" target="_top"><xfont size="+1"><tt>INTENT_ACTION_MEDIA_SEARCH</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_MEDIA_SEARCH" target="_top"><code>INTENT_ACTION_MEDIA_SEARCH</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_STILL_IMAGE_CAMERA" target="_top"><xfont size="+1"><tt>INTENT_ACTION_STILL_IMAGE_CAMERA</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_STILL_IMAGE_CAMERA" target="_top"><code>INTENT_ACTION_STILL_IMAGE_CAMERA</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_VIDEO_CAMERA" target="_top"><xfont size="+1"><tt>INTENT_ACTION_VIDEO_CAMERA</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_VIDEO_CAMERA" target="_top"><code>INTENT_ACTION_VIDEO_CAMERA</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html index b7ef86c6695..06721820816 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/Settings.System.html" target="_top"><font size="+3"><tt>Settings.System</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/Settings.System.html" target="_top"><font size="+2"><code>Settings.System</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.getLong_added(android.content.ContentResolver, java.lang.String)"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/provider/Settings.System.html#getLong(android.content.ContentResolver, java.lang.String)" target="_top"><xfont size="+1"><tt>getLong</tt></font></A>(<code>ContentResolver,</nobr> String<nobr><nobr></code>)</nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/provider/Settings.System.html#getLong(android.content.ContentResolver, java.lang.String)" target="_top"><code>getLong</code></A>(<code>ContentResolver,</nobr> String<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.getLong_added(android.content.ContentResolver, java.lang.String, long)"></A> - <nobr><code>long</code> <A HREF="../../../../reference/android/provider/Settings.System.html#getLong(android.content.ContentResolver, java.lang.String, long)" target="_top"><xfont size="+1"><tt>getLong</tt></font></A>(<code>ContentResolver,</nobr> String<nobr>,</nobr> long<nobr><nobr></code>)</nobr> + <nobr><code>long</code> <A HREF="../../../../reference/android/provider/Settings.System.html#getLong(android.content.ContentResolver, java.lang.String, long)" target="_top"><code>getLong</code></A>(<code>ContentResolver,</nobr> String<nobr>,</nobr> long<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.putLong_added(android.content.ContentResolver, java.lang.String, long)"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/provider/Settings.System.html#putLong(android.content.ContentResolver, java.lang.String, long)" target="_top"><xfont size="+1"><tt>putLong</tt></font></A>(<code>ContentResolver,</nobr> String<nobr>,</nobr> long<nobr><nobr></code>)</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/provider/Settings.System.html#putLong(android.content.ContentResolver, java.lang.String, long)" target="_top"><code>putLong</code></A>(<code>ContentResolver,</nobr> String<nobr>,</nobr> long<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -115,70 +114,70 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.ACCELEROMETER_ROTATION"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ACCELEROMETER_ROTATION" target="_top"><xfont size="+1"><tt>ACCELEROMETER_ROTATION</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ACCELEROMETER_ROTATION" target="_top"><code>ACCELEROMETER_ROTATION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.HAPTIC_FEEDBACK_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#HAPTIC_FEEDBACK_ENABLED" target="_top"><xfont size="+1"><tt>HAPTIC_FEEDBACK_ENABLED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#HAPTIC_FEEDBACK_ENABLED" target="_top"><code>HAPTIC_FEEDBACK_ENABLED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" target="_top"><xfont size="+1"><tt>LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" target="_top"><code>LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.VOLUME_NOTIFICATION"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#VOLUME_NOTIFICATION" target="_top"><xfont size="+1"><tt>VOLUME_NOTIFICATION</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#VOLUME_NOTIFICATION" target="_top"><code>VOLUME_NOTIFICATION</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_MAX_DHCP_RETRY_COUNT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_MAX_DHCP_RETRY_COUNT" target="_top"><xfont size="+1"><tt>WIFI_MAX_DHCP_RETRY_COUNT</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_MAX_DHCP_RETRY_COUNT" target="_top"><code>WIFI_MAX_DHCP_RETRY_COUNT</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" target="_top"><xfont size="+1"><tt>WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" target="_top"><code>WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY" target="_top"><xfont size="+1"><tt>WIFI_SLEEP_POLICY</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY" target="_top"><code>WIFI_SLEEP_POLICY</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_DEFAULT" target="_top"><xfont size="+1"><tt>WIFI_SLEEP_POLICY_DEFAULT</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_DEFAULT" target="_top"><code>WIFI_SLEEP_POLICY_DEFAULT</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER" target="_top"><xfont size="+1"><tt>WIFI_SLEEP_POLICY_NEVER</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER" target="_top"><code>WIFI_SLEEP_POLICY_NEVER</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" target="_top"><xfont size="+1"><tt>WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" target="_top"><code>WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</code></A></nobr> </TD> <TD> </TD> </TR> @@ -193,7 +192,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.ADB_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ADB_ENABLED" target="_top"><xfont size="+1"><tt>ADB_ENABLED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ADB_ENABLED" target="_top"><code>ADB_ENABLED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -202,7 +201,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.ANDROID_ID"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ANDROID_ID" target="_top"><xfont size="+1"><tt>ANDROID_ID</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ANDROID_ID" target="_top"><code>ANDROID_ID</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -211,7 +210,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.BLUETOOTH_ON"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#BLUETOOTH_ON" target="_top"><xfont size="+1"><tt>BLUETOOTH_ON</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#BLUETOOTH_ON" target="_top"><code>BLUETOOTH_ON</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -220,7 +219,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.DATA_ROAMING"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DATA_ROAMING" target="_top"><xfont size="+1"><tt>DATA_ROAMING</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DATA_ROAMING" target="_top"><code>DATA_ROAMING</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -229,7 +228,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.DEVICE_PROVISIONED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DEVICE_PROVISIONED" target="_top"><xfont size="+1"><tt>DEVICE_PROVISIONED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DEVICE_PROVISIONED" target="_top"><code>DEVICE_PROVISIONED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -238,7 +237,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.HTTP_PROXY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#HTTP_PROXY" target="_top"><xfont size="+1"><tt>HTTP_PROXY</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#HTTP_PROXY" target="_top"><code>HTTP_PROXY</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -247,7 +246,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.INSTALL_NON_MARKET_APPS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#INSTALL_NON_MARKET_APPS" target="_top"><xfont size="+1"><tt>INSTALL_NON_MARKET_APPS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#INSTALL_NON_MARKET_APPS" target="_top"><code>INSTALL_NON_MARKET_APPS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -256,7 +255,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.LOCATION_PROVIDERS_ALLOWED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOCATION_PROVIDERS_ALLOWED" target="_top"><xfont size="+1"><tt>LOCATION_PROVIDERS_ALLOWED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOCATION_PROVIDERS_ALLOWED" target="_top"><code>LOCATION_PROVIDERS_ALLOWED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -265,7 +264,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.LOGGING_ID"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOGGING_ID" target="_top"><xfont size="+1"><tt>LOGGING_ID</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#LOGGING_ID" target="_top"><code>LOGGING_ID</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -274,7 +273,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.NETWORK_PREFERENCE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#NETWORK_PREFERENCE" target="_top"><xfont size="+1"><tt>NETWORK_PREFERENCE</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#NETWORK_PREFERENCE" target="_top"><code>NETWORK_PREFERENCE</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -283,7 +282,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.PARENTAL_CONTROL_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_ENABLED" target="_top"><xfont size="+1"><tt>PARENTAL_CONTROL_ENABLED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_ENABLED" target="_top"><code>PARENTAL_CONTROL_ENABLED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -292,7 +291,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.PARENTAL_CONTROL_LAST_UPDATE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_LAST_UPDATE" target="_top"><xfont size="+1"><tt>PARENTAL_CONTROL_LAST_UPDATE</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_LAST_UPDATE" target="_top"><code>PARENTAL_CONTROL_LAST_UPDATE</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -301,7 +300,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.PARENTAL_CONTROL_REDIRECT_URL"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_REDIRECT_URL" target="_top"><xfont size="+1"><tt>PARENTAL_CONTROL_REDIRECT_URL</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#PARENTAL_CONTROL_REDIRECT_URL" target="_top"><code>PARENTAL_CONTROL_REDIRECT_URL</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -310,7 +309,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.SETTINGS_CLASSNAME"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#SETTINGS_CLASSNAME" target="_top"><xfont size="+1"><tt>SETTINGS_CLASSNAME</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#SETTINGS_CLASSNAME" target="_top"><code>SETTINGS_CLASSNAME</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -319,7 +318,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.USB_MASS_STORAGE_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#USB_MASS_STORAGE_ENABLED" target="_top"><xfont size="+1"><tt>USB_MASS_STORAGE_ENABLED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#USB_MASS_STORAGE_ENABLED" target="_top"><code>USB_MASS_STORAGE_ENABLED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -328,7 +327,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.USE_GOOGLE_MAIL"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#USE_GOOGLE_MAIL" target="_top"><xfont size="+1"><tt>USE_GOOGLE_MAIL</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#USE_GOOGLE_MAIL" target="_top"><code>USE_GOOGLE_MAIL</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -337,7 +336,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" target="_top"><xfont size="+1"><tt>WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" target="_top"><code>WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -346,7 +345,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" target="_top"><xfont size="+1"><tt>WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" target="_top"><code>WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -355,7 +354,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_NUM_OPEN_NETWORKS_KEPT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NUM_OPEN_NETWORKS_KEPT" target="_top"><xfont size="+1"><tt>WIFI_NUM_OPEN_NETWORKS_KEPT</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_NUM_OPEN_NETWORKS_KEPT" target="_top"><code>WIFI_NUM_OPEN_NETWORKS_KEPT</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -364,7 +363,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_ON"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_ON" target="_top"><xfont size="+1"><tt>WIFI_ON</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_ON" target="_top"><code>WIFI_ON</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -373,7 +372,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" target="_top"><code>WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -382,7 +381,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_AP_COUNT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_AP_COUNT" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_AP_COUNT</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_AP_COUNT" target="_top"><code>WIFI_WATCHDOG_AP_COUNT</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -391,7 +390,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" target="_top"><code>WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -400,7 +399,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" target="_top"><code>WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -409,7 +408,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" target="_top"><code>WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -418,7 +417,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" target="_top"><code>WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -427,7 +426,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_MAX_AP_CHECKS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_MAX_AP_CHECKS" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_MAX_AP_CHECKS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_MAX_AP_CHECKS" target="_top"><code>WIFI_WATCHDOG_MAX_AP_CHECKS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -436,7 +435,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_ON"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_ON" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_ON</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_ON" target="_top"><code>WIFI_WATCHDOG_ON</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -445,7 +444,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_PING_COUNT"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_COUNT" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_PING_COUNT</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_COUNT" target="_top"><code>WIFI_WATCHDOG_PING_COUNT</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -454,7 +453,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_PING_DELAY_MS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_DELAY_MS" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_PING_DELAY_MS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_DELAY_MS" target="_top"><code>WIFI_WATCHDOG_PING_DELAY_MS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> @@ -463,7 +462,7 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.System.WIFI_WATCHDOG_PING_TIMEOUT_MS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_TIMEOUT_MS" target="_top"><xfont size="+1"><tt>WIFI_WATCHDOG_PING_TIMEOUT_MS</tt></font></A></nobr> </TD> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_WATCHDOG_PING_TIMEOUT_MS" target="_top"><code>WIFI_WATCHDOG_PING_TIMEOUT_MS</code></font></A></nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html index 227b462ed95..00b0b1fdae8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.provider.<A HREF="../../../../reference/android/provider/Settings.html" target="_top"><font size="+3"><tt>Settings</tt></font></A> +Class android.provider.<A HREF="../../../../reference/android/provider/Settings.html" target="_top"><font size="+2"><code>Settings</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -86,84 +85,84 @@ Class android.provider.<A HREF="../../../../reference/android/provider/Settings. <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_AIRPLANE_MODE_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_AIRPLANE_MODE_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_AIRPLANE_MODE_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_AIRPLANE_MODE_SETTINGS" target="_top"><code>ACTION_AIRPLANE_MODE_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_APPLICATION_DEVELOPMENT_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS" target="_top"><code>ACTION_APPLICATION_DEVELOPMENT_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_DATA_ROAMING_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_DATA_ROAMING_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_DATA_ROAMING_SETTINGS" target="_top"><code>ACTION_DATA_ROAMING_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_INPUT_METHOD_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_INPUT_METHOD_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_INPUT_METHOD_SETTINGS" target="_top"><code>ACTION_INPUT_METHOD_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_INTERNAL_STORAGE_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_INTERNAL_STORAGE_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_INTERNAL_STORAGE_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_INTERNAL_STORAGE_SETTINGS" target="_top"><code>ACTION_INTERNAL_STORAGE_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_MANAGE_APPLICATIONS_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_MANAGE_APPLICATIONS_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_MANAGE_APPLICATIONS_SETTINGS" target="_top"><code>ACTION_MANAGE_APPLICATIONS_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_MEMORY_CARD_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_MEMORY_CARD_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_MEMORY_CARD_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_MEMORY_CARD_SETTINGS" target="_top"><code>ACTION_MEMORY_CARD_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_NETWORK_OPERATOR_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_NETWORK_OPERATOR_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_NETWORK_OPERATOR_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_NETWORK_OPERATOR_SETTINGS" target="_top"><code>ACTION_NETWORK_OPERATOR_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_QUICK_LAUNCH_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_QUICK_LAUNCH_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_QUICK_LAUNCH_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_QUICK_LAUNCH_SETTINGS" target="_top"><code>ACTION_QUICK_LAUNCH_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_SYNC_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_SYNC_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_SYNC_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_SYNC_SETTINGS" target="_top"><code>ACTION_SYNC_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_USER_DICTIONARY_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_USER_DICTIONARY_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_USER_DICTIONARY_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_USER_DICTIONARY_SETTINGS" target="_top"><code>ACTION_USER_DICTIONARY_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.provider.Settings.ACTION_WIFI_IP_SETTINGS"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_WIFI_IP_SETTINGS" target="_top"><xfont size="+1"><tt>ACTION_WIFI_IP_SETTINGS</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.html#ACTION_WIFI_IP_SETTINGS" target="_top"><code>ACTION_WIFI_IP_SETTINGS</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html b/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html index 6e0b240ca75..5804c129f77 100644 --- a/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.telephony.<A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html" target="_top"><font size="+3"><tt>PhoneNumberUtils</tt></font></A> +Class android.telephony.<A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html" target="_top"><font size="+2"><code>PhoneNumberUtils</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.telephony.<A HREF="../../../../reference/android/telephony/PhoneNu <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.PhoneNumberUtils.formatJapaneseNumber_added(android.text.Editable)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html#formatJapaneseNumber(android.text.Editable)" target="_top"><xfont size="+1"><tt>formatJapaneseNumber</tt></font></A>(<code>Editable</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html#formatJapaneseNumber(android.text.Editable)" target="_top"><code>formatJapaneseNumber</code></A>(<code>Editable</code>)</nobr> </TD> <TD> </TD> </TR> @@ -101,7 +100,7 @@ Class android.telephony.<A HREF="../../../../reference/android/telephony/PhoneNu <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.PhoneNumberUtils.FORMAT_JAPAN"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html#FORMAT_JAPAN" target="_top"><xfont size="+1"><tt>FORMAT_JAPAN</tt></font></A></nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/telephony/PhoneNumberUtils.html#FORMAT_JAPAN" target="_top"><code>FORMAT_JAPAN</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html b/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html index aa02f5c1f3a..2948e229b07 100644 --- a/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.telephony.<A HREF="../../../../reference/android/telephony/TelephonyManager.html" target="_top"><font size="+3"><tt>TelephonyManager</tt></font></A> +Class android.telephony.<A HREF="../../../../reference/android/telephony/TelephonyManager.html" target="_top"><font size="+2"><code>TelephonyManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.telephony.<A HREF="../../../../reference/android/telephony/Telepho <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.getNeighboringCellInfo_added()"></A> - <nobr><code>List<NeighboringCellInfo></code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#getNeighboringCellInfo()" target="_top"><xfont size="+1"><tt>getNeighboringCellInfo</tt></font></A>()</nobr> + <nobr><code>List<NeighboringCellInfo></code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#getNeighboringCellInfo()" target="_top"><code>getNeighboringCellInfo</code></A>()</nobr> </TD> <TD> </TD> </TR> @@ -101,42 +100,42 @@ Class android.telephony.<A HREF="../../../../reference/android/telephony/Telepho <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED" target="_top"><xfont size="+1"><tt>ACTION_PHONE_STATE_CHANGED</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED" target="_top"><code>ACTION_PHONE_STATE_CHANGED</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.EXTRA_INCOMING_NUMBER"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_INCOMING_NUMBER" target="_top"><xfont size="+1"><tt>EXTRA_INCOMING_NUMBER</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_INCOMING_NUMBER" target="_top"><code>EXTRA_INCOMING_NUMBER</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.EXTRA_STATE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE" target="_top"><xfont size="+1"><tt>EXTRA_STATE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE" target="_top"><code>EXTRA_STATE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.EXTRA_STATE_IDLE"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_IDLE" target="_top"><xfont size="+1"><tt>EXTRA_STATE_IDLE</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_IDLE" target="_top"><code>EXTRA_STATE_IDLE</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.EXTRA_STATE_OFFHOOK"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_OFFHOOK" target="_top"><xfont size="+1"><tt>EXTRA_STATE_OFFHOOK</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_OFFHOOK" target="_top"><code>EXTRA_STATE_OFFHOOK</code></A></nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.TelephonyManager.EXTRA_STATE_RINGING"></A> - <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_RINGING" target="_top"><xfont size="+1"><tt>EXTRA_STATE_RINGING</tt></font></A></nobr> + <nobr><code>String</code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#EXTRA_STATE_RINGING" target="_top"><code>EXTRA_STATE_RINGING</code></A></nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html b/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html index c6069043fe4..ce994dc60f3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.telephony.gsm.<A HREF="../../../../reference/android/telephony/gsm/SmsMessage.html" target="_top"><font size="+3"><tt>SmsMessage</tt></font></A> +Class android.telephony.gsm.<A HREF="../../../../reference/android/telephony/gsm/SmsMessage.html" target="_top"><font size="+2"><code>SmsMessage</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,7 +84,7 @@ Class android.telephony.gsm.<A HREF="../../../../reference/android/telephony/gsm <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.telephony.gsm.SmsMessage.calculateLength_added(java.lang.CharSequence, boolean)"></A> - <nobr><code>int[]</code> <A HREF="../../../../reference/android/telephony/gsm/SmsMessage.html#calculateLength(java.lang.CharSequence, boolean)" target="_top"><xfont size="+1"><tt>calculateLength</tt></font></A>(<code>CharSequence,</nobr> boolean<nobr><nobr></code>)</nobr> + <nobr><code>int[]</code> <A HREF="../../../../reference/android/telephony/gsm/SmsMessage.html#calculateLength(java.lang.CharSequence, boolean)" target="_top"><code>calculateLength</code></A>(<code>CharSequence,</nobr> boolean<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html index c3360776828..7574c36fdfe 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.<A HREF="../../../../reference/android/test/ActivityInstrumentationTestCase.html" target="_top"><font size="+3"><tt>ActivityInstrumentationTestCase</tt></font></A> +Class android.test.<A HREF="../../../../reference/android/test/ActivityInstrumentationTestCase.html" target="_top"><font size="+2"><code>ActivityInstrumentationTestCase</code></font></A> </H2> <p><b>Now deprecated</b>.<br> <a NAME="constructors"></a> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html index 1fb403aaabe..b8970e5a5c1 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.<A HREF="../../../../reference/android/test/InstrumentationTestCase.html" target="_top"><font size="+3"><tt>InstrumentationTestCase</tt></font></A> +Class android.test.<A HREF="../../../../reference/android/test/InstrumentationTestCase.html" target="_top"><font size="+2"><code>InstrumentationTestCase</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,14 +84,14 @@ Class android.test.<A HREF="../../../../reference/android/test/InstrumentationTe <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.InstrumentationTestCase.launchActivityWithIntent_added(java.lang.String, java.lang.Class<T>, android.content.Intent)"></A> - <nobr><code>T</code> <A HREF="../../../../reference/android/test/InstrumentationTestCase.html#launchActivityWithIntent(java.lang.String, java.lang.Class<T>, android.content.Intent)" target="_top"><xfont size="+1"><tt>launchActivityWithIntent</tt></font></A>(<code>String,</nobr> Class<T><nobr>,</nobr> Intent<nobr><nobr></code>)</nobr> + <nobr><code>T</code> <A HREF="../../../../reference/android/test/InstrumentationTestCase.html#launchActivityWithIntent(java.lang.String, java.lang.Class<T>, android.content.Intent)" target="_top"><code>launchActivityWithIntent</code></A>(<code>String,</nobr> Class<T><nobr>,</nobr> Intent<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.InstrumentationTestCase.runTestOnUiThread_added(java.lang.Runnable)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/InstrumentationTestCase.html#runTestOnUiThread(java.lang.Runnable)" target="_top"><xfont size="+1"><tt>runTestOnUiThread</tt></font></A>(<code>Runnable</code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/InstrumentationTestCase.html#runTestOnUiThread(java.lang.Runnable)" target="_top"><code>runTestOnUiThread</code></A>(<code>Runnable</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html index ffbee6091af..19c7eb58d3a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.<A HREF="../../../../reference/android/test/ProviderTestCase.html" target="_top"><font size="+3"><tt>ProviderTestCase</tt></font></A> +Class android.test.<A HREF="../../../../reference/android/test/ProviderTestCase.html" target="_top"><font size="+2"><code>ProviderTestCase</code></font></A> </H2> <p><b>Now deprecated</b>.<br> <a NAME="constructors"></a> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html b/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html index 75f9e5e03e2..4606b943264 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,15 +67,30 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" target="_top"><font size="+3"><tt>TouchUtils</tt></font></A> +Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" target="_top"><font size="+2"><code>TouchUtils</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> <p> +<a NAME="Removed"></a> +<TABLE summary="Removed Methods" WIDTH="100%"> +<TR> + <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD> +</TH> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.test.TouchUtils.dragViewToBottom_removed(android.test.ActivityInstrumentationTestCase, android.view.View, int)"></A> + <nobr><code>void</code> dragViewToBottom(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + </TD> + <TD> </TD> +</TR> +</TABLE> +  +<p> <a NAME="Added"></a> <TABLE summary="Added Methods" WIDTH="100%"> <TR> @@ -85,98 +99,105 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.drag_added(android.test.InstrumentationTestCase, float, float, float, float, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#drag(android.test.InstrumentationTestCase, float, float, float, float, int)" target="_top"><xfont size="+1"><tt>drag</tt></font></A>(<code>InstrumentationTestCase,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#drag(android.test.InstrumentationTestCase, float, float, float, float, int)" target="_top"><code>drag</code></A>(<code>InstrumentationTestCase,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragQuarterScreenDown_added(android.test.InstrumentationTestCase, android.app.Activity)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenDown(android.test.InstrumentationTestCase, android.app.Activity)" target="_top"><xfont size="+1"><tt>dragQuarterScreenDown</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenDown(android.test.InstrumentationTestCase, android.app.Activity)" target="_top"><code>dragQuarterScreenDown</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragQuarterScreenUp_added(android.test.InstrumentationTestCase, android.app.Activity)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenUp(android.test.InstrumentationTestCase, android.app.Activity)" target="_top"><xfont size="+1"><tt>dragQuarterScreenUp</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenUp(android.test.InstrumentationTestCase, android.app.Activity)" target="_top"><code>dragQuarterScreenUp</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewBy_added(android.test.InstrumentationTestCase, android.view.View, int, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewBy(android.test.InstrumentationTestCase, android.view.View, int, int, int)" target="_top"><xfont size="+1"><tt>dragViewBy</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewBy(android.test.InstrumentationTestCase, android.view.View, int, int, int)" target="_top"><code>dragViewBy</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewTo_added(android.test.InstrumentationTestCase, android.view.View, int, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewTo(android.test.InstrumentationTestCase, android.view.View, int, int, int)" target="_top"><xfont size="+1"><tt>dragViewTo</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewTo(android.test.InstrumentationTestCase, android.view.View, int, int, int)" target="_top"><code>dragViewTo</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + </TD> + <TD> </TD> +</TR> +<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> + <TD VALIGN="TOP" WIDTH="25%"> + <A NAME="android.test.TouchUtils.dragViewToBottom_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)"></A> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" target="_top"><code>dragViewToBottom</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> View<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToBottom_added(android.test.ActivityInstrumentationTestCase, android.view.View, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View, int)" target="_top"><xfont size="+1"><tt>dragViewToBottom</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View, int)" target="_top"><code>dragViewToBottom</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToBottom_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int)" target="_top"><xfont size="+1"><tt>dragViewToBottom</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int)" target="_top"><code>dragViewToBottom</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToTop_added(android.test.InstrumentationTestCase, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.InstrumentationTestCase, android.view.View)" target="_top"><xfont size="+1"><tt>dragViewToTop</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.InstrumentationTestCase, android.view.View)" target="_top"><code>dragViewToTop</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToTop_added(android.test.InstrumentationTestCase, android.view.View, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.InstrumentationTestCase, android.view.View, int)" target="_top"><xfont size="+1"><tt>dragViewToTop</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.InstrumentationTestCase, android.view.View, int)" target="_top"><code>dragViewToTop</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToX_added(android.test.InstrumentationTestCase, android.view.View, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToX(android.test.InstrumentationTestCase, android.view.View, int, int)" target="_top"><xfont size="+1"><tt>dragViewToX</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToX(android.test.InstrumentationTestCase, android.view.View, int, int)" target="_top"><code>dragViewToX</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToY_added(android.test.InstrumentationTestCase, android.view.View, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToY(android.test.InstrumentationTestCase, android.view.View, int, int)" target="_top"><xfont size="+1"><tt>dragViewToY</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToY(android.test.InstrumentationTestCase, android.view.View, int, int)" target="_top"><code>dragViewToY</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.longClickView_added(android.test.InstrumentationTestCase, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#longClickView(android.test.InstrumentationTestCase, android.view.View)" target="_top"><xfont size="+1"><tt>longClickView</tt></font></A>(<code>InstrumentationTestCase,</nobr> View<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#longClickView(android.test.InstrumentationTestCase, android.view.View)" target="_top"><code>longClickView</code></A>(<code>InstrumentationTestCase,</nobr> View<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.scrollToBottom_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)" target="_top"><xfont size="+1"><tt>scrollToBottom</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> ViewGroup<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)" target="_top"><code>scrollToBottom</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> ViewGroup<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.scrollToTop_added(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToTop(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)" target="_top"><xfont size="+1"><tt>scrollToTop</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> ViewGroup<nobr><nobr></code>)</nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToTop(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup)" target="_top"><code>scrollToTop</code></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> ViewGroup<nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> @@ -191,7 +212,7 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.drag_changed(android.test.ActivityInstrumentationTestCase, float, float, float, float, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#drag(android.test.ActivityInstrumentationTestCase, float, float, float, float, int)" target="_top"><xfont size="+1"><tt>drag</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#drag(android.test.ActivityInstrumentationTestCase, float, float, float, float, int)" target="_top"><code>drag</code></A>(<code>ActivityInstrumentationTestCase,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> float<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -201,7 +222,7 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragQuarterScreenDown_changed(android.test.ActivityInstrumentationTestCase)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenDown(android.test.ActivityInstrumentationTestCase)" target="_top"><xfont size="+1"><tt>dragQuarterScreenDown</tt></font></A>(<code>ActivityInstrumentationTestCase</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenDown(android.test.ActivityInstrumentationTestCase)" target="_top"><code>dragQuarterScreenDown</code></A>(<code>ActivityInstrumentationTestCase</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -211,7 +232,7 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragQuarterScreenUp_changed(android.test.ActivityInstrumentationTestCase)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenUp(android.test.ActivityInstrumentationTestCase)" target="_top"><xfont size="+1"><tt>dragQuarterScreenUp</tt></font></A>(<code>ActivityInstrumentationTestCase</code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragQuarterScreenUp(android.test.ActivityInstrumentationTestCase)" target="_top"><code>dragQuarterScreenUp</code></A>(<code>ActivityInstrumentationTestCase</code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -221,7 +242,7 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewBy_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewBy(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)" target="_top"><xfont size="+1"><tt>dragViewBy</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewBy(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)" target="_top"><code>dragViewBy</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -231,7 +252,7 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewTo_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewTo(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)" target="_top"><xfont size="+1"><tt>dragViewTo</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewTo(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int)" target="_top"><code>dragViewTo</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -241,27 +262,17 @@ Class android.test.<A HREF="../../../../reference/android/test/TouchUtils.html" <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToBottom_changed(android.test.ActivityInstrumentationTestCase, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><xfont size="+1"><tt>dragViewToBottom</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><code>dragViewToBottom</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> </TD> <TD> </TD> </TR> -<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> - <TD VALIGN="TOP" WIDTH="25%"> - <A NAME="android.test.TouchUtils.dragViewToBottom_changed(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View)" target="_top"><xfont size="+1"><tt>dragViewToBottom</tt></font></A>(<code>InstrumentationTestCase,</nobr> Activity<nobr>,</nobr> View<nobr><nobr></code>) </nobr> - </TD> - <TD VALIGN="TOP" WIDTH="30%"> -Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code>) to (<code>InstrumentationTestCase, Activity, View</code>).<br> - </TD> - <TD> </TD> -</TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToTop_changed(android.test.ActivityInstrumentationTestCase, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><xfont size="+1"><tt>dragViewToTop</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><code>dragViewToTop</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -271,7 +282,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToTop_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View, int)" target="_top"><xfont size="+1"><tt>dragViewToTop</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View, int)" target="_top"><code>dragViewToTop</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -281,7 +292,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToX_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToX(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)" target="_top"><xfont size="+1"><tt>dragViewToX</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToX(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)" target="_top"><code>dragViewToX</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -291,7 +302,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.dragViewToY_changed(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)"></A> - <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToY(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)" target="_top"><xfont size="+1"><tt>dragViewToY</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> + <nobr><code>int</code> <A HREF="../../../../reference/android/test/TouchUtils.html#dragViewToY(android.test.ActivityInstrumentationTestCase, android.view.View, int, int)" target="_top"><code>dragViewToY</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -301,7 +312,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.longClickView_changed(android.test.ActivityInstrumentationTestCase, android.view.View)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#longClickView(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><xfont size="+1"><tt>longClickView</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#longClickView(android.test.ActivityInstrumentationTestCase, android.view.View)" target="_top"><code>longClickView</code></A>(<code>ActivityInstrumentationTestCase,</nobr> View<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -311,7 +322,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.scrollToBottom_changed(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToBottom(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)" target="_top"><xfont size="+1"><tt>scrollToBottom</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> ViewGroup<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToBottom(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)" target="_top"><code>scrollToBottom</code></A>(<code>ActivityInstrumentationTestCase,</nobr> ViewGroup<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> @@ -321,7 +332,7 @@ Change in signature from (<code>ActivityInstrumentationTestCase, View, int</code <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.TouchUtils.scrollToTop_changed(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)"></A> - <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToTop(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)" target="_top"><xfont size="+1"><tt>scrollToTop</tt></font></A>(<code>ActivityInstrumentationTestCase,</nobr> ViewGroup<nobr><nobr></code>) </nobr> + <nobr><code>void</code> <A HREF="../../../../reference/android/test/TouchUtils.html#scrollToTop(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup)" target="_top"><code>scrollToTop</code></A>(<code>ActivityInstrumentationTestCase,</nobr> ViewGroup<nobr><nobr></code>) </nobr> </TD> <TD VALIGN="TOP" WIDTH="30%"> <b>Now deprecated</b>.<br> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html index 8e727f35f6b..ff4e6071c00 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.mock.<A HREF="../../../../reference/android/test/mock/MockPackageManager.html" target="_top"><font size="+3"><tt>MockPackageManager</tt></font></A> +Class android.test.mock.<A HREF="../../../../reference/android/test/mock/MockPackageManager.html" target="_top"><font size="+2"><code>MockPackageManager</code></font></A> </H2> <a NAME="constructors"></a> <a NAME="methods"></a> @@ -85,21 +84,21 @@ Class android.test.mock.<A HREF="../../../../reference/android/test/mock/MockPac <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.mock.MockPackageManager.getLaunchIntentForPackage_added(java.lang.String)"></A> - <nobr><code>Intent</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#getLaunchIntentForPackage(java.lang.String)" target="_top"><xfont size="+1"><tt>getLaunchIntentForPackage</tt></font></A>(<code>String</code>)</nobr> + <nobr><code>Intent</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#getLaunchIntentForPackage(java.lang.String)" target="_top"><code>getLaunchIntentForPackage</code></A>(<code>String</code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.mock.MockPackageManager.getSystemSharedLibraryNames_added()"></A> - <nobr><code>String[]</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#getSystemSharedLibraryNames()" target="_top"><xfont size="+1"><tt>getSystemSharedLibraryNames</tt></font></A>()</nobr> + <nobr><code>String[]</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#getSystemSharedLibraryNames()" target="_top"><code>getSystemSharedLibraryNames</code></A>()</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.mock.MockPackageManager.isSafeMode_added()"></A> - <nobr><code>boolean</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#isSafeMode()" target="_top"><xfont size="+1"><tt>isSafeMode</tt></font></A>()</nobr> + <nobr><code>boolean</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#isSafeMode()" target="_top"><code>isSafeMode</code></A>()</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html index 52467f3fbb2..e98d2805533 100644 --- a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html +++ b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html @@ -22,7 +22,6 @@ body{overflow:auto;} </style> </noscript> <style type="text/css"> -body{background-image:url();padding:12px;} </style> </HEAD> <BODY> @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} </tr> <tr> <td class="diffspec">Generated</td> - <td class="diffvalue">2009.04.20 09:15</td> + <td class="diffvalue">2009.11.19 19:35</td> </tr> </table> </div><!-- End and-diff-id --> @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} </div> <!-- End and-diff-id --> </div> <!-- End headerRight --> </div> <!-- End header --> -<div id="body-content"> +<div id="body-content" xstyle="padding:12px;padding-right:18px;"> <div id="doc-content" style="position:relative;"> <div id="mainBodyFluid"> <H2> -Class android.test.suitebuilder.<A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html" target="_top"><font size="+3"><tt>TestMethod</tt></font></A> +Class android.test.suitebuilder.<A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html" target="_top"><font size="+2"><code>TestMethod</code></font></A> </H2> <a NAME="constructors"></a> <p> @@ -84,14 +83,14 @@ Class android.test.suitebuilder.<A HREF="../../../../reference/android/test/suit <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.suitebuilder.TestMethod.ctor_added(java.lang.String, java.lang.Class<? extends junit.framework.TestCase>)"></A> - <nobr><A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html#TestMethod(java.lang.String, java.lang.Class<? extends junit.framework.TestCase>)" target="_top"><xfont size="+1"><tt>TestMethod</tt></font></A>(<code>String,</nobr> Class<TestCase><nobr><nobr></code>)</nobr> + <nobr><A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html#TestMethod(java.lang.String, java.lang.Class<? extends junit.framework.TestCase>)" target="_top"><code>TestMethod</code></A>(<code>String,</nobr> Class<TestCase><nobr><nobr></code>)</nobr> </TD> <TD> </TD> </TR> <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor"> <TD VALIGN="TOP" WIDTH="25%"> <A NAME="android.test.suitebuilder.TestMethod.ctor_added(junit.framework.TestCase)"></A> - <nobr><A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html#TestMethod(junit.framework.TestCase)" target="_top"><xfont size="+1"><tt>TestMethod</tt></font></A>(<code>TestCase</code>)</nobr> + <nobr><A HREF="../../../../reference/android/test/suitebuilder/TestMethod.html#TestMethod(junit.framework.TestCase)" target="_top"><code>TestMethod</code></A>(<code>TestCase</code>)</nobr> </TD> <TD> </TD> </TR> diff --git a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html deleted file mode 100644 index 548f473b72f..00000000000 --- a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html +++ /dev/null @@ -1,126 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -<HTML style="overflow:auto;"> -<HEAD> -<meta name="generator" content="JDiff v1.1.0"> -<!-- Generated by the JDiff Javadoc doclet --> -<!-- (http://www.jdiff.org) --> -<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared."> -<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet"> -<TITLE> -android.test.suitebuilder.TestSuiteBuilder - - - - - - - - - - -
      -
      -
      -

      -Class android.test.suitebuilder.TestSuiteBuilder -

      - - -

      - - - - - - - - - -
      Changed Methods -
      - - TestSuiteBuilder addRequirements(Predicate<TestMethod>) - -Change in signature from void to Predicate<TestMethod>.
      -
       
      -  - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html b/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html index 863f172ffa6..cc1c872a7a8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35 @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;} -
      +

      -Class android.text.Annotation +Class android.text.Annotation

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text. - Annotation(Parcel) + Annotation(Parcel)   @@ -101,21 +100,21 @@ Class android.text. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html b/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html index 04ef46d3327..fe1dac89321 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.AutoText +Class android.text.AutoText

      @@ -85,7 +84,7 @@ Class android.text. - int getSize(View) + int getSize(View)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html b/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html index fd9943a56ff..83524fd3266 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.SpanWatcher +Interface android.text.SpanWatcher

      Added interface android.text.NoCopySpan.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html b/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html index 1c861979d67..0997f18ae2c 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.Spanned +Interface android.text.Spanned

      @@ -86,21 +85,21 @@ Interface android.text. - int SPAN_COMPOSING + int SPAN_COMPOSING   - int SPAN_INTERMEDIATE + int SPAN_INTERMEDIATE   - int SPAN_POINT_MARK_MASK + int SPAN_POINT_MARK_MASK   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html b/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html index 9fc8dae935e..daf97248346 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.TextUtils +Class android.text.TextUtils

      @@ -85,14 +84,14 @@ Class android.text. - void dumpSpans(CharSequence, Printer, String) + void dumpSpans(CharSequence, Printer, String)   - int getCapsMode(CharSequence, int, int) + int getCapsMode(CharSequence, int, int)   @@ -108,21 +107,21 @@ Class android.text. - int CAP_MODE_CHARACTERS + int CAP_MODE_CHARACTERS   - int CAP_MODE_SENTENCES + int CAP_MODE_SENTENCES   - int CAP_MODE_WORDS + int CAP_MODE_WORDS   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html b/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html index a3856f851c1..4507a9f9b46 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.TextWatcher +Interface android.text.TextWatcher

      Added interface android.text.NoCopySpan.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html index 6a1ce5eda08..9842e35e718 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.ArrowKeyMovementMethod +Class android.text.method.ArrowKeyMovementMethod

      @@ -85,7 +84,7 @@ Class android.text.method. - boolean onKeyOther(TextView, Spannable, KeyEvent) + boolean onKeyOther(TextView, Spannable, KeyEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html index b8dddc31cea..5771069ed6d 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.BaseKeyListener +Class android.text.method.BaseKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - boolean onKeyOther(View, Editable, KeyEvent) + boolean onKeyOther(View, Editable, KeyEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html index d49752c259c..55d951bd78b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.DateKeyListener +Class android.text.method.DateKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html index 82734d3833e..fdc06942145 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.DateTimeKeyListener +Class android.text.method.DateTimeKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html index 435e701ed68..665ddfb7600 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.DialerKeyListener +Class android.text.method.DialerKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html index f33d5fe695b..e61658991e5 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.DigitsKeyListener +Class android.text.method.DigitsKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html index 2b24f03c022..e130b45f0cd 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.method.KeyListener +Interface android.text.method.KeyListener

      @@ -85,21 +84,21 @@ Interface android.text.method. - void clearMetaKeyState(View, Editable, int) + void clearMetaKeyState(View, Editable, int)   - int getInputType() + int getInputType()   - boolean onKeyOther(View, Editable, KeyEvent) + boolean onKeyOther(View, Editable, KeyEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html index ecdedc1edb8..718952d6ec2 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.MetaKeyKeyListener +Class android.text.method.MetaKeyKeyListener

      @@ -85,70 +84,70 @@ Class android.text.method. - long adjustMetaAfterKeypress(long) + long adjustMetaAfterKeypress(long)   - long clearMetaKeyState(long, int) + long clearMetaKeyState(long, int)   - void clearMetaKeyState(View, Editable, int) + void clearMetaKeyState(View, Editable, int)   - void clearMetaKeyState(Editable, int) + void clearMetaKeyState(Editable, int)   - int getMetaState(long) + int getMetaState(long)   - int getMetaState(long, int) + int getMetaState(long, int)   - long handleKeyDown(long, int, KeyEvent) + long handleKeyDown(long, int, KeyEvent)   - long handleKeyUp(long, int, KeyEvent) + long handleKeyUp(long, int, KeyEvent)   - boolean isSelectingMetaTracker(CharSequence, Object) + boolean isSelectingMetaTracker(CharSequence, Object)   - long resetLockedMeta(long) + long resetLockedMeta(long)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html index a86dff5fea5..a35816b3ef4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.method.MovementMethod +Interface android.text.method.MovementMethod

      @@ -85,7 +84,7 @@ Interface android.text.method. - boolean onKeyOther(TextView, Spannable, KeyEvent) + boolean onKeyOther(TextView, Spannable, KeyEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html index b7c2f52694e..5dbcb76ca88 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.MultiTapKeyListener +Class android.text.method.MultiTapKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html index fff86c659b1..248d333c005 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.QwertyKeyListener +Class android.text.method.QwertyKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html index acf5dcd844a..7f01b23cf33 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.ScrollingMovementMethod +Class android.text.method.ScrollingMovementMethod

      @@ -85,7 +84,7 @@ Class android.text.method. - boolean onKeyOther(TextView, Spannable, KeyEvent) + boolean onKeyOther(TextView, Spannable, KeyEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html index f905b3fe75f..132e8ac3046 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.TextKeyListener +Class android.text.method.TextKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html index 0545b2fb426..0b69f962560 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.TimeKeyListener +Class android.text.method.TimeKeyListener

      @@ -85,7 +84,7 @@ Class android.text.method. - int getInputType() + int getInputType()   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html b/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html index fd0f64a6a3c..8ee56c8a2ba 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.method.Touch +Class android.text.method.Touch

      @@ -85,14 +84,14 @@ Class android.text.method. - int getInitialScrollX(TextView, Spannable) + int getInitialScrollX(TextView, Spannable)   - int getInitialScrollY(TextView, Spannable) + int getInitialScrollY(TextView, Spannable)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html index 32b1098ef89..bce6cac92e1 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.AbsoluteSizeSpan +Class android.text.style.AbsoluteSizeSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - AbsoluteSizeSpan(Parcel) + AbsoluteSizeSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html b/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html index 86b03d47bbf..c05042e75dd 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.AlignmentSpan.Standard +Class android.text.style.AlignmentSpan.Standard

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - AlignmentSpan.Standard(Parcel) + AlignmentSpan.Standard(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html index b7705aaee5f..f6f111a7ef0 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.BackgroundColorSpan +Class android.text.style.BackgroundColorSpan

      Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
      @@ -85,7 +84,7 @@ Class android.text.style. - BackgroundColorSpan(Parcel) + BackgroundColorSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html index 10f6d2aa044..6c1afa4097d 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.BulletSpan +Class android.text.style.BulletSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - BulletSpan(Parcel) + BulletSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html index 0d7fecb93a4..d6665d83a20 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.ClickableSpan +Class android.text.style.ClickableSpan

      Added interface android.text.style.UpdateAppearance.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html index 2bc83fa5da7..d0c72f85c0c 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.DynamicDrawableSpan +Class android.text.style.DynamicDrawableSpan

      @@ -84,7 +83,7 @@ Class android.text.style. - DynamicDrawableSpan(int) + DynamicDrawableSpan(int)   @@ -100,7 +99,7 @@ Class android.text.style. - int getVerticalAlignment() + int getVerticalAlignment()   @@ -116,21 +115,21 @@ Class android.text.style. - int ALIGN_BASELINE + int ALIGN_BASELINE   - int ALIGN_BOTTOM + int ALIGN_BOTTOM   - int mVerticalAlignment + int mVerticalAlignment   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html index fa483c002d9..2008d443db6 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.ForegroundColorSpan +Class android.text.style.ForegroundColorSpan

      Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
      @@ -85,7 +84,7 @@ Class android.text.style. - ForegroundColorSpan(Parcel) + ForegroundColorSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html index 459e2b7e510..08ba87a06a6 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.ImageSpan +Class android.text.style.ImageSpan

      @@ -84,35 +83,35 @@ Class android.text.style. - ImageSpan(Context, Uri, int) + ImageSpan(Context, Uri, int)   - ImageSpan(Context, int, int) + ImageSpan(Context, int, int)   - ImageSpan(Bitmap, int) + ImageSpan(Bitmap, int)   - ImageSpan(Drawable, int) + ImageSpan(Drawable, int)   - ImageSpan(Drawable, String, int) + ImageSpan(Drawable, String, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html b/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html index 922bcbc607b..77b798dfacb 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.LeadingMarginSpan.Standard +Class android.text.style.LeadingMarginSpan.Standard

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - LeadingMarginSpan.Standard(Parcel) + LeadingMarginSpan.Standard(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html index fbd8db93560..c71892fb263 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.MaskFilterSpan +Class android.text.style.MaskFilterSpan

      Added interface android.text.style.UpdateAppearance.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html index 334c2233552..90dd5643497 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.QuoteSpan +Class android.text.style.QuoteSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - QuoteSpan(Parcel) + QuoteSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html index 62fb6479f8f..bac6148eceb 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.RasterizerSpan +Class android.text.style.RasterizerSpan

      Added interface android.text.style.UpdateAppearance.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html index 17d97fba524..e9ea96426d2 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.RelativeSizeSpan +Class android.text.style.RelativeSizeSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - RelativeSizeSpan(Parcel) + RelativeSizeSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html index ee289f518ff..6fafb9a8c01 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.ScaleXSpan +Class android.text.style.ScaleXSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - ScaleXSpan(Parcel) + ScaleXSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html index f045b964395..123f7d17d68 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.StrikethroughSpan +Class android.text.style.StrikethroughSpan

      Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
      @@ -85,7 +84,7 @@ Class android.text.style. - StrikethroughSpan(Parcel) + StrikethroughSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html index fcc16080d01..2c2d71f6d35 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.StyleSpan +Class android.text.style.StyleSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - StyleSpan(Parcel) + StyleSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html index ec3d56242b1..feca4746799 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.SubscriptSpan +Class android.text.style.SubscriptSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - SubscriptSpan(Parcel) + SubscriptSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html index 853be697af2..b112ec7844c 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.SuperscriptSpan +Class android.text.style.SuperscriptSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - SuperscriptSpan(Parcel) + SuperscriptSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html index 719e68f0ce1..fd3b0ea9877 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.TextAppearanceSpan +Class android.text.style.TextAppearanceSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - TextAppearanceSpan(Parcel) + TextAppearanceSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html index 01b74e73408..2a3c149445a 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.TypefaceSpan +Class android.text.style.TypefaceSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - TypefaceSpan(Parcel) + TypefaceSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html index 2a659a4e35c..a100c675d9b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.URLSpan +Class android.text.style.URLSpan

      Added interface android.text.ParcelableSpan.
      @@ -85,7 +84,7 @@ Class android.text.style. - URLSpan(Parcel) + URLSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html index 6c596a03da9..95123cedd4f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.text.style.UnderlineSpan +Class android.text.style.UnderlineSpan

      Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
      @@ -85,7 +84,7 @@ Class android.text.style. - UnderlineSpan(Parcel) + UnderlineSpan(Parcel)   @@ -101,21 +100,21 @@ Class android.text.style. - int describeContents() + int describeContents()   - int getSpanTypeId() + int getSpanTypeId()   - void writeToParcel(Parcel, int) + void writeToParcel(Parcel, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html b/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html index 4cca7b43347..81251dc0da8 100644 --- a/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.text.style.UpdateLayout +Interface android.text.style.UpdateLayout

      Added interface android.text.style.UpdateAppearance.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html b/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html index 5657765133f..6a04ea8a298 100644 --- a/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html +++ b/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.util.SparseIntArray +Class android.util.SparseIntArray

      @@ -85,7 +84,7 @@ Class android.util. - void removeAt(int) + void removeAt(int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html b/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html index 3317fae27bb..4635a73b6bf 100644 --- a/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html +++ b/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.util.TimeUtils +Class android.util.TimeUtils

      @@ -85,7 +84,7 @@ Class android.util. - String getTimeZoneDatabaseVersion() + String getTimeZoneDatabaseVersion()   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html index 0e00c6047a5..0248e7a98c4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.GestureDetector.SimpleOnGestureListener +Class android.view.GestureDetector.SimpleOnGestureListener

      Added interface android.view.GestureDetector.OnDoubleTapListener.
      @@ -86,21 +85,21 @@ Class android.view. - boolean onDoubleTap(MotionEvent) + boolean onDoubleTap(MotionEvent)   - boolean onDoubleTapEvent(MotionEvent) + boolean onDoubleTapEvent(MotionEvent)   - boolean onSingleTapConfirmed(MotionEvent) + boolean onSingleTapConfirmed(MotionEvent)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html index dec5a4d9da9..c06eb5747af 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.GestureDetector +Class android.view.GestureDetector

      @@ -84,14 +83,14 @@ Class android.view. - GestureDetector(Context, OnGestureListener) + GestureDetector(Context, OnGestureListener)   - GestureDetector(Context, OnGestureListener, Handler) + GestureDetector(Context, OnGestureListener, Handler)   @@ -106,7 +105,7 @@ Class android.view. - GestureDetector(OnGestureListener) + GestureDetector(OnGestureListener) Now deprecated.
      @@ -116,7 +115,7 @@ Class android.view. - GestureDetector(OnGestureListener, Handler) + GestureDetector(OnGestureListener, Handler) Now deprecated.
      @@ -135,7 +134,7 @@ Class android.view. - void setOnDoubleTapListener(OnDoubleTapListener) + void setOnDoubleTapListener(OnDoubleTapListener)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html b/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html index 1aa10d3682f..2d430f6e337 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.Gravity +Class android.view.Gravity

      @@ -85,7 +84,7 @@ Class android.view. - void applyDisplay(int, Rect, Rect) + void applyDisplay(int, Rect, Rect)   @@ -101,35 +100,35 @@ Class android.view. - int AXIS_CLIP + int AXIS_CLIP   - int CLIP_HORIZONTAL + int CLIP_HORIZONTAL   - int CLIP_VERTICAL + int CLIP_VERTICAL   - int DISPLAY_CLIP_HORIZONTAL + int DISPLAY_CLIP_HORIZONTAL   - int DISPLAY_CLIP_VERTICAL + int DISPLAY_CLIP_VERTICAL   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html b/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html index 7a409cbe130..c6f5a773820 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.KeyCharacterMap +Class android.view.KeyCharacterMap

      @@ -85,14 +84,14 @@ Class android.view. - boolean deviceHasKey(int) + boolean deviceHasKey(int)   - boolean[] deviceHasKeys(int[]) + boolean[] deviceHasKeys(int[])   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html b/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html index bf3ec6b22e0..ae096926259 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.KeyEvent +Class android.view.KeyEvent

      @@ -84,14 +83,14 @@ Class android.view. - KeyEvent(KeyEvent) + KeyEvent(KeyEvent)   - KeyEvent(long, String, int, int) + KeyEvent(long, String, int, int)   @@ -107,35 +106,35 @@ Class android.view. - KeyEvent changeAction(KeyEvent, int) + KeyEvent changeAction(KeyEvent, int)   - KeyEvent changeFlags(KeyEvent, int) + KeyEvent changeFlags(KeyEvent, int)   - KeyEvent changeTimeRepeat(KeyEvent, long, int) + KeyEvent changeTimeRepeat(KeyEvent, long, int)   - String getCharacters() + String getCharacters()   - int getMaxKeyCode() + int getMaxKeyCode()   @@ -151,77 +150,77 @@ Class android.view. - int FLAG_EDITOR_ACTION + int FLAG_EDITOR_ACTION   - int FLAG_FROM_SYSTEM + int FLAG_FROM_SYSTEM   - int FLAG_KEEP_TOUCH_MODE + int FLAG_KEEP_TOUCH_MODE   - int FLAG_SOFT_KEYBOARD + int FLAG_SOFT_KEYBOARD   - int KEYCODE_MEDIA_FAST_FORWARD + int KEYCODE_MEDIA_FAST_FORWARD   - int KEYCODE_MEDIA_NEXT + int KEYCODE_MEDIA_NEXT   - int KEYCODE_MEDIA_PLAY_PAUSE + int KEYCODE_MEDIA_PLAY_PAUSE   - int KEYCODE_MEDIA_PREVIOUS + int KEYCODE_MEDIA_PREVIOUS   - int KEYCODE_MEDIA_REWIND + int KEYCODE_MEDIA_REWIND   - int KEYCODE_MEDIA_STOP + int KEYCODE_MEDIA_STOP   - int KEYCODE_MUTE + int KEYCODE_MUTE   @@ -236,7 +235,7 @@ Class android.view. - int MAX_KEYCODE + int MAX_KEYCODE Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Menu.html b/docs/html/sdk/api_diff/3/changes/android.view.Menu.html index 09b910a4268..aa93fb8ef77 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.Menu.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.Menu.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.view.Menu +Interface android.view.Menu

      @@ -85,14 +84,14 @@ Interface android.view. - void close() + void close()   - MenuItem getItem(int) + MenuItem getItem(int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html b/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html index 5291df77821..41c690e0a8d 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.MotionEvent +Class android.view.MotionEvent

      @@ -86,7 +85,7 @@ Class android.view. - int ACTION_OUTSIDE + int ACTION_OUTSIDE   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html b/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html index ac58489da46..4b7421f2de3 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.OrientationListener +Class android.view.OrientationListener

      Now deprecated.
      @@ -85,7 +84,7 @@ Class android.view. - OrientationListener(Context, int) + OrientationListener(Context, int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.View.html b/docs/html/sdk/api_diff/3/changes/android.view.View.html index ccd58a9d2c8..86f9ca6a457 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.View.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.View.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.View +Class android.view.View

      @@ -85,98 +84,98 @@ Class android.view. - boolean checkInputConnectionProxy(View) + boolean checkInputConnectionProxy(View)   - boolean dispatchKeyEventPreIme(KeyEvent) + boolean dispatchKeyEventPreIme(KeyEvent)   - void getWindowVisibleDisplayFrame(Rect) + void getWindowVisibleDisplayFrame(Rect)   - boolean isHapticFeedbackEnabled() + boolean isHapticFeedbackEnabled()   - boolean isInEditMode() + boolean isInEditMode()   - boolean onCheckIsTextEditor() + boolean onCheckIsTextEditor()   - InputConnection onCreateInputConnection(EditorInfo) + InputConnection onCreateInputConnection(EditorInfo)   - void onFinishTemporaryDetach() + void onFinishTemporaryDetach()   - boolean onKeyPreIme(int, KeyEvent) + boolean onKeyPreIme(int, KeyEvent)   - void onStartTemporaryDetach() + void onStartTemporaryDetach()   - boolean performHapticFeedback(int) + boolean performHapticFeedback(int)   - boolean performHapticFeedback(int, int) + boolean performHapticFeedback(int, int)   - void setHapticFeedbackEnabled(boolean) + void setHapticFeedbackEnabled(boolean)   - void setScrollContainer(boolean) + void setScrollContainer(boolean)   @@ -191,7 +190,7 @@ Class android.view. - Handler getHandler() + Handler getHandler() Change of visibility from protected to public.
      @@ -201,7 +200,7 @@ Change of visibility from protected to public.
      - void playSoundEffect(int) + void playSoundEffect(int) Change of visibility from protected to public.
      @@ -220,7 +219,7 @@ Change of visibility from protected to public.
      - int HAPTIC_FEEDBACK_ENABLED + int HAPTIC_FEEDBACK_ENABLED   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html index 0bf487c289d..e1083baa9fc 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.ViewConfiguration +Class android.view.ViewConfiguration

      @@ -84,7 +83,7 @@ Class android.view. - ViewConfiguration() + ViewConfiguration() Now deprecated.
      @@ -103,70 +102,70 @@ Class android.view. - ViewConfiguration get(Context) + ViewConfiguration get(Context)   - int getDoubleTapTimeout() + int getDoubleTapTimeout()   - int getScaledDoubleTapSlop() + int getScaledDoubleTapSlop()   - int getScaledEdgeSlop() + int getScaledEdgeSlop()   - int getScaledFadingEdgeLength() + int getScaledFadingEdgeLength()   - int getScaledMaximumDrawingCacheSize() + int getScaledMaximumDrawingCacheSize()   - int getScaledMinimumFlingVelocity() + int getScaledMinimumFlingVelocity()   - int getScaledScrollBarSize() + int getScaledScrollBarSize()   - int getScaledTouchSlop() + int getScaledTouchSlop()   - int getScaledWindowTouchSlop() + int getScaledWindowTouchSlop()   @@ -181,7 +180,7 @@ Class android.view. - int getEdgeSlop() + int getEdgeSlop() Now deprecated.
      @@ -191,7 +190,7 @@ Class android.view. - int getFadingEdgeLength() + int getFadingEdgeLength() Now deprecated.
      @@ -201,7 +200,7 @@ Class android.view. - int getMaximumDrawingCacheSize() + int getMaximumDrawingCacheSize() Now deprecated.
      @@ -211,7 +210,7 @@ Class android.view. - int getMinimumFlingVelocity() + int getMinimumFlingVelocity() Now deprecated.
      @@ -221,7 +220,7 @@ Class android.view. - int getScrollBarSize() + int getScrollBarSize() Now deprecated.
      @@ -231,7 +230,7 @@ Class android.view. - int getTouchSlop() + int getTouchSlop() Now deprecated.
      @@ -241,7 +240,7 @@ Class android.view. - int getWindowTouchSlop() + int getWindowTouchSlop() Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html index 17c0c8a34eb..90b2d20cd9c 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.ViewDebug +Class android.view.ViewDebug

      @@ -85,7 +84,7 @@ Class android.view. - void dumpCapturedView(String, Object) + void dumpCapturedView(String, Object)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html index 589f266ff2c..a8457dac990 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.ViewGroup +Class android.view.ViewGroup

      @@ -85,7 +84,7 @@ Class android.view. - void setStaticTransformationsEnabled(boolean) + void setStaticTransformationsEnabled(boolean)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html index 536e7e95c4f..5f9fc0279d4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.view.ViewParent +Interface android.view.ViewParent

      @@ -85,7 +84,7 @@ Interface android.view. - boolean requestChildRectangleOnScreen(View, Rect, boolean) + boolean requestChildRectangleOnScreen(View, Rect, boolean)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html index 41753a737d4..6cd97242e71 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.ViewTreeObserver +Class android.view.ViewTreeObserver

      @@ -85,14 +84,14 @@ Class android.view. - void addOnScrollChangedListener(OnScrollChangedListener) + void addOnScrollChangedListener(OnScrollChangedListener)   - void removeOnScrollChangedListener(OnScrollChangedListener) + void removeOnScrollChangedListener(OnScrollChangedListener)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Window.html b/docs/html/sdk/api_diff/3/changes/android.view.Window.html index d84eb2b1181..bf5347e7e4f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.Window.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.Window.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.Window +Class android.view.Window

      @@ -85,21 +84,21 @@ Class android.view. - boolean hasSoftInputMode() + boolean hasSoftInputMode()   - void setSoftInputMode(int) + void setSoftInputMode(int)   - void setWindowAnimations(int) + void setWindowAnimations(int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html b/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html index 7304b0ea787..c59fef8a230 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.WindowManager.LayoutParams +Class android.view.WindowManager.LayoutParams

      @@ -85,7 +84,7 @@ Class android.view. - boolean mayUseInputMethod(int) + boolean mayUseInputMethod(int)   @@ -101,161 +100,161 @@ Class android.view. - int FLAG_ALT_FOCUSABLE_IM + int FLAG_ALT_FOCUSABLE_IM   - int FLAG_WATCH_OUTSIDE_TOUCH + int FLAG_WATCH_OUTSIDE_TOUCH   - int SCREEN_BRIGHTNESS_CHANGED + int SCREEN_BRIGHTNESS_CHANGED   - int SCREEN_ORIENTATION_CHANGED + int SCREEN_ORIENTATION_CHANGED   - int SOFT_INPUT_ADJUST_PAN + int SOFT_INPUT_ADJUST_PAN   - int SOFT_INPUT_ADJUST_RESIZE + int SOFT_INPUT_ADJUST_RESIZE   - int SOFT_INPUT_ADJUST_UNSPECIFIED + int SOFT_INPUT_ADJUST_UNSPECIFIED   - int SOFT_INPUT_IS_FORWARD_NAVIGATION + int SOFT_INPUT_IS_FORWARD_NAVIGATION   - int SOFT_INPUT_MASK_ADJUST + int SOFT_INPUT_MASK_ADJUST   - int SOFT_INPUT_MASK_STATE + int SOFT_INPUT_MASK_STATE   - int SOFT_INPUT_MODE_CHANGED + int SOFT_INPUT_MODE_CHANGED   - int SOFT_INPUT_STATE_ALWAYS_HIDDEN + int SOFT_INPUT_STATE_ALWAYS_HIDDEN   - int SOFT_INPUT_STATE_ALWAYS_VISIBLE + int SOFT_INPUT_STATE_ALWAYS_VISIBLE   - int SOFT_INPUT_STATE_HIDDEN + int SOFT_INPUT_STATE_HIDDEN   - int SOFT_INPUT_STATE_UNCHANGED + int SOFT_INPUT_STATE_UNCHANGED   - int SOFT_INPUT_STATE_UNSPECIFIED + int SOFT_INPUT_STATE_UNSPECIFIED   - int SOFT_INPUT_STATE_VISIBLE + int SOFT_INPUT_STATE_VISIBLE   - int TYPE_APPLICATION_ATTACHED_DIALOG + int TYPE_APPLICATION_ATTACHED_DIALOG   - int TYPE_INPUT_METHOD + int TYPE_INPUT_METHOD   - int TYPE_INPUT_METHOD_DIALOG + int TYPE_INPUT_METHOD_DIALOG   - float screenBrightness + float screenBrightness   - int screenOrientation + int screenOrientation   - int softInputMode + int softInputMode   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html b/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html index 9cdf434cb74..d0e860b1213 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.animation.Animation +Class android.view.animation.Animation

      Added interface java.lang.Cloneable.
      @@ -86,21 +85,21 @@ Class android.view.animation. - long computeDurationHint() + long computeDurationHint()   - boolean isFillEnabled() + boolean isFillEnabled()   - void setFillEnabled(boolean) + void setFillEnabled(boolean)   diff --git a/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html b/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html index 8c5cbf55cf3..62120f6eaa9 100644 --- a/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html +++ b/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.view.animation.Transformation +Class android.view.animation.Transformation

      @@ -85,7 +84,7 @@ Class android.view.animation. - String toShortString() + String toShortString()   diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html b/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html index cff874168f2..bb49443eb7f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.webkit.URLUtil +Class android.webkit.URLUtil

      @@ -85,7 +84,7 @@ Class android.webkit. - boolean isCookielessProxyUrl(String) + boolean isCookielessProxyUrl(String) Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html index 8664bc6e18f..ea2b6108a05 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.webkit.UrlInterceptHandler +Interface android.webkit.UrlInterceptHandler

      @@ -85,7 +84,7 @@ Interface android.webkit. - PluginData getPluginData(String, Map<String, String>) + PluginData getPluginData(String, Map<String, String>)   @@ -100,7 +99,7 @@ Interface android.webkit. - CacheResult service(String, Map<String, String>) + CacheResult service(String, Map<String, String>) Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html index 09d11496ddf..ca0addd98ea 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.webkit.UrlInterceptRegistry +Class android.webkit.UrlInterceptRegistry

      @@ -85,7 +84,7 @@ Class android.webkit. - PluginData getPluginData(String, Map<String, String>) + PluginData getPluginData(String, Map<String, String>)   @@ -100,7 +99,7 @@ Class android.webkit. - CacheResult getSurrogate(String, Map<String, String>) + CacheResult getSurrogate(String, Map<String, String>) Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html index 10140196bb0..e22308070f7 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.webkit.WebHistoryItem +Class android.webkit.WebHistoryItem

      @@ -85,7 +84,7 @@ Class android.webkit. - String getOriginalUrl() + String getOriginalUrl()   diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html index eb421cf63ad..7c7161dabbe 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.webkit.WebSettings +Class android.webkit.WebSettings

      @@ -85,42 +84,42 @@ Class android.webkit. - boolean getAllowFileAccess() + boolean getAllowFileAccess()   - boolean getBuiltInZoomControls() + boolean getBuiltInZoomControls()   - String getUserAgentString() + String getUserAgentString()   - void setAllowFileAccess(boolean) + void setAllowFileAccess(boolean)   - void setBuiltInZoomControls(boolean) + void setBuiltInZoomControls(boolean)   - void setUserAgentString(String) + void setUserAgentString(String)   @@ -135,7 +134,7 @@ Class android.webkit. - int getUserAgent() + int getUserAgent() Now deprecated.
      @@ -145,7 +144,7 @@ Class android.webkit. - void setUserAgent(int) + void setUserAgent(int) Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html index cd721c8fdff..acc289cbfb2 100644 --- a/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.webkit.WebView +Class android.webkit.WebView

      @@ -85,49 +84,49 @@ Class android.webkit. - void clearMatches() + void clearMatches()   - int findAll(String) + int findAll(String)   - void findNext(boolean) + void findNext(boolean)   - String getOriginalUrl() + String getOriginalUrl()   - boolean restorePicture(Bundle, File) + boolean restorePicture(Bundle, File)   - boolean savePicture(Bundle, File) + boolean savePicture(Bundle, File)   - void setNetworkAvailable(boolean) + void setNetworkAvailable(boolean)   @@ -142,7 +141,7 @@ Class android.webkit. - View getZoomControls() + View getZoomControls() Now deprecated.
      @@ -152,7 +151,7 @@ Class android.webkit. - void onGlobalFocusChanged(View, View) + void onGlobalFocusChanged(View, View) Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html index 6d1ed3535a4..f3dc8e74a98 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.AbsListView +Class android.widget.AbsListView

      @@ -85,35 +84,35 @@ Class android.widget. - CharSequence getTextFilter() + CharSequence getTextFilter()   - boolean isFastScrollEnabled() + boolean isFastScrollEnabled()   - boolean isSmoothScrollbarEnabled() + boolean isSmoothScrollbarEnabled()   - void setFastScrollEnabled(boolean) + void setFastScrollEnabled(boolean)   - void setSmoothScrollbarEnabled(boolean) + void setSmoothScrollbarEnabled(boolean)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html index 128b31f182e..830ea55d6f4 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.AbsSeekBar +Class android.widget.AbsSeekBar

      @@ -85,14 +84,14 @@ Class android.widget. - int getKeyProgressIncrement() + int getKeyProgressIncrement()   - void setKeyProgressIncrement(int) + void setKeyProgressIncrement(int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html index 77025f08c08..b43d34b25da 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.AbsoluteLayout +Class android.widget.AbsoluteLayout

      Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html index 0beed263f3f..e7b65ad2a3f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.ArrayAdapter +Class android.widget.ArrayAdapter

      @@ -85,7 +84,7 @@ Class android.widget. - void sort(Comparator<? super T>) + void sort(Comparator<? super T>)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html index a6e89e41b56..de125641d6e 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.AutoCompleteTextView +Class android.widget.AutoCompleteTextView

      @@ -85,70 +84,70 @@ Class android.widget. - void clearListSelection() + void clearListSelection()   - int getDropDownAnchor() + int getDropDownAnchor()   - int getDropDownWidth() + int getDropDownWidth()   - int getListSelection() + int getListSelection()   - OnItemClickListener getOnItemClickListener() + OnItemClickListener getOnItemClickListener()   - OnItemSelectedListener getOnItemSelectedListener() + OnItemSelectedListener getOnItemSelectedListener()   - boolean isPerformingCompletion() + boolean isPerformingCompletion()   - void setDropDownAnchor(int) + void setDropDownAnchor(int)   - void setDropDownWidth(int) + void setDropDownWidth(int)   - void setListSelection(int) + void setListSelection(int)   @@ -163,7 +162,7 @@ Class android.widget. - OnItemClickListener getItemClickListener() + OnItemClickListener getItemClickListener() Now deprecated.
      @@ -173,7 +172,7 @@ Class android.widget. - OnItemSelectedListener getItemSelectedListener() + OnItemSelectedListener getItemSelectedListener() Now deprecated.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html b/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html index 2a82a201933..428ece80299 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.Chronometer +Class android.widget.Chronometer

      @@ -85,14 +84,14 @@ Class android.widget. - OnChronometerTickListener getOnChronometerTickListener() + OnChronometerTickListener getOnChronometerTickListener()   - void setOnChronometerTickListener(OnChronometerTickListener) + void setOnChronometerTickListener(OnChronometerTickListener)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html index 0a890300efd..d0f54917edf 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.CursorAdapter +Class android.widget.CursorAdapter

      @@ -85,7 +84,7 @@ Class android.widget. - void onContentChanged() + void onContentChanged()   @@ -100,7 +99,7 @@ Class android.widget. - int getCount() + int getCount() Change from final to non-final.
      @@ -110,7 +109,7 @@ Change from final to non-final.
      - Object getItem(int) + Object getItem(int) Change from final to non-final.
      @@ -120,7 +119,7 @@ Change from final to non-final.
      - long getItemId(int) + long getItemId(int) Change from final to non-final.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html b/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html index 86e019ba9ce..3304a1ab183 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.GridView +Class android.widget.GridView

      @@ -86,7 +85,7 @@ Class android.widget. - int STRETCH_SPACING_UNIFORM + int STRETCH_SPACING_UNIFORM   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html b/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html index ecaf3096e59..dbef56f2ece 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.ListView +Class android.widget.ListView

      @@ -85,14 +84,14 @@ Class android.widget. - void setFooterDividersEnabled(boolean) + void setFooterDividersEnabled(boolean)   - void setHeaderDividersEnabled(boolean) + void setHeaderDividersEnabled(boolean)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html index 2e08886708b..7ef698de4f0 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface android.widget.PopupWindow.OnDismissListener +Interface android.widget.PopupWindow.OnDismissListener

      Change of visibility from to public.
      diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html index b3a33037a77..409ccc55656 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.PopupWindow +Class android.widget.PopupWindow

      @@ -85,98 +84,98 @@ Class android.widget. - int getInputMethodMode() + int getInputMethodMode()   - int getMaxAvailableHeight(View, int) + int getMaxAvailableHeight(View, int)   - boolean isAboveAnchor() + boolean isAboveAnchor()   - boolean isClippingEnabled() + boolean isClippingEnabled()   - boolean isOutsideTouchable() + boolean isOutsideTouchable()   - boolean isTouchable() + boolean isTouchable()   - void setClippingEnabled(boolean) + void setClippingEnabled(boolean)   - void setInputMethodMode(int) + void setInputMethodMode(int)   - void setOutsideTouchable(boolean) + void setOutsideTouchable(boolean)   - void setTouchInterceptor(OnTouchListener) + void setTouchInterceptor(OnTouchListener)   - void setTouchable(boolean) + void setTouchable(boolean)   - void setWindowLayoutMode(int, int) + void setWindowLayoutMode(int, int)   - void update() + void update()   - void update(int, int, int, int, boolean) + void update(int, int, int, int, boolean)   @@ -192,21 +191,21 @@ Class android.widget. - int INPUT_METHOD_FROM_FOCUSABLE + int INPUT_METHOD_FROM_FOCUSABLE   - int INPUT_METHOD_NEEDED + int INPUT_METHOD_NEEDED   - int INPUT_METHOD_NOT_NEEDED + int INPUT_METHOD_NOT_NEEDED   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html b/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html index eea94f2b5e0..9d1e13a0813 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.ProgressBar +Class android.widget.ProgressBar

      @@ -85,20 +84,20 @@ Class android.widget. - void onRestoreInstanceState(Parcelable) + void onRestoreInstanceState(Parcelable) -Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
      +Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
        - Parcelable onSaveInstanceState() + Parcelable onSaveInstanceState() -Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
      +Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
        diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html index c2f5c962329..ce206f5e83f 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.RemoteViews.ActionException +Class android.widget.RemoteViews.ActionException

      @@ -84,7 +83,7 @@ Class android.widget. - RemoteViews.ActionException(Exception) + RemoteViews.ActionException(Exception)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html index ef8eb082608..0a2719218d7 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.RemoteViews +Class android.widget.RemoteViews

      @@ -85,105 +84,105 @@ Class android.widget. - void setBitmap(int, String, Bitmap) + void setBitmap(int, String, Bitmap)   - void setBoolean(int, String, boolean) + void setBoolean(int, String, boolean)   - void setByte(int, String, byte) + void setByte(int, String, byte)   - void setChar(int, String, char) + void setChar(int, String, char)   - void setCharSequence(int, String, CharSequence) + void setCharSequence(int, String, CharSequence)   - void setDouble(int, String, double) + void setDouble(int, String, double)   - void setFloat(int, String, float) + void setFloat(int, String, float)   - void setImageViewBitmap(int, Bitmap) + void setImageViewBitmap(int, Bitmap)   - void setInt(int, String, int) + void setInt(int, String, int)   - void setLong(int, String, long) + void setLong(int, String, long)   - void setOnClickPendingIntent(int, PendingIntent) + void setOnClickPendingIntent(int, PendingIntent)   - void setShort(int, String, short) + void setShort(int, String, short)   - void setString(int, String, String) + void setString(int, String, String)   - void setTextColor(int, int) + void setTextColor(int, int)   - void setUri(int, String, Uri) + void setUri(int, String, Uri)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html index cee8f59b3d2..2cf9c82cf8b 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.ResourceCursorAdapter +Class android.widget.ResourceCursorAdapter

      @@ -84,7 +83,7 @@ Class android.widget. - ResourceCursorAdapter(Context, int, Cursor, boolean) + ResourceCursorAdapter(Context, int, Cursor, boolean)   @@ -100,7 +99,7 @@ Class android.widget. - void setViewResource(int) + void setViewResource(int)   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html b/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html index e5b524df665..c72001d6273 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35

      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.Scroller +Class android.widget.Scroller

      @@ -85,14 +84,14 @@ Class android.widget. - int getStartX() + int getStartX()   - int getStartY() + int getStartY()   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html index 63b7b132902..7ceecd6f892 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.SimpleCursorAdapter +Class android.widget.SimpleCursorAdapter

      @@ -85,7 +84,7 @@ Class android.widget. - void changeCursorAndColumns(Cursor, String[], int[]) + void changeCursorAndColumns(Cursor, String[], int[])   diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html b/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html index 42ecdc9f58f..08f74540960 100644 --- a/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html +++ b/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class android.widget.TextView +Class android.widget.TextView

      @@ -85,217 +84,217 @@ Class android.widget. - void beginBatchEdit() + void beginBatchEdit()   - boolean bringPointIntoView(int) + boolean bringPointIntoView(int)   - void clearComposingText() + void clearComposingText()   - boolean didTouchFocusSelect() + boolean didTouchFocusSelect()   - void endBatchEdit() + void endBatchEdit()   - boolean extractText(ExtractedTextRequest, ExtractedText) + boolean extractText(ExtractedTextRequest, ExtractedText)   - Editable getEditableText() + Editable getEditableText()   - int getImeActionId() + int getImeActionId()   - CharSequence getImeActionLabel() + CharSequence getImeActionLabel()   - int getImeOptions() + int getImeOptions()   - Bundle getInputExtras(boolean) + Bundle getInputExtras(boolean)   - int getInputType() + int getInputType()   - String getPrivateImeOptions() + String getPrivateImeOptions()   - boolean isInputMethodTarget() + boolean isInputMethodTarget()   - boolean moveCursorToVisibleOffset() + boolean moveCursorToVisibleOffset()   - void onBeginBatchEdit() + void onBeginBatchEdit()   - void onCommitCompletion(CompletionInfo) + void onCommitCompletion(CompletionInfo)   - void onEditorAction(int) + void onEditorAction(int)   - void onEndBatchEdit() + void onEndBatchEdit()   - boolean onPrivateIMECommand(String, Bundle) + boolean onPrivateIMECommand(String, Bundle)   - void onSelectionChanged(int, int) + void onSelectionChanged(int, int)   - boolean onTextContextMenuItem(int) + boolean onTextContextMenuItem(int)   - void setCompoundDrawablesWithIntrinsicBounds(int, int, int, int) + void setCompoundDrawablesWithIntrinsicBounds(int, int, int, int)   - void setExtractedText(ExtractedText) + void setExtractedText(ExtractedText)   - void setImeActionLabel(CharSequence, int) + void setImeActionLabel(CharSequence, int)   - void setImeOptions(int) + void setImeOptions(int)   - void setInputExtras(int) + void setInputExtras(int)   - void setInputType(int) + void setInputType(int)   - void setOnEditorActionListener(OnEditorActionListener) + void setOnEditorActionListener(OnEditorActionListener)   - void setPrivateImeOptions(String) + void setPrivateImeOptions(String)   - void setRawInputType(int) + void setRawInputType(int)   diff --git a/docs/html/sdk/api_diff/3/changes/changes-summary.html b/docs/html/sdk/api_diff/3/changes/changes-summary.html index bf52a965807..65a37f8d3b3 100644 --- a/docs/html/sdk/api_diff/3/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/3/changes/changes-summary.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,12 +67,13 @@ body{background-image:url();padding:12px;}
      -
      +

      Android API Differences Report

      -

      This report details the changes in the core Android framework API between two API Level +

      This report details the changes in the core Android framework API between two API Level specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.

      This report is based a comparison of the Android API specifications @@ -83,7 +83,7 @@ older API. So, for example, API elements marked as removed are no longer present API specification.

      To navigate the report, use the "Select a Diffs Index" and "Filter the Index" controls on the left. The report uses text formatting to indicate interface names, -links to reference documentation, and links to change +links to reference documentation, and links to change description. The statistics are accessible from the "Statistics" link in the upper-right corner.

      For more information about the Android framework API and SDK, see the Android Developers site.

      @@ -96,42 +96,42 @@ see the Android - android.appwidget + android.appwidget   - android.inputmethodservice + android.inputmethodservice   - android.speech + android.speech   - android.text.format + android.text.format   - android.view.inputmethod + android.view.inputmethod   - java.beans + java.beans   @@ -381,27 +381,6 @@ see the Android   - - - - java.lang.reflect - -   - - - - - java.net - -   - - - - - java.util - -   - diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_additions.html b/docs/html/sdk/api_diff/3/changes/classes_index_additions.html index 32a68e3117f..f15b280b0a4 100644 --- a/docs/html/sdk/api_diff/3/changes/classes_index_additions.html +++ b/docs/html/sdk/api_diff/3/changes/classes_index_additions.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_all.html b/docs/html/sdk/api_diff/3/changes/classes_index_all.html index 5815c29ca5a..408e7498e10 100644 --- a/docs/html/sdk/api_diff/3/changes/classes_index_all.html +++ b/docs/html/sdk/api_diff/3/changes/classes_index_all.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -215,7 +214,6 @@ body{background-image:url();padding:12px;} TOP

      DatabaseUtils
      -Date
      DateKeyListener
      DateTimeKeyListener
      Debug
      @@ -638,7 +636,6 @@ body{background-image:url();padding:12px;} ProgressBar
      ProviderTestCase
      ProviderTestCase2
      -Proxy

      Q  A @@ -760,14 +757,12 @@ body{background-image:url();padding:12px;} SlidingDrawer.OnDrawerOpenListener
      SlidingDrawer.OnDrawerScrollListener
      SmsMessage
      -Socket
      SoundPool
      Spanned
      SpanWatcher
      SparseIntArray
      SQLiteDatabase
      StrikethroughSpan
      -String
      StyleSpan
      SubscriptSpan
      SuperscriptSpan
      @@ -800,7 +795,6 @@ body{background-image:url();padding:12px;}

      TelephonyManager
      TestMethod
      -TestSuiteBuilder
      TextAppearanceSpan
      TextKeyListener
      TextUtils
      diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_changes.html b/docs/html/sdk/api_diff/3/changes/classes_index_changes.html index 58d4edcbc8a..df07718a101 100644 --- a/docs/html/sdk/api_diff/3/changes/classes_index_changes.html +++ b/docs/html/sdk/api_diff/3/changes/classes_index_changes.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -197,7 +196,6 @@ body{background-image:url();padding:12px;} TOP

      DatabaseUtils
      -Date
      DateKeyListener
      DateTimeKeyListener
      Debug
      @@ -548,7 +546,6 @@ body{background-image:url();padding:12px;} PopupWindow.OnDismissListener
      ProgressBar
      ProviderTestCase
      -Proxy

      Q  A @@ -655,14 +652,12 @@ body{background-image:url();padding:12px;} Shape
      SimpleCursorAdapter
      SmsMessage
      -Socket
      SoundPool
      Spanned
      SpanWatcher
      SparseIntArray
      SQLiteDatabase
      StrikethroughSpan
      -String
      StyleSpan
      SubscriptSpan
      SuperscriptSpan
      @@ -694,7 +689,6 @@ body{background-image:url();padding:12px;}

      TelephonyManager
      TestMethod
      -TestSuiteBuilder
      TextAppearanceSpan
      TextKeyListener
      TextUtils
      diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_removals.html b/docs/html/sdk/api_diff/3/changes/classes_index_removals.html index bc5e2e82195..5b389884054 100644 --- a/docs/html/sdk/api_diff/3/changes/classes_index_removals.html +++ b/docs/html/sdk/api_diff/3/changes/classes_index_removals.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed
      diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html b/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html index 0dff7fe55a9..e934822a2eb 100644 --- a/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_all.html b/docs/html/sdk/api_diff/3/changes/constructors_index_all.html index 49ad673c48a..937254861b5 100644 --- a/docs/html/sdk/api_diff/3/changes/constructors_index_all.html +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_all.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -118,11 +117,6 @@ body{background-image:url();padding:12px;} V TOP

      -Date
      -  Date -() constructor
      -  Date -(int, int, int, int, int, int) constructor
      DynamicDrawableSpan (int) constructor
      @@ -393,30 +387,8 @@ body{background-image:url();padding:12px;}

      ScaleXSpan (Parcel) constructor
      -Socket
      -  Socket -() constructor
      -  Socket -(String, int) constructor
      -  Socket -(String, int, InetAddress, int) constructor
      -  Socket -(Proxy) constructor
      -  Socket -(SocketImpl) constructor
      StrikethroughSpan (Parcel) constructor
      -String
      -  String -() constructor
      -  String -(byte[]) constructor
      -  String -(byte[], int) constructor
      -  String -(byte[], int, int) constructor
      -  String -(byte[], int, int, int) constructor
      StyleSpan (Parcel) constructor
      SubscriptSpan diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html b/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html index 8ea3eec7b03..34bc39135c5 100644 --- a/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,25 +44,11 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed
      - -
      D  -G -S -V - TOP -

      -Date
      -  
      Date -() constructor
      -  Date -(int, int, int, int, int, int) constructor

      G  -D -S V TOP

      @@ -72,40 +57,9 @@ body{background-image:url();padding:12px;} (OnGestureListener) constructor
        GestureDetector (OnGestureListener, Handler) constructor
      - -
      S  -D -G -V - TOP -

      -Socket
      -  Socket -() constructor
      -  Socket -(String, int) constructor
      -  Socket -(String, int, InetAddress, int) constructor
      -  Socket -(Proxy) constructor
      -  Socket -(SocketImpl) constructor
      -String
      -  String -() constructor
      -  String -(byte[]) constructor
      -  String -(byte[], int) constructor
      -  String -(byte[], int, int) constructor
      -  String -(byte[], int, int, int) constructor

      V  -D G -S TOP

      ViewConfiguration diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html b/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html index 8e591c1e3fd..5306e8d3528 100644 --- a/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      N  diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html index ef3937c0a19..b8517aa6a7e 100644 --- a/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class dalvik.system.DexFile +Class dalvik.system.DexFile

      @@ -85,7 +84,7 @@ Class dalvik.system. -
      DexFile loadDex(String, String, int) + DexFile loadDex(String, String, int)   diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html index c7ee9094256..3f53e4484ec 100644 --- a/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class dalvik.system.VMDebug +Class dalvik.system.VMDebug

      @@ -85,14 +84,14 @@ Class dalvik.system. - void dumpHprofData(String) + void dumpHprofData(String)   - boolean isDebuggingEnabled() + boolean isDebuggingEnabled()   diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html index d26e9e64abe..4282162da68 100644 --- a/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,59 +67,67 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class dalvik.system.Zygote +Class dalvik.system.Zygote

      - - + +
      -
      Added Methods + Removed Methods
      - - int forkAndSpecialize(int, int, int[], int, int[][]) + + int forkAndSpecialize(int, int, int[], boolean, int[][])  
      - - int forkSystemServer(int, int, int[], int, int[][]) + + int forkSystemServer(int, int, int[], boolean, int[][])  
       

      - - + +
      - - + + + - + + + @@ -136,21 +143,21 @@ Class dalvik.system. diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_additions.html b/docs/html/sdk/api_diff/3/changes/fields_index_additions.html index c2c3b494595..5c24079052f 100644 --- a/docs/html/sdk/api_diff/3/changes/fields_index_additions.html +++ b/docs/html/sdk/api_diff/3/changes/fields_index_additions.html @@ -22,10 +22,9 @@ body{overflow:auto;} - +
      Changed Methods + Added Methods
      - - int forkAndSpecialize(int, int, int[], boolean, int[][]) + + int forkAndSpecialize(int, int, int[], int, int[][]) -Now deprecated.
      +
       
      + + int forkAndSpecialize(int, int, int[], boolean, int[][])  
      - - int forkSystemServer(int, int, int[], boolean, int[][]) + + int forkSystemServer(int, int, int[], int, int[][]) -Now deprecated.
      +
       
      + + int forkSystemServer(int, int, int[], boolean, int[][])  
      - int DEBUG_ENABLE_ASSERT + int DEBUG_ENABLE_ASSERT  
      - int DEBUG_ENABLE_CHECKJNI + int DEBUG_ENABLE_CHECKJNI  
      - int DEBUG_ENABLE_DEBUGGER + int DEBUG_ENABLE_DEBUGGER  
      @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -

      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -246,11 +245,11 @@ body{background-image:url();padding:12px;} copyUrl
      CREATOR
      - in  -android.content.res.AssetFileDescriptor + in  +android.content.res.AssetFileDescriptor
      - in  -android.graphics.RectF + in  +android.graphics.RectF
      cut
      @@ -476,11 +475,11 @@ body{background-image:url();padding:12px;} handle
      HAPTIC_FEEDBACK_ENABLED
      - in  -android.provider.Settings.System + in  +android.provider.Settings.System
      - in  -android.view.View + in  +android.view.View
      hapticFeedbackEnabled
      @@ -783,11 +782,11 @@ body{background-image:url();padding:12px;} paste
      PHONETIC_NAME
      - in  -android.provider.Contacts.Intents.Insert + in  +android.provider.Contacts.Intents.Insert
      - in  -android.provider.Contacts.PeopleColumns + in  +android.provider.Contacts.PeopleColumns
      popupCharacters
      @@ -884,11 +883,11 @@ body{background-image:url();padding:12px;} sharedUserId
      sharedUserLabel
      - in  -android.R.attr + in  +android.R.attr
      - in  -android.content.pm.PackageInfo + in  +android.content.pm.PackageInfo
      SHOW_OR_CREATE_CONTACT
      @@ -921,11 +920,11 @@ body{background-image:url();padding:12px;} SOFT_INPUT_STATE_VISIBLE
      softInputMode
      - in  -android.content.pm.ActivityInfo + in  +android.content.pm.ActivityInfo
      - in  -android.view.WindowManager.LayoutParams + in  +android.view.WindowManager.LayoutParams
      SPAN_COMPOSING
      diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_all.html b/docs/html/sdk/api_diff/3/changes/fields_index_all.html index 786a3600545..49c429fd1d0 100644 --- a/docs/html/sdk/api_diff/3/changes/fields_index_all.html +++ b/docs/html/sdk/api_diff/3/changes/fields_index_all.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -264,11 +263,11 @@ body{background-image:url();padding:12px;} copyUrl
      CREATOR
      - in  -android.content.res.AssetFileDescriptor + in  +android.content.res.AssetFileDescriptor
      - in  -android.graphics.RectF + in  +android.graphics.RectF
      cut
      @@ -312,11 +311,11 @@ body{background-image:url();padding:12px;} DEBUG_ENABLE_DEBUGGER
      DEFAULT_SORT_ORDER
      - in  -android.provider.MediaStore.Images.Media + in  +android.provider.MediaStore.Images.Media
      - in  -android.provider.MediaStore.Video + in  +android.provider.MediaStore.Video
      DEVICE_PROVISIONED
      @@ -515,11 +514,11 @@ body{background-image:url();padding:12px;} handle
      HAPTIC_FEEDBACK_ENABLED
      - in  -android.provider.Settings.System + in  +android.provider.Settings.System
      - in  -android.view.View + in  +android.view.View
      hapticFeedbackEnabled
      @@ -852,11 +851,11 @@ body{background-image:url();padding:12px;} phoneNumber
      PHONETIC_NAME
      - in  -android.provider.Contacts.Intents.Insert + in  +android.provider.Contacts.Intents.Insert
      - in  -android.provider.Contacts.PeopleColumns + in  +android.provider.Contacts.PeopleColumns
      popupCharacters
      @@ -989,11 +988,11 @@ body{background-image:url();padding:12px;} sharedUserId
      sharedUserLabel
      - in  -android.R.attr + in  +android.R.attr
      - in  -android.content.pm.PackageInfo + in  +android.content.pm.PackageInfo
      SHOW_OR_CREATE_CONTACT
      @@ -1028,11 +1027,11 @@ body{background-image:url();padding:12px;} SOFT_INPUT_STATE_VISIBLE
      softInputMode
      - in  -android.content.pm.ActivityInfo + in  +android.content.pm.ActivityInfo
      - in  -android.view.WindowManager.LayoutParams + in  +android.view.WindowManager.LayoutParams
      SPAN_COMPOSING
      diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_changes.html b/docs/html/sdk/api_diff/3/changes/fields_index_changes.html index 3f5dd5a9b77..5059b344a1e 100644 --- a/docs/html/sdk/api_diff/3/changes/fields_index_changes.html +++ b/docs/html/sdk/api_diff/3/changes/fields_index_changes.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -145,11 +144,11 @@ body{background-image:url();padding:12px;} DATA_Z
      DEFAULT_SORT_ORDER
      - in  -android.provider.MediaStore.Images.Media + in  +android.provider.MediaStore.Images.Media
      - in  -android.provider.MediaStore.Video + in  +android.provider.MediaStore.Video
      DEVICE_PROVISIONED
      diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_removals.html b/docs/html/sdk/api_diff/3/changes/fields_index_removals.html index 58ad6557e1e..fc49c41f6c9 100644 --- a/docs/html/sdk/api_diff/3/changes/fields_index_removals.html +++ b/docs/html/sdk/api_diff/3/changes/fields_index_removals.html @@ -22,10 +22,9 @@ body{overflow:auto;} - + @@ -45,8 +44,8 @@ body{background-image:url();padding:12px;}
      -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      C  diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html b/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html index f7c9d8f6406..0e04731d6cb 100644 --- a/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html +++ b/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class java.lang.Character.UnicodeBlock +Class java.lang.Character.UnicodeBlock

      @@ -85,7 +84,7 @@ Class java.lang. - UnicodeBlock forName(String) + UnicodeBlock forName(String) Change from non-final to final.
      diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.Class.html b/docs/html/sdk/api_diff/3/changes/java.lang.Class.html index fa0b0563995..212899a58aa 100644 --- a/docs/html/sdk/api_diff/3/changes/java.lang.Class.html +++ b/docs/html/sdk/api_diff/3/changes/java.lang.Class.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class java.lang.Class +Class java.lang.Class

      @@ -85,7 +84,7 @@ Class java.lang. - Class[] getClasses() + Class[] getClasses() Change in return type from Class<?> to Class[].
      @@ -95,7 +94,7 @@ Change in return type from Class<?> to Class[].< - Constructor[] getConstructors() + Constructor[] getConstructors() Change in return type from Constructor<T> to Constructor[].
      @@ -105,7 +104,7 @@ Change in return type from Constructor<T> to Constructo - Class[] getDeclaredClasses() + Class[] getDeclaredClasses() Change in return type from Class<?> to Class[].
      @@ -115,7 +114,7 @@ Change in return type from Class<?> to Class[].< - Constructor[] getDeclaredConstructors() + Constructor[] getDeclaredConstructors() Change in return type from Constructor<T> to Constructor[].
      @@ -125,7 +124,7 @@ Change in return type from Constructor<T> to Constructo - Class[] getInterfaces() + Class[] getInterfaces() Change in return type from Class<?> to Class[].
      diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.String.html b/docs/html/sdk/api_diff/3/changes/java.lang.String.html deleted file mode 100644 index 5c41b8cc893..00000000000 --- a/docs/html/sdk/api_diff/3/changes/java.lang.String.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - -java.lang.String - - - - - - - - - - -
      -
      -
      -

      -Class java.lang.String -

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Changed Constructors -
      - - String() - -  
      - - String(byte[]) - -  
      - - String(byte[], int) - -  
      - - String(byte[], int, int) - -  
      - - String(byte[], int, int, int) - -  
      -  - - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html b/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html deleted file mode 100644 index f593c0ee8e7..00000000000 --- a/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - -java.lang.reflect.Proxy - - - - - - - - - - -
      -
      -
      -

      -Class java.lang.reflect.Proxy -

      - - -

      - - - - - - - - - -
      Changed Methods -
      - - Class<?> getProxyClass(ClassLoader, Class<?>) - -Change in signature from (ClassLoader, ) to (ClassLoader, Class<?>).
      -
       
      -  - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/3/changes/java.net.Socket.html b/docs/html/sdk/api_diff/3/changes/java.net.Socket.html deleted file mode 100644 index 6027217d619..00000000000 --- a/docs/html/sdk/api_diff/3/changes/java.net.Socket.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - -java.net.Socket - - - - - - - - - - -
      -
      -
      -

      -Class java.net.Socket -

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Changed Constructors -
      - - Socket() - -  
      - - Socket(String, int) - -  
      - - Socket(String, int, InetAddress, int) - -  
      - - Socket(Proxy) - -  
      - - Socket(SocketImpl) - -  
      -  - - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/3/changes/java.util.Date.html b/docs/html/sdk/api_diff/3/changes/java.util.Date.html deleted file mode 100644 index 6a8dd268563..00000000000 --- a/docs/html/sdk/api_diff/3/changes/java.util.Date.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - -java.util.Date - - - - - - - - - - -
      -
      -
      -

      -Class java.util.Date -

      - -

      - - - - - - - - - - - - - - -
      Changed Constructors -
      - - Date() - -  
      - - Date(int, int, int, int, int, int) - -  
      -  - - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html index 75b4cbc4a8f..c27ba0c7f1d 100644 --- a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html +++ b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface java.util.jar.Pack200.Packer +Interface java.util.jar.Pack200.Packer

      @@ -85,14 +84,14 @@ Interface java.util.jar. - void addPropertyChangeListener(PropertyChangeListener) + void addPropertyChangeListener(PropertyChangeListener)   - void removePropertyChangeListener(PropertyChangeListener) + void removePropertyChangeListener(PropertyChangeListener)   diff --git a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html index 382fdea8428..ca185e032c8 100644 --- a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html +++ b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Interface java.util.jar.Pack200.Unpacker +Interface java.util.jar.Pack200.Unpacker

      @@ -85,14 +84,14 @@ Interface java.util.jar. - void addPropertyChangeListener(PropertyChangeListener) + void addPropertyChangeListener(PropertyChangeListener)   - void removePropertyChangeListener(PropertyChangeListener) + void removePropertyChangeListener(PropertyChangeListener)   diff --git a/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html b/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html index 7f5fd19782c..e85b8a64974 100644 --- a/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html +++ b/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class java.util.logging.Level +Class java.util.logging.Level

      @@ -85,7 +84,7 @@ Class java.util.logging. - Level parse(String) + Level parse(String) Change in exceptions thrown from no exceptions to java.lang.IllegalArgumentException.
      diff --git a/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html b/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html index d259077f26d..9682ddc2dc0 100644 --- a/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html +++ b/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -55,7 +54,7 @@ body{background-image:url();padding:12px;} Generated - 2009.04.20 09:15 + 2009.11.19 19:35
      @@ -68,11 +67,11 @@ body{background-image:url();padding:12px;}
      -
      +

      -Class java.util.logging.LogManager +Class java.util.logging.LogManager

      @@ -85,21 +84,21 @@ Class java.util.logging. - void addPropertyChangeListener(PropertyChangeListener) + void addPropertyChangeListener(PropertyChangeListener)   - LoggingMXBean getLoggingMXBean() + LoggingMXBean getLoggingMXBean()   - void removePropertyChangeListener(PropertyChangeListener) + void removePropertyChangeListener(PropertyChangeListener)   diff --git a/docs/html/sdk/api_diff/3/changes/jdiff_help.html b/docs/html/sdk/api_diff/3/changes/jdiff_help.html index 21a59f92d52..08f8704559d 100644 --- a/docs/html/sdk/api_diff/3/changes/jdiff_help.html +++ b/docs/html/sdk/api_diff/3/changes/jdiff_help.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -32,7 +31,7 @@ body{background-image:url();padding:12px;} - + @@ -74,11 +73,11 @@ These indexes all use the same format:
      You can always tell when you are reading a JDiff page, rather than a Javadoc page, by the color of the index bar and the color of the background. -Links which take you to a Javadoc page are always in a typewriter font. +Links which take you to a Javadoc page are always in a typewriter font. Just like Javadoc, all interface names are in italic, and class names are not italicized. Where there are multiple entries in an index with the same name, the heading for them is also in italics, but is not a link.
      -

      Javadoc

      +

      Javadoc

      This is a link to the top-level Javadoc page for the new version of the product.
      diff --git a/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html index 6faea52ee8f..e39c5b9d83f 100644 --- a/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html +++ b/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html @@ -22,7 +22,6 @@ body{overflow:auto;} @@ -46,16 +45,16 @@ body{background-image:url();padding:12px;}
      - + - + - +
      API Diff Specification
      To Version:To Level: 3
      From Version:From Level: 2
      Generated2009.04.20 09:152009.11.19 19:35
      @@ -72,29 +71,71 @@ body{background-image:url();padding:12px;}

      API Change Statistics

      +

      The overall difference between API Levels 2 and 3 is approximately 4.33%. +

      +
      + +

      Total of Differences, by Number and Type

      -The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      -
      -Percentage difference = 100 * (added + removed + 2*changed)
      -                        -----------------------------------
      -                        sum of public elements in BOTH APIs
      -
      -

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. -This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. -The definition ensures that if all packages are removed and all new packages are -added, the change will be 100%. Values are rounded here, so a value of 0% indicates a percentage difference of less than 0.5%.

      -

      The overall difference between the two APIs is approximately 4%. +The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class.

      -

      Contents

      -
      Changed Packages
      Sorted by percentage difference
      -
      Changed Classes and Interfaces
      Sorted by percentage difference
      -
      Total of Differences
      Listed by number and type
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TypeAdditionsChangesRemovalsTotal
      Packages636042
      Classes and Interfaces671810248
      Constructors363140
      Methods386645455
      Fields296681365
      Total79135271150

      Changed Packages, Sorted by Percentage Difference

      - + @@ -141,10 +182,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -169,6 +206,10 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica + + + + @@ -209,10 +250,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -225,10 +262,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -237,10 +270,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -251,15 +280,16 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - +
      Percentage DifferencePercentage Difference* Package
      8 android.test
      8android.test.suitebuilder
      7 android5 android.os
      4android.test.suitebuilder
      4 android.webkit<1 android.test.mock
      <1java.lang.reflect
      <1 android.view.animation<1 android.telephony.gsm
      <1java.net
      <1 android.database<1 android.graphics
      <1java.lang
      <1 android.database.sqlite
      <1java.utiljava.lang
      +

      * See Calculation of Change Percentages, below.


      Changed Classes and Interfaces, Sorted by Percentage Difference

      - + @@ -677,21 +707,11 @@ android.media.MediaPlayer - - - - - - - - - - - - - - - - - - - -android.text.style.UpdateLayout
      Percentage
      Difference
      Percentage
      Difference*
      Class or Interface
      android.test.ProviderTestCase
      10 -android.test.suitebuilder.TestSuiteBuilder
      10 android.widget.Chronometer
      10 -java.net.Socket
      9 @@ -712,11 +732,6 @@ android.media.AudioManager android.view.ViewTreeObserver
      8 -java.lang.reflect.Proxy
      8 @@ -762,11 +777,6 @@ android.os.Environment android.view.KeyEvent
      6 -java.lang.String
      6 @@ -787,11 +797,6 @@ android.view.OrientationListener dalvik.system.DexFile
      6 -java.util.Date
      6 @@ -1193,67 +1198,20 @@ java.lang.Character.UnicodeBlock
      +

      * See Calculation of Change Percentages, below.


      - -

      Total of Differences, by Number and Type

      +

      Calculation of Change Percentages

      -The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were removed, added or changed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class. -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - Number of Differences
        - RemovalsAdditionsChangesTotal
      Packages063945
      Classes and Interfaces067186253
      Constructors1361552
      Methods038171452
      Fields129668365
      Total27863791167
      +The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      +
      +Percentage difference = 100 * (added + removed + 2*changed)
      +                        -----------------------------------
      +                        sum of public elements in BOTH APIs
      +
      +

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. +This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. +The definition ensures that if all packages are removed and all new packages are +added, the change will be 100%.

      diff --git a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html index de1d3547524..a76ab489cd6 100644 --- a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html +++ b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html index bad2b22ced4..6a123acbe0e 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html index 79e40a8b60f..9629a79d48e 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html index 487c69b337e..1f2d3d65cfc 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html index 6ce83af6e85..8b52b3f16ff 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html index 8940867ba22..65286bd15b1 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html index 17b2a5edba2..f080dc52087 100644 --- a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html +++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      diff --git a/docs/html/sdk/api_diff/4/changes/changes-summary.html b/docs/html/sdk/api_diff/4/changes/changes-summary.html index a4850a52a19..88b8be6820f 100644 --- a/docs/html/sdk/api_diff/4/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/4/changes/changes-summary.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      @@ -72,7 +72,8 @@ body{overflow:auto;}

      Android API Differences Report

      -

      This report details the changes in the core Android framework API between two API Level +

      This report details the changes in the core Android framework API between two API Level specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.

      This report is based a comparison of the Android API specifications @@ -298,22 +299,15 @@ see the Android - - java.lang + + java.util.concurrent   - - java.net - -   - - - - - java.util + + java.util.concurrent.locks   diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html index d59f6660d46..71e2423836f 100644 --- a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html +++ b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html @@ -44,8 +44,8 @@ body{overflow:auto;} -

      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_all.html b/docs/html/sdk/api_diff/4/changes/classes_index_all.html index 4af271601e2..5415cf4d3dc 100644 --- a/docs/html/sdk/api_diff/4/changes/classes_index_all.html +++ b/docs/html/sdk/api_diff/4/changes/classes_index_all.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -68,6 +68,7 @@ body{overflow:auto;} Z TOP

      +AbstractQueuedSynchronizer
      Activity
      ActivityInfo
      Address
      @@ -159,7 +160,6 @@ body{overflow:auto;} Z TOP

      -Date
      Dialog
      DisplayMetrics
      Drawable
      @@ -425,8 +425,6 @@ body{overflow:auto;} SmsMessage.SubmitPdu
        android.telephony
        android.telephony.gsm
      -Socket
      -String
      Surface

      T  @@ -451,6 +449,8 @@ body{overflow:auto;}

      TabHost.TabSpec
      TabWidget
      +TelephonyManager
      +TimeUnit
      ToneGenerator
      TypedValue
      Typeface
      diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html index 193e21cb568..f74c8577990 100644 --- a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html +++ b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -65,6 +65,7 @@ body{overflow:auto;} W TOP

      +AbstractQueuedSynchronizer
      Activity
      ActivityInfo
      Address
      @@ -142,7 +143,6 @@ body{overflow:auto;} W TOP

      -Date
      Dialog
      DisplayMetrics
      Drawable
      @@ -323,8 +323,6 @@ body{overflow:auto;} SmsMessage
      SmsMessage.MessageClass
      SmsMessage.SubmitPdu
      -Socket
      -String
      Surface

      T  @@ -346,6 +344,8 @@ body{overflow:auto;}

      TabHost.TabSpec
      TabWidget
      +TelephonyManager
      +TimeUnit
      ToneGenerator
      TypedValue
      Typeface
      diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_removals.html b/docs/html/sdk/api_diff/4/changes/classes_index_removals.html index f5cb9dd69b9..9b37279d28d 100644 --- a/docs/html/sdk/api_diff/4/changes/classes_index_removals.html +++ b/docs/html/sdk/api_diff/4/changes/classes_index_removals.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      I  diff --git a/docs/html/sdk/api_diff/4/changes/constructors_index_additions.html b/docs/html/sdk/api_diff/4/changes/constructors_index_additions.html index 7d6ad75380b..85db6804a5a 100644 --- a/docs/html/sdk/api_diff/4/changes/constructors_index_additions.html +++ b/docs/html/sdk/api_diff/4/changes/constructors_index_additions.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      B  diff --git a/docs/html/sdk/api_diff/4/changes/constructors_index_all.html b/docs/html/sdk/api_diff/4/changes/constructors_index_all.html index 87ed25915fe..cd80e6d854a 100644 --- a/docs/html/sdk/api_diff/4/changes/constructors_index_all.html +++ b/docs/html/sdk/api_diff/4/changes/constructors_index_all.html @@ -44,12 +44,11 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      B  -D I N S @@ -64,23 +63,9 @@ body{overflow:auto;} () constructor
        BitmapDrawable (Bitmap) constructor
      - -
      D  -B -I -N -S - TOP -

      -Date
      -  Date -() constructor
      -  Date -(int, int, int, int, int, int) constructor

      I  B -D N S TOP @@ -97,7 +82,6 @@ body{overflow:auto;}
      N  B -D I S TOP @@ -114,7 +98,6 @@ body{overflow:auto;}
      S  B -D I N TOP @@ -123,28 +106,6 @@ body{overflow:auto;} () constructor
      SmsMessage.SubmitPdu () constructor
      -Socket
      -  Socket -() constructor
      -  Socket -(String, int) constructor
      -  Socket -(String, int, InetAddress, int) constructor
      -  Socket -(Proxy) constructor
      -  Socket -(SocketImpl) constructor
      -String
      -  String -() constructor
      -  String -(byte[]) constructor
      -  String -(byte[], int) constructor
      -  String -(byte[], int, int) constructor
      -  String -(byte[], int, int, int) constructor
      diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html index 8ab19bae74a..d1bb48f1037 100644 --- a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html +++ b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -181,14 +181,16 @@ body{overflow:auto;} W TOP

      +DATA_ACTIVITY_DORMANT +
      density
      DENSITY_DEFAULT
      - in  -android.util.DisplayMetrics + in  +android.util.DisplayMetrics
      - in  -android.util.TypedValue + in  +android.util.TypedValue
      DENSITY_HIGH
      @@ -197,11 +199,11 @@ body{overflow:auto;} DENSITY_MEDIUM
      DENSITY_NONE
      - in  -android.graphics.Bitmap + in  +android.graphics.Bitmap
      - in  -android.util.TypedValue + in  +android.util.TypedValue
      densityDpi
      @@ -450,6 +452,14 @@ body{overflow:auto;} W TOP

      +NETWORK_TYPE_1xRTT +
      +NETWORK_TYPE_CDMA +
      +NETWORK_TYPE_EVDO_0 +
      +NETWORK_TYPE_EVDO_A +
      normalScreens
      @@ -504,6 +514,8 @@ body{overflow:auto;}

      pathPermissions
      +PHONE_TYPE_CDMA +
      progressBarStyleInverse
      progressBarStyleLargeInverse @@ -663,11 +675,11 @@ body{overflow:auto;} TOP

      targetSdkVersion
      - in  -
      android.R.attr + in  +android.R.attr
      - in  -android.content.pm.ApplicationInfo + in  +android.content.pm.ApplicationInfo
      tension
      diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_all.html b/docs/html/sdk/api_diff/4/changes/fields_index_all.html index 3d155b7bfa7..05afee5237b 100644 --- a/docs/html/sdk/api_diff/4/changes/fields_index_all.html +++ b/docs/html/sdk/api_diff/4/changes/fields_index_all.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -183,21 +183,23 @@ body{overflow:auto;} W TOP

      +DATA_ACTIVITY_DORMANT +
      DEFAULT_SORT_ORDER
      - in  -android.provider.MediaStore.Audio.Genres.Members + in  +android.provider.MediaStore.Audio.Genres.Members
      - in  -android.provider.MediaStore.Audio.Media + in  +android.provider.MediaStore.Audio.Media
      density
      DENSITY_DEFAULT
      - in  -android.util.DisplayMetrics + in  +android.util.DisplayMetrics
      - in  -android.util.TypedValue + in  +android.util.TypedValue
      DENSITY_HIGH
      @@ -206,11 +208,11 @@ body{overflow:auto;} DENSITY_MEDIUM
      DENSITY_NONE
      - in  -android.graphics.Bitmap + in  +android.graphics.Bitmap
      - in  -android.util.TypedValue + in  +android.util.TypedValue
      densityDpi
      @@ -535,6 +537,14 @@ body{overflow:auto;} W TOP

      +NETWORK_TYPE_1xRTT +
      +NETWORK_TYPE_CDMA +
      +NETWORK_TYPE_EVDO_0 +
      +NETWORK_TYPE_EVDO_A +
      normalScreens
      @@ -589,6 +599,8 @@ body{overflow:auto;}

      pathPermissions
      +PHONE_TYPE_CDMA +
      PROFILE
      progressBarStyleInverse @@ -778,11 +790,11 @@ body{overflow:auto;} TOP

      targetSdkVersion
      - in  -
      android.R.attr + in  +android.R.attr
      - in  -android.content.pm.ApplicationInfo + in  +android.content.pm.ApplicationInfo
      tension
      diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_changes.html b/docs/html/sdk/api_diff/4/changes/fields_index_changes.html index bd7a48f9b8c..5d600341e8b 100644 --- a/docs/html/sdk/api_diff/4/changes/fields_index_changes.html +++ b/docs/html/sdk/api_diff/4/changes/fields_index_changes.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      D  @@ -58,11 +58,11 @@ body{overflow:auto;} TOP

      DEFAULT_SORT_ORDER
      - in  -android.provider.MediaStore.Audio.Genres.Members + in  +android.provider.MediaStore.Audio.Genres.Members
      - in  -android.provider.MediaStore.Audio.Media + in  +android.provider.MediaStore.Audio.Media

      E  diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_removals.html b/docs/html/sdk/api_diff/4/changes/fields_index_removals.html index a249a9e011e..1ec4ff53882 100644 --- a/docs/html/sdk/api_diff/4/changes/fields_index_removals.html +++ b/docs/html/sdk/api_diff/4/changes/fields_index_removals.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  diff --git a/docs/html/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html b/docs/html/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html new file mode 100644 index 00000000000..41c1be363c2 --- /dev/null +++ b/docs/html/sdk/api_diff/4/changes/java.util.concurrent.TimeUnit.html @@ -0,0 +1,108 @@ + + + + + + + + + +java.util.concurrent.TimeUnit + + + + + + + + + + +
      +
      +
      +

      +Class java.util.concurrent.TimeUnit +

      +

      Change from final to non-final.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html b/docs/html/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html new file mode 100644 index 00000000000..1c6ae14d786 --- /dev/null +++ b/docs/html/sdk/api_diff/4/changes/java.util.concurrent.locks.AbstractQueuedSynchronizer.html @@ -0,0 +1,108 @@ + + + + + + + + + +java.util.concurrent.locks.AbstractQueuedSynchronizer + + + + + + + + + + +
      +
      +
      +

      +Class java.util.concurrent.locks.AbstractQueuedSynchronizer +

      +

      The superclass changed from java.lang.Object to java.util.concurrent.locks.AbstractOwnableSynchronizer.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html index 3244a173a4f..c21b8753710 100644 --- a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html +++ b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html @@ -45,16 +45,16 @@ body{overflow:auto;} API Diff Specification - To Version: + To Level: 4 - From Version: + From Level: 3 Generated - 2009.09.02 18:26 + 2009.11.19 19:34
      @@ -71,29 +71,71 @@ body{overflow:auto;}

      API Change Statistics

      +

      The overall difference between API Levels 3 and 4 is approximately 2.45%. +

      +
      + +

      Total of Differences, by Number and Type

      -The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      -
      -Percentage difference = 100 * (added + removed + 2*changed)
      -                        -----------------------------------
      -                        sum of public elements in BOTH APIs
      -
      -

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. -This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. -The definition ensures that if all packages are removed and all new packages are -added, the change will be 100%. Values are rounded here, so a value of 0% indicates a percentage difference of less than 0.5%.

      -

      The overall difference between the two APIs is approximately 2%. +The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class.

      -

      Contents

      -
      Changed Packages
      Sorted by percentage difference
      -
      Changed Classes and Interfaces
      Sorted by percentage difference
      -
      Total of Differences
      Listed by number and type
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TypeAdditionsChangesRemovalsTotal
      Packages426030
      Classes and Interfaces2273297
      Constructors68014
      Methods80433126
      Fields2082729264
      Total32017734531

      Changed Packages, Sorted by Percentage Difference

      - + @@ -190,27 +232,24 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - + - - - - - +
      Percentage DifferencePercentage Difference* Package
      <1java.netjava.util.concurrent.locks
      <1java.util
      <1java.langjava.util.concurrent
      <1 android.hardware
      +

      * See Calculation of Change Percentages, below.


      Changed Classes and Interfaces, Sorted by Percentage Difference

      - + @@ -338,11 +377,6 @@ android.app.LauncherActivity - - - - - - - - - - - - + + + + + + + + + + + + android.app.Activity
      Percentage
      Difference
      Percentage
      Difference*
      Class or Interface
      android.content.res.Configuration
      10 -java.net.Socket
      8 @@ -363,11 +397,6 @@ android.app.LauncherActivity.ListItem android.location.Address
      6 -java.lang.String
      6 @@ -378,11 +407,6 @@ android.os.Build android.view.VelocityTracker
      6 -java.util.Date
      6 @@ -398,6 +422,16 @@ android.graphics.Typeface android.provider.MediaStore.Audio.Media
      5 +android.telephony.TelephonyManager
      5 +java.util.concurrent.TimeUnit
      4 @@ -508,6 +542,11 @@ android.media.MediaRecorder android.test.mock.MockPackageManager
      1 +java.util.concurrent.locks.AbstractQueuedSynchronizer
      1 @@ -579,67 +618,20 @@ android.provider.Settings.System
      +

      * See Calculation of Change Percentages, below.


      - -

      Total of Differences, by Number and Type

      +

      Calculation of Change Percentages

      -The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were removed, added or changed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class. -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - Number of Differences
        - RemovalsAdditionsChangesTotal
      Packages042731
      Classes and Interfaces2227397
      Constructors062026
      Methods38043126
      Fields2920227258
      Total34314190538
      +The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      +
      +Percentage difference = 100 * (added + removed + 2*changed)
      +                        -----------------------------------
      +                        sum of public elements in BOTH APIs
      +
      +

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. +This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. +The definition ensures that if all packages are removed and all new packages are +added, the change will be 100%.

      diff --git a/docs/html/sdk/api_diff/5/changes/android.os.BatteryManager.html b/docs/html/sdk/api_diff/5/changes/android.os.BatteryManager.html index 9ac9fadbf48..9bf76d31fa9 100644 --- a/docs/html/sdk/api_diff/5/changes/android.os.BatteryManager.html +++ b/docs/html/sdk/api_diff/5/changes/android.os.BatteryManager.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.os.Build.VERSION_CODES.html b/docs/html/sdk/api_diff/5/changes/android.os.Build.VERSION_CODES.html index 3cb73c838d0..58ae354979c 100644 --- a/docs/html/sdk/api_diff/5/changes/android.os.Build.VERSION_CODES.html +++ b/docs/html/sdk/api_diff/5/changes/android.os.Build.VERSION_CODES.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.os.Debug.MemoryInfo.html b/docs/html/sdk/api_diff/5/changes/android.os.Debug.MemoryInfo.html index 65c8eb8329d..8f49b3a8281 100644 --- a/docs/html/sdk/api_diff/5/changes/android.os.Debug.MemoryInfo.html +++ b/docs/html/sdk/api_diff/5/changes/android.os.Debug.MemoryInfo.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.os.HandlerThread.html b/docs/html/sdk/api_diff/5/changes/android.os.HandlerThread.html index 57b149ff42b..c45faf38333 100644 --- a/docs/html/sdk/api_diff/5/changes/android.os.HandlerThread.html +++ b/docs/html/sdk/api_diff/5/changes/android.os.HandlerThread.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html index 633a65f9b96..7619936defa 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethods.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html index bb2ae04879f..abd9fe0b4f0 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ContactMethodsColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html index 763accb50d5..b3e68bb9c60 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Extensions.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html index 09a6434ba19..ba94393518d 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.ExtensionsColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html index 8ede257b2c1..f9ecf01a9eb 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupMembership.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html index 556c60e6bff..9a2003ab5eb 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Groups.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html index ef6b86c25bb..a7a8c999223 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.GroupsColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html index 1c0b74adb30..72ce6a106fb 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.Insert.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html index fb629f794b3..607190cd665 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.UI.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html index a18a7940c98..5db9c26969b 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Intents.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html index 45a241c1664..b0b54d22359 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.OrganizationColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html index 64c0cf73baf..c55bc68ccad 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Organizations.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html index 0c9340a5a64..31befa0c343 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.ContactMethods.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html index 63b77f3bb61..2ce04917c03 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Extensions.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html index f9f708793d8..afe96f254d5 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.Phones.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.html index 5cf4e05185c..87231ab78a2 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.People.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html index 4a0e979a91f..037acd6b18e 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PeopleColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html index e3cf5738f42..a604145ee6d 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Phones.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html index e7786d8bd6e..e42a51e2b42 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhonesColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html index 05d64cea34b..0aeaa9cb96a 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Photos.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html index b0ae613b6d5..f13d55daf81 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PhotosColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html index d1fd127aca5..ec5ec5b3544 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.PresenceColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html index bcbf2658a84..65020e9dde4 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.Settings.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html index 91a710381d7..d03da384642 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.SettingsColumns.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.html b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.html index e7ee2603ec8..6ed2ae86e1b 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Contacts.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html b/docs/html/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html index b90610d1802..67f1d1893cc 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.MediaStore.Images.Thumbnails.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/5/changes/android.provider.Settings.System.html index 21fba1e45c0..ac417e69df9 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Settings.System.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Settings.System.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.provider.Settings.html b/docs/html/sdk/api_diff/5/changes/android.provider.Settings.html index 800830cb819..0e2f350665e 100644 --- a/docs/html/sdk/api_diff/5/changes/android.provider.Settings.html +++ b/docs/html/sdk/api_diff/5/changes/android.provider.Settings.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html b/docs/html/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html index 328187bfd2b..a7b0204efcd 100644 --- a/docs/html/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html +++ b/docs/html/sdk/api_diff/5/changes/android.telephony.NeighboringCellInfo.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html b/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html index e54f8d1702c..b4b41f2463d 100644 --- a/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html +++ b/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneNumberUtils.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html b/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html index d881cdcd32c..57d7cf72db4 100644 --- a/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html +++ b/docs/html/sdk/api_diff/5/changes/android.telephony.PhoneStateListener.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html b/docs/html/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html index 87607285d7c..80c80bf1215 100644 --- a/docs/html/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html +++ b/docs/html/sdk/api_diff/5/changes/android.telephony.TelephonyManager.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      @@ -97,41 +97,6 @@ Class android.telephony.Added Fields - - - - int DATA_ACTIVITY_DORMANT - -   - - - - - int NETWORK_TYPE_1xRTT - -   - - - - - int NETWORK_TYPE_CDMA - -   - - - - - int NETWORK_TYPE_EVDO_0 - -   - - - - - int NETWORK_TYPE_EVDO_A - -   - @@ -153,13 +118,6 @@ Class android.telephony. - - - int PHONE_TYPE_CDMA - -   -  
      diff --git a/docs/html/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html b/docs/html/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html index dca92c318ff..3cfa8af7bd6 100644 --- a/docs/html/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html +++ b/docs/html/sdk/api_diff/5/changes/android.test.AndroidTestRunner.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html b/docs/html/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html index 1b4964a6ce8..0a67d9cf953 100644 --- a/docs/html/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html +++ b/docs/html/sdk/api_diff/5/changes/android.test.InstrumentationTestCase.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.test.mock.MockContext.html b/docs/html/sdk/api_diff/5/changes/android.test.mock.MockContext.html index da28c6c0954..b39747055a2 100644 --- a/docs/html/sdk/api_diff/5/changes/android.test.mock.MockContext.html +++ b/docs/html/sdk/api_diff/5/changes/android.test.mock.MockContext.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html index 3091d99aaeb..f81699ccdb0 100644 --- a/docs/html/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html +++ b/docs/html/sdk/api_diff/5/changes/android.test.mock.MockPackageManager.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.InputType.html b/docs/html/sdk/api_diff/5/changes/android.text.InputType.html index eb6f17c19ce..ba05eb33fc9 100644 --- a/docs/html/sdk/api_diff/5/changes/android.text.InputType.html +++ b/docs/html/sdk/api_diff/5/changes/android.text.InputType.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.TextPaint.html b/docs/html/sdk/api_diff/5/changes/android.text.TextPaint.html index ac7967f0993..c6569d67b68 100644 --- a/docs/html/sdk/api_diff/5/changes/android.text.TextPaint.html +++ b/docs/html/sdk/api_diff/5/changes/android.text.TextPaint.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.format.DateUtils.html b/docs/html/sdk/api_diff/5/changes/android.text.format.DateUtils.html index ecb8dc50efd..fdebbe0e5b8 100644 --- a/docs/html/sdk/api_diff/5/changes/android.text.format.DateUtils.html +++ b/docs/html/sdk/api_diff/5/changes/android.text.format.DateUtils.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.format.Formatter.html b/docs/html/sdk/api_diff/5/changes/android.text.format.Formatter.html index c1d91d9300d..96fbe10fac5 100644 --- a/docs/html/sdk/api_diff/5/changes/android.text.format.Formatter.html +++ b/docs/html/sdk/api_diff/5/changes/android.text.format.Formatter.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html b/docs/html/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html index db93ec3bd8d..4b44bd15506 100644 --- a/docs/html/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html +++ b/docs/html/sdk/api_diff/5/changes/android.text.style.AbsoluteSizeSpan.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.text.style.ImageSpan.html b/docs/html/sdk/api_diff/5/changes/android.text.style.ImageSpan.html deleted file mode 100644 index 856bd8cb2cc..00000000000 --- a/docs/html/sdk/api_diff/5/changes/android.text.style.ImageSpan.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - -android.text.style.ImageSpan - - - - - - - - - - -
      -
      -
      -

      -Class android.text.style.ImageSpan -

      - -

      - - - - - - - - - - - - - - -
      Changed Constructors -
      - - ImageSpan(Bitmap) - -  
      - - ImageSpan(Bitmap, int) - -  
      -  - - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html b/docs/html/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html index 78c745aa45b..9d853546678 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.HapticFeedbackConstants.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html b/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html index 23c449720f3..7412049274e 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.Callback.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.html b/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.html index 8cb61a6e12f..c8820ca43b8 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.KeyEvent.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.MotionEvent.html b/docs/html/sdk/api_diff/5/changes/android.view.MotionEvent.html index f63171e2cc2..f3380771b52 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.MotionEvent.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.MotionEvent.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.Surface.html b/docs/html/sdk/api_diff/5/changes/android.view.Surface.html index 928c582b5e2..5f3625820d9 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.Surface.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.Surface.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.SurfaceHolder.html b/docs/html/sdk/api_diff/5/changes/android.view.SurfaceHolder.html index 47a5c5c4a09..2487e9bc815 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.SurfaceHolder.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.SurfaceHolder.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.SurfaceView.html b/docs/html/sdk/api_diff/5/changes/android.view.SurfaceView.html index eb986599f7d..1736f2fff17 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.SurfaceView.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.SurfaceView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.View.html b/docs/html/sdk/api_diff/5/changes/android.view.View.html index 44486d7a34e..1f7e9af6e01 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.View.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.View.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.view.ViewConfiguration.html b/docs/html/sdk/api_diff/5/changes/android.view.ViewConfiguration.html index 186e8eed57f..cc2b05e3371 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.ViewConfiguration.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.ViewConfiguration.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/pkg_java.net.html b/docs/html/sdk/api_diff/5/changes/android.view.ViewGroup.html similarity index 88% rename from docs/html/sdk/api_diff/5/changes/pkg_java.net.html rename to docs/html/sdk/api_diff/5/changes/android.view.ViewGroup.html index e98015ab4c4..83d3a290960 100644 --- a/docs/html/sdk/api_diff/5/changes/pkg_java.net.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.ViewGroup.html @@ -7,7 +7,7 @@ -java.net +android.view.ViewGroup @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 @@ -71,18 +71,21 @@ body{overflow:auto;}

      -Package java.net +Class android.view.ViewGroup

      + + +

      - - + +
      - diff --git a/docs/html/sdk/api_diff/5/changes/android.view.Window.Callback.html b/docs/html/sdk/api_diff/5/changes/android.view.Window.Callback.html index bafee6095cc..335896886ff 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.Window.Callback.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.Window.Callback.html @@ -54,7 +54,7 @@ body{overflow:auto;} - +
      Changed Classes + Removed Fields
      - - Socket + + int FLAG_USE_CHILD_DRAWING_ORDER  
      Generated2009.10.21 21:052009.11.19 19:35

      diff --git a/docs/html/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html b/docs/html/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html index 1c707164ef4..f43f3dd201f 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.WindowManager.LayoutParams.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/android.view.animation.Animation.html b/docs/html/sdk/api_diff/5/changes/android.view.animation.Animation.html index bc0a2840892..d784700e0df 100644 --- a/docs/html/sdk/api_diff/5/changes/android.view.animation.Animation.html +++ b/docs/html/sdk/api_diff/5/changes/android.view.animation.Animation.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html b/docs/html/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html index 515cd8a79a1..3cdd68b65ec 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.CallbackProxy.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.Plugin.html b/docs/html/sdk/api_diff/5/changes/android.webkit.Plugin.html index 82f70839d17..52638aca606 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.Plugin.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.Plugin.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.PluginData.html b/docs/html/sdk/api_diff/5/changes/android.webkit.PluginData.html index c500356c421..1e5a2417f51 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.PluginData.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.PluginData.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.PluginList.html b/docs/html/sdk/api_diff/5/changes/android.webkit.PluginList.html index 7bb7aea2fb6..564a341c428 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.PluginList.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.PluginList.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html b/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html index 2824ce3f649..0fa07873e1f 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptHandler.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html b/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html index 4fdd232f7a1..e562019802f 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.UrlInterceptRegistry.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html b/docs/html/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html index f9813e697e4..e9ca0e08962 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.WebChromeClient.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.WebSettings.html b/docs/html/sdk/api_diff/5/changes/android.webkit.WebSettings.html index ba6649d8798..3b10d1a3b51 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.WebSettings.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.WebSettings.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.WebView.html b/docs/html/sdk/api_diff/5/changes/android.webkit.WebView.html index dffe6823a87..7c287cbb84e 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.WebView.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.WebView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.webkit.WebViewClient.html b/docs/html/sdk/api_diff/5/changes/android.webkit.WebViewClient.html index 0c5378d6cf8..49e517a0922 100644 --- a/docs/html/sdk/api_diff/5/changes/android.webkit.WebViewClient.html +++ b/docs/html/sdk/api_diff/5/changes/android.webkit.WebViewClient.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html index 50f79961e9b..5b2294b1edb 100644 --- a/docs/html/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html +++ b/docs/html/sdk/api_diff/5/changes/android.widget.AutoCompleteTextView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html b/docs/html/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html index a6a964be741..f19a279c5f6 100644 --- a/docs/html/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html +++ b/docs/html/sdk/api_diff/5/changes/android.widget.MediaController.MediaPlayerControl.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html b/docs/html/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html index 8c5d0427416..ee9e73fb6be 100644 --- a/docs/html/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html +++ b/docs/html/sdk/api_diff/5/changes/android.widget.SimpleCursorTreeAdapter.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/android.widget.VideoView.html b/docs/html/sdk/api_diff/5/changes/android.widget.VideoView.html index ad72d772c72..edbbd6c49c0 100644 --- a/docs/html/sdk/api_diff/5/changes/android.widget.VideoView.html +++ b/docs/html/sdk/api_diff/5/changes/android.widget.VideoView.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 diff --git a/docs/html/sdk/api_diff/5/changes/changes-summary.html b/docs/html/sdk/api_diff/5/changes/changes-summary.html index f85de197017..3a06d9871ca 100644 --- a/docs/html/sdk/api_diff/5/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/5/changes/changes-summary.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35 @@ -72,7 +72,8 @@ body{overflow:auto;}

      Android API Differences Report

      -

      This report details the changes in the core Android framework API between two API Level +

      This report details the changes in the core Android framework API between two API Level specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.

      This report is based a comparison of the Android API specifications @@ -317,27 +318,6 @@ see the Android   - - - - java.lang - -   - - - - - java.net - -   - - - - - java.util - -   - diff --git a/docs/html/sdk/api_diff/5/changes/classes_index_additions.html b/docs/html/sdk/api_diff/5/changes/classes_index_additions.html index 84fbce7056d..f8c9c046f71 100644 --- a/docs/html/sdk/api_diff/5/changes/classes_index_additions.html +++ b/docs/html/sdk/api_diff/5/changes/classes_index_additions.html @@ -44,8 +44,8 @@ body{overflow:auto;} -

      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  diff --git a/docs/html/sdk/api_diff/5/changes/classes_index_all.html b/docs/html/sdk/api_diff/5/changes/classes_index_all.html index 21f10dc4837..973dade2036 100644 --- a/docs/html/sdk/api_diff/5/changes/classes_index_all.html +++ b/docs/html/sdk/api_diff/5/changes/classes_index_all.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -260,7 +260,6 @@ body{overflow:auto;} TOP

      DatabaseUtils
      -Date
      DateUtils
      Debug.MemoryInfo
      Dialog
      @@ -407,7 +406,6 @@ body{overflow:auto;} Z TOP

      -ImageSpan
      InputMethodService
      InputType
      InstrumentationTestCase
      @@ -533,7 +531,6 @@ body{overflow:auto;} TOP

      NeighboringCellInfo
      -NinePatchDrawable
      Notification
      NotificationManager
      @@ -692,11 +689,9 @@ body{overflow:auto;} Settings.System
      SimpleCursorTreeAdapter
      SimpleCursorTreeAdapter.ViewBinder
      -Socket
      SQLiteDatabase
      SQLiteTransactionListener
      StaleDexCacheError
      -String
      Surface
      SurfaceHolder
      SurfaceView
      @@ -797,6 +792,7 @@ body{overflow:auto;} VideoView
      View
      ViewConfiguration
      +ViewGroup
      VMDebug
      VMRuntime
      VMStack
      diff --git a/docs/html/sdk/api_diff/5/changes/classes_index_changes.html b/docs/html/sdk/api_diff/5/changes/classes_index_changes.html index dd4d643c7e4..4ff9b603ae7 100644 --- a/docs/html/sdk/api_diff/5/changes/classes_index_changes.html +++ b/docs/html/sdk/api_diff/5/changes/classes_index_changes.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -193,7 +193,6 @@ body{overflow:auto;} TOP

      DatabaseUtils
      -Date
      DateUtils
      Debug.MemoryInfo
      Dialog
      @@ -295,7 +294,6 @@ body{overflow:auto;} Z TOP

      -ImageSpan
      InputMethodService
      InputType
      InstrumentationTestCase
      @@ -405,7 +403,6 @@ body{overflow:auto;} TOP

      NeighboringCellInfo
      -NinePatchDrawable
      Notification
      NotificationManager
      @@ -497,10 +494,8 @@ body{overflow:auto;} Settings
      Settings.System
      SimpleCursorTreeAdapter
      -Socket
      SQLiteDatabase
      StaleDexCacheError
      -String
      Surface
      SurfaceHolder
      SurfaceView
      @@ -583,6 +578,7 @@ body{overflow:auto;} VideoView
      View
      ViewConfiguration
      +ViewGroup
      VMDebug
      VMRuntime
      VMStack
      diff --git a/docs/html/sdk/api_diff/5/changes/classes_index_removals.html b/docs/html/sdk/api_diff/5/changes/classes_index_removals.html index 1389b2d7820..5b389884054 100644 --- a/docs/html/sdk/api_diff/5/changes/classes_index_removals.html +++ b/docs/html/sdk/api_diff/5/changes/classes_index_removals.html @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed
      diff --git a/docs/html/sdk/api_diff/5/changes/constructors_index_additions.html b/docs/html/sdk/api_diff/5/changes/constructors_index_additions.html index 174691204e6..cbd4302c17f 100644 --- a/docs/html/sdk/api_diff/5/changes/constructors_index_additions.html +++ b/docs/html/sdk/api_diff/5/changes/constructors_index_additions.html @@ -36,7 +36,7 @@ body{overflow:auto;} All Constructors
      -Removals +Removals
      Additions
      @@ -44,8 +44,8 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  @@ -60,8 +60,6 @@ body{overflow:auto;} TOP

      BitmapDrawable
      -  BitmapDrawable -(Resources) constructor
        BitmapDrawable (Resources, String) constructor
        BitmapDrawable diff --git a/docs/html/sdk/api_diff/5/changes/constructors_index_all.html b/docs/html/sdk/api_diff/5/changes/constructors_index_all.html index 8cc72931acd..ced2ea8391c 100644 --- a/docs/html/sdk/api_diff/5/changes/constructors_index_all.html +++ b/docs/html/sdk/api_diff/5/changes/constructors_index_all.html @@ -36,7 +36,7 @@ body{overflow:auto;} Constructors
      -
      Removals +Removals
      Additions
      @@ -44,19 +44,16 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed

      A  B C -D -I K N P -S TOP

      AbsoluteSizeSpan @@ -65,21 +62,12 @@ body{overflow:auto;}
      B 
      A C -D -I K N P -S TOP

      BitmapDrawable
      -  
      BitmapDrawable -() constructor
      -  BitmapDrawable -(Bitmap) constructor
      -  BitmapDrawable -(Resources) constructor
        BitmapDrawable (Resources, String) constructor
        BitmapDrawable @@ -92,12 +80,9 @@ body{overflow:auto;}
      C 
      A B -D -I K N P -S TOP

      Contacts.Intents @@ -106,50 +91,13 @@ body{overflow:auto;} () constructor
      Contacts.Intents.UI () constructor
      - -
      D  -A -B -C -I -K -N -P -S - TOP -

      -Date
      -  Date -() constructor
      -  Date -(int, int, int, int, int, int) constructor
      - -
      I  -A -B -C -D -K -N -P -S - TOP -

      -ImageSpan
      -  ImageSpan -(Bitmap) constructor
      -  ImageSpan -(Bitmap, int) constructor

      K  A B C -D -I N P -S TOP

      KeyEvent @@ -159,11 +107,8 @@ body{overflow:auto;} A B C -D -I K P -S TOP

      NeighboringCellInfo
      @@ -171,18 +116,13 @@ body{overflow:auto;} ()
       constructor
        NeighboringCellInfo (int, int) constructor
      -NinePatchDrawable -(Bitmap, byte[], Rect, String) constructor

      P  A B C -D -I K N -S TOP

      Plugin @@ -191,40 +131,6 @@ body{overflow:auto;} (InputStream, long, Map<String, String[]>, int) constructor
      PluginList () constructor
      - -
      S  -A -B -C -D -I -K -N -P - TOP -

      -Socket
      -  Socket -() constructor
      -  Socket -(String, int) constructor
      -  Socket -(String, int, InetAddress, int) constructor
      -  Socket -(Proxy) constructor
      -  Socket -(SocketImpl) constructor
      -String
      -  String -() constructor
      -  String -(byte[]) constructor
      -  String -(byte[], int) constructor
      -  String -(byte[], int, int) constructor
      -  String -(byte[], int, int, int) constructor
      diff --git a/docs/html/sdk/api_diff/5/changes/fields_index_removals.html b/docs/html/sdk/api_diff/5/changes/fields_index_removals.html index be3f17e2382..9bbd9e6c443 100644 --- a/docs/html/sdk/api_diff/5/changes/fields_index_removals.html +++ b/docs/html/sdk/api_diff/5/changes/fields_index_removals.html @@ -36,7 +36,7 @@ body{overflow:auto;} All Fields
      -Removals +Removals
      Additions
      @@ -44,9 +44,15 @@ body{overflow:auto;} -
      -Bold indicates New; Strike indicates deleted. Plain indicates changed. +
      +Listed as: Added, Removed, Changed
      + +
      F  + TOP +

      +FLAG_USE_CHILD_DRAWING_ORDER +
      - - - diff --git a/docs/html/sdk/api_diff/5/changes/java.util.Date.html b/docs/html/sdk/api_diff/5/changes/java.util.Date.html deleted file mode 100644 index 3bf23c2e76a..00000000000 --- a/docs/html/sdk/api_diff/5/changes/java.util.Date.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - -java.util.Date - - - - - - - - - - -
      -
      -
      -

      -Class java.util.Date -

      - -

      - - - - - - - - - - - - - - -
      Changed Constructors -
      - - Date() - -  
      - - Date(int, int, int, int, int, int) - -  
      -  - - -

      - -
      -
      - - - - diff --git a/docs/html/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html b/docs/html/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html index f3dc420e52c..d383b7050cd 100644 --- a/docs/html/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html +++ b/docs/html/sdk/api_diff/5/changes/java.util.concurrent.BlockingQueue.html @@ -54,7 +54,7 @@ body{overflow:auto;} Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      diff --git a/docs/html/sdk/api_diff/5/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/5/changes/jdiff_statistics.html index f3fcd0611f8..0fb1ba9175a 100644 --- a/docs/html/sdk/api_diff/5/changes/jdiff_statistics.html +++ b/docs/html/sdk/api_diff/5/changes/jdiff_statistics.html @@ -45,16 +45,16 @@ body{overflow:auto;} API Diff Specification - To Version: + To Level: 5 - From Version: + From Level: 4 Generated - 2009.10.21 21:05 + 2009.11.19 19:35
      @@ -71,29 +71,71 @@ body{overflow:auto;}

      API Change Statistics

      +

      The overall difference between API Levels 4 and 5 is approximately 2.16%. +

      +
      + +

      Total of Differences, by Number and Type

      -The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      -
      -Percentage difference = 100 * (added + removed + 2*changed)
      -                        -----------------------------------
      -                        sum of public elements in BOTH APIs
      -
      -

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. -This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. -The definition ensures that if all packages are removed and all new packages are -added, the change will be 100%. Values are rounded here, so a value of 0% indicates a percentage difference of less than 0.5%.

      -

      The overall difference between the two APIs is approximately 2%. +The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class.

      -

      Contents

      -
      Changed Packages
      Sorted by percentage difference
      -
      Changed Classes and Interfaces
      Sorted by percentage difference
      -
      Total of Differences
      Listed by number and type
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TypeAdditionsChangesRemovalsTotal
      Packages330033
      Classes and Interfaces851280213
      Constructors311014
      Methods202670269
      Fields2342051440
      Total5274411969

      Changed Packages, Sorted by Percentage Difference

      - + @@ -136,10 +178,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -148,6 +186,10 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica + + + + @@ -158,10 +200,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -170,12 +208,16 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - + + + + + @@ -204,10 +246,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - @@ -216,25 +254,18 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica - - - - - - - -
      Percentage DifferencePercentage Difference* Package
      4 android.app
      4android.telephony
      3 android.media3 android.text.format
      3android.telephony
      2 android.database.sqlite
      2android.text.style
      1 android.view
      1android.graphics.drawableandroid.text.style
      1 android.widget
      1android.graphics.drawable
      <1 android.test.mock<1 java.util.concurrent
      <1java.net
      <1 android.text<1 android.view.animation
      <1java.util
      <1java.lang
      <1 android.graphics
      +

      * See Calculation of Change Percentages, below.


      Changed Classes and Interfaces, Sorted by Percentage Difference

      - + @@ -462,11 +493,6 @@ android.app.ActivityManager.RunningServiceInfo - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + +
      Percentage
      Difference
      Percentage
      Difference*
      Class or Interface
      android.widget.SimpleCursorTreeAdapter
      18 -android.graphics.drawable.BitmapDrawable
      17 @@ -517,11 +543,6 @@ android.graphics.drawable.Drawable.ConstantState android.text.format.Formatter
      14 -android.text.style.ImageSpan
      14 @@ -537,6 +558,11 @@ android.view.HapticFeedbackConstants android.hardware.Camera
      12 +android.graphics.drawable.BitmapDrawable
      12 @@ -562,11 +588,6 @@ android.test.InstrumentationTestCase dalvik.system.VMStack
      10 -java.net.Socket
      10 @@ -587,11 +608,6 @@ android.inputmethodservice.AbstractInputMethodService android.os.HandlerThread
      8 -android.telephony.TelephonyManager
      8 @@ -602,11 +618,6 @@ android.widget.AutoCompleteTextView android.provider.MediaStore.Images.Thumbnails
      8 -android.graphics.drawable.NinePatchDrawable
      7 @@ -622,21 +633,11 @@ android.widget.VideoView android.media.AudioManager
      6 -java.lang.String
      6 android.view.Window.Callback
      6 -java.util.Date
      6 @@ -722,6 +723,11 @@ android.test.mock.MockPackageManager android.view.ViewConfiguration
      3 +android.telephony.TelephonyManager
      3 @@ -892,73 +898,31 @@ android.text.format.DateUtils android.inputmethodservice.InputMethodService
      <1 +android.view.ViewGroup
      <1 android.media.ToneGenerator
      +

      * See Calculation of Change Percentages, below.


      - -

      Total of Differences, by Number and Type

      +

      Calculation of Change Percentages

      -The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were removed, added or changed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class. -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - Number of Differences
        - RemovalsAdditionsChangesTotal
      Packages033336
      Classes and Interfaces085132217
      Constructors242632
      Methods020267269
      Fields0240205445
      Total2534463999
      +The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      +
      +Percentage difference = 100 * (added + removed + 2*changed)
      +                        -----------------------------------
      +                        sum of public elements in BOTH APIs
      +
      +

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. +This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. +The definition ensures that if all packages are removed and all new packages are +added, the change will be 100%.

    If you have already developed applications using an earlier version -of the SDK, please read -Upgrading the -SDK, instead. -