diff --git a/CleanSpec.mk b/CleanSpec.mk index cea14642bc..37c423de42 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -463,6 +463,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/manifest.xml) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/compatibility_matrix.xml) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/compatibility_matrix.xml) +# Remove DisplayCutoutEmulation overlays +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/overlay/DisplayCutoutEmulationWide) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/overlay/DisplayCutoutEmulationNarrow) + # Remove obsolete intermedates src files $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/*/*_intermediates/src/RenderScript.stamp*) $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/*_intermediates/src) @@ -479,9 +483,16 @@ $(call add-clean-step, rm -rf $(TARGET_COMMON_OUT_ROOT)/obj_asan/JAVA_LIBRARIES/ # Remove stale init.noenforce.rc $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/gsi/init.noenforce.rc) +# Clean up Launcher3 which has been replaced with Launcher3QuickStep +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/Launcher3) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/Launcher3) +$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Launcher3_intermediates) + # Remove old merged AndroidManifest.xml location $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/*_intermediates/AndroidManifest.xml) +$(call add-clean-step, find $(PRODUCT_OUT) -type f -name "vr_hwc*" -print0 | xargs -0 rm -f) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/OWNERS b/OWNERS index 7a59f705bb..1e9b7634f7 100644 --- a/OWNERS +++ b/OWNERS @@ -1,3 +1,11 @@ ccross@android.com dwillemsen@google.com nanzhang@google.com + +per-file * = ccross@android.com +per-file * = dwillemsen@google.com +per-file * = nanzhang@google.com + +# for version updates +per-file version_defaults.mk = aseaton@google.com +per-file version_defaults.mk = elisapascual@google.com diff --git a/core/Makefile b/core/Makefile index 1292e0fc0e..b74f87870e 100644 --- a/core/Makefile +++ b/core/Makefile @@ -352,6 +352,7 @@ endif PLATFORM_PREVIEW_SDK_VERSION="$(PLATFORM_PREVIEW_SDK_VERSION)" \ PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \ PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \ + PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION="$(PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION)" \ BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \ BUILD_FINGERPRINT="$(BUILD_FINGERPRINT_FROM_FILE)" \ $(if $(OEM_THUMBPRINT_PROPERTIES),BUILD_THUMBPRINT="$(BUILD_THUMBPRINT_FROM_FILE)") \ diff --git a/core/apidiff.mk b/core/apidiff.mk new file mode 100644 index 0000000000..23da624497 --- /dev/null +++ b/core/apidiff.mk @@ -0,0 +1,180 @@ +# +# Copyright (C) 2017 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +## +## +## Common to both jdiff and javadoc +## +## + +LOCAL_IS_HOST_MODULE := $(call true-or-empty,$(LOCAL_IS_HOST_MODULE)) +ifeq ($(LOCAL_IS_HOST_MODULE),true) +my_prefix := HOST_ +LOCAL_HOST_PREFIX := +else +my_prefix := TARGET_ +endif + +LOCAL_MODULE_CLASS := $(strip $(LOCAL_MODULE_CLASS)) +ifndef LOCAL_MODULE_CLASS +$(error $(LOCAL_PATH): LOCAL_MODULE_CLASS not defined) +endif + +full_src_files := $(patsubst %,$(LOCAL_PATH)/%,$(LOCAL_SRC_FILES)) +out_dir := $(OUT_DOCS)/$(LOCAL_MODULE)/api_diff/current +full_target := $(call doc-timestamp-for,$(LOCAL_MODULE)-diff) + +ifeq ($(LOCAL_IS_HOST_MODULE),true) +$(full_target): PRIVATE_BOOTCLASSPATH := +full_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,\ + $(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES))) +full_java_lib_deps := $(full_java_libs) + +else + +ifneq ($(LOCAL_SDK_VERSION),) + ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current) + # Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS. + LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES) + $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_stubs_current) + else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current) + LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES) + $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_system_stubs_current) + else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),test_current) + LOCAL_JAVA_LIBRARIES := android_test_stubs_current $(LOCAL_JAVA_LIBRARIES) + $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_test_stubs_current) + else + # TARGET_BUILD_APPS is set. Use the modules defined in prebuilts/sdk/Android.mk. + _module_name := $(call resolve-prebuilt-sdk-module,$(LOCAL_SDK_VERSION)) + LOCAL_JAVA_LIBRARIES := $(_module_name) $(LOCAL_JAVA_LIBRARIES) + $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, $(_module_name)) + _module_name := + endif +else + LOCAL_JAVA_LIBRARIES := core-oj core-libart ext framework $(LOCAL_JAVA_LIBRARIES) + $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, core-oj):$(call java-lib-files, core-libart) +endif # LOCAL_SDK_VERSION +LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES)) + +full_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH) +full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH) +endif # !LOCAL_IS_HOST_MODULE + +$(full_target): PRIVATE_CLASSPATH := $(subst $(space),:,$(full_java_libs)) +$(full_target): PRIVATE_DOCLAVA_CLASSPATH := $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) + +intermediates.COMMON := $(call local-intermediates-dir,COMMON) + +$(full_target): PRIVATE_SOURCE_PATH := $(call normalize-path-list,$(LOCAL_DROIDDOC_SOURCE_PATH)) +$(full_target): PRIVATE_JAVA_FILES := $(filter %.java,$(full_src_files)) +$(full_target): PRIVATE_JAVA_FILES += $(addprefix $($(my_prefix)OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES))) +$(full_target): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/src +$(full_target): PRIVATE_SRC_LIST_FILE := $(intermediates.COMMON)/droiddoc-src-list + +ifneq ($(strip $(LOCAL_ADDITIONAL_JAVA_DIR)),) +$(full_target): PRIVATE_ADDITIONAL_JAVA_DIR := $(LOCAL_ADDITIONAL_JAVA_DIR) +endif + +# Lists the input files for the doc build into a text file +# suitable for the @ syntax of javadoc. +# $(1): the file to create +# $(2): files to include +# $(3): list of directories to search for java files in +define prepare-doc-source-list +$(hide) mkdir -p $(dir $(1)) +$(call dump-words-to-file, $(2), $(1)) +$(hide) for d in $(3) ; do find $$d -name '*.java' -and -not -name '.*' >> $(1) 2> /dev/null ; done ; true +endef + +## +## +## jdiff only +## +## + +jdiff := \ + $(HOST_JDK_TOOLS_JAR) \ + $(HOST_OUT_JAVA_LIBRARIES)/jdiff$(COMMON_JAVA_PACKAGE_SUFFIX) + +doclava := \ + $(HOST_JDK_TOOLS_JAR) \ + $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) + +$(full_target): PRIVATE_NEWAPI := $(LOCAL_APIDIFF_NEWAPI) +$(full_target): PRIVATE_OLDAPI := $(LOCAL_APIDIFF_OLDAPI) +$(full_target): PRIVATE_OUT_DIR := $(out_dir) +$(full_target): PRIVATE_OUT_NEWAPI := $(out_dir)/current.xml +$(full_target): PRIVATE_OUT_OLDAPI := $(out_dir)/$(notdir $(basename $(LOCAL_APIDIFF_OLDAPI))).xml +$(full_target): PRIVATE_DOCLETPATH := $(HOST_OUT_JAVA_LIBRARIES)/jdiff$(COMMON_JAVA_PACKAGE_SUFFIX) +$(full_target): \ + $(full_src_files) \ + $(full_java_lib_deps) \ + $(jdiff) \ + $(doclava) \ + $(OUT_DOCS)/$(LOCAL_MODULE)-docs-stubs.srcjar \ + $(LOCAL_ADDITIONAL_DEPENDENCIES) + @echo Generating API diff: $(PRIVATE_OUT_DIR) + @echo Old API: $(PRIVATE_OLDAPI) + @echo New API: $(PRIVATE_NEWAPI) + @echo Old XML: $(PRIVATE_OUT_OLDAPI) + @echo New XML: $(PRIVATE_OUT_NEWAPI) + $(hide) mkdir -p $(dir $@) + @echo Converting API files to XML... + $(hide) mkdir -p $(PRIVATE_OUT_DIR) + $(hide) ( \ + $(JAVA) \ + $(addprefix -classpath ,$(PRIVATE_CLASSPATH):$(PRIVATE_DOCLAVA_CLASSPATH):$(PRIVATE_BOOTCLASSPATH):$(HOST_JDK_TOOLS_JAR)) \ + com.google.doclava.apicheck.ApiCheck \ + -convert2xml \ + $(basename $(PRIVATE_NEWAPI)).txt \ + $(basename $(PRIVATE_OUT_NEWAPI)).xml \ + ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) + $(hide) ( \ + $(JAVA) \ + $(addprefix -classpath ,$(PRIVATE_CLASSPATH):$(PRIVATE_DOCLAVA_CLASSPATH):$(PRIVATE_BOOTCLASSPATH):$(HOST_JDK_TOOLS_JAR)) \ + com.google.doclava.apicheck.ApiCheck \ + -convert2xml \ + $(basename $(PRIVATE_OLDAPI)).txt \ + $(basename $(PRIVATE_OUT_OLDAPI)).xml \ + ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) + @echo Running JDiff... + $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ + $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) + $(hide) ( \ + $(JAVADOC) \ + -encoding UTF-8 \ + \@$(PRIVATE_SRC_LIST_FILE) \ + -J-Xmx1600m \ + -XDignore.symbol.file \ + -quiet \ + -doclet jdiff.JDiff \ + -docletpath $(PRIVATE_DOCLETPATH) \ + $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \ + $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \ + -sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) \ + -d $(PRIVATE_OUT_DIR) \ + -newapi $(notdir $(basename $(PRIVATE_OUT_NEWAPI))) \ + -newapidir $(dir $(PRIVATE_OUT_NEWAPI)) \ + -oldapi $(notdir $(basename $(PRIVATE_OUT_OLDAPI))) \ + -oldapidir $(dir $(PRIVATE_OUT_OLDAPI)) \ + -javadocnew ../../../reference/ \ + && touch -f $@ \ + ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) + +ALL_DOCS += $(full_target) + +.PHONY: $(LOCAL_MODULE)-diff +$(LOCAL_MODULE)-diff : $(full_target) diff --git a/core/binary.mk b/core/binary.mk index 60f78ddb9c..73d420cfc0 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -339,11 +339,10 @@ ifneq ($(my_cc)$(my_cxx),) my_clang := false endif endif -# Issue warning if LOCAL_CLANG* is set to false and the local makefile is not found -# in the exception project list. ifeq ($(my_clang),false) - ifeq ($(call find_in_local_clang_exception_projects,$(LOCAL_MODULE_MAKEFILE))$(LOCAL_IS_AUX_MODULE),) - $(error $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_CLANG is set to false) + # https://android-review.googlesource.com/720799 + ifneq ($(LOCAL_MODULE),bionic-compile-time-tests-g++) + $(call pretty-error,LOCAL_CLANG false is no longer supported) endif endif @@ -351,10 +350,7 @@ endif # enable it unless we've specifically disabled clang above ifdef LOCAL_IS_HOST_MODULE ifneq ($($(my_prefix)CLANG_SUPPORTED),true) - ifeq ($(my_clang),true) - $(call pretty-error,Clang is not yet supported for $($(my_prefix)OS) binaries) - endif - my_clang := false + $(error $($(my_prefix)OS) requires GCC$(comma) but only Clang is supported) else ifeq ($(my_clang),) my_clang := true diff --git a/core/build_id.mk b/core/build_id.mk index 05113cab3d..bac2f4809f 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -BUILD_ID=OC-MR1 +BUILD_ID=PI diff --git a/core/clang/config.mk b/core/clang/config.mk index 408f688c66..98e01da557 100644 --- a/core/clang/config.mk +++ b/core/clang/config.mk @@ -68,28 +68,4 @@ endif # provides to Clang (for supporting features like -ftrapv). COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES := libcompiler_rt-extras -# A list of projects that are allowed to set LOCAL_CLANG to false. -# INTERNAL_LOCAL_CLANG_EXCEPTION_PROJECTS is defined later in other config.mk. -LOCAL_CLANG_EXCEPTION_PROJECTS = \ - bionic/tests/ \ - device/google/contexthub/ \ - device/huawei/angler/ \ - device/lge/bullhead/ \ - external/gentoo/integration/ \ - hardware/qcom/ \ - test/vts/hals/camera/bullhead/ \ - test/vts/hals/etc/libqdutils/ \ - vendor/huawei/angler/ \ - vendor/lge/bullhead/ \ - $(INTERNAL_LOCAL_CLANG_EXCEPTION_PROJECTS) - -# Find $1 in the exception project list. -define find_in_local_clang_exception_projects -$(subst $(space),, \ - $(foreach project,$(LOCAL_CLANG_EXCEPTION_PROJECTS), \ - $(if $(filter $(project)%,$(1)),$(project)) \ - ) \ -) -endef - include $(BUILD_SYSTEM)/clang/tidy.mk diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 1c45b2bc99..a4c47d5c38 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -16,6 +16,8 @@ LOCAL_AIDL_INCLUDES:= LOCAL_ALLOW_UNDEFINED_SYMBOLS:= LOCAL_ANNOTATION_PROCESSORS:= LOCAL_ANNOTATION_PROCESSOR_CLASSES:= +LOCAL_APIDIFF_NEWAPI:= +LOCAL_APIDIFF_OLDAPI:= LOCAL_APK_LIBRARIES:= LOCAL_ARM_MODE:= LOCAL_ASFLAGS:= @@ -96,6 +98,7 @@ LOCAL_FULL_LIBS_MANIFEST_FILES:= LOCAL_FULL_MANIFEST_FILE:= LOCAL_FULL_CLASSES_JACOCO_JAR:= LOCAL_FULL_CLASSES_PRE_JACOCO_JAR:= +LOCAL_FUZZ_ENGINE:= LOCAL_GCNO_FILES:= LOCAL_GENERATED_SOURCES:= # Group static libraries with "-Wl,--start-group" and "-Wl,--end-group" when linking. @@ -135,6 +138,7 @@ LOCAL_JAVA_LAYERS_FILE:= LOCAL_JAVA_LIBRARIES:= LOCAL_JAVA_RESOURCE_DIRS:= LOCAL_JAVA_RESOURCE_FILES:= +LOCAL_JETIFIER_ENABLED:= LOCAL_JNI_SHARED_LIBRARIES:= LOCAL_JNI_SHARED_LIBRARIES_ABI:= LOCAL_LDFLAGS:= diff --git a/core/config.mk b/core/config.mk index 53718d53d7..091b1d15b2 100644 --- a/core/config.mk +++ b/core/config.mk @@ -147,6 +147,7 @@ BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk +BUILD_APIDIFF:= $(BUILD_SYSTEM)/apidiff.mk BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk BUILD_NATIVE_BENCHMARK := $(BUILD_SYSTEM)/native_benchmark.mk @@ -208,6 +209,11 @@ else JAVA_TMPDIR_ARG := endif +# Default to remove the org.apache.http.legacy from bootclasspath +ifeq ($(REMOVE_OAHL_FROM_BCP),) +REMOVE_OAHL_FROM_BCP := true +endif + # ############################################################### # Broken build defaults # ############################################################### @@ -725,6 +731,8 @@ CLASS2GREYLIST := $(HOST_OUT_EXECUTABLES)/class2greylist FINDBUGS_DIR := external/owasp/sanitizer/tools/findbugs/bin FINDBUGS := $(FINDBUGS_DIR)/findbugs +JETIFIER := prebuilts/sdk/tools/jetifier/jetifier-standalone/bin/jetifier-standalone + COLUMN:= column USE_OPENJDK9 := true @@ -839,6 +847,21 @@ $(KATI_obsolete_var PRODUCT_USE_VNDK_OVERRIDE,Use PRODUCT_USE_VNDK instead) .KATI_READONLY := \ PRODUCT_USE_VNDK +# Set BOARD_SYSTEMSDK_VERSIONS to the latest SystemSDK version starting from P-launching +# devices if unset. +ifndef BOARD_SYSTEMSDK_VERSIONS + ifdef PRODUCT_SHIPPING_API_LEVEL + ifneq ($(call math_gt_or_eq,$(PRODUCT_SHIPPING_API_LEVEL),28),) + ifeq (REL,$(PLATFORM_VERSION_CODENAME)) + BOARD_SYSTEMSDK_VERSIONS := $(PLATFORM_SDK_VERSION) + else + BOARD_SYSTEMSDK_VERSIONS := $(PLATFORM_VERSION_CODENAME) + endif + endif + endif +endif + + ifdef PRODUCT_SHIPPING_API_LEVEL ifneq ($(call math_gt_or_eq,$(PRODUCT_SHIPPING_API_LEVEL),27),) ifneq ($(TARGET_USES_MKE2FS),true) @@ -884,7 +907,7 @@ BUILD_DATETIME_FROM_FILE := $$(cat $(BUILD_DATETIME_FILE)) # is made which breaks compatibility with the previous platform sepolicy version, # not just on every increase in PLATFORM_SDK_VERSION. The minor version should # be reset to 0 on every bump of the PLATFORM_SDK_VERSION. -sepolicy_major_vers := 27 +sepolicy_major_vers := 28 sepolicy_minor_vers := 0 ifneq ($(sepolicy_major_vers), $(PLATFORM_SDK_VERSION)) @@ -1088,6 +1111,19 @@ TARGET_AVAIALBLE_SDK_VERSIONS := $(call numerically_sort,$(TARGET_AVAILABLE_SDK_ TARGET_SDK_VERSIONS_WITHOUT_JAVA_18_SUPPORT := $(call numbers_less_than,24,$(TARGET_AVAILABLE_SDK_VERSIONS)) TARGET_SDK_VERSIONS_WITHOUT_JAVA_19_SUPPORT := $(call numbers_less_than,27,$(TARGET_AVAILABLE_SDK_VERSIONS)) +ifndef INTERNAL_PLATFORM_PRIVATE_API_FILE +INTERNAL_PLATFORM_PRIVATE_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/private.txt +endif +ifndef INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE +INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/private-dex.txt +endif +ifndef INTERNAL_PLATFORM_SYSTEM_PRIVATE_API_FILE +INTERNAL_PLATFORM_SYSTEM_PRIVATE_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/system-private.txt +endif +ifndef INTERNAL_PLATFORM_SYSTEM_PRIVATE_DEX_API_FILE +INTERNAL_PLATFORM_SYSTEM_PRIVATE_DEX_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/system-private-dex.txt +endif + INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/hiddenapi-public-list.txt INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/hiddenapi-private-list.txt INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/hiddenapi-light-greylist.txt diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index d9a4e67d59..083da9fb7b 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -108,15 +108,17 @@ ifeq ($(LOCAL_SANITIZE),never) my_sanitize_diag := endif -# Enable CFI in included paths. +# Enable CFI in included paths (for Arm64 only). ifeq ($(filter cfi, $(my_sanitize)),) - combined_include_paths := $(CFI_INCLUDE_PATHS) \ - $(PRODUCT_CFI_INCLUDE_PATHS) + ifneq ($(filter arm64,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)),) + combined_include_paths := $(CFI_INCLUDE_PATHS) \ + $(PRODUCT_CFI_INCLUDE_PATHS) - ifneq ($(strip $(foreach dir,$(subst $(comma),$(space),$(combined_include_paths)),\ - $(filter $(dir)%,$(LOCAL_PATH)))),) - my_sanitize := cfi $(my_sanitize) - my_sanitize_diag := cfi $(my_sanitize_diag) + ifneq ($(strip $(foreach dir,$(subst $(comma),$(space),$(combined_include_paths)),\ + $(filter $(dir)%,$(LOCAL_PATH)))),) + my_sanitize := cfi $(my_sanitize) + my_sanitize_diag := cfi $(my_sanitize_diag) + endif endif endif diff --git a/core/definitions.mk b/core/definitions.mk index b0c5db0693..291441b224 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2911,15 +2911,13 @@ endef ########################################################### ifdef TARGET_OPENJDK9 define transform-jar-to-proguard -@echo Skipping Proguard: $<$(PRIVATE_PROGUARD_INJAR_FILTERS) $@ +@echo Skipping Proguard: $< $@ $(hide) cp '$<' $@ endef else define transform-jar-to-proguard @echo Proguard: $@ -$(hide) $(PROGUARD) -injars '$<$(PRIVATE_PROGUARD_INJAR_FILTERS)' \ - -outjars $@ \ - $(PRIVATE_PROGUARD_FLAGS) \ +$(hide) $(PROGUARD) -injars $< -outjars $@ $(PRIVATE_PROGUARD_FLAGS) \ $(addprefix -injars , $(PRIVATE_EXTRA_INPUT_JAR)) endef endif @@ -2930,7 +2928,7 @@ endif ########################################################### define transform-jar-to-dex-r8 @echo R8: $@ -$(hide) $(R8_COMPAT_PROGUARD) -injars '$<$(PRIVATE_PROGUARD_INJAR_FILTERS)' \ +$(hide) $(R8_COMPAT_PROGUARD) -injars '$<' \ --min-api $(PRIVATE_MIN_SDK_VERSION) \ --force-proguard-compatibility --output $(subst classes.dex,,$@) \ $(PRIVATE_PROGUARD_FLAGS) \ diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk index 1b2ba60a24..6c0a4b4fe9 100644 --- a/core/dex_preopt.mk +++ b/core/dex_preopt.mk @@ -124,3 +124,20 @@ $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): $(HIDDENAPI) $(HIDDENAPI_STUBS) \ --stub-classpath=$(call normalize-path-list, $(PRIVATE_HIDDENAPI_STUBS_TEST)) \ --out-public=$(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \ --out-private=$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) + +ifeq ($(PRODUCT_DIST_BOOT_AND_SYSTEM_JARS),true) +boot_profile_jars_zip := $(PRODUCT_OUT)/boot_profile_jars.zip +all_boot_jars := \ + $(foreach m,$(DEXPREOPT_BOOT_JARS_MODULES),$(PRODUCT_OUT)/system/framework/$(m).jar) \ + $(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),$(PRODUCT_OUT)/system/framework/$(m).jar) + +$(boot_profile_jars_zip): PRIVATE_JARS := $(all_boot_jars) +$(boot_profile_jars_zip): $(all_boot_jars) $(SOONG_ZIP) + echo "Create boot profiles package: $@" + rm -f $@ + $(SOONG_ZIP) -o $@ -C $(PRODUCT_OUT) $(PRIVATE_JARS) + +droidcore: $(boot_profile_jars_zip) + +$(call dist-for-goals, droidcore, $(boot_profile_jars_zip)) +endif diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index 208647ef05..54f8cccdfe 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -126,13 +126,9 @@ endif ifeq (true,$(my_process_profile)) -ifdef LOCAL_VENDOR_MODULE -$(call pretty-error, Internal error: profiles are not supported for vendor modules) -else ifeq (,$(LOCAL_DEX_PREOPT_APP_IMAGE)) LOCAL_DEX_PREOPT_APP_IMAGE := true endif -endif ifndef LOCAL_DEX_PREOPT_PROFILE $(call pretty-error,Must have specified class listing (LOCAL_DEX_PREOPT_PROFILE)) @@ -191,6 +187,12 @@ endif ifdef LOCAL_DEX_PREOPT dexpreopt_boot_jar_module := $(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)) + +# Filter org.apache.http.legacy.boot. +ifeq ($(dexpreopt_boot_jar_module),org.apache.http.legacy.boot) +dexpreopt_boot_jar_module := +endif + ifdef dexpreopt_boot_jar_module # For libart, the boot jars' odex files are replaced by $(DEFAULT_DEX_PREOPT_INSTALLED_IMAGE). # We use this installed_odex trick to get boot.art installed. diff --git a/core/droiddoc.mk b/core/droiddoc.mk index 5425e31705..587d284a86 100644 --- a/core/droiddoc.mk +++ b/core/droiddoc.mk @@ -221,7 +221,7 @@ $(full_target): \ $(PRIVATE_DROIDDOC_OPTIONS) \ $(addprefix -stubs ,$(PRIVATE_STUB_OUT_DIR)) \ && touch -f $@ \ - ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) + ) || (cat $(PRIVATE_SRC_LIST_FILE) $(PRIVATE_SRCJAR_LIST_FILE) && rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) diff --git a/core/fuzz_test.mk b/core/fuzz_test.mk index 7e3995add6..2cc2e2c6d5 100644 --- a/core/fuzz_test.mk +++ b/core/fuzz_test.mk @@ -8,8 +8,50 @@ ifdef LOCAL_SDK_VERSION $(error $(LOCAL_PATH): $(LOCAL_MODULE): NDK fuzz tests are not supported.) endif +my_fuzzer:=libFuzzer +ifdef LOCAL_FUZZ_ENGINE + my_fuzzer:=$(LOCAL_FUZZ_ENGINE) +else ifdef TARGET_FUZZ_ENGINE + my_fuzzer:=$(TARGET_FUZZ_ENGINE) +endif + + LOCAL_CFLAGS += -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp + +ifeq ($(my_fuzzer),libFuzzer) LOCAL_STATIC_LIBRARIES += libFuzzer +else ifeq ($(my_fuzzer),honggfuzz) +LOCAL_STATIC_LIBRARIES += honggfuzz_libhfuzz +LOCAL_REQUIRED_MODULES += honggfuzz +LOCAL_LDFLAGS += \ + "-Wl,--wrap=strcmp" \ + "-Wl,--wrap=strcasecmp" \ + "-Wl,--wrap=strncmp" \ + "-Wl,--wrap=strncasecmp" \ + "-Wl,--wrap=strstr" \ + "-Wl,--wrap=strcasestr" \ + "-Wl,--wrap=memcmp" \ + "-Wl,--wrap=bcmp" \ + "-Wl,--wrap=memmem" \ + "-Wl,--wrap=ap_cstr_casecmp" \ + "-Wl,--wrap=ap_cstr_casecmpn" \ + "-Wl,--wrap=ap_strcasestr" \ + "-Wl,--wrap=apr_cstr_casecmp" \ + "-Wl,--wrap=apr_cstr_casecmpn" \ + "-Wl,--wrap=CRYPTO_memcmp" \ + "-Wl,--wrap=OPENSSL_memcmp" \ + "-Wl,--wrap=OPENSSL_strcasecmp" \ + "-Wl,--wrap=OPENSSL_strncasecmp" \ + "-Wl,--wrap=xmlStrncmp" \ + "-Wl,--wrap=xmlStrcmp" \ + "-Wl,--wrap=xmlStrEqual" \ + "-Wl,--wrap=xmlStrcasecmp" \ + "-Wl,--wrap=xmlStrncasecmp" \ + "-Wl,--wrap=xmlStrstr" \ + "-Wl,--wrap=xmlStrcasestr" +else +$(call pretty-error, Unknown fuzz engine $(my_fuzzer)) +endif ifdef LOCAL_MODULE_PATH $(error $(LOCAL_PATH): Do not set LOCAL_MODULE_PATH when building test $(LOCAL_MODULE)) @@ -32,4 +74,8 @@ LOCAL_MULTILIB := both endif endif +ifndef LOCAL_STRIP_MODULE +LOCAL_STRIP_MODULE := keep_symbols +endif + include $(BUILD_EXECUTABLE) diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 2aed61e33c..c8d2ee78c2 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -114,9 +114,9 @@ full_classes_jarjar_jar := $(full_classes_combined_jar) endif +####################################### LOCAL_FULL_CLASSES_PRE_JACOCO_JAR := $(full_classes_jarjar_jar) -####################################### include $(BUILD_SYSTEM)/jacoco.mk ####################################### diff --git a/core/java.mk b/core/java.mk index 0d898e7df6..768860ba7a 100644 --- a/core/java.mk +++ b/core/java.mk @@ -359,9 +359,9 @@ endif $(eval $(call copy-one-file,$(full_classes_jarjar_jar),$(full_classes_jar))) +####################################### LOCAL_FULL_CLASSES_PRE_JACOCO_JAR := $(full_classes_jar) -####################################### include $(BUILD_SYSTEM)/jacoco.mk ####################################### @@ -405,7 +405,12 @@ else endif endif -legacy_proguard_flags := $(addprefix -libraryjars ,$(my_proguard_sdk_raise) \ +ifeq ($(USE_R8),true) +proguard_jars_prefix := -libraryjars +else +proguard_jars_prefix := -systemjars +endif +legacy_proguard_flags := $(addprefix $(proguard_jars_prefix) ,$(my_proguard_sdk_raise) \ $(filter-out $(my_proguard_sdk_raise), \ $(full_java_bootclasspath_libs) \ $(full_shared_java_header_libs))) @@ -483,19 +488,6 @@ else extra_input_jar := endif -# If building against the current SDK version then filter out the junit, -# android.test and c.a.i.u.Predicate classes that are to be removed from -# the Android API as part of b/30188076 but which are still present in -# the Android API. This is to allow changes to be made to the build to -# statically include those classes into the application without -# simultaneously removing those classes from the API. -proguard_injar_filters := -ifdef LOCAL_SDK_VERSION -ifeq (,$(filter-out current system_current test_current, $(LOCAL_SDK_VERSION))) -proguard_injar_filters := (!junit/framework/**,!junit/runner/**,!junit/textui/**,!android/test/**,!com/android/internal/util/*) -endif -endif - ifneq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),) ifneq ($(LOCAL_USE_R8),true) $(full_classes_proguard_jar): .KATI_IMPLICIT_OUTPUTS := $(proguard_dictionary) $(proguard_configuration) @@ -508,7 +500,6 @@ endif ifneq ($(LOCAL_USE_R8),true) # Changes to these dependencies need to be replicated below when using R8 # instead of Proguard + dx. -$(full_classes_proguard_jar): PRIVATE_PROGUARD_INJAR_FILTERS := $(proguard_injar_filters) $(full_classes_proguard_jar): PRIVATE_EXTRA_INPUT_JAR := $(extra_input_jar) $(full_classes_proguard_jar): PRIVATE_PROGUARD_FLAGS := $(legacy_proguard_flags) $(common_proguard_flags) $(LOCAL_PROGUARD_FLAGS) $(full_classes_proguard_jar) : $(full_classes_pre_proguard_jar) $(extra_input_jar) $(my_proguard_sdk_raise) $(common_proguard_flag_files) $(proguard_flag_files) $(legacy_proguard_lib_deps) | $(PROGUARD) @@ -533,7 +524,6 @@ ifeq ($(LOCAL_USE_R8),true) # Proguard + dx. They are used for the generated dex when using R8, as # R8 does Proguard + dx my_r8 := true -$(built_dex_intermediate): PRIVATE_PROGUARD_INJAR_FILTERS := $(proguard_injar_filters) $(built_dex_intermediate): PRIVATE_EXTRA_INPUT_JAR := $(extra_input_jar) $(built_dex_intermediate): PRIVATE_PROGUARD_FLAGS := $(legacy_proguard_flags) $(common_proguard_flags) $(LOCAL_PROGUARD_FLAGS) $(built_dex_intermediate) : $(full_classes_proguard_jar) $(extra_input_jar) $(my_proguard_sdk_raise) $(common_proguard_flag_files) $(proguard_flag_files) $(legacy_proguard_lib_deps) $(R8_COMPAT_PROGUARD) diff --git a/core/java_common.mk b/core/java_common.mk index 486f087ffa..d63c15fae7 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -493,11 +493,11 @@ ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \ ifndef LOCAL_IS_HOST_MODULE ifeq ($(LOCAL_SDK_VERSION),system_current) my_link_type := java:system -my_warn_types := java:platform +my_warn_types := my_allowed_types := java:sdk java:system java:core else ifneq (,$(call has-system-sdk-version,$(LOCAL_SDK_VERSION))) my_link_type := java:system -my_warn_types := java:platform +my_warn_types := my_allowed_types := java:sdk java:system java:core else ifeq ($(LOCAL_SDK_VERSION),core_current) my_link_type := java:core @@ -505,7 +505,7 @@ my_warn_types := my_allowed_types := java:core else ifneq ($(LOCAL_SDK_VERSION),) my_link_type := java:sdk -my_warn_types := java:system java:platform +my_warn_types := my_allowed_types := java:sdk java:core else my_link_type := java:platform diff --git a/core/jetifier.mk b/core/jetifier.mk new file mode 100644 index 0000000000..33a4624a31 --- /dev/null +++ b/core/jetifier.mk @@ -0,0 +1,34 @@ +# +# Copyright (C) 2018 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This file sets up the running of Jetifier + +# now add the rule to run jetifier +ifeq ($(strip $(LOCAL_JETIFIER_ENABLED)),true) + my_jetifier_input_path := $(LOCAL_JETIFIER_INPUT_FILE) + my_files := $(intermediates.COMMON)/jetifier + my_jetifier_output_path := $(my_files)/jetified-$(notdir $(my_jetifier_input_path)) + +$(my_jetifier_output_path) : $(my_jetifier_input_path) $(JETIFIER) + rm -rf $@ + $(JETIFIER) -outputfile $@ -i $< + + LOCAL_JETIFIER_OUTPUT_FILE := $(my_jetifier_output_path) + LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_JETIFIER_OUTPUT_FILE) +else + LOCAL_JETIFIER_OUTPUT_FILE := $(LOCAL_JETIFIER_INPUT_FILE) +endif + diff --git a/core/main.mk b/core/main.mk index ba082acb18..678bc981af 100644 --- a/core/main.mk +++ b/core/main.mk @@ -96,6 +96,10 @@ $(shell mkdir -p $(EMPTY_DIRECTORY) && rm -rf $(EMPTY_DIRECTORY)/*) -include tools/tradefederation/build/suites/device-tests/config.mk # general-tests-specific-config. -include tools/tradefederation/build/suites/general-tests/config.mk +# STS-specific config. +-include test/sts/tools/sts-tradefed/build/config.mk +# CTS-Instant-specific config +-include test/suite_harness/tools/cts-instant-tradefed/build/config.mk # Clean rules .PHONY: clean-dex-files diff --git a/core/pdk_config.mk b/core/pdk_config.mk index 9fe6d47454..57afa3fd70 100644 --- a/core/pdk_config.mk +++ b/core/pdk_config.mk @@ -14,7 +14,6 @@ ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP)$(PDK_ PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR += \ target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates \ target/common/obj/JAVA_LIBRARIES/android.hidl.base-V1.0-java_intermediates \ - target/common/obj/JAVA_LIBRARIES/android.hidl.base-V1.0-java-static_intermediates \ target/common/obj/JAVA_LIBRARIES/android.hidl.manager-V1.0-java_intermediates \ target/common/obj/JAVA_LIBRARIES/android-common_intermediates \ target/common/obj/JAVA_LIBRARIES/android-ex-camera2_intermediates \ diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index a4bf05559b..d07aad89bf 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -588,6 +588,12 @@ else # ! prebuilt_module_is_dex_javalib my_src_aar := $(filter %.aar, $(my_prebuilt_src_file)) ifneq ($(my_src_aar),) # This is .aar file, archive of classes.jar and Android resources. + +# run Jetifier if needed +LOCAL_JETIFIER_INPUT_FILE := $(my_src_aar) +include $(BUILD_SYSTEM)/jetifier.mk +my_src_aar := $(LOCAL_JETIFIER_OUTPUT_FILE) + my_src_jar := $(intermediates.COMMON)/aar/classes.jar my_src_proguard_options := $(intermediates.COMMON)/aar/proguard.txt my_src_android_manifest := $(intermediates.COMMON)/aar/AndroidManifest.xml @@ -608,6 +614,13 @@ my_prebuilt_android_manifest := $(intermediates.COMMON)/manifest/AndroidManifest $(eval $(call copy-one-file,$(my_src_android_manifest),$(my_prebuilt_android_manifest))) $(call add-dependency,$(LOCAL_BUILT_MODULE),$(my_prebuilt_android_manifest)) +else + +# run Jetifier if needed +LOCAL_JETIFIER_INPUT_FILE := $(my_src_jar) +include $(BUILD_SYSTEM)/jetifier.mk +my_src_jar := $(LOCAL_JETIFIER_OUTPUT_FILE) + endif $(common_classes_jar) : $(my_src_jar) diff --git a/core/sdk_check.mk b/core/sdk_check.mk index c09fc7caec..49ea2a8c92 100644 --- a/core/sdk_check.mk +++ b/core/sdk_check.mk @@ -8,11 +8,6 @@ whitelisted_modules := framework-res__auto_generated_rro - -ifeq (,$(JAVA_SDK_ENFORCEMENT_ERROR)) - JAVA_SDK_ENFORCEMENT_ERROR := APPS -endif - ifeq ($(LOCAL_SDK_VERSION)$(LOCAL_PRIVATE_PLATFORM_APIS),) ifeq (,$(filter $(LOCAL_MODULE),$(whitelisted_modules))) ifneq ($(JAVA_SDK_ENFORCEMENT_WARNING)$(JAVA_SDK_ENFORCEMENT_ERROR),) diff --git a/core/soong_config.mk b/core/soong_config.mk index 914b7f910e..998e23dea0 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -130,6 +130,7 @@ $(call add_json_bool, Treble_linker_namespaces, $(filter true,$(PRODUCT $(call add_json_bool, Enforce_vintf_manifest, $(filter true,$(PRODUCT_ENFORCE_VINTF_MANIFEST))) $(call add_json_bool, Uml, $(filter true,$(TARGET_USER_MODE_LINUX))) +$(call add_json_bool, Use_lmkd_stats_log, $(filter true,$(TARGET_LMKD_STATS_LOG))) $(call add_json_str, VendorPath, $(TARGET_COPY_OUT_VENDOR)) $(call add_json_str, OdmPath, $(TARGET_COPY_OUT_ODM)) $(call add_json_str, ProductPath, $(TARGET_COPY_OUT_PRODUCT)) @@ -137,6 +138,7 @@ $(call add_json_str, ProductServicesPath, $(TARGET_COPY_OUT_PRODU $(call add_json_bool, MinimizeJavaDebugInfo, $(filter true,$(PRODUCT_MINIMIZE_JAVA_DEBUG_INFO))) $(call add_json_bool, UseGoma, $(filter-out false,$(USE_GOMA))) +$(call add_json_bool, Arc, $(filter true,$(TARGET_ARC))) $(call add_json_str, DistDir, $(if $(dist_goal), $(DIST_DIR))) diff --git a/target/board/go_defaults.prop b/core/tasks/apidiff.mk similarity index 86% rename from target/board/go_defaults.prop rename to core/tasks/apidiff.mk index 93071cd7e2..4eb59afbb9 100644 --- a/target/board/go_defaults.prop +++ b/core/tasks/apidiff.mk @@ -1,4 +1,3 @@ -# # Copyright (C) 2017 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,4 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + # +# Rules for building API diffs. +# + +.PHONY: api-diff + +api-diff: offline-sdk-referenceonly-diff diff --git a/core/tasks/check_boot_jars/package_whitelist.txt b/core/tasks/check_boot_jars/package_whitelist.txt index 15b99903cf..b0becba82f 100644 --- a/core/tasks/check_boot_jars/package_whitelist.txt +++ b/core/tasks/check_boot_jars/package_whitelist.txt @@ -121,7 +121,7 @@ com\.android\..* ################################################### -# legacy-test.jar +# android.test.base.jar junit\.extensions junit\.framework android\.test @@ -237,3 +237,7 @@ org\.apache\.xalan\.xslt # Packages in the google namespace across all bootclasspath jars. com\.google\.android\..* com\.google\.vr\.platform.* + +################################################### +# Packages used for Android in Chrome OS +org\.chromium\.arc diff --git a/core/tasks/cts.mk b/core/tasks/cts.mk index fdd9591768..33c3a836f0 100644 --- a/core/tasks/cts.mk +++ b/core/tasks/cts.mk @@ -14,8 +14,9 @@ test_suite_name := cts test_suite_tradefed := cts-tradefed -test_suite_dynamic_config := cts/tools/cts-tradefed/DynamicConfig.xml -test_suite_readme := cts/tools/cts-tradefed/README +# TODO: Fix the following two lines after harness is moved to its own repo +test_suite_dynamic_config := test/suite_harness/tools/cts-tradefed/DynamicConfig.xml +test_suite_readme := test/suite_harness/tools/cts-tradefed/README include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk diff --git a/core/tasks/cts_instant.mk b/core/tasks/cts_instant.mk new file mode 100644 index 0000000000..18f1db308c --- /dev/null +++ b/core/tasks/cts_instant.mk @@ -0,0 +1,25 @@ +# Copyright (C) 2018 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +test_suite_name := cts_instant +test_suite_tradefed := cts-instant-tradefed +test_suite_dynamic_config := test/suite_harness/tools/cts-instant-tradefed/DynamicConfig.xml +test_suite_readme := test/suite_harness/tools/cts-instant-tradefed/README + +include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk + +.PHONY: cts_instant +cts_instant: $(compatibility_zip) +$(call dist-for-goals, cts_instant, $(compatibility_zip)) + diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk index 197d41a78e..2a20f070e4 100644 --- a/core/tasks/sdk-addon.mk +++ b/core/tasks/sdk-addon.mk @@ -65,7 +65,6 @@ endif files_to_copy += \ $(addon_dir_img):$(INSTALLED_QEMU_SYSTEMIMAGE):images/$(TARGET_CPU_ABI)/system.img \ $(addon_dir_img):$(INSTALLED_QEMU_VENDORIMAGE):images/$(TARGET_CPU_ABI)/vendor.img \ - $(addon_dir_img):$(BUILT_USERDATAIMAGE_TARGET):images/$(TARGET_CPU_ABI)/userdata.img \ $(addon_dir_img):$(BUILT_RAMDISK_TARGET):images/$(TARGET_CPU_ABI)/ramdisk.img \ $(addon_dir_img):$(PRODUCT_OUT)/system/build.prop:images/$(TARGET_CPU_ABI)/build.prop \ $(addon_dir_img):$(target_notice_file_txt):images/$(TARGET_CPU_ABI)/NOTICE.txt \ diff --git a/target/board/go_defaults_512.prop b/core/tasks/sts.mk similarity index 61% rename from target/board/go_defaults_512.prop rename to core/tasks/sts.mk index a8eea9c7d6..0c33e1c77b 100644 --- a/target/board/go_defaults_512.prop +++ b/core/tasks/sts.mk @@ -1,5 +1,4 @@ -# -# Copyright (C) 2017 The Android Open Source Project +# Copyright (C) 2016 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,12 +11,15 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# -# 512MB specific properties. +ifneq ($(wildcard test/sts/README.md),) +test_suite_name := sts +test_suite_tradefed := sts-tradefed +test_suite_readme := test/sts/README.md -# lmkd can kill more now. -ro.lmk.medium=700 +include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk -# madvise random in ART to reduce page cache thrashing. -dalvik.vm.madvise-random=true +.PHONY: sts +sts: $(compatibility_zip) +$(call dist-for-goals, sts, $(compatibility_zip)) +endif diff --git a/core/tasks/tools/compatibility.mk b/core/tasks/tools/compatibility.mk index 34ac1d0566..d2433eac81 100644 --- a/core/tasks/tools/compatibility.mk +++ b/core/tasks/tools/compatibility.mk @@ -21,6 +21,8 @@ # test_suite_readme: the path to a README file for this test suite # test_suite_prebuilt_tools: the set of prebuilt tools to be included directly # in the 'tools' subdirectory of the test suite. +# test_suite_tools: the set of tools for this test suite +# # Output variables: # compatibility_zip: the path to the output zip file. @@ -39,6 +41,8 @@ test_tools := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar \ $(HOST_OUT_EXECUTABLES)/$(test_suite_tradefed) \ $(test_suite_readme) +test_tools += $(test_suite_tools) + compatibility_zip := $(out_dir).zip $(compatibility_zip): PRIVATE_NAME := android-$(test_suite_name) $(compatibility_zip): PRIVATE_OUT_DIR := $(out_dir) @@ -61,3 +65,4 @@ test_suite_tradefed := test_suite_dynamic_config := test_suite_readme := test_suite_prebuilt_tools := +test_suite_tools := diff --git a/core/tasks/vendor_module_check.mk b/core/tasks/vendor_module_check.mk index ae967c686b..6695994e1f 100644 --- a/core/tasks/vendor_module_check.mk +++ b/core/tasks/vendor_module_check.mk @@ -44,6 +44,7 @@ _vendor_owner_whitelist := \ ti \ trusted_logic \ verizon \ + waves \ widevine diff --git a/core/version_defaults.mk b/core/version_defaults.mk index ec0bfcd5aa..e57b198a8d 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -82,12 +82,10 @@ MAX_PLATFORM_VERSION := # please add that PLATFORM_VERSION as well as clean up obsolete PLATFORM_VERSION's # in the following text file: # cts/tests/tests/os/assets/platform_versions.txt -PLATFORM_VERSION.PPR1 := P PLATFORM_VERSION.QPR1 := Q # These are the current development codenames, if the build is not a final # release build. If this is a final release build, it is simply "REL". -PLATFORM_VERSION_CODENAME.PPR1 := P PLATFORM_VERSION_CODENAME.QPR1 := Q ifndef PLATFORM_VERSION @@ -116,7 +114,7 @@ ifndef PLATFORM_SDK_VERSION # When you increment the PLATFORM_SDK_VERSION please ensure you also # clear out the following text file of all older PLATFORM_VERSION's: # cts/tests/tests/os/assets/platform_versions.txt - PLATFORM_SDK_VERSION := 27 + PLATFORM_SDK_VERSION := 28 endif .KATI_READONLY := PLATFORM_SDK_VERSION @@ -225,10 +223,7 @@ ifndef PLATFORM_SYSTEMSDK_MIN_VERSION # to the public SDK where platform essentially supports all previous SDK versions, # platform supports only a few number of recent system SDK versions as some of # old system APIs are gradually deprecated, removed and then deleted. - # However, currently in P, we only support the single latest version since there - # is no old system SDK versions. Therefore, this is set to empty for now. This - # should later (in post P) be set to a number, like 28. - PLATFORM_SYSTEMSDK_MIN_VERSION := + PLATFORM_SYSTEMSDK_MIN_VERSION := 28 endif .KATI_READONLY := PLATFORM_SYSTEMSDK_MIN_VERSION @@ -254,7 +249,7 @@ ifndef PLATFORM_SECURITY_PATCH # It must be of the form "YYYY-MM-DD" on production devices. # It must match one of the Android Security Patch Level strings of the Public Security Bulletins. # If there is no $PLATFORM_SECURITY_PATCH set, keep it empty. - PLATFORM_SECURITY_PATCH := 2017-12-01 + PLATFORM_SECURITY_PATCH := 2018-08-05 endif .KATI_READONLY := PLATFORM_SECURITY_PATCH @@ -320,3 +315,11 @@ ifndef BUILD_NUMBER HAS_BUILD_NUMBER := false endif .KATI_READONLY := BUILD_NUMBER HAS_BUILD_NUMBER + +ifndef PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION + # Used to set minimum supported target sdk version. Apps targeting sdk + # version lower than the set value will fail to install and run on android + # device. + PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION := 17 +endif +.KATI_READONLY := PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 3577c21894..738c037312 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -49,3 +49,14 @@ include build/make/target/board/BoardConfigEmuCommon.mk include build/make/target/board/BoardConfigGsiCommon.mk BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 + +# Wifi. +BOARD_WLAN_DEVICE := emulator +BOARD_HOSTAPD_DRIVER := NL80211 +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_simulated +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated +WPA_SUPPLICANT_VERSION := VER_0_8_X +WIFI_DRIVER_FW_PATH_PARAM := "/dev/null" +WIFI_DRIVER_FW_PATH_STA := "/dev/null" +WIFI_DRIVER_FW_PATH_AP := "/dev/null" diff --git a/target/board/generic/device.mk b/target/board/generic/device.mk index d2f6310902..82c6657f58 100644 --- a/target/board/generic/device.mk +++ b/target/board/generic/device.mk @@ -17,12 +17,7 @@ # This is a build configuration for the product aspects that # are specific to the emulator. -PRODUCT_PROPERTY_OVERRIDES := \ - ro.ril.hsxpa=1 \ - ro.ril.gprsclass=10 - PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk index 519bafe580..c1983ad465 100644 --- a/target/board/generic_arm64/BoardConfig.mk +++ b/target/board/generic_arm64/BoardConfig.mk @@ -68,3 +68,14 @@ BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware # TODO(b/36764215): remove this setting when the generic system image # no longer has QCOM-specific directories under /. BOARD_SEPOLICY_DIRS += build/target/board/generic_arm64_ab/sepolicy + +# Wifi. +BOARD_WLAN_DEVICE := emulator +BOARD_HOSTAPD_DRIVER := NL80211 +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_simulated +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated +WPA_SUPPLICANT_VERSION := VER_0_8_X +WIFI_DRIVER_FW_PATH_PARAM := "/dev/null" +WIFI_DRIVER_FW_PATH_STA := "/dev/null" +WIFI_DRIVER_FW_PATH_AP := "/dev/null" diff --git a/target/board/generic_arm64/device.mk b/target/board/generic_arm64/device.mk index 8d62f4bff8..c0fbdcda4b 100644 --- a/target/board/generic_arm64/device.mk +++ b/target/board/generic_arm64/device.mk @@ -17,12 +17,7 @@ # This is a build configuration for the product aspects that # are specific to the emulator. -PRODUCT_PROPERTY_OVERRIDES := \ - ro.ril.hsxpa=1 \ - ro.ril.gprsclass=10 - PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_arm64_ab/BoardConfig.mk b/target/board/generic_arm64_ab/BoardConfig.mk index 7620516826..fc6b58284b 100644 --- a/target/board/generic_arm64_ab/BoardConfig.mk +++ b/target/board/generic_arm64_ab/BoardConfig.mk @@ -44,5 +44,3 @@ BOARD_CACHEIMAGE_PARTITION_SIZE := 16777216 # TODO(b/36764215): remove this setting when the generic system image # no longer has QCOM-specific directories under /. BOARD_SEPOLICY_DIRS += build/target/board/generic_arm64_ab/sepolicy - -BOARD_VNDK_VERSION := current diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk index 1e6a38c453..650073e68b 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -23,4 +23,18 @@ TARGET_PRELINK_MODULE := false include build/make/target/board/BoardConfigEmuCommon.mk include build/make/target/board/BoardConfigGsiCommon.mk -BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 +# Resize to 4G to accomodate ASAN and CTS +BOARD_USERDATAIMAGE_PARTITION_SIZE := 4294967296 + +BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/x86 + +# Wifi. +BOARD_WLAN_DEVICE := emulator +BOARD_HOSTAPD_DRIVER := NL80211 +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_simulated +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated +WPA_SUPPLICANT_VERSION := VER_0_8_X +WIFI_DRIVER_FW_PATH_PARAM := "/dev/null" +WIFI_DRIVER_FW_PATH_STA := "/dev/null" +WIFI_DRIVER_FW_PATH_AP := "/dev/null" diff --git a/target/board/generic_x86/device.mk b/target/board/generic_x86/device.mk index 7b6fa3ce8e..ecf8697354 100644 --- a/target/board/generic_x86/device.mk +++ b/target/board/generic_x86/device.mk @@ -17,12 +17,7 @@ # This is a build configuration for the product aspects that # are specific to the emulator. -PRODUCT_PROPERTY_OVERRIDES := \ - ro.ril.hsxpa=1 \ - ro.ril.gprsclass=10 - PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk index 9bd0243102..1426630443 100755 --- a/target/board/generic_x86_64/BoardConfig.mk +++ b/target/board/generic_x86_64/BoardConfig.mk @@ -28,3 +28,16 @@ include build/make/target/board/BoardConfigEmuCommon.mk include build/make/target/board/BoardConfigGsiCommon.mk BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 + +BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/x86 + +# Wifi. +BOARD_WLAN_DEVICE := emulator +BOARD_HOSTAPD_DRIVER := NL80211 +BOARD_WPA_SUPPLICANT_DRIVER := NL80211 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_simulated +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated +WPA_SUPPLICANT_VERSION := VER_0_8_X +WIFI_DRIVER_FW_PATH_PARAM := "/dev/null" +WIFI_DRIVER_FW_PATH_STA := "/dev/null" +WIFI_DRIVER_FW_PATH_AP := "/dev/null" diff --git a/target/board/generic_x86_64/device.mk b/target/board/generic_x86_64/device.mk index 7b6fa3ce8e..ecf8697354 100755 --- a/target/board/generic_x86_64/device.mk +++ b/target/board/generic_x86_64/device.mk @@ -17,12 +17,7 @@ # This is a build configuration for the product aspects that # are specific to the emulator. -PRODUCT_PROPERTY_OVERRIDES := \ - ro.ril.hsxpa=1 \ - ro.ril.gprsclass=10 - PRODUCT_COPY_FILES := \ - device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \ diff --git a/target/board/go_defaults_common.prop b/target/board/go_defaults_common.prop deleted file mode 100644 index 5ebcb474c4..0000000000 --- a/target/board/go_defaults_common.prop +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Sets Android Go recommended default values for propreties. - -# Set lowram options -ro.lmk.critical_upgrade=true -ro.lmk.upgrade_pressure=40 -ro.lmk.downgrade_pressure=60 -ro.lmk.kill_heaviest_task=false -ro.statsd.enable=false - -# set threshold to filter unused apps -pm.dexopt.downgrade_after_inactive_days=10 - -# set the compiler filter for shared apks to quicken. -# Rationale: speed has a lot of dex code expansion, it uses more ram and space -# compared to quicken. Using quicken for shared APKs on Go devices may save RAM. -# Note that this is a trade-off: here we trade clean pages for dirty pages, -# extra cpu and battery. That's because the quicken files will be jit-ed in all -# the processes that load of shared apk and the code cache is not shared. -# Some notable apps that will be affected by this are gms and chrome. -# b/65591595. -pm.dexopt.shared=quicken - -# Default heap sizes. Allow up to 256m for large heaps to make sure a single app -# doesn't take all of the RAM. -dalvik.vm.heapgrowthlimit=128m -dalvik.vm.heapsize=256m diff --git a/target/board/gsi_system.prop b/target/board/gsi_system.prop index 4b54aaf716..0c04a9529f 100644 --- a/target/board/gsi_system.prop +++ b/target/board/gsi_system.prop @@ -3,3 +3,6 @@ ro.cp_system_other_odex=0 # GSI always disables adb authentication ro.adb.secure=0 + +# TODO(b/78105955): disable privapp_permissions checking before the bug solved +ro.control_privapp_permissions=disable diff --git a/target/board/treble_common.mk b/target/board/treble_common.mk index 49b97be960..7da7b30d4b 100644 --- a/target/board/treble_common.mk +++ b/target/board/treble_common.mk @@ -29,7 +29,10 @@ TARGET_NO_BOOTLOADER := true TARGET_NO_KERNEL := true # system.img is always ext4 with sparse option +# GSI also includes make_f2fs to support userdata parition in f2fs +# for some devices TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_USE_F2FS := true TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false TARGET_USES_MKE2FS := true @@ -39,6 +42,9 @@ BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864 # Generic AOSP image always requires separate vendor.img TARGET_COPY_OUT_VENDOR := vendor +# Android generic system image always create metadata partition +BOARD_USES_METADATA_PARTITION := true + # Generic AOSP image does NOT support HWC1 TARGET_USES_HWC2 := true # Set emulator framebuffer display device buffer count to 3 @@ -47,11 +53,6 @@ NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 # Audio USE_XML_AUDIO_POLICY_CONF := 1 -# b/64700195: add minimum support for odm.img -# Currently odm.img can only be built by `make custom_images`. -# Adding /odm mount point under root directory. -BOARD_ROOT_EXTRA_FOLDERS += odm - # Android Verified Boot (AVB): # Builds a special vbmeta.img that disables AVB verification. # Otherwise, AVB will prevent the device from booting the generic system.img. diff --git a/target/board/treble_system.prop b/target/board/treble_system.prop index 4b54aaf716..0c04a9529f 100644 --- a/target/board/treble_system.prop +++ b/target/board/treble_system.prop @@ -3,3 +3,6 @@ ro.cp_system_other_odex=0 # GSI always disables adb authentication ro.adb.secure=0 + +# TODO(b/78105955): disable privapp_permissions checking before the bug solved +ro.control_privapp_permissions=disable diff --git a/target/product/aosp_arm.mk b/target/product/aosp_arm.mk index 44d971ec95..dc49498537 100644 --- a/target/product/aosp_arm.mk +++ b/target/product/aosp_arm.mk @@ -22,7 +22,7 @@ # - compatible property override enabled PRODUCT_PROPERTY_OVERRIDES += \ - rild.libpath=/vendor/lib/libreference-ril.so + vendor.rild.libpath=/vendor/lib/libreference-ril.so # Note: the following lines need to stay at the beginning so that it can # take priority and override the rules it inherit from other mk files diff --git a/target/product/aosp_arm64.mk b/target/product/aosp_arm64.mk index 185b8452e4..0d9e055899 100644 --- a/target/product/aosp_arm64.mk +++ b/target/product/aosp_arm64.mk @@ -22,7 +22,7 @@ # - compatible property override enabled PRODUCT_PROPERTY_OVERRIDES += \ - rild.libpath=/vendor/lib64/libreference-ril.so + vendor.rild.libpath=/vendor/lib64/libreference-ril.so # This is a build configuration for a full-featured build of the # Open-Source part of the tree. It's geared toward a US-centric @@ -45,12 +45,11 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk) -include $(SRC_TARGET_DIR)/product/emulator.mk - # Enable dynamic partition size PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true diff --git a/target/product/aosp_x86.mk b/target/product/aosp_x86.mk index c7309a3cec..abaab5d66f 100644 --- a/target/product/aosp_x86.mk +++ b/target/product/aosp_x86.mk @@ -22,7 +22,7 @@ # - compatible property override enabled PRODUCT_PROPERTY_OVERRIDES += \ - rild.libpath=/vendor/lib/libreference-ril.so + vendor.rild.libpath=/vendor/lib/libreference-ril.so # This is a build configuration for a full-featured build of the # Open-Source part of the tree. It's geared toward a US-centric @@ -31,7 +31,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_COPY_FILES += \ development/sys-img/advancedFeatures.ini:advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \ - prebuilts/qemu-kernel/x86_64/4.4/kernel-qemu2:kernel-ranchu-64 + prebuilts/qemu-kernel/x86_64/4.9/kernel-qemu2:kernel-ranchu-64 include $(SRC_TARGET_DIR)/product/full_x86.mk diff --git a/target/product/aosp_x86_64.mk b/target/product/aosp_x86_64.mk index 72d097ab7a..2168740250 100644 --- a/target/product/aosp_x86_64.mk +++ b/target/product/aosp_x86_64.mk @@ -22,7 +22,7 @@ # - compatible property override enabled PRODUCT_PROPERTY_OVERRIDES += \ - rild.libpath=/vendor/lib64/libreference-ril.so + vendor.rild.libpath=/vendor/lib64/libreference-ril.so # This is a build configuration for a full-featured build of the # Open-Source part of the tree. It's geared toward a US-centric @@ -32,7 +32,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_COPY_FILES += \ development/sys-img/advancedFeatures.ini:advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \ - prebuilts/qemu-kernel/x86_64/4.4/kernel-qemu2:kernel-ranchu + prebuilts/qemu-kernel/x86_64/4.9/kernel-qemu2:kernel-ranchu # Copy different zygote settings for vendor.img to select by setting property # ro.zygote=zygote64_32 or ro.zygote=zygote32_64: @@ -42,12 +42,11 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/board/generic_x86_64/device.mk) -include $(SRC_TARGET_DIR)/product/emulator.mk - # Enable dynamic partition size PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true diff --git a/target/product/base_system.mk b/target/product/base_system.mk index 12cee2477a..2cfefc57b7 100644 --- a/target/product/base_system.mk +++ b/target/product/base_system.mk @@ -24,12 +24,14 @@ PRODUCT_PACKAGES += \ android.hidl.manager-V1.0-java \ android.hidl.memory@1.0-impl \ android.hidl.memory@1.0-impl.vendor \ + android.test.base \ android.test.mock \ android.test.runner \ applypatch \ appops \ app_process \ appwidget \ + atest \ atrace \ audioserver \ BackupRestoreConfirmation \ @@ -79,6 +81,7 @@ PRODUCT_PACKAGES += \ ims-common \ incident \ incidentd \ + incident_helper \ incident_report \ init \ init.environ.rc \ @@ -211,6 +214,7 @@ PRODUCT_PACKAGES += \ screencap \ sdcard \ secdiscard \ + SecureElement \ selinux_policy_system \ sensorservice \ service \ @@ -222,6 +226,7 @@ PRODUCT_PACKAGES += \ Shell \ shell_and_utilities_system \ sm \ + statsd \ storaged \ surfaceflinger \ svc \ @@ -255,30 +260,44 @@ ifeq ($(TARGET_CORE_JARS),) $(error TARGET_CORE_JARS is empty; cannot initialize PRODUCT_BOOT_JARS variable) endif -# The order of PRODUCT_BOOT_JARS matters. +# The order matters PRODUCT_BOOT_JARS := \ $(TARGET_CORE_JARS) \ - legacy-test \ ext \ framework \ telephony-common \ voip-common \ ims-common \ - org.apache.http.legacy.impl \ android.hidl.base-V1.0-java \ android.hidl.manager-V1.0-java +# Add the compatibility library that is needed when org.apache.http.legacy +# is removed from the bootclasspath. +ifeq ($(REMOVE_OAHL_FROM_BCP),true) +PRODUCT_PACKAGES += framework-oahl-backward-compatibility +PRODUCT_BOOT_JARS += framework-oahl-backward-compatibility +else +PRODUCT_BOOT_JARS += org.apache.http.legacy.impl +endif + PRODUCT_COPY_FILES += \ system/core/rootdir/init.usb.rc:root/init.usb.rc \ system/core/rootdir/init.usb.configfs.rc:root/init.usb.configfs.rc \ system/core/rootdir/ueventd.rc:root/ueventd.rc \ system/core/rootdir/etc/hosts:system/etc/hosts +# Add the compatibility library that is needed when android.test.base +# is removed from the bootclasspath. +ifeq ($(REMOVE_ATB_FROM_BCP),true) +PRODUCT_PACKAGES += framework-atb-backward-compatibility +PRODUCT_BOOT_JARS += framework-atb-backward-compatibility +else +PRODUCT_BOOT_JARS += android.test.base +endif + PRODUCT_COPY_FILES += system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32 -# Ensure that this property is always defined so that bionic_systrace.cpp -# can rely on it being initially set by init. PRODUCT_SYSTEM_DEFAULT_PROPERTIES += debug.atrace.tags.enableflags=0 # Packages included only for eng or userdebug builds, previously debug tagged diff --git a/target/product/base_vendor.mk b/target/product/base_vendor.mk index 4926a3f18b..8aa5b8b5d1 100644 --- a/target/product/base_vendor.mk +++ b/target/product/base_vendor.mk @@ -26,7 +26,7 @@ PRODUCT_PACKAGES += \ # Base modules and settings for the vendor partition. PRODUCT_PACKAGES += \ android.hardware.cas@1.0-service \ - android.hardware.configstore@1.0-service \ + android.hardware.configstore@1.1-service \ android.hardware.media.omx@1.0-service \ fs_config_files_nonsystem \ fs_config_dirs_nonsystem \ @@ -36,6 +36,7 @@ PRODUCT_PACKAGES += \ libclearkeycasplugin \ libdownmix \ libdrmclearkeyplugin \ + libdynproc \ libeffectproxy \ libeffects \ libldnhncr \ diff --git a/target/product/empty-preloaded-classes b/target/product/empty-preloaded-classes new file mode 100644 index 0000000000..c2ff1e9665 --- /dev/null +++ b/target/product/empty-preloaded-classes @@ -0,0 +1 @@ +# Empty preloaded-classes file for automated testing. diff --git a/target/product/empty-profile b/target/product/empty-profile new file mode 100644 index 0000000000..c2ff1e9665 --- /dev/null +++ b/target/product/empty-profile @@ -0,0 +1 @@ +# Empty preloaded-classes file for automated testing. diff --git a/target/product/emulator.mk b/target/product/emulator.mk index 3f7aa067c5..78d8e921ab 100644 --- a/target/product/emulator.mk +++ b/target/product/emulator.mk @@ -44,8 +44,6 @@ PRODUCT_PACKAGES += \ camera.goldfish.jpeg \ camera.ranchu \ camera.ranchu.jpeg \ - keystore.goldfish \ - keystore.ranchu \ gatekeeper.ranchu \ lights.goldfish \ gps.goldfish \ @@ -55,6 +53,7 @@ PRODUCT_PACKAGES += \ audio.primary.goldfish \ audio.primary.goldfish_legacy \ android.hardware.audio@2.0-service \ + android.hardware.wifi@1.0-service \ vibrator.goldfish \ power.goldfish \ power.ranchu \ @@ -71,11 +70,16 @@ PRODUCT_PACKAGES += \ sh_vendor \ vintf \ toybox_vendor \ - CarrierConfig + CarrierConfig \ + audio.primary.goldfish \ + audio.r_submix.default \ + local_time.default \ + SdkSetup PRODUCT_PACKAGES += \ android.hardware.audio@2.0-impl \ android.hardware.audio.effect@2.0-impl \ + android.hardware.broadcastradio@1.1-service \ android.hardware.broadcastradio@1.0-impl \ android.hardware.soundtrigger@2.0-impl @@ -83,6 +87,9 @@ PRODUCT_PACKAGES += \ android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-service +PRODUCT_PACKAGES += \ + android.hardware.keymaster@4.0-strongbox-service + PRODUCT_PACKAGES += \ android.hardware.gnss@1.0-service \ android.hardware.gnss@1.0-impl @@ -113,9 +120,24 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ vndk-sp +# WiFi +PRODUCT_PACKAGES += \ + createns \ + dhcpclient \ + dhcpserver \ + execns \ + hostapd \ + ip \ + ipv6proxy \ + iw \ + wificond \ + wpa_supplicant \ + PRODUCT_COPY_FILES += \ + device/generic/goldfish/data/etc/apns-conf.xml:data/misc/apns/apns-conf.xml \ device/generic/goldfish/init.ranchu-core.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-core.sh \ device/generic/goldfish/init.ranchu-net.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-net.sh \ + device/generic/goldfish/wifi/init.wifi.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.wifi.sh \ device/generic/goldfish/init.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.ranchu.rc \ device/generic/goldfish/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \ device/generic/goldfish/ueventd.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ @@ -123,7 +145,25 @@ PRODUCT_COPY_FILES += \ device/generic/goldfish/manifest.xml:$(TARGET_COPY_OUT_VENDOR)/manifest.xml \ device/generic/goldfish/data/etc/permissions/privapp-permissions-goldfish.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-goldfish.xml \ device/generic/goldfish/data/etc/config.ini:config.ini \ - frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml + device/generic/goldfish/wifi/simulated_hostapd.conf:$(TARGET_COPY_OUT_VENDOR)/etc/simulated_hostapd.conf \ + device/generic/goldfish/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ + device/generic/goldfish/wifi/WifiConfigStore.xml:data/misc/wifi/WifiConfigStore.xml \ + frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ + device/generic/goldfish/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ + device/generic/goldfish/camera/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ + frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ + device/generic/goldfish/camera/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ + device/generic/goldfish/camera/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ + device/generic/goldfish/camera/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ + frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ + frameworks/native/data/etc/android.hardware.camera.autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.autofocus.xml \ + frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \ + frameworks/native/data/etc/android.software.autofill.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.autofill.xml \ + frameworks/av/media/libeffects/data/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \ + device/generic/goldfish/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf + PRODUCT_PACKAGE_OVERLAYS := device/generic/goldfish/overlay @@ -131,8 +171,22 @@ PRODUCT_CHARACTERISTICS := emulator PRODUCT_FULL_TREBLE_OVERRIDE := true - #watchdog tiggers reboot because location service is not -#responding, disble it for now -PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ -config.disable_location=true +#responding, disble it for now. +#still keep it on internal master as it is still working +#once it is fixed in aosp, remove this block of comment. +#PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ +#config.disable_location=true + +# Enable Perfetto traced +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + persist.traced.enable=1 + +# enable Google-specific location features, +# like NetworkLocationProvider and LocationCollector +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + ro.com.google.locationfeatures=1 + +# disable setupwizard +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + ro.setupwizard.mode=DISABLED diff --git a/target/product/full.mk b/target/product/full.mk index b66ae92a53..7c0578c584 100644 --- a/target/product/full.mk +++ b/target/product/full.mk @@ -19,11 +19,10 @@ # build quite specifically for the emulator, and might not be # entirely appropriate to inherit from for on-device configurations. +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk) -include $(SRC_TARGET_DIR)/product/emulator.mk - # Overrides PRODUCT_NAME := full PRODUCT_DEVICE := generic diff --git a/target/product/full_base.mk b/target/product/full_base.mk index 777d6c7b9e..c390ffd8f8 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -21,10 +21,6 @@ PRODUCT_PACKAGES := \ libfwdlockengine \ - OpenWnn \ - libWnnEngDic \ - libWnnJpnDic \ - libwnndict \ WAPPushManager PRODUCT_PACKAGES += \ @@ -63,7 +59,7 @@ PRODUCT_LOCALES := en_US $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk) # Get a list of languages. -$(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) # Get everything else from the parent package $(call inherit-product, $(SRC_TARGET_DIR)/product/generic_no_telephony.mk) diff --git a/target/product/full_x86.mk b/target/product/full_x86.mk index 4dff713424..6ea2d05dd6 100644 --- a/target/product/full_x86.mk +++ b/target/product/full_x86.mk @@ -23,11 +23,10 @@ # that isn't a wifi connection. This will instruct init.rc to enable the # network connection so that you can use it with ADB +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/board/generic_x86/device.mk) -include $(SRC_TARGET_DIR)/product/emulator.mk - ifdef NET_ETH0_STARTONBOOT PRODUCT_PROPERTY_OVERRIDES += net.eth0.startonboot=1 endif diff --git a/target/product/go_defaults.mk b/target/product/go_defaults.mk index 7bb6d91e0d..faa1852b41 100644 --- a/target/product/go_defaults.mk +++ b/target/product/go_defaults.mk @@ -17,6 +17,3 @@ # Inherit common Android Go defaults. $(call inherit-product, build/target/product/go_defaults_common.mk) -# Add the system properties. -TARGET_SYSTEM_PROP += \ - build/make/target/board/go_defaults.prop diff --git a/target/product/go_defaults_512.mk b/target/product/go_defaults_512.mk index 5542818a06..56ab29b4b2 100644 --- a/target/product/go_defaults_512.mk +++ b/target/product/go_defaults_512.mk @@ -17,6 +17,12 @@ # Inherit common Android Go defaults. $(call inherit-product, build/target/product/go_defaults_common.mk) -# Add the system properties. -TARGET_SYSTEM_PROP += \ - build/make/target/board/go_defaults_512.prop +# 512MB specific properties. + +# lmkd can kill more now. +PRODUCT_PROPERTY_OVERRIDES += \ + ro.lmk.medium=700 \ + +# madvise random in ART to reduce page cache thrashing. +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.madvise-random=true diff --git a/target/product/go_defaults_common.mk b/target/product/go_defaults_common.mk index 9cff21b809..18907c1421 100644 --- a/target/product/go_defaults_common.mk +++ b/target/product/go_defaults_common.mk @@ -14,12 +14,21 @@ # limitations under the License. # -# Sets Android Go recommended default product options. - +# Sets Android Go recommended default values for propreties. # Set lowram options PRODUCT_PROPERTY_OVERRIDES += \ ro.config.low_ram=true \ + ro.lmk.critical_upgrade=true \ + ro.lmk.upgrade_pressure=40 \ + ro.lmk.downgrade_pressure=60 \ + ro.lmk.kill_heaviest_task=false \ + ro.statsd.enable=false + +# set threshold to filter unused apps +PRODUCT_PROPERTY_OVERRIDES += \ + pm.dexopt.downgrade_after_inactive_days=10 + # Speed profile services and wifi-service to reduce RAM and storage. PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile @@ -33,6 +42,22 @@ PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK := true PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE := true PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION := frameworks/base/config/boot-image-profile.txt +# set the compiler filter for shared apks to quicken. +# Rationale: speed has a lot of dex code expansion, it uses more ram and space +# compared to quicken. Using quicken for shared APKs on Go devices may save RAM. +# Note that this is a trade-off: here we trade clean pages for dirty pages, +# extra cpu and battery. That's because the quicken files will be jit-ed in all +# the processes that load of shared apk and the code cache is not shared. +# Some notable apps that will be affected by this are gms and chrome. +# b/65591595. +PRODUCT_PROPERTY_OVERRIDES += \ + pm.dexopt.shared=quicken + +# Default heap sizes. Allow up to 256m for large heaps to make sure a single app +# doesn't take all of the RAM. +PRODUCT_PROPERTY_OVERRIDES += dalvik.vm.heapgrowthlimit=128m +PRODUCT_PROPERTY_OVERRIDES += dalvik.vm.heapsize=256m + # Do not generate libartd. PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false @@ -40,7 +65,3 @@ PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false # the size of the system image. This has no bearing on stack traces, but will # leave less information available via JDWP. PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true - -# Add the system properties. -TARGET_SYSTEM_PROP += \ - build/make/target/board/go_defaults_common.prop diff --git a/target/product/handheld_system.mk b/target/product/handheld_system.mk index b4dea35115..a961d1e8b2 100644 --- a/target/product/handheld_system.mk +++ b/target/product/handheld_system.mk @@ -59,6 +59,7 @@ PRODUCT_PACKAGES += \ InputDevices \ KeyChain \ LatinIME \ + Launcher3QuickStep \ librs_jni \ ManagedProvisioning \ MmsService \ @@ -76,7 +77,9 @@ PRODUCT_PACKAGES += \ screenrecord \ SecureElement \ Settings \ + SettingsIntelligence \ SharedStorageBackup \ + SimAppDialog \ StorageManager \ SystemUI \ Telecom \ @@ -102,3 +105,4 @@ PRODUCT_PROPERTY_OVERRIDES += \ ro.carrier=unknown \ ro.config.notification_sound=OnTheHunt.ogg \ ro.config.alarm_alert=Alarm_Classic.ogg + diff --git a/target/product/handheld_vendor.mk b/target/product/handheld_vendor.mk index ab4c76ca3d..0f73875598 100644 --- a/target/product/handheld_vendor.mk +++ b/target/product/handheld_vendor.mk @@ -21,6 +21,9 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/media_vendor.mk) PRODUCT_PACKAGES += \ audio.primary.default \ + DisplayCutoutEmulationCornerOverlay \ + DisplayCutoutEmulationDoubleOverlay \ + DisplayCutoutEmulationTallOverlay \ local_time.default \ power.default \ SysuiDarkThemeOverlay \ diff --git a/target/product/languages_full.mk b/target/product/languages_full.mk index 846cd70fc5..5f3795f210 100644 --- a/target/product/languages_full.mk +++ b/target/product/languages_full.mk @@ -23,6 +23,7 @@ PRODUCT_LOCALES := \ am_ET \ ar_EG \ ar_XB \ + as_IN \ az_AZ \ be_BY \ bg_BG \ @@ -76,6 +77,7 @@ PRODUCT_LOCALES := \ nb_NO \ ne_NP \ nl_NL \ + or_IN \ pa_IN \ pl_PL \ pt_BR \ diff --git a/target/product/locales_full.mk b/target/product/locales_full.mk deleted file mode 100644 index 3a90d2b885..0000000000 --- a/target/product/locales_full.mk +++ /dev/null @@ -1,3 +0,0 @@ -PRODUCT_LOCALES := en_US cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG eo_EU es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW am_ET hi_IN - -$(call inherit-product, build/target/product/languages_full.mk) diff --git a/target/product/mainline_arm64.mk b/target/product/mainline_arm64.mk index 4c18dd3376..92954db710 100644 --- a/target/product/mainline_arm64.mk +++ b/target/product/mainline_arm64.mk @@ -25,5 +25,6 @@ PRODUCT_SHIPPING_API_LEVEL := 28 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := true PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \ - root/init.zygote64_32.rc \ - system/etc/seccomp_policy/mediacodec.policy \ + root/init.zygote64_32.rc \ + system/etc/seccomp_policy/crash_dump.arm.policy \ + system/etc/seccomp_policy/mediacodec.policy \ diff --git a/target/product/mainline_system.mk b/target/product/mainline_system.mk index 9c904fb35c..da6a742a89 100644 --- a/target/product/mainline_system.mk +++ b/target/product/mainline_system.mk @@ -14,7 +14,8 @@ # limitations under the License. # -# TODO(hansson): change inheritance to generic_no_telephony +# This makefile is the basis of a generic system image for a handheld +# device with no telephony. $(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system.mk) PRODUCT_NAME := mainline_system diff --git a/target/product/media_system.mk b/target/product/media_system.mk index f858aaf645..992e2ed207 100644 --- a/target/product/media_system.mk +++ b/target/product/media_system.mk @@ -70,7 +70,7 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.preview_sdk.xml:system/etc/permissions/android.software.preview_sdk.xml endif -# The order of PRODUCT_SYSTEM_SERVER_JARS matters. +# The order here is the same order they end up on the classpath, so it matters. PRODUCT_SYSTEM_SERVER_JARS := \ services \ ethernet-service \ @@ -97,3 +97,7 @@ endif PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.logd.size.stats=64K \ log.tag.stats_log=I + +# Enable CFI for security-sensitive components +$(call inherit-product, $(SRC_TARGET_DIR)/product/cfi-common.mk) +$(call inherit-product-if-exists, vendor/google/products/cfi-vendor.mk) diff --git a/target/product/product_launched_with_l.mk b/target/product/product_launched_with_l.mk index 8127bc31c7..6e782f7986 100644 --- a/target/product/product_launched_with_l.mk +++ b/target/product/product_launched_with_l.mk @@ -1,3 +1,3 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 21 diff --git a/target/product/product_launched_with_l_mr1.mk b/target/product/product_launched_with_l_mr1.mk index 7a5bd0f2da..20868328b3 100644 --- a/target/product/product_launched_with_l_mr1.mk +++ b/target/product/product_launched_with_l_mr1.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 22 diff --git a/target/product/product_launched_with_m.mk b/target/product/product_launched_with_m.mk index afd8647dd8..1ba1014898 100644 --- a/target/product/product_launched_with_m.mk +++ b/target/product/product_launched_with_m.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 23 diff --git a/target/product/product_launched_with_n.mk b/target/product/product_launched_with_n.mk index f7c5d794dc..cac29eb544 100644 --- a/target/product/product_launched_with_n.mk +++ b/target/product/product_launched_with_n.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 24 diff --git a/target/product/product_launched_with_n_mr1.mk b/target/product/product_launched_with_n_mr1.mk index 65d4d3f99b..194a1aa451 100644 --- a/target/product/product_launched_with_n_mr1.mk +++ b/target/product/product_launched_with_n_mr1.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 25 diff --git a/target/product/product_launched_with_o.mk b/target/product/product_launched_with_o.mk index 94d30c65a7..8e25a2b6b4 100644 --- a/target/product/product_launched_with_o.mk +++ b/target/product/product_launched_with_o.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 26 diff --git a/target/product/product_launched_with_o_mr1.mk b/target/product/product_launched_with_o_mr1.mk index 25620aa14c..2f3d7e6f9d 100644 --- a/target/product/product_launched_with_o_mr1.mk +++ b/target/product/product_launched_with_o_mr1.mk @@ -1,2 +1,2 @@ -#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launced on. +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. PRODUCT_SHIPPING_API_LEVEL := 27 diff --git a/target/product/product_launched_with_p.mk b/target/product/product_launched_with_p.mk new file mode 100644 index 0000000000..fe7591fc79 --- /dev/null +++ b/target/product/product_launched_with_p.mk @@ -0,0 +1,2 @@ +#PRODUCT_SHIPPING_API_LEVEL indicates the first api level, device has been commercially launched on. +PRODUCT_SHIPPING_API_LEVEL := 28 \ No newline at end of file diff --git a/target/product/profile_boot_common.mk b/target/product/profile_boot_common.mk new file mode 100644 index 0000000000..f243902605 --- /dev/null +++ b/target/product/profile_boot_common.mk @@ -0,0 +1,45 @@ +# +# Copyright 2018 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Use an empty profile to make non of the boot image be AOT compiled (for now). +# Note that we could use a previous profile but we will miss the opportunity to +# remove classes that are no longer in use. +# Ideally we would just generate an empty boot.art but we don't have the build +# support to separate the image from the compile code. +PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION := build/target/product/empty-profile +PRODUCT_DEX_PREOPT_BOOT_FLAGS := --count-hotness-in-compiled-code +DEX_PREOPT_DEFAULT := nostripping + +# Disable uncompressing priv apps so that there is enough space to build the system partition. +DONT_UNCOMPRESS_PRIV_APPS_DEXS := true + +# Use an empty preloaded-classes list. +PRODUCT_COPY_FILES += \ + build/target/product/empty-preloaded-classes:system/etc/preloaded-classes + +# Boot image property overrides. +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.jitinitialsize=32m \ + dalvik.vm.jitmaxsize=32m \ + dalvik.vm.usejitprofiles=true \ + dalvik.vm.hot-startup-method-samples=256 \ + dalvik.vm.profilesystemserver=true \ + dalvik.vm.profilebootimage=true + +# Use speed compiler filter since system server doesn't have JIT. +PRODUCT_DEX_PREOPT_BOOT_FLAGS += --compiler-filter=speed + +PRODUCT_DIST_BOOT_AND_SYSTEM_JARS := true diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk index 1c103ecbc3..bda45244d0 100644 --- a/target/product/runtime_libart.mk +++ b/target/product/runtime_libart.mk @@ -27,7 +27,7 @@ PRODUCT_PACKAGES += \ # Additional mixins to the boot classpath. PRODUCT_PACKAGES += \ - legacy-test \ + android.test.base \ # Why are we pulling in ext, which is frameworks/base, depending on tagsoup and nist-sip? PRODUCT_PACKAGES += \ diff --git a/target/product/sdk_phone_x86.mk b/target/product/sdk_phone_x86.mk index abb46ac385..b34e5b6dc2 100644 --- a/target/product/sdk_phone_x86.mk +++ b/target/product/sdk_phone_x86.mk @@ -20,10 +20,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_x86.mk) -include sdk/build/product_sdk.mk -include development/build/product_sdk.mk -# keep this apk for sdk targets for now -PRODUCT_PACKAGES += \ - EmulatorSmokeTests - # Overrides PRODUCT_BRAND := Android PRODUCT_NAME := sdk_phone_x86 diff --git a/target/product/sdk_phone_x86_64.mk b/target/product/sdk_phone_x86_64.mk index 828b744fb3..37c078e7cc 100644 --- a/target/product/sdk_phone_x86_64.mk +++ b/target/product/sdk_phone_x86_64.mk @@ -20,10 +20,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_x86_64.mk) -include sdk/build/product_sdk.mk -include development/build/product_sdk.mk -# keep this apk for sdk targets for now -PRODUCT_PACKAGES += \ - EmulatorSmokeTests - # Overrides PRODUCT_BRAND := Android PRODUCT_NAME := sdk_phone_x86_64 diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk index b60849f532..a2173906e8 100644 --- a/target/product/treble_common.mk +++ b/target/product/treble_common.mk @@ -29,22 +29,11 @@ PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true # Split selinux policy PRODUCT_FULL_TREBLE_OVERRIDE := true -# vintf utility: -PRODUCT_PACKAGES += \ - vintf - # The Messaging app: # Needed for android.telecom.cts.ExtendedInCallServiceTest#testOnCannedTextResponsesLoaded PRODUCT_PACKAGES += \ messaging -# All VNDK libraries (HAL interfaces, VNDK, VNDK-SP, LL-NDK) -PRODUCT_PACKAGES += vndk_package - -# SP-NDK: -PRODUCT_PACKAGES += \ - libvulkan \ - # The following policy XML files are used as fallback for # vendors/devices not using XML to configure audio policy. PRODUCT_COPY_FILES += \ @@ -54,20 +43,6 @@ PRODUCT_COPY_FILES += \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:system/etc/audio_policy_volumes.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:system/etc/default_volume_tables.xml \ -# Bluetooth: -# audio.a2dp.default is a system module. Generic system image includes -# audio.a2dp.default to support A2DP if board has the capability. -PRODUCT_PACKAGES += \ - audio.a2dp.default - -# Net: -# Vendors can use the platform-provided network configuration utilities (ip, -# iptable, etc.) to configure the Linux networking stack, but these utilities -# do not yet include a HIDL interface wrapper. This is a solution on -# Android O. -PRODUCT_PACKAGES += \ - netutils-wrapper-1.0 - # Telephony: # Provide a default APN configuration PRODUCT_COPY_FILES += \ @@ -87,3 +62,6 @@ PRODUCT_COPY_FILES += \ # Name space configuration file for non-enforcing VNDK PRODUCT_PACKAGES += \ ld.config.vndk_lite.txt + +# Support addtional O-MR1 vendor interface +PRODUCT_EXTRA_VNDK_VERSIONS := 27 diff --git a/target/product/vndk/28.txt b/target/product/vndk/28.txt new file mode 100644 index 0000000000..712e91c587 --- /dev/null +++ b/target/product/vndk/28.txt @@ -0,0 +1,252 @@ +LLNDK: libEGL.so +LLNDK: libGLESv1_CM.so +LLNDK: libGLESv2.so +LLNDK: libGLESv3.so +LLNDK: libRS.so +LLNDK: libandroid_net.so +LLNDK: libc.so +LLNDK: libdl.so +LLNDK: libft2.so +LLNDK: liblog.so +LLNDK: libm.so +LLNDK: libmediandk.so +LLNDK: libnativewindow.so +LLNDK: libneuralnetworks.so +LLNDK: libsync.so +LLNDK: libvndksupport.so +LLNDK: libvulkan.so +VNDK-SP: android.hardware.graphics.common@1.0.so +VNDK-SP: android.hardware.graphics.common@1.1.so +VNDK-SP: android.hardware.graphics.mapper@2.0.so +VNDK-SP: android.hardware.graphics.mapper@2.1.so +VNDK-SP: android.hardware.renderscript@1.0.so +VNDK-SP: android.hidl.memory.token@1.0.so +VNDK-SP: android.hidl.memory@1.0.so +VNDK-SP: android.hidl.memory@1.0-impl.so +VNDK-SP: libRSCpuRef.so +VNDK-SP: libRSDriver.so +VNDK-SP: libRS_internal.so +VNDK-SP: libbacktrace.so +VNDK-SP: libbase.so +VNDK-SP: libbcinfo.so +VNDK-SP: libblas.so +VNDK-SP: libc++.so +VNDK-SP: libcompiler_rt.so +VNDK-SP: libcutils.so +VNDK-SP: libhardware.so +VNDK-SP: libhidlbase.so +VNDK-SP: libhidlmemory.so +VNDK-SP: libhidltransport.so +VNDK-SP: libhwbinder.so +VNDK-SP: libhwbinder_noltopgo.so +VNDK-SP: libion.so +VNDK-SP: liblzma.so +VNDK-SP: libunwind.so +VNDK-SP: libunwindstack.so +VNDK-SP: libutils.so +VNDK-SP: libutilscallstack.so +VNDK-SP: libz.so +VNDK-core: android.frameworks.displayservice@1.0.so +VNDK-core: android.frameworks.schedulerservice@1.0.so +VNDK-core: android.frameworks.sensorservice@1.0.so +VNDK-core: android.frameworks.vr.composer@1.0.so +VNDK-core: android.hardware.audio.common-util.so +VNDK-core: android.hardware.audio.common@2.0.so +VNDK-core: android.hardware.audio.common@2.0-util.so +VNDK-core: android.hardware.audio.common@4.0.so +VNDK-core: android.hardware.audio.common@4.0-util.so +VNDK-core: android.hardware.audio.effect@2.0.so +VNDK-core: android.hardware.audio.effect@4.0.so +VNDK-core: android.hardware.audio@2.0.so +VNDK-core: android.hardware.audio@4.0.so +VNDK-core: android.hardware.authsecret@1.0.so +VNDK-core: android.hardware.automotive.audiocontrol@1.0.so +VNDK-core: android.hardware.automotive.evs@1.0.so +VNDK-core: android.hardware.automotive.vehicle@2.0.so +VNDK-core: android.hardware.biometrics.fingerprint@2.1.so +VNDK-core: android.hardware.bluetooth.a2dp@1.0.so +VNDK-core: android.hardware.bluetooth@1.0.so +VNDK-core: android.hardware.boot@1.0.so +VNDK-core: android.hardware.broadcastradio@1.0.so +VNDK-core: android.hardware.broadcastradio@1.1.so +VNDK-core: android.hardware.broadcastradio@2.0.so +VNDK-core: android.hardware.camera.common@1.0.so +VNDK-core: android.hardware.camera.device@1.0.so +VNDK-core: android.hardware.camera.device@3.2.so +VNDK-core: android.hardware.camera.device@3.3.so +VNDK-core: android.hardware.camera.device@3.4.so +VNDK-core: android.hardware.camera.metadata@3.2.so +VNDK-core: android.hardware.camera.metadata@3.3.so +VNDK-core: android.hardware.camera.provider@2.4.so +VNDK-core: android.hardware.cas.native@1.0.so +VNDK-core: android.hardware.cas@1.0.so +VNDK-core: android.hardware.configstore-utils.so +VNDK-core: android.hardware.configstore@1.0.so +VNDK-core: android.hardware.configstore@1.1.so +VNDK-core: android.hardware.confirmationui-support-lib.so +VNDK-core: android.hardware.confirmationui@1.0.so +VNDK-core: android.hardware.contexthub@1.0.so +VNDK-core: android.hardware.drm@1.0.so +VNDK-core: android.hardware.drm@1.1.so +VNDK-core: android.hardware.dumpstate@1.0.so +VNDK-core: android.hardware.gatekeeper@1.0.so +VNDK-core: android.hardware.gnss@1.0.so +VNDK-core: android.hardware.gnss@1.1.so +VNDK-core: android.hardware.graphics.allocator@2.0.so +VNDK-core: android.hardware.graphics.bufferqueue@1.0.so +VNDK-core: android.hardware.graphics.composer@2.1.so +VNDK-core: android.hardware.graphics.composer@2.2.so +VNDK-core: android.hardware.health@1.0.so +VNDK-core: android.hardware.health@2.0.so +VNDK-core: android.hardware.ir@1.0.so +VNDK-core: android.hardware.keymaster@3.0.so +VNDK-core: android.hardware.keymaster@4.0.so +VNDK-core: android.hardware.light@2.0.so +VNDK-core: android.hardware.media.bufferpool@1.0.so +VNDK-core: android.hardware.media.omx@1.0.so +VNDK-core: android.hardware.media@1.0.so +VNDK-core: android.hardware.memtrack@1.0.so +VNDK-core: android.hardware.neuralnetworks@1.0.so +VNDK-core: android.hardware.neuralnetworks@1.1.so +VNDK-core: android.hardware.nfc@1.0.so +VNDK-core: android.hardware.nfc@1.1.so +VNDK-core: android.hardware.oemlock@1.0.so +VNDK-core: android.hardware.power@1.0.so +VNDK-core: android.hardware.power@1.1.so +VNDK-core: android.hardware.power@1.2.so +VNDK-core: android.hardware.radio.config@1.0.so +VNDK-core: android.hardware.radio.deprecated@1.0.so +VNDK-core: android.hardware.radio@1.0.so +VNDK-core: android.hardware.radio@1.1.so +VNDK-core: android.hardware.radio@1.2.so +VNDK-core: android.hardware.secure_element@1.0.so +VNDK-core: android.hardware.sensors@1.0.so +VNDK-core: android.hardware.soundtrigger@2.0.so +VNDK-core: android.hardware.soundtrigger@2.0-core.so +VNDK-core: android.hardware.soundtrigger@2.1.so +VNDK-core: android.hardware.tetheroffload.config@1.0.so +VNDK-core: android.hardware.tetheroffload.control@1.0.so +VNDK-core: android.hardware.thermal@1.0.so +VNDK-core: android.hardware.thermal@1.1.so +VNDK-core: android.hardware.tv.cec@1.0.so +VNDK-core: android.hardware.tv.input@1.0.so +VNDK-core: android.hardware.usb.gadget@1.0.so +VNDK-core: android.hardware.usb@1.0.so +VNDK-core: android.hardware.usb@1.1.so +VNDK-core: android.hardware.vibrator@1.0.so +VNDK-core: android.hardware.vibrator@1.1.so +VNDK-core: android.hardware.vibrator@1.2.so +VNDK-core: android.hardware.vr@1.0.so +VNDK-core: android.hardware.weaver@1.0.so +VNDK-core: android.hardware.wifi.hostapd@1.0.so +VNDK-core: android.hardware.wifi.offload@1.0.so +VNDK-core: android.hardware.wifi.supplicant@1.0.so +VNDK-core: android.hardware.wifi.supplicant@1.1.so +VNDK-core: android.hardware.wifi@1.0.so +VNDK-core: android.hardware.wifi@1.1.so +VNDK-core: android.hardware.wifi@1.2.so +VNDK-core: android.hidl.allocator@1.0.so +VNDK-core: android.hidl.memory.block@1.0.so +VNDK-core: android.hidl.token@1.0.so +VNDK-core: android.hidl.token@1.0-utils.so +VNDK-core: android.system.net.netd@1.0.so +VNDK-core: android.system.net.netd@1.1.so +VNDK-core: android.system.wifi.keystore@1.0.so +VNDK-core: libadf.so +VNDK-core: libaudioroute.so +VNDK-core: libaudioutils.so +VNDK-core: libbinder.so +VNDK-core: libcamera_metadata.so +VNDK-core: libcap.so +VNDK-core: libcn-cbor.so +VNDK-core: libcrypto.so +VNDK-core: libcrypto_utils.so +VNDK-core: libcurl.so +VNDK-core: libdiskconfig.so +VNDK-core: libdumpstateutil.so +VNDK-core: libevent.so +VNDK-core: libexif.so +VNDK-core: libexpat.so +VNDK-core: libfmq.so +VNDK-core: libgatekeeper.so +VNDK-core: libgui.so +VNDK-core: libhardware_legacy.so +VNDK-core: libhidlallocatorutils.so +VNDK-core: libhidlcache.so +VNDK-core: libjpeg.so +VNDK-core: libkeymaster_messages.so +VNDK-core: libkeymaster_portable.so +VNDK-core: libldacBT_abr.so +VNDK-core: libldacBT_enc.so +VNDK-core: liblz4.so +VNDK-core: libmedia_helper.so +VNDK-core: libmedia_omx.so +VNDK-core: libmemtrack.so +VNDK-core: libminijail.so +VNDK-core: libmkbootimg_abi_check.so +VNDK-core: libnetutils.so +VNDK-core: libnl.so +VNDK-core: libopus.so +VNDK-core: libpagemap.so +VNDK-core: libpcre2.so +VNDK-core: libpiex.so +VNDK-core: libpng.so +VNDK-core: libpower.so +VNDK-core: libprocinfo.so +VNDK-core: libprotobuf-cpp-full.so +VNDK-core: libprotobuf-cpp-lite.so +VNDK-core: libpuresoftkeymasterdevice.so +VNDK-core: libradio_metadata.so +VNDK-core: libselinux.so +VNDK-core: libsoftkeymasterdevice.so +VNDK-core: libspeexresampler.so +VNDK-core: libsqlite.so +VNDK-core: libssl.so +VNDK-core: libstagefright_amrnb_common.so +VNDK-core: libstagefright_bufferqueue_helper.so +VNDK-core: libstagefright_enc_common.so +VNDK-core: libstagefright_flacdec.so +VNDK-core: libstagefright_foundation.so +VNDK-core: libstagefright_omx.so +VNDK-core: libstagefright_omx_utils.so +VNDK-core: libstagefright_soft_aacdec.so +VNDK-core: libstagefright_soft_aacenc.so +VNDK-core: libstagefright_soft_amrdec.so +VNDK-core: libstagefright_soft_amrnbenc.so +VNDK-core: libstagefright_soft_amrwbenc.so +VNDK-core: libstagefright_soft_avcdec.so +VNDK-core: libstagefright_soft_avcenc.so +VNDK-core: libstagefright_soft_flacdec.so +VNDK-core: libstagefright_soft_flacenc.so +VNDK-core: libstagefright_soft_g711dec.so +VNDK-core: libstagefright_soft_gsmdec.so +VNDK-core: libstagefright_soft_hevcdec.so +VNDK-core: libstagefright_soft_mp3dec.so +VNDK-core: libstagefright_soft_mpeg2dec.so +VNDK-core: libstagefright_soft_mpeg4dec.so +VNDK-core: libstagefright_soft_mpeg4enc.so +VNDK-core: libstagefright_soft_opusdec.so +VNDK-core: libstagefright_soft_rawdec.so +VNDK-core: libstagefright_soft_vorbisdec.so +VNDK-core: libstagefright_soft_vpxdec.so +VNDK-core: libstagefright_soft_vpxenc.so +VNDK-core: libstagefright_xmlparser.so +VNDK-core: libsuspend.so +VNDK-core: libsysutils.so +VNDK-core: libtinyalsa.so +VNDK-core: libtinyxml2.so +VNDK-core: libui.so +VNDK-core: libusbhost.so +VNDK-core: libvixl-arm.so +VNDK-core: libvixl-arm64.so +VNDK-core: libvorbisidec.so +VNDK-core: libwifi-system-iface.so +VNDK-core: libxml2.so +VNDK-core: libyuv.so +VNDK-core: libziparchive.so +VNDK-private: libbacktrace.so +VNDK-private: libblas.so +VNDK-private: libcompiler_rt.so +VNDK-private: libft2.so +VNDK-private: libgui.so +VNDK-private: libunwind.so diff --git a/target/product/vndk/current.txt b/target/product/vndk/current.txt index 8ceb945227..712e91c587 100644 --- a/target/product/vndk/current.txt +++ b/target/product/vndk/current.txt @@ -16,7 +16,9 @@ LLNDK: libsync.so LLNDK: libvndksupport.so LLNDK: libvulkan.so VNDK-SP: android.hardware.graphics.common@1.0.so +VNDK-SP: android.hardware.graphics.common@1.1.so VNDK-SP: android.hardware.graphics.mapper@2.0.so +VNDK-SP: android.hardware.graphics.mapper@2.1.so VNDK-SP: android.hardware.renderscript@1.0.so VNDK-SP: android.hidl.memory.token@1.0.so VNDK-SP: android.hidl.memory@1.0.so @@ -36,6 +38,7 @@ VNDK-SP: libhidlbase.so VNDK-SP: libhidlmemory.so VNDK-SP: libhidltransport.so VNDK-SP: libhwbinder.so +VNDK-SP: libhwbinder_noltopgo.so VNDK-SP: libion.so VNDK-SP: liblzma.so VNDK-SP: libunwind.so @@ -47,10 +50,17 @@ VNDK-core: android.frameworks.displayservice@1.0.so VNDK-core: android.frameworks.schedulerservice@1.0.so VNDK-core: android.frameworks.sensorservice@1.0.so VNDK-core: android.frameworks.vr.composer@1.0.so +VNDK-core: android.hardware.audio.common-util.so VNDK-core: android.hardware.audio.common@2.0.so VNDK-core: android.hardware.audio.common@2.0-util.so +VNDK-core: android.hardware.audio.common@4.0.so +VNDK-core: android.hardware.audio.common@4.0-util.so VNDK-core: android.hardware.audio.effect@2.0.so +VNDK-core: android.hardware.audio.effect@4.0.so VNDK-core: android.hardware.audio@2.0.so +VNDK-core: android.hardware.audio@4.0.so +VNDK-core: android.hardware.authsecret@1.0.so +VNDK-core: android.hardware.automotive.audiocontrol@1.0.so VNDK-core: android.hardware.automotive.evs@1.0.so VNDK-core: android.hardware.automotive.vehicle@2.0.so VNDK-core: android.hardware.biometrics.fingerprint@2.1.so @@ -59,29 +69,40 @@ VNDK-core: android.hardware.bluetooth@1.0.so VNDK-core: android.hardware.boot@1.0.so VNDK-core: android.hardware.broadcastradio@1.0.so VNDK-core: android.hardware.broadcastradio@1.1.so +VNDK-core: android.hardware.broadcastradio@2.0.so VNDK-core: android.hardware.camera.common@1.0.so VNDK-core: android.hardware.camera.device@1.0.so VNDK-core: android.hardware.camera.device@3.2.so VNDK-core: android.hardware.camera.device@3.3.so +VNDK-core: android.hardware.camera.device@3.4.so VNDK-core: android.hardware.camera.metadata@3.2.so +VNDK-core: android.hardware.camera.metadata@3.3.so VNDK-core: android.hardware.camera.provider@2.4.so VNDK-core: android.hardware.cas.native@1.0.so VNDK-core: android.hardware.cas@1.0.so VNDK-core: android.hardware.configstore-utils.so VNDK-core: android.hardware.configstore@1.0.so +VNDK-core: android.hardware.configstore@1.1.so +VNDK-core: android.hardware.confirmationui-support-lib.so +VNDK-core: android.hardware.confirmationui@1.0.so VNDK-core: android.hardware.contexthub@1.0.so VNDK-core: android.hardware.drm@1.0.so +VNDK-core: android.hardware.drm@1.1.so VNDK-core: android.hardware.dumpstate@1.0.so VNDK-core: android.hardware.gatekeeper@1.0.so VNDK-core: android.hardware.gnss@1.0.so +VNDK-core: android.hardware.gnss@1.1.so VNDK-core: android.hardware.graphics.allocator@2.0.so VNDK-core: android.hardware.graphics.bufferqueue@1.0.so VNDK-core: android.hardware.graphics.composer@2.1.so +VNDK-core: android.hardware.graphics.composer@2.2.so VNDK-core: android.hardware.health@1.0.so VNDK-core: android.hardware.health@2.0.so VNDK-core: android.hardware.ir@1.0.so VNDK-core: android.hardware.keymaster@3.0.so +VNDK-core: android.hardware.keymaster@4.0.so VNDK-core: android.hardware.light@2.0.so +VNDK-core: android.hardware.media.bufferpool@1.0.so VNDK-core: android.hardware.media.omx@1.0.so VNDK-core: android.hardware.media@1.0.so VNDK-core: android.hardware.memtrack@1.0.so @@ -92,6 +113,7 @@ VNDK-core: android.hardware.nfc@1.1.so VNDK-core: android.hardware.oemlock@1.0.so VNDK-core: android.hardware.power@1.0.so VNDK-core: android.hardware.power@1.1.so +VNDK-core: android.hardware.power@1.2.so VNDK-core: android.hardware.radio.config@1.0.so VNDK-core: android.hardware.radio.deprecated@1.0.so VNDK-core: android.hardware.radio@1.0.so @@ -100,6 +122,8 @@ VNDK-core: android.hardware.radio@1.2.so VNDK-core: android.hardware.secure_element@1.0.so VNDK-core: android.hardware.sensors@1.0.so VNDK-core: android.hardware.soundtrigger@2.0.so +VNDK-core: android.hardware.soundtrigger@2.0-core.so +VNDK-core: android.hardware.soundtrigger@2.1.so VNDK-core: android.hardware.tetheroffload.config@1.0.so VNDK-core: android.hardware.tetheroffload.control@1.0.so VNDK-core: android.hardware.thermal@1.0.so @@ -111,12 +135,16 @@ VNDK-core: android.hardware.usb@1.0.so VNDK-core: android.hardware.usb@1.1.so VNDK-core: android.hardware.vibrator@1.0.so VNDK-core: android.hardware.vibrator@1.1.so +VNDK-core: android.hardware.vibrator@1.2.so VNDK-core: android.hardware.vr@1.0.so VNDK-core: android.hardware.weaver@1.0.so +VNDK-core: android.hardware.wifi.hostapd@1.0.so VNDK-core: android.hardware.wifi.offload@1.0.so VNDK-core: android.hardware.wifi.supplicant@1.0.so +VNDK-core: android.hardware.wifi.supplicant@1.1.so VNDK-core: android.hardware.wifi@1.0.so VNDK-core: android.hardware.wifi@1.1.so +VNDK-core: android.hardware.wifi@1.2.so VNDK-core: android.hidl.allocator@1.0.so VNDK-core: android.hidl.memory.block@1.0.so VNDK-core: android.hidl.token@1.0.so @@ -148,7 +176,6 @@ VNDK-core: libhidlcache.so VNDK-core: libjpeg.so VNDK-core: libkeymaster_messages.so VNDK-core: libkeymaster_portable.so -VNDK-core: libkeymaster_staging.so VNDK-core: libldacBT_abr.so VNDK-core: libldacBT_enc.so VNDK-core: liblz4.so @@ -168,6 +195,7 @@ VNDK-core: libpower.so VNDK-core: libprocinfo.so VNDK-core: libprotobuf-cpp-full.so VNDK-core: libprotobuf-cpp-lite.so +VNDK-core: libpuresoftkeymasterdevice.so VNDK-core: libradio_metadata.so VNDK-core: libselinux.so VNDK-core: libsoftkeymasterdevice.so @@ -175,6 +203,7 @@ VNDK-core: libspeexresampler.so VNDK-core: libsqlite.so VNDK-core: libssl.so VNDK-core: libstagefright_amrnb_common.so +VNDK-core: libstagefright_bufferqueue_helper.so VNDK-core: libstagefright_enc_common.so VNDK-core: libstagefright_flacdec.so VNDK-core: libstagefright_foundation.so @@ -219,4 +248,5 @@ VNDK-private: libbacktrace.so VNDK-private: libblas.so VNDK-private: libcompiler_rt.so VNDK-private: libft2.so +VNDK-private: libgui.so VNDK-private: libunwind.so diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index d214aabbe4..5a5446293e 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -13,6 +13,7 @@ echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES" echo "ro.build.version.release=$PLATFORM_VERSION" echo "ro.build.version.security_patch=$PLATFORM_SECURITY_PATCH" echo "ro.build.version.base_os=$PLATFORM_BASE_OS" +echo "ro.build.version.min_supported_target_sdk=$PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION" echo "ro.build.date=`$DATE`" echo "ro.build.date.utc=`$DATE +%s`" echo "ro.build.type=$TARGET_BUILD_TYPE" diff --git a/tools/droiddoc/templates-sac/assets/GPL-LICENSE.txt b/tools/droiddoc/templates-sac/assets/GPL-LICENSE.txt deleted file mode 100644 index 66a0f18dbf..0000000000 --- a/tools/droiddoc/templates-sac/assets/GPL-LICENSE.txt +++ /dev/null @@ -1,278 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/tools/droiddoc/templates-sac/assets/LICENSE.txt b/tools/droiddoc/templates-sac/assets/LICENSE.txt deleted file mode 100644 index e84328beda..0000000000 --- a/tools/droiddoc/templates-sac/assets/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2011 John Resig, http://jquery.com/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/droiddoc/templates-sac/assets/android-developer-docs.css b/tools/droiddoc/templates-sac/assets/android-developer-docs.css deleted file mode 100644 index cd610f74e7..0000000000 --- a/tools/droiddoc/templates-sac/assets/android-developer-docs.css +++ /dev/null @@ -1,2768 +0,0 @@ -/* file: android-developer-core.css - author: smain - date: september 2008 - info: core developer styles (developer.android.com) - Required by jdiff -*/ - - -/* RESET STYLES */ - -html,body,div,h1,h2,h3,h4,h5,h6,p,img, -dl,dt,dd,ol,ul,li,table,caption,tbody, -tfoot,thead,tr,th,td,form,fieldset, -embed,object,applet { - margin: 0; - padding: 0; - border: 0; -} - -/* BASICS */ - -html, body { - overflow:hidden; /* keeps scrollbar off IE */ - background-color:#fff; -} - -body { - font-family:arial,sans-serif; - color:#000; - font-size:13px; - color:#333; - background-image:url(images/bg_fade.jpg); - background-repeat:repeat-x; -} - -a, a code { - color:#006699; -} - -a:active, -a:active code { - color:#f00; -} - -a:visited, -a:visited code { - color:#006699; -} - -input, select, -textarea, option, label { - font-family:inherit; - font-size:inherit; - padding:0; - margin:0; - vertical-align:middle; -} - -option { - padding:0 4px; -} - -p, form { - padding:0; - margin:0 0 1em; -} - -code, pre { - color:#007000; - font-family:monospace; - line-height:1em; -} - -var { - color:#007000; - font-style:italic; -} - -pre { - border:1px solid #ccc; - background-color:#fafafa; - padding:10px; - margin:0 0 1em 1em; - overflow:auto; - line-height:inherit; /* fixes vertical scrolling in webkit */ -} - -h1,h2,h3,h4,h5 { - margin:1em 0; - padding:0; -} - -p,ul,ol,dl,dd,dt,li { - line-height:1.3em; -} - -ul,ol { - margin:0 0 .8em; - padding:0 0 0 2em; -} - -li { - padding:0 0 .5em; -} - -dl { - margin:0 0 1em 0; - padding:0; -} - -dt { - margin:0; - padding:0; -} - -dd { - margin:0 0 1em; - padding:0 0 0 2em; -} - -li p { - margin:.5em 0 0; -} - -dd p { - margin:1em 0 0; -} - -li pre, li table, li img { - margin:.5em 0 0 1em; -} - -dd pre, -#jd-content dd table, -#jd-content dd img { - margin:1em 0 0 1em; -} - -li ul, -li ol, -dd ul, -dd ol { - margin:0; - padding: 0 0 0 2em; -} - -li li, -dd li { - margin:0; - padding:.5em 0 0; -} - -dl dl, -ol dl, -ul dl { - margin:0 0 1em; - padding:0; -} - -table { - font-size:1em; - margin:0 0 1em; - padding:0; - border-collapse:collapse; - border-width:0; - empty-cells:show; -} - -td,th { - border:1px solid #ccc; - padding:6px 12px; - text-align:left; - vertical-align:top; - background-color:inherit; -} - -th { - background-color:#dee8f1; -} - -td > p:last-child { - margin:0; -} - -hr.blue { - background-color:#DDF0F2; - border:none; - height:5px; - margin:20px 0 10px; -} - -blockquote { - margin: 0 0 1em 1em; - padding: 0 4em 0 1em; - border-left:2px solid #eee; -} -/* LAYOUT */ - -#body-content { - /* "Preliminary" watermark for preview releases and interim builds. - background:transparent url(images/preliminary.png) repeat scroll 0 0; */ - margin:0; - position:relative; - width:100%; -} - -#header { - height: 114px; - position:relative; - z-index:100; - min-width:675px; /* min width for the tabs, before they wrap */ - padding:0 10px; - border-bottom:3px solid #94b922; -} - -#headerLeft{ - padding: 25px 0 0; -} - -#headerLeft img{ - height:50px; - width:180px; -} - -#headerRight { - position:absolute; - right:0; - top:0; - text-align:right; -} - -/* Tabs in the header */ - -#header ul { - list-style: none; - margin: 7px 0 0; - padding: 0; - height: 29px; -} - -#header li { - float: left; - margin: 0px 2px 0px 0px; - padding:0; -} - -#header li a { - text-decoration: none; - display: block; - background-image: url(images/bg_images_sprite.png); - background-position: 0 -58px; - background-repeat: no-repeat; - color: #666; - font-size: 13px; - font-weight: bold; - width: 94px; - height: 29px; - text-align: center; - margin: 0px; -} - -#header li a:hover { - background-image: url(images/bg_images_sprite.png); - background-position: 0 -29px; - background-repeat: no-repeat; -} - -#header li a span { - position:relative; - top:7px; -} - -#header li a span+span { - display:none; -} - -/* tab highlighting */ - -.home #home-link a, -.guide #guide-link a, -.reference #reference-link a, -.sdk #sdk-link a, -.resources #resources-link a, -.videos #videos-link a { - background-image: url(images/bg_images_sprite.png); - background-position: 0 0; - background-repeat: no-repeat; - color: #fff; - font-weight: bold; - cursor:default; -} - -.home #home-link a:hover, -.guide #guide-link a:hover, -.reference #reference-link a:hover, -.sdk #sdk-link a:hover, -.resources #resources-link a:hover, -.videos #videos-link a:hover { - background-image: url(images/bg_images_sprite.png); - background-position: 0 0; -} - -#headerLinks { - margin:10px 10px 0 0; - height:13px; - font-size: 11px; - vertical-align: top; -} - -#headerLinks a { - color: #7FA9B5; -} - -#headerLinks img { - vertical-align:middle; -} - -#language { - margin:0 10px 0 4px; -} - -#search { - height:45px; - margin:15px 10px 0 0; -} - -/* MAIN BODY */ - -#mainBodyFluid { - margin: 20px 10px; - color:#333; -} - -#mainBodyFixed { - margin: 20px 10px; - color: #333; - width:930px; - position:relative; -} - -#mainBodyFixed h3, -#mainBodyFluid h3 { - color:#336666; - font-size:1.25em; - margin: 0em 0em 0em 0em; - padding-bottom:.5em; -} - -#mainBodyFixed h2, -#mainBodyFluid h2 { - color:#336666; - font-size:1.25em; - margin: 0; - padding-bottom:.5em; -} - -#mainBodyFixed h1, -#mainBodyFluid h1 { - color:#435A6E; - font-size:1.7em; - margin: 1em 0; -} - -#mainBodyFixed .green, -#mainBodyFluid .green, -#jd-content .green { - color:#7BB026; - background-color:none; -} - -#mainBodyLeft { - float: left; - width: 600px; - margin-right: 20px; - color: #333; - position:relative; -} - -div.indent { - margin-left: 40px; - margin-right: 70px; -} - -#mainBodyLeft p { - color: #333; - font-size: 13px; -} - -#mainBodyLeft p.blue { - color: #669999; -} - -#mainBodyLeft #communityDiv { - float: left; - background-image:url(images/bg_community_leftDiv.jpg); - background-repeat: no-repeat; - width: 581px; - height: 347px; - padding: 20px 0px 0px 20px; -} - -#mainBodyRight { - float: left; - width: 300px; - color: #333; -} - -#mainBodyRight p { - padding-right: 50px; - color: #333; -} - -#mainBodyRight table { - width: 100%; -} - -#mainBodyRight td { - border:0px solid #666; - padding:0px 5px; - text-align:left; -} - -#mainBodyRight td p { - margin:0 0 1em 0; -} - -#mainBodyRight .blueBorderBox { - border:5px solid #ddf0f2; - padding:18px 18px 18px 18px; - text-align:left; -} - -#mainBodyFixed .seperator { - background-image:url(images/hr_gray_side.jpg); - background-repeat:no-repeat; - width: 100%; - float: left; - clear: both; -} - -#mainBodyBottom { - float: left; - width: 100%; - clear:both; - color: #333; -} - -#mainBodyBottom .seperator { - background-image:url(images/hr_gray_main.jpg); - background-repeat:no-repeat; - width: 100%; - float: left; - clear: both; -} - -/* FOOTER */ - -#footer { - float: left; - width:90%; - margin: 20px; - color: #aaa; - font-size: 11px; -} - -#footer a { - color: #aaa; - font-size: 11px; -} - -#footer a:hover { - text-decoration: underline; - color:#aaa; -} - -#footerlinks { - margin-top:2px; -} - -#footerlinks a, -#footerlinks a:visited { - color:#006699; -} - -/* SEARCH FILTER */ - -#search_autocomplete { - color:#aaa; -} - -#search-button { - display:inline; -} - -#search_filtered_div { - position:absolute; - margin-top:-1px; - z-index:101; - border:1px solid #BCCDF0; - background-color:#fff; -} - -#search_filtered { - min-width:100%; -} -#search_filtered td{ - background-color:#fff; - border-bottom: 1px solid #669999; - line-height:1.5em; -} - -#search_filtered .jd-selected { - background-color: #94b922; - cursor:pointer; -} -#search_filtered .jd-selected, -#search_filtered .jd-selected a { - color:#fff; -} - -.no-display { - display: none; -} - -.jd-autocomplete { - font-family: Arial, sans-serif; - padding-left: 6px; - padding-right: 6px; - padding-top: 1px; - padding-bottom: 1px; - font-size: 0.81em; - border: none; - margin: 0; - line-height: 1.05em; -} - -.show-row { - display: table-row; -} -.hide-row { - display: hidden; -} - -/* SEARCH */ - -/* restrict global search form width */ -#searchForm { - width:350px; -} - -#searchTxt { - width:200px; -} - -/* disable twiddle and size selectors for left column */ -#leftSearchControl div { - width: 100%; -} - -#leftSearchControl .gsc-twiddle { - background-image : none; -} - -#leftSearchControl td, #searchForm td { - border: 0px solid #000; -} - -#leftSearchControl .gsc-resultsHeader .gsc-title { - padding-left : 0px; - font-weight : bold; - font-size : 13px; - color:#006699; - display : none; -} - -#leftSearchControl .gsc-resultsHeader div.gsc-results-selector { - display : none; -} - -#leftSearchControl .gsc-resultsRoot { - padding-top : 6px; -} - -#leftSearchControl div.gs-visibleUrl-long { - display : block; - color:#006699; -} - -.gsc-webResult div.gs-visibleUrl-short, -table.gsc-branding, -.gsc-clear-button { - display : none; -} - -.gsc-cursor-box .gsc-cursor div.gsc-cursor-page, -.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results, -#leftSearchControl a, -#leftSearchControl a b { - color:#006699; -} - -.gsc-resultsHeader { - display: none; -} - -/* Disable built in search forms */ -.gsc-control form.gsc-search-box { - display : none; -} -table.gsc-search-box { - margin:6px 0 0 0; - border-collapse:collapse; -} - -td.gsc-input { - padding:0 2px; - width:100%; - vertical-align:middle; -} - -input.gsc-input { - border:1px solid #BCCDF0; - width:99%; - padding-left:2px; - font-size:.95em; -} - -td.gsc-search-button { - text-align: right; - padding:0; - vertical-align:top; -} - -#search-button { - margin:0 0 0 2px; - font-size:11px; -} - -/* search result tabs */ - -#doc-content .gsc-control { - position:relative; -} - -#doc-content .gsc-tabsArea { - position:relative; - white-space:nowrap; -} - -#doc-content .gsc-tabHeader { - padding: 3px 6px; - position:relative; - width:auto; -} - -#doc-content .gsc-tabHeader.gsc-tabhActive { - border-top: 2px solid #94B922; -} - -#doc-content h2#searchTitle { - padding:0; -} - -#doc-content .gsc-resultsbox-visible { - padding:1em 0 0 6px; -} - -/* CAROUSEL */ - -#homeMiddle { - padding: 0px 0px 0px 0px; - float: left; - width: 584px; - height: 627px; - position:relative; -} - -#topAnnouncement { - background:url(images/home/bg_home_announcement.png) no-repeat 0 0; -} - -#homeTitle { - padding:15px 15px 0; - height:30px; -} - -#homeTitle h2 { - padding:0; -} - -#announcement-block { - padding:0 15px 0; - overflow:hidden; - background: url(images/hr_gray_side.jpg) no-repeat 15px 0; - zoom:1; -} - -#announcement-block>* { - padding:15px 0 0; -} - -#announcement-block img { - float:left; - margin:0 30px 0 0; -} - -#announcement { - float:left; - margin:0; -} - -#carousel { - background:url(images/home/bg_home_carousel.png) no-repeat 0 0; - position:relative; - height:400px; -} - -#carouselMain { - background: url(images/home/bg_home_carousel_board.png) 0 0 no-repeat; - height:auto; - padding: 25px 21px 0; - overflow:hidden; - position:relative; - zoom:1; /*IE6*/ -} - -#carouselMain img { - margin:0; -} - -#carouselMain .bulletinDesc h3 { - margin:0; - padding:0; -} - -#carouselMain .bulletinDesc p { - margin:0; - padding:0.7em 0 0; -} - -#carouselWheel { - background: url(images/home/bg_home_carousel_wheel.png) 0 0 no-repeat; - padding-top:40px; - height:150px; -} - -.clearer { clear:both; } - -a#arrow-left, a#arrow-right { - float:left; - width:42px; - height:42px; - background-image:url(images/home/carousel_buttons_sprite.png); - background-repeat:no-repeat; -} -a#arrow-left { - margin:35px 3px 0 10px; -} -a#arrow-right { - margin:35px 10px 0 0; -} -a.arrow-left-off, -a#arrow-left.arrow-left-off:hover { - background-position:0 0; -} -a.arrow-right-off, -a#arrow-right.arrow-right-off:hover { - background-position:-42px 0; -} -a#arrow-left:hover { - background-position:0 -42px; -} -a#arrow-right:hover { - background-position:-42px -42px; -} -a.arrow-left-on { - background-position:0 0; -} -a.arrow-right-on { - background-position:-42px 0; -} -a.arrow-right-off, -a.arrow-left-off { - cursor:default; -} - -.app-list-container { - margin:0 20px; - position:relative; - width:100%; -} - -div#list-clip { - height:110px; - width:438px; - overflow:hidden; - position:relative; - float:left; -} - -div#app-list { - left:0; - z-index:1; - position:absolute; - margin:11px 0 0; - _margin-top:13px; - width:1000%; -} - -#app-list a { - display:block; - float:left; - height:90px; - width:90px; - margin:0 24px 0; - padding:3px; - background:#99cccc; - -webkit-border-radius:7px; - -moz-border-radius:7px; - border-radius:7px; - text-decoration:none; - text-align:center; - font-size:11px; - line-height:11px; -} - -#app-list a span { - position:relative; - top:-4px; -} - -#app-list img { - width:90px; - height:70px; - margin:0; -} - -#app-list a.selected, -#app-list a:active.selected, -#app-list a:hover.selected { - background:#A4C639; - color:#fff; - cursor:default; - text-decoration:none; -} - -#app-list a:hover, -#app-list a:active { - background:#ff9900; -} - -#app-list a:hover span, -#app-list a:active span { - text-decoration:underline; -} - -#droid-name { - padding-top:.5em; - color:#666; - padding-bottom:.25em; -} - -/*IE6*/ -* html #app-list a { zoom: 1; margin:0 24px 0 15px;} - -* html #list-clip { - width:430px !important; -} - -/*carousel bulletin layouts*/ -/*460px width*/ -/*185px height*/ -.img-left { - float:left; - width:230px; - overflow:hidden; - padding:8px 0 8px 8px; -} -.desc-right { - float:left; - width:270px; - padding:10px; -} -.img-right { - float:right; - width:220px; - overflow:hidden; - padding:8px 8px 8px 0; -} -.desc-left { - float:right; - width:280px; - padding:10px; - text-align:right; -} -.img-top { - padding:20px 20px 0; -} -.desc-bottom { - padding:10px; -} - - -/* VIDEO PAGE */ - -#mainBodyLeft.videoPlayer { - width:570px; -} - -#mainBodyRight.videoPlayer { - width:330px; -} - -/* player */ - -#videoPlayerBox { - background-color: #DAF3FC; - border-radius:7px; - -moz-border-radius:7px; - -webkit-border-radius:7px; - width:530px; - padding:20px; - border:1px solid #d3ecf5; - box-shadow:2px 3px 1px #eee; - -moz-box-shadow:2px 3px 1px #eee; - -webkit-box-shadow:2px 3px 1px #eee; -} - -#videoBorder { - background-color: #FFF; - min-height:399px; - height:auto !important; - border:1px solid #ccdada; - border-radius:7px 7px 0 0; - -moz-border-radius:7px 7px 0 0; - -webkit-border-top-left-radius:7px; - -webkit-border-top-right-radius:7px; -} - -#videoPlayerTitle { - width:500px; - padding:15px 15px 0; -} - -#videoPlayerTitle h2 { - font-weight:bold; - font-size:1.2em; - color:#336666; - margin:0; - padding:0; -} - -#objectWrapper { - padding:15px 15px; - height:334px; - width:500px; -} - -/* playlist tabs */ - -ul#videoTabs { - list-style-type:none; - padding:0; - clear:both; - margin:0; - padding: 20px 0 0 15px; - zoom:1; /* IE7/8, otherwise top-padding is double */ -} - -ul#videoTabs li { - display:inline; - padding:0; - margin:0 3px 0 0; - line-height:2em; -} - -ul#videoTabs li a { - border-radius:7px 7px 0 0; - -moz-border-radius:7px 7px 0 0; - -webkit-border-top-left-radius:7px; - -webkit-border-top-right-radius:7px; - background:#95c0d0; - color:#fff; - text-decoration:none; - padding:.45em 1.5em; - font-weight:bold; -} - -ul#videoTabs li.selected a { - font-weight:bold; - text-decoration:none; - color:#555; - background:#daf3fc; - border-bottom:1px solid #daf3fc; -} - -ul#videoTabs li:hover a { - background:#85acba; -} - -ul#videoTabs li.selected:hover a { - background:#daf3fc; -} - -/* playlists */ - -#videos { - background:#daf3fc; - margin-bottom:1.5em; - padding:15px; - border-radius:5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - box-shadow:2px 3px 1px #eee; - -moz-box-shadow:2px 3px 1px #eee; - -webkit-box-shadow:2px 3px 1px #eee; -} - -#videos div { - display:none; -} - -#videos div.selected { - display:block; -} - -ul.videoPreviews { - list-style:none; - padding:0; - margin:0; - zoom:1; /* IE, otherwise, layout doesn't update when showing 'more' */ -} - -ul.videoPreviews li { - margin:0 0 5px; - padding:0; - overflow:hidden; - position:relative; -} - -#mainBodyFixed ul.videoPreviews h3 { - font-size: 12px; - margin:0 0 1em 130px; - padding:0; - font-weight:bold; - color:inherit; -} - -ul.videoPreviews a { - margin:1px; - padding:10px; - text-decoration:none; - height:90px; - display:block; - border-radius:5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - background-color:transparent; -} - -ul.videoPreviews a:hover { - background-color:#FFF; - border:none; /* IE8, otherwise, bg doesn't work */ -} - -ul.videoPreviews a.selected { - background-color: #FF9900; -} - -ul.videoPreviews img { - float:left; - clear:left; - margin:0; -} - -ul.videoPreviews h3 { - font-size:12px; - font-weight:bold; - text-decoration:none; - margin:0 0 1em 130px; - padding:0; -} - -ul.videoPreviews p { - font-size: 12px; - text-decoration:none; - margin:0 0 1.2em 130px; -} - -ul.videoPreviews p.full { - display:none; -} - -ul.videoPreviews span.more { - padding:0 0 0 12px; - background:url(images/arrow_bluelink_down.png) 0 2px no-repeat; -} - -ul.videoPreviews span.less { - padding:0 0 0 12px; - background:url(images/arrow_bluelink_up.png) 0 2px no-repeat; - display:none; -} - -ul.videoPreviews p.toggle { - position:absolute; - margin:0; - margin-top:-23px; /* instead of bottom:23px, because IE won't do it correctly */ - left:140px; -} - -ul.videoPreviews p.toggle a { - height:auto; - margin:0; - padding:0; - zoom:1; /* IE6, otherwise the margin considers the img on redraws */ -} - -ul.videoPreviews p.toggle a:hover { - text-decoration:underline; - background:transparent; /* IE6, otherwise it inherits white */ -} - -/* featured videos */ - -#mainBodyRight h2 { - padding:0 0 5px; -} - -#mainBodyRight ul.videoPreviews { - margin:10px 0 0; -} - -#mainBodyRight ul.videoPreviews li { - font-size:11px; - line-height:13px; - margin:0 0 5px; - padding:0; -} - -#mainBodyRight ul.videoPreviews h3 { - padding:0; - margin:0; - font-size:100%; -} - -#mainBodyRight ul.videoPreviews a { - text-decoration:none; - height:108px; - border:1px solid #FFF; -} - -#mainBodyRight ul.videoPreviews a:hover { - border:1px solid #CCDADA; -} - -#mainBodyRight ul.videoPreviews a.selected { - border:1px solid #FFF; -} - -#mainBodyRight ul.videoPreviews p { - line-height:1.2em; - padding:0; - margin:4px 0 0 130px; -} - -#mainBodyRight ul.videoPreviews img { - margin-top:5px; -} - -/* Pretty printing styles. Used with prettify.js. */ - -.str { color: #080; } -.kwd { color: #008; } -.com { color: #800; } -.typ { color: #606; } -.lit { color: #066; } -.pun { color: #660; } -.pln { color: #000; } -dl.tag-list dt code, -.tag { color: #008; } -dl.atn-list dt code, -.atn { color: #828; } -.atv { color: #080; } -.dec { color: #606; } - -@media print { - .str { color: #060; } - .kwd { color: #006; font-weight: bold; } - .com { color: #600; font-style: italic; } - .typ { color: #404; font-weight: bold; } - .lit { color: #044; } - .pun { color: #440; } - .pln { color: #000; } - .tag { color: #006; font-weight: bold; } - .atn { color: #404; } - .atv { color: #060; } -} - - -#title { - border-bottom: 4px solid #ccc; - display:none; -} - -#title h1 { - color:#336666; - margin:0; - padding: 5px 10px; - font-size: 1em; - line-height: 15px; -} - -#title h1 .small{ - color:#000; - margin:0; - font-size: 13px; - padding:0 0 0 15px; -} - -/* SIDE NAVIGATION */ - -#side-nav { - padding:0 6px 0 0; - background-color: #fff; - font-size:12px; -} - -#resize-packages-nav { -/* keeps the resize handle below the h-scroll handle */ - height:270px; - overflow:hidden; - max-height:100%; -} - -#packages-nav { - height:270px; - max-height:inherit; - position:relative; - overflow:auto; -} - -#classes-nav, -#devdoc-nav { - overflow:auto; - position:relative; -} - -#side-nav ul { - list-style: none; - margin: 0; - padding:5px 0; -} - -#side-nav ul ul { - margin: .5em 0 0 0; - padding: 0; -} - -#side-nav li { - padding:0; - padding:1px 0 1px 0; - zoom:1; -} - -#side-nav li span.heading, -#side-nav li h2 { - display:block; - font-size:12px; - font-weight: bold; - margin:.5em 0 0 0; - padding: 3px 0 1px 9px; -} - -#side-nav li a { - display: inline-block; /* needed to apply padding to line-wraps */ - text-decoration:none; - padding: 0 0 0 18px; - zoom:1; -} - -#side-nav li a span+span { - display:none; -} - -#side-nav li a:hover { - text-decoration:underline; -} - -#side-nav li a+a { - padding: 0; -} -/*second level (nested) list*/ -#side-nav li li li a { - padding: 0 0 0 28px; -} -/*third level (nested) list*/ -#side-nav li li li li a { - padding: 0 0 0 38px; -} - -#side-nav .selected { - background-color: #435a6e; - color: #fff; - font-weight:bold; -} - -#side-nav .selected a { - color: #fff; - text-decoration:none; -} - -#side-nav strong { - display:block; -} - -#side-nav .toggle-list .toggle-img { - margin:0; - padding:0; - position:absolute; - top:0; - left:0; - height:16px; - width:15px; - outline-style:none; -} -/* second-level toggle */ -#side-nav .toggle-list .toggle-list .toggle-img { - left:10px; -} - -#side-nav .closed .toggle-img, -#side-nav .open .closed .toggle-img { - background:url('images/triangle-closed-small.png') 7px 4px no-repeat; -} -#side-nav .open .toggle-img { - background:url('images/triangle-opened-small.png') 7px 4px no-repeat; -} - -#side-nav .toggle-list { - position:relative; -} - -#side-nav .toggle-list ul { - margin:0; - display:none; -} - -#side-nav .toggle-list div { - display:block; -} - -#index-links .selected { - background-color: #fff; - color: #000; - font-weight:normal; - text-decoration:none; -} - -#index-links { - padding:7px 0 4px 10px; -} - -/* nav tree */ - -#nav-tree ul { - padding:5px 0 1.5em; -} - -#side-nav #nav-tree ul li a, -#side-nav #nav-tree ul li span.no-children { - padding: 0 0 0 0; - margin: 0; -} - -#nav-tree .plus { - margin: 0 3px 0 0; -} - -#nav-tree ul ul { - list-style: none; - margin: 0; - padding: 0 0 0 0; -} - -#nav-tree ul li { - margin: 0; - padding: 0 0 0 0; - white-space: nowrap; -} - -#nav-tree .children_ul { - margin:0; -} - -#nav-tree a.nolink { - color: black; - text-decoration: none; -} - -#nav-tree span.label { - width: 100%; -} - -#nav-tree { - overflow-x: auto; - overflow-y: scroll; -} - -#nav-swap { - font-size:10px; - line-height:10px; - margin-left:1em; - text-decoration:none; - display:block; -} - -#tree-link { - -} - -/* DOCUMENT BODY */ - -#doc-content { - overflow:auto; -} - -#jd-header { - background-color: #E2E2E2; - padding: 7px 15px; -} - -#jd-header h1 { - margin: 0 0 10px; - font-size:1.7em; -} - -#jd-header .crumb { - font-size:.9em; - line-height:1em; - color:#777; -} - -#jd-header .crumb a, -#jd-header .crumb a:visited { - text-decoration:none; - color:#777; -} - -#jd-header .crumb a:hover { - text-decoration:underline; -} - -#jd-header table { - margin:0; - padding:0; -} - -#jd-header td { - border:none; - padding:0; - vertical-align:top; -} - -#jd-header.guide-header { - background-color:#fff; - color:#435a6e; - height:50px; -} - -#jd-descr { - position:relative; -} - -/* summary tables for reference pages */ -.jd-sumtable { - margin: .5em 1em 1em 1em; - width:95%; /* consistent table widths; within IE's quirks */ - font-size:.9em; -} - -.jd-sumtable a { - text-decoration:none; -} - -.jd-sumtable a:hover { - text-decoration:underline; -} - -/* the link inside a sumtable for "Show All/Hide All" */ -.toggle-all { - display:block; - float:right; - font-weight:normal; - font-size:0.9em; -} - -/* adjustments for in/direct subclasses tables */ -.jd-sumtable-subclasses { - margin: 1em 0 0 0; - max-width:968px; -} - -/* extra space between end of method name and open-paren */ -.sympad { - margin-right: 2px; -} - -/* right alignment for the return type in sumtable */ -.jd-sumtable .jd-typecol { - text-align:right; -} - -/* adjustments for the expando table-in-table */ -.jd-sumtable-expando { - margin:.5em 0; - padding:0; -} - -/* a div that holds a short description */ -.jd-descrdiv { - padding:3px 1em 0 1em; - margin:0; - border:0; -} - -/* page-top-right container for reference pages (holds -links to summary tables) */ -#api-info-block { - font-size:.8em; - padding:6px 10px; - font-weight:normal; - float:right; - text-align:right; - color:#999; - max-width:70%; -} - -#api-level-toggle { - padding:0 10px; - font-size:11px; - float:right; -} - -#api-level-toggle label.disabled { - color:#999; -} - -div.api-level { - font-size:.8em; - font-weight:normal; - color:#999; - float:right; - padding:0 7px 0; - margin-top:-25px; -} - -#api-info-block div.api-level { - font-size:1.3em; - font-weight:bold; - float:none; - color:#444; - padding:0; - margin:0; -} - -/* Force link colors for IE6 */ -div.api-level a { - color:#999; -} -#api-info-block div.api-level a:link { - color:#444; -} -#api-level-toggle a { - color:#999; -} - -div#deprecatedSticker { - display:none; - z-index:99; - position:fixed; - right:15px; - top:114px; - margin:0; - padding:1em; - background:#FFF; - border:1px solid #dddd00; - box-shadow:-5px 5px 10px #ccc; - -moz-box-shadow:-5px 5px 10px #ccc; - -webkit-box-shadow:-5px 5px 10px #ccc; -} - -div#naMessage { - display:none; - width:555px; - height:0; - margin:0 auto; -} - -div#naMessage div { - z-index:99; - width:450px; - position:fixed; - margin:50px 0; - padding:4em 4em 3em; - background:#FFF; - border:1px solid #dddd00; - box-shadow:-10px 10px 40px #888; - -moz-box-shadow:-10px 10px 40px #888; - -webkit-box-shadow:-10px 10px 40px #888; -} -/* IE6 can't position fixed */ -* html div#naMessage div { position:absolute; } - -div#naMessage strong { - font-size:1.1em; -} - -.absent, -.absent a:link, -.absent a:visited, -.absent a:hover, -.absent * { - color:#bbb !important; - cursor:default !important; - text-decoration:none !important; -} - -#api-level-toggle a, -.api-level a { - color:inherit; - text-decoration:none; -} - -#api-level-toggle a:hover, -.api-level a:hover { - color:inherit; - text-decoration:underline !important; - cursor:pointer !important; -} - -#side-nav li.absent.selected, -#side-nav li.absent.selected *, -#side-nav div.label.absent.selected, -#side-nav div.label.absent.selected * { - background-color:#eaeaea !important; -} -/* IE6 quirk (won't chain classes, so just keep background blue) */ -* html #side-nav li.selected, -* html #side-nav li.selected *, -* html #side-nav div.label.selected, -* html #side-nav div.label.selected * { - background-color: #435a6e !important; -} - - -.absent h4.jd-details-title, -.absent h4.jd-details-title * { - background-color:#f6f6f6 !important; -} - -.absent img { - opacity: .3; - filter: alpha(opacity=30); - -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; -} - - -/* applies to a div containing links to summary tables */ -.sum-details-links { - padding:0; - font-weight:normal; -} - -.sum-details-links a { - text-decoration:none; -} - -.sum-details-links a:hover { - text-decoration:underline; -} - - -/* inheritance table */ -.jd-inheritance-table { - border-spacing:0; - margin:0; - padding:0; - font-size:.9em; -} -.jd-inheritance-table td { - border: none; - margin: 0; - padding: 0; -} -.jd-inheritance-table .jd-inheritance-space { - font-weight:bold; - width:1em; -} -.jd-inheritance-table .jd-inheritance-interface-cell { - padding-left: 17px; -} - -#jd-content { - padding: 18px 15px; -} - -hr { - background-color:#ccc; - border-color:#fff; - margin:2em 0 1em; -} - -/* DOC CLASSES */ - -#jd-content h1 { -/*sdk page*/ - font-size:1.6em; - color:#336666; - margin:0 0 .5em; -} - -#jd-content h2 { - font-size:1.45em; - color:#111; - border-top:2px solid #ccc; - padding: .5em 0 0; - margin: 2em 0 1em 0; -} - -#jd-content h3 { - font-size:1.3em; - color:#3a3a3a; - padding: 0; - margin: 1.5em 0 .65em 0; -} - -#jd-content h4 { - font-size:1.1em; - color:#3a3a3a; - padding: 0; - margin: 1.25em 0 .65em 0; -} - -#jd-content h5 { - font-size:1.0em; - color:#3a3a3a; - padding: 0; - margin: 1em 0 .65em 0; -} - -#jd-content .small-header { - font-size:1em; - color:#000; - font-weight:bold; - border:none; - padding:0; - margin:1em 0 .5em; - position:inherit; -} - -#jd-content table { - margin: 0 0 1em 1em; -} - -#jd-content img { - margin: 0 0 1em 1em; -} - -#jd-content li img, -#jd-content dd img { - margin:.5em 0 .5em 1em; -} - -.nolist { - list-style:none; - padding:0; - margin:0 0 1em 1em; -} - -.nolist li { - padding:0 0 2px; - margin:0; -} - -h4 .normal { - font-size:.9em; - font-weight:normal; -} - -.caps { - font-variant:small-caps; - font-size:1.2em; -} - -dl.tag-list dl.atn-list { - padding:0 0 0 2em; -} - -.jd-details { -/* border:1px solid #669999; - padding:4px; */ - margin:0 0 1em; -} - -/* API reference: a container for the -.tagdata blocks that make up the detailed -description */ -.jd-details-descr { - padding:0; - margin:.5em .25em; -} - -/* API reference: a block containing -a detailed description, a params table, -seealso list, etc */ -.jd-tagdata { - margin:.5em 1em; -} - -.jd-tagdata p { - margin:0 0 1em 1em; -} - -/* API reference: adjustments to -the detailed description block */ -.jd-tagdescr { - margin:.25em 0 .75em 0; - line-height:1em; -} - -.jd-tagdescr p { - margin:.5em 0; - padding:0; - -} - -.jd-tagdescr ol, -.jd-tagdescr ul { - margin:0 2.5em; - padding:0; -} - -.jd-tagdescr table, -.jd-tagdescr img { - margin:.25em 1em; -} - -.jd-tagdescr li { -margin:0 0 .25em 0; -padding:0; -} - -/* API reference: heading marking -the details section for constants, -attrs, methods, etc. */ -h4.jd-details-title { - font-size:1.15em; - background-color: #E2E2E2; - margin:1.5em 0 .6em; - padding:3px 95px 3px 3px; /* room for api-level */ -} - -h4.jd-tagtitle { - margin:0; -} - -/* API reference: heading for "Parameters", "See Also", etc., -in details sections */ -h5.jd-tagtitle { - margin:0 0 .25em 0; - font-size:1em; -} - -.jd-tagtable { - margin:0; -} - -.jd-tagtable td, -.jd-tagtable th { - border:none; - background-color:#fff; - vertical-align:top; - font-weight:normal; - padding:2px 10px; -} - -.jd-tagtable th { - font-style:italic; -} - -#jd-content table h2 { - background-color: #d6d6d6; - font-size: 1.1em; - margin:0 0 10px; - padding:5px; - left:0; - width:auto; -} - -div.design-announce { - border-top:1px solid #33B5E5; - border-bottom:1px solid #33B5E5; - padding:5px 10px 10px 55px; - margin:2em 0; - background:url('images/icon_design.png') 5px 13px no-repeat; -} - -div.design-announce p { - margin: .5em 0 0 0; -} - -div.special { - padding: .5em 1em 1em 1em; - margin: 0 0 1em; - background-color: #DAF3FC; - border:1px solid #d3ecf5; - border-radius:5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; -} - -div.special p { - margin: .5em 0 0 0; -} - -div.special ol { - margin: 0; -} - -div.special ol li { - margin: 0; - padding: 0; -} - -#jd-content div.special h2, -#jd-content div.special h3 { - color:#669999; - font-size:1.2em; - border:none; - margin:0 0 .5em; - padding:0; -} - -#jd-content div.special.reference h2, -#jd-content div.special.reference h3, -#jd-content div.special.reference h4 { - color:#000; - font-size:1em; - border:none; - font-weight:bold; - margin:.5em 0; - padding:0; -} - -p.note, div.note, -p.caution, div.caution, -p.warning, div.warning { - margin: 1em; - padding: 0 0 0 .5em; - border-left: 4px solid; -} - -p.special-note, -div.special-note { - background-color:#EBF3DB; - padding:10px 20px; - margin:0 0 1em; -} - -p.note, -div.note { - border-color: #99aacc; -} - -p.warning, -div.warning { - border-color: #aa0033; -} - -p.caution, -div.caution { - border-color: #ffcf00; -} - -li .note, -li .caution, -li .warning { - margin: .5em 0 0 0; - padding: .2em .5em .2em .9em; -} - -/* Makes sure the first paragraph does not add top-whitespace within the box*/ -li .note>p:first-child, -li .caution>p:first-child, -li .warning>p:first-child { - margin-top:0; - padding-top:0; -} - -dl.xml dt { - font-variant:small-caps; - font-size:1.2em; -} - -dl.xml dl { - padding:0; -} - -dl.xml dl dt { - font-variant:normal; - font-size:1em; -} - -.listhead li { - font-weight: bold; -} - -.listhead li *, /*ie*/.listhead li li { - font-weight: normal; -} - -ol.no-style, -ul.no-style { - list-style:none; - padding-left:1em; -} - -.new, -.new-child { - font-size: .78em; - font-weight: bold; - color: #ff3d3d; - text-decoration: none; - vertical-align:top; - line-height:.9em; - white-space:nowrap; -} - -.toggle-list.open .new-child { - display:none; -} - -pre.classic { - background-color:transparent; - border:none; - padding:0; -} - -p.img-caption { - margin: -0.5em 0 1em 1em; /* matches default img left-margin */ -} - -div.figure { - float:right; - clear:right; - margin:1em 0 0 0; - padding:0 0 0 3em; - background-color:#fff; - /* width must be defined w/ an inline style matching the image width */ -} - -#jd-content -div.figure img { - margin: 0 0 1em; -} - -div.figure p.img-caption { - margin: -0.5em 0 1em 0; -} - -p.table-caption { - margin: 0 0 0.5em 1em; /* matches default table left-margin */ -} - - -/* toggle for misc content (such as long sample code) - see toggleContent() script in android-developer-docs.js */ -.toggle-content.closed .toggle-content-toggleme { - display:none; -} - -.toggle-content a[href="#"] { - text-decoration:none; - color:inherit; -} - -.toggle-content-toggleme { - padding-bottom:1px; /* fixes animation bounce due to margins */ -} - -#jd-content .toggle-content img.toggle-content-img { - margin:0; -} - - -/* BEGIN quickview sidebar element styles */ - -#qv-wrapper { - float: right; - width:310px; /* +35px padding */ - background-color:#fff; - margin:-48px 0 2px 0; - padding:0 0 20px 35px; -} - -#qv { - background-color:#fff; - border:4px solid #dee8f1; - margin:0; - padding:0 5px 5px; - width:292px; /* +10px padding; +8px border */ - font-size:.9em; -} - -#qv ol { - list-style:none; - padding: 0; -} - -#qv ol ol{ - list-style:none; - padding: 0 0 0 12px; - margin:0; -} - -#qv ul { - padding: 0 10px 0 2em; -} - -#qv li { - padding: 0 10px 3px; - line-height: 1.2em; -} - -#qv li li { - padding: 3px 10px 0; -} - -#qv ul li { - padding: 0 10px 0 0; -} - -#qv li.selected a { - color:#555; - text-decoration:none; -} - -#qv a, -#qv a code { - color:#cc6600; -} - -#qv p { - margin:8px 0 0; - padding:0 10px; -} - -#jd-content #qv h2 { - font-size:1.05em; - font-weight:bold; - margin:12px 0 .25em 0; - padding:0 10px; - background-color:transparent; - color:#7BB026; - border:none; - left:0; - z-index:1; -} - -#qv-extra #rule { - padding: 0 10px; - margin: 0; -} - -#qv-sub-rule { - padding: 5px 15px 10px; - margin: 0; -} - -#jd-content -#qv-sub-rule h2 { - margin: 0 0 .5em 0; -} - -/* END quickview sidebar element styles */ - -/* Begin sidebox sidebar element styles */ - -.sidebox-wrapper { - float:right; - clear:right; - width:310px; /* +35px padding */ - background-color:#fff; - margin:0; - padding:0 0 20px 35px; -} - -.sidebox { - border-left:1px solid #dee8f1; - background-color:#ffffee; - margin:0; - padding:8px 12px; - font-size:0.9em; - width:285px; /* +24px padding; +1px border */ -} - -.sidebox p { - margin-bottom: .75em; -} - -.sidebox ul { - padding: 0 0 0 1.5em; -} - -.sidebox li ul { - margin-top:0; - margin-bottom:.1em; -} - -.sidebox li { -padding:0 0 0 0em; -} - -#jd-content .sidebox h2, -#jd-content .sidebox h3, -#jd-content .sidebox h4, -#jd-content .sidebox h5 { - border:none; - font-size:1em; - margin:0; - padding:0 0 8px; - left:0; - z-index:0; -} - -.sidebox hr { - background-color:#ccc; - border:none; -} - -/* End sidebox sidebar element styles */ - -/* BEGIN developer training bar styles */ - -div#tb-wrapper { - float: right; - clear:right; - width:380px; /* +25px padding = 405 */ - background-color:#fff; - margin:0 0 2px 0; - padding:0 0 20px 25px; -} - -div#tb { - margin:0; - padding:0 15px; - width:350px; /* +15px padding = 380 */ - font-size:.9em; - background:#e9e9e9; - border:1px solid #aaa; - border-radius:5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - overflow:auto; -} - -div#tb h2 { - font-size:1.3em; - font-weight:bold; - margin:1em 0; - padding:0; - background-color:transparent; - border:none; - clear:both; -} - -div.download-box a.button { - color: #069; - font-size:1.1em; - font-weight:bold; - text-decoration:none; - height:27px; - line-height:27px; - text-align:center; - padding:5px 8px; - background-color: #fff; - border: 1px solid #aaa; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} - -div.download-box a.button:hover { - border-color: #09C; - background-color: #4CADCB; - background-image: -webkit-gradient(linear,left top,left bottom,from(#5dbcd9),to(#4cadcb)); - background-image: -webkit-linear-gradient(top,#5dbcd9,#4cadcb); - background-image: -moz-linear-gradient(top,#5dbcd9,#4cadcb); - background-image: -ms-linear-gradient(top,#5dbcd9,#4cadcb); - background-image: -o-linear-gradient(top,#5dbcd9,#4cadcb); - background-image: linear-gradient(top,#5dbcd9,#4cadcb); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',EndColorStr='#4cadcb'); - color: #fff; -} - -div.download-box a.button:active { - background-color: #1E799A; - background-image: none; - border-color: #30B7E6; -} - -div.download-box p.filename { - font-size:0.85em; - color:#888; - margin:4px 0 1em 10px; -} - -/* End developer training bar */ - -/* Training nav bar (previous/next) */ - -div.training-nav-top { - float: right; - width:380px; /* +25px padding = 405 */ - margin:-58px 0 0 0; - padding:0 0 20px 25px; -} - -div.training-nav-bottom { - padding:1px; /* for weird FF bug (scrollbar appears) */ - margin:3em 0; - overflow:auto; -} - -div.training-nav-button-next a, -div.training-nav-button-previous a { - display:block; - width:160px; - height:55px; - padding:4px 7px; - border:1px solid #aaa; - border-radius:5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - text-decoration:none; - font-weight:bold; -} - -div.training-nav-button-next a:hover, -div.training-nav-button-previous a:hover { - border:1px solid #069; /* match link color */ -} - -div.training-nav-button-next a:active, -div.training-nav-button-previous a:active { - border:1px solid #f00; /* match link color */ -} - -div.training-nav-button-previous { - float:left; - text-align:left; -} - -div.training-nav-button-next { - float:right; - text-align:right; -} - -span.training-nav-button-title { - display:block; - font-size:.85em; - font-weight:normal; - line-height:1.3em; - margin:.5em 0 0; -} - -/* End training nav bar */ - -/* BEGIN image and caption styles (originally for UI Guidelines docs) */ - -table.image-caption { - padding:0; - margin:.5em 0; - border:0; -} - -td.image-caption-i { - font-size:92%; - padding:0 5px; - margin:0; - border:0; -} - -td.image-caption-i img { - padding:0 1em; - margin:0; -} - -.image-list { - width:24px; - text-align:center; -} - -td.image-caption-c { - font-size:92%; - padding:1em 2px 2px 2px; - margin:0; - border:0; - width:350px; -} - -.grad-rule-top { -background-image:url(images/grad-rule-qv.png); -background-repeat:no-repeat; -padding-top:1em; -margin-top:0; -} - -.image-caption-nested { - margin-top:0; - padding:0 0 0 1em; -} - -.image-caption-nested td { - padding:0 4px 2px 0; - margin:0; - border:0; -} - -/* END image and caption styles */ - -/* table of contents */ - -ol.toc { - margin: 0 0 1em 0; - padding: 0; - list-style: none; - font-size:95%; -} - -ol.toc li { - font-weight: bold; - margin: 0 0 .5em 1em; - padding: 0; -} - -ol.toc li p { - font-weight: normal; -} - -ol.toc li ol { - margin: 0; - padding: 0; -} - -ol.toc li li { - padding: 0; - margin: 0 0 0 1em; - font-weight: normal; - list-style: none; -} - -table ol.toc { - margin-left: 0; -} - -.columns td { - padding:0 5px; - border:none; -} - -/* link table */ -.jd-linktable { - margin: 0 0 1em; - border-bottom: 1px solid #888; -} -.jd-linktable th, -.jd-linktable td { - padding: 3px 5px; - vertical-align: top; - text-align: left; - border:none; -} -.jd-linktable tr { - background-color: #fff; -} -.jd-linktable td { - border-top: 1px solid #888; - background-color: inherit; -} -.jd-linktable td p { - padding: 0 0 5px; -} -.jd-linktable .jd-linkcol { -} -.jd-linktable .jd-descrcol { -} -.jd-linktable .jd-typecol { - text-align:right; -} -.jd-linktable .jd-valcol { -} -.jd-linktable .jd-commentrow { - border-top:none; - padding-left:25px; -} -.jd-deprecated-warning { - margin-top: 0; - margin-bottom: 10px; -} - -tr.alt-color { - background-color: #f6f6f6; -} - -/* expando trigger */ -#jd-content .jd-expando-trigger-img { - margin:0; -} - -/* jd-expando */ -.jd-inheritedlinks { - padding:0 0 0 13px -} - -/* SDK PAGE */ -table.download tr { - background-color:#d9d9d9; -} - -table.download tr.alt-color { - background-color:#ededed; -} - -table.download td, -table.download th { - border:2px solid #fff; - padding:10px 5px; -} - -table.download th { - background-color:#6d8293; - color:#fff; -} - -/* INLAY 180 COPY and 240PX EXTENSION */ -/* modified to 43px so that all browsers eliminate the package panel h-scroll */ -.g-tpl-240 .g-unit, -.g-unit .g-tpl-240 .g-unit, -.g-unit .g-unit .g-tpl-240 .g-unit { - display: block; - margin: 0 0 0 243px; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-240 .g-first, -.g-unit .g-tpl-240 .g-first, -.g-tpl-240 .g-first { - display: block; - margin: 0; - width: 243px; - float: left; -} -/* 240px alt */ -.g-tpl-240-alt .g-unit, -.g-unit .g-tpl-240-alt .g-unit, -.g-unit .g-unit .g-tpl-240-alt .g-unit { - display: block; - margin: 0 243px 0 0; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-240-alt .g-first, -.g-unit .g-tpl-240-alt .g-first, -.g-tpl-240-alt .g-first { - display: block; - margin: 0; - width: 243px; - float: right; -} - -/* 200px */ -.g-tpl-200 .g-unit, -.g-unit .g-tpl-200 .g-unit, -.g-unit .g-unit .g-tpl-200 .g-unit { - display: block; - margin: 0 0 0 200px; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-200 .g-first, -.g-unit .g-tpl-200 .g-first, -.g-tpl-200 .g-first { - display: block; - margin: 0; - width: 200px; - float: left; -} -/* 200px alt */ -.g-tpl-200-alt .g-unit, -.g-unit .g-tpl-200-alt .g-unit, -.g-unit .g-unit .g-tpl-200-alt .g-unit { - display: block; - margin: 0 200px 0 0; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-200-alt .g-first, -.g-unit .g-tpl-200-alt .g-first, -.g-tpl-200-alt .g-first { - display: block; - margin: 0; - width: 200px; - float: right; -} - -/* 190px */ -.g-tpl-190 .g-unit, -.g-unit .g-tpl-190 .g-unit, -.g-unit .g-unit .g-tpl-190 .g-unit { - display: block; - margin: 0 0 0 190px; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-190 .g-first, -.g-unit .g-tpl-190 .g-first, -.g-tpl-190 .g-first { - display: block; - margin: 0; - width: 190px; - float: left; -} -/* 190px alt */ -.g-tpl-190-alt .g-unit, -.g-unit .g-tpl-190-alt .g-unit, -.g-unit .g-unit .g-tpl-190-alt .g-unit { - display: block; - margin: 0 190px 0 0; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-190-alt .g-first, -.g-unit .g-tpl-190-alt .g-first, -.g-tpl-190-alt .g-first { - display: block; - margin: 0; - width: 190px; - float: right; -} - -/* 180px */ -.g-tpl-180 .g-unit, -.g-unit .g-tpl-180 .g-unit, -.g-unit .g-unit .g-tpl-180 .g-unit { - display: block; - margin: 0 0 0 180px; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-180 .g-first, -.g-unit .g-tpl-180 .g-first, -.g-tpl-180 .g-first { - display: block; - margin: 0; - width: 180px; - float: left; -} -/* 180px alt */ -.g-tpl-180-alt .g-unit, -.g-unit .g-tpl-180-alt .g-unit, -.g-unit .g-unit .g-tpl-180-alt .g-unit { - display: block; - margin: 0 180px 0 0; - width: auto; - float: none; -} -.g-unit .g-unit .g-tpl-180-alt .g-first, -.g-unit .g-tpl-180-alt .g-first, -.g-tpl-180-alt .g-first { - display: block; - margin: 0; - width: 180px; - float: right; -} - - -/* JQUERY RESIZABLE STYLES */ -.ui-resizable { position: relative; } -.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; } -.ui-resizable .ui-resizable-handle { display: block; } -body .ui-resizable-disabled .ui-resizable-handle { display: none; } -body .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; - background: transparent url("images/resizable-s2.gif") repeat scroll center top; } -.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; - background: transparent url("images/resizable-e2.gif") repeat scroll right center; } - -@media print { - - body { - overflow:visible; - } - - #header { - height:60px; - } - - #headerLeft { - padding:0; - } - - #header-tabs, - #headerRight, - #side-nav, - #api-info-block { - display:none; - } - - #body-content { - position:inherit; - } - - #doc-content { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } - - #jd-header { - padding:10px 0; - } - - #jd-content { - padding:15px 0 0; - } - - #footer { - float:none; - margin:2em 0 0; - } - - h4.jd-details-title { - border-bottom:1px solid #666; - } - - pre { - /* these allow lines to break (if there's a white space) */ - overflow: visible; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - } - - h1, h2, h3, h4, h5, h6 { - page-break-after: avoid; - } - - table, img { - page-break-inside: avoid; - } -} diff --git a/tools/droiddoc/templates-sac/assets/css/default.css b/tools/droiddoc/templates-sac/assets/css/default.css deleted file mode 100644 index 4eafa25026..0000000000 --- a/tools/droiddoc/templates-sac/assets/css/default.css +++ /dev/null @@ -1,4662 +0,0 @@ -/* color definitions */ -/* 16 column layout */ -/* clearfix idiom */ -/* common mixins */ -/* page layout + top-level styles */ -::selection { - background-color: #0099cc; - color: #fff; } -::-webkit-selection { - background-color: #0099cc; - color: #fff; } -::-moz-selection { - background-color: #0099cc; - color: #fff; } - -html, body { - height: 100%; - margin: 0; - padding: 0; - background-color:#F9F9F9; - -webkit-font-smoothing: antialiased; - /* prevent subpixel antialiasing, which thickens the text */ - /* text-rendering: optimizeLegibility; */ - /* turned off ligatures due to bug 5945455 */ } - -body { - color: #222; - font: 14px/19px Roboto, sans-serif; - font-weight: 400; - letter-spacing:.1; - padding:0 10px; } - -#page-container { - width: 940px; - margin: 0 40px; } - -#page-header { - height: 80px; - margin-bottom: 20px; - font-size: 48px; - line-height: 48px; - font-weight: 100; - padding-left: 10px; } - #page-header a { - display: block; - position: relative; - top: 20px; - text-decoration: none; - color: #555555 !important; } - -#main-row { - display: inline-block; } - #main-row:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; } - * html #main-row { - height: 1px; } - -#page-footer { - margin-left: 190px; - margin-top: 80px; - color: #999999; - padding-bottom: 40px; - font-size: 12px; - line-height: 15px; } - #page-footer a { - color: #777777; } - #page-footer #copyright { - margin-bottom: 10px; } - -#nav-container { - width: 160px; - min-height: 10px; - margin-right: 20px; - float: left; } - -#nav { - margin:0; - padding:0 0 30px; -} - -#side-nav { - min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */ - margin-bottom:1px; -} -#devdoc-nav { - outline:none; - width:auto; - margin: 20px 0 0; } - -#devdoc-nav h2 { - border:0; -} - -#devdoc-nav.fixed { - position: fixed; - margin:0; - top: 20px; } - -#devdoc-nav span.small { - font-size:12px; - font-weight:normal; -} - -#content { - width: 760px; - float: left; } - -a:hover, -acronym:hover { - color: #7aa1b0 !important; } - -a:focus, -a:active { - color: #33b5e5 !important; } - -a.external-link { - background:url('../images/styles/open_new_page.png') no-repeat 100% 50%; - padding-right:16px; -} - -.nowrap { - white-space: nowrap; -} - -img { - border: none; } -#jd-content img { - margin-bottom:15px; -} - -ul { - margin: 0; - padding: 0; } - -strong { - font-weight: 500; } - -em { - font-style: italic; } - -acronym, -.tooltip-link { - border-bottom: 1px dotted #555555; - cursor: help; } - -acronym:hover, -.tooltip-link:hover { - color: #7aa1b0; - border-bottom-color: #7aa1b0; } - -img.with-shadow, -video.with-shadow { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); } - -/* disclosures mixin */ -/* content layout */ -.layout-content-row { - display: inline-block; - margin-bottom: 10px; } - .layout-content-row:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; } - * html .layout-content-row { - height: 1px; } - -.layout-content-col { - float: left; - margin-left: 20px; } - .layout-content-col:first-child { - margin-left: 0; } - .layout-content-col h3, - .layout-content-col h4 { - margin-top:0; } - -.layout-content-col.span-1 { - width: 40px; } - -.layout-content-col.span-2 { - width: 100px; } - -.layout-content-col.span-3 { - width: 160px; } - -.layout-content-col.span-4 { - width: 220px; } - -.layout-content-col.span-5 { - width: 280px; } - -.layout-content-col.span-6 { - width: 340px; } - -.layout-content-col.span-7 { - width: 400px; } - -.layout-content-col.span-8 { - width: 460px; } - -.layout-content-col.span-9 { - width: 520px; } - -.layout-content-col.span-10 { - width: 580px; } - -.layout-content-col.span-11 { - width: 640px; } - -.layout-content-col.span-12 { - width: 700px; } - -.layout-content-col.span-13 { - width: 760px; } - -.vspace.size-1 { - height: 10px; } - -.vspace.size-2 { - height: 20px; } - -.vspace.size-3 { - height: 30px; } - -.vspace.size-4 { - height: 40px; } - -.vspace.size-5 { - height: 50px; } - -.vspace.size-6 { - height: 60px; } - -.vspace.size-7 { - height: 70px; } - -.vspace.size-8 { - height: 80px; } - -.vspace.size-9 { - height: 90px; } - -.vspace.size-10 { - height: 100px; } - -.vspace.size-11 { - height: 110px; } - -.vspace.size-12 { - height: 120px; } - -.vspace.size-13 { - height: 130px; } - -.vspace.size-14 { - height: 140px; } - -.vspace.size-15 { - height: 150px; } - -.vspace.size-16 { - height: 160px; } - -/* nav */ -#nav { - /* section header divs */ - /* expanded section header divs */ - /* sublinks */ } - #nav li { - list-style-type: none; - font-size: 14px; - margin:0; - padding:0; - line-height: 15px; } - #nav a { - color: #555555; - text-decoration: none; - word-wrap:break-word; } - #nav .nav-section-header { - position: relative; - margin-bottom: 1px; - padding: 0 30px 0 0; } - #nav li.selected a, #nav li.selected > .nav-section-header > a { - color: #09C; - } - #nav li.selected ul li a { - /* don't highlight child items */ - color: #555555; } - #nav .nav-section .nav-section .nav-section-header { - /* no white line between second level sections */ - margin-bottom: 0; } - /* section header links */ - #nav > li > div > a { - display: block; - color: #333333; - font-weight: 500; - padding: 10px 0 10px 10px; } - #nav .nav-section-header:after { - content: ''; - background: transparent url(../images/styles/disclosure_down.png) no-repeat scroll 50% 50%; - width: 34px; - height: 34px; - display: block; - position: absolute; - top: 0; - right: 0; } - #nav .nav-section-header.empty:after { - display: none; } - /* nested nav headers */ - #nav .nav-section .nav-section { - position: relative; - padding: 0; - margin: 0; } - #nav .nav-section li a { - /* first gen child (2nd level li) */ - display:block; - font-weight: normal; - text-transform: none; - padding: 7px 5px 7px 10px; - } - #nav .nav-section li li a { - /* second gen child (3rd level li) */ - padding: 5px 5px 5px 10px; - } - #nav li.expanded .nav-section-header { - background:#e9e9e9; - background: rgba(0, 0, 0, 0.05); } - #nav li.expanded li .nav-section-header { - background: transparent; } - #nav li.expanded li ul { - /* 3rd level ul */ - padding:0 0 0 10px; - } - #nav li.expanded > .nav-section-header:after { - content: ''; - background: transparent url(../images/styles/disclosure_up.png) no-repeat scroll 50% 50%; - width: 34px; - height: 34px; } - #nav li.expanded li ul.tree-list-children { - padding:0; - } - #nav li.expanded li ul.tree-list-children .tree-list-children { - padding:0 0 0 10px; - } - #nav li span.tree-list-subtitle { - display:inline-block; - padding:5px 0 0 10px; - color:#555; - text-transform:uppercase; - font-size:12px; - } - #nav li span.tree-list-subtitle:before { - content: '—'; - } - #nav li span.tree-list-subtitle:after { - content: '—'; - } - #nav li ul { - display:none; - overflow: hidden; - margin: 0; } - #nav li ul.animate-height-in { - -webkit-transition: height 0.25s ease-in; - -moz-transition: height 0.25s ease-in; - transition: height 0.25s ease-in; } - #nav li ul.animate-height-out { - -webkit-transition: height 0.25s ease-out; - -moz-transition: height 0.25s ease-out; - transition: height 0.25s ease-out; } - #nav li ul li { - padding: 0; } - #nav li li li { - padding: 0; } - #nav li.expanded ul { - } - #nav li ul > li { - padding:0; - } - #nav li ul > li:last-child { - padding-bottom:5px; - } - #nav li ul.tree-list-children > li:last-child { - padding-bottom:0; - } - #nav li.expanded ul > li { - background:#efefef; - background: rgba(0, 0, 0, 0.03); } - #nav li.expanded ul > li li { - background:inherit; } - #nav li ul.tree-list-children ul { - display:block; } - -.new, -.new-child { - font-size: .78em; - font-weight: bold; - color: #ff3d3d; - vertical-align:top; - white-space:nowrap; -} - -/* content header */ -.content-header { - height: 30px; - margin:20px 0 25px; - padding:0 0 10px;} -.content-header.just-links { - margin-bottom:0; - padding-bottom:0;} - -.content-header h1 { - color:#000; - margin:0; - border-bottom:0; - padding:0; -} - -.content-footer { - border-top: 1px solid #ccc; - margin-top: 10px; - padding-top:10px; - height: 30px; -} - -.content-footer-sac { - border-top: 1px solid #ccc; -} -.content-footer .col-9 { - margin-left:0; -} -.content-footer .col-4 { - margin-right:0; -} -.content-footer.wrap { - width:940px; -} - -.paging-links { - position: relative; } - .paging-links a { - position: absolute; } - .paging-links a, - .training-nav-top a { - font-size: 14px; - line-height: 30px; - color: #555555; - text-decoration: none; - text-transform: uppercase; } - .paging-links .prev-page-link:before, - .training-nav-top .prev-page-link:before { - content: ''; - background: transparent url(../images/styles/disclosure_left.png) no-repeat scroll 50% 50%; - width: 10px; - height: 10px; - display: inline-block; - margin-right: 5px; } - .training-nav-top .next-page-link, - .training-nav-top .start-class-link, - .training-nav-top .start-course-link { - right: 10px; } - .paging-links .prev-page-link { - left: -15px; } - .paging-links .next-page-link { - right: 0px; } - .next-page-link:after, - .start-class-link:after, - .start-course-link:after, - .next-class-link:after { - content: ''; - background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%; - width: 10px; - height: 10px; - display: inline-block; - margin-left: 5px; } - - - .training-nav-top a { - display:block; - float:left; - width:122px; - height:28px; - padding: 8px; - line-height:28px; - text-align:center; - border:1px solid #DADADA; - border-bottom:0; - } - - .training-nav-top a.next-page-link { - border-left:0; - width:123px; - } - - .paging-links a.disabled, - .training-nav-top a.disabled, - .content-footer a.disabled { - color:#bbb; - } - - .paging-links a.disabled:hover, - .training-nav-top a.disabled:hover, - .content-footer a.disabled:hover { - cursor:default; - color:#bbb !important; - } - - .training-nav-top a.start-class-link, - .training-nav-top a.start-course-link { - width:262px; - } - - /* list of classes on course landing page */ - ol.class-list { - list-style:none; - margin-left:0; - } - ol.class-list>li { - margin:0 0 15px; - padding:5px 0 0; - overflow:hidden; - border-top:1px solid #ccc; - } - ol.class-list li a.title { - font-size:16px; - margin:0; - clear:left; - display:block; - height:32px; - padding:0 4px; - } - ol.class-list li a.title h2 { - color:inherit; - margin:0 0 10px; - display:block; - float:left; - width:675px; - } - ol.class-list li a.title span { - display:none; - float:left; - font-size:18px; - font-weight:bold; - background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%; - width: 10px; - height: 32px; - } - ol.class-list li a.title:hover { - background:#ddd; - color:#258AAF !important; - } - ol.class-list li a.title:hover span { - display:block; - } - - #jd-content - ol.class-list li img { - float:left; - clear:left; - width:64px; - margin:0 20px 0 0; - } - ol.class-list li p.description { - float:left; - display:block; - width:250px; - margin:0; - } - ol.class-list li p.description.article { - width: 550px; - } - ol.class-list ol { - float:left; - width:320px; - margin:0 0 0 30px; - list-style:none; - margin:0 0 0 20px; - } - ol.class-list div.lessons li { - margin:0 0 6px; - line-height:16px; - } - - - .hide { - display:none !important; - } - - .content-footer.next-class { - display:block; - border:0; - margin-top:0; - padding-top:0; - } - - .content-footer.next-class a.next-class-link { - display:block; - float:right; - text-transform:uppercase; - } - - - - /* inner-doc tabs w/ title */ - -div#title-tabs-wrapper { - border-bottom:1px solid #ccc; - margin:20px 0 30px; -} -h1.with-title-tabs { - display:inline-block; - margin:0 0 -1px 0; - padding:0 60px 0 0; - border-bottom:1px solid #F9F9F9; -} -ul#title-tabs { - list-style:none; - padding:0; - height:29px; - margin:0; - font-size:16px; - line-height:26px; - display:inline-block; - vertical-align:bottom; -} -ul#title-tabs li { - display:block; - float:left; - margin-right:40px; - border-bottom: 3px solid transparent; -} -ul#title-tabs li.selected { - border-bottom: 3px solid #93C; -} -ul#title-tabs li a { - color:#333; -} -ul#title-tabs li a:hover, -ul#title-tabs li a:active { - color:#93C !important; -} - - - -/* content body */ -@-webkit-keyframes glowheader { - from { - background-color: #33b5e5; - color: #000; - border-bottom-color: #000; } - - to { - background-color: transparent; - color: #33b5e5; - border-bottom-color: #33b5e5; } } - -@-moz-keyframes glowheader { - from { - background-color: #33b5e5; - color: #000; - border-bottom-color: #000; } - - to { - background-color: transparent; - color: #33b5e5; - border-bottom-color: #33b5e5; } } - -@keyframes glowheader { - from { - background-color: #33b5e5; - color: #000; - border-bottom-color: #000; } - - to { - background-color: transparent; - color: #33b5e5; - border-bottom-color: #33b5e5; } } - -h2:target, -h3:target { - -webkit-animation-name: glowheader; - -moz-animation-name: glowheader; - animation-name: glowheader; - -webkit-animation-duration: 0.7s; - -moz-animation-duration: 0.7s; - animation-duration: 0.7s; - -webkit-animation-timing-function: ease-out; - -moz-animation-timing-function: ease-out; - animation-timing-function: ease-out; } - -.design ol h4 { - margin-bottom:0; -} -.design ol { - counter-reset: item; } - .design ol>li { - font-size: 14px; - line-height: 20px; - list-style-type: none; - position: relative; } - .design ol>li:before { - content: counter(item) ". "; - counter-increment: item; - position: absolute; - left: -20px; - top: 0; } - .design ol li.value-1:before { - content: "1. "; } - .design ol li.value-2:before { - content: "2. "; } - .design ol li.value-3:before { - content: "3. "; } - .design ol li.value-4:before { - content: "4. "; } - .design ol li.value-5:before { - content: "5. "; } - .design ol li.value-6:before { - content: "6. "; } - .design ol li.value-7:before { - content: "7. "; } - .design ol li.value-8:before { - content: "8. "; } - .design ol li.value-9:before { - content: "9. "; } - .design ol li.value-10:before { - content: "10. "; } -.design .with-callouts ol>li { - list-style-position: inside; - margin-left: 0; } - .design .with-callouts ol>li:before { - display: inline; - left: -20px; - float: left; - width: 17px; - color: #33b5e5; - font-weight: 500; } -.design .with-callouts ul>li { - list-style-position: outside; } - -/* special list items */ -li.no-bullet { - list-style-type: none !important; } -li.no-bullet *{ - margin:0; } - -.design li.with-icon { - position: relative; - margin-left: 20px; - min-height: 30px; } - .design li.with-icon p { - margin-left: 0 !important; } - .design li.with-icon:before { - position: absolute; - left: -40px; - top: 0; - content: ''; - width: 30px; - height: 30px; } - .design li.with-icon.tablet:before { - background-image: url(../images/styles/ico_phone_tablet.png); } - .design li.with-icon.web:before { - background-image: url(../images/styles/ico_web.png); } - .design li.with-icon.action:before { - background-image: url(../images/styles/ico_action.png); } - .design li.with-icon.use:before { - background-image: url(../images/styles/ico_use.png); } - -/* figures and callouts */ -.figure { - position: relative; } - .figure.pad-below { - margin-bottom: 20px; } - .figure .figure-callout { - position: absolute; - color: #fff; - font-weight: 500; - font-size: 16px; - line-height: 23px; - text-align: center; - background: transparent url(../images/styles/callout.png) no-repeat scroll 50% 50%; - padding-right: 2px; - width: 30px; - height: 29px; - z-index: 1000; } - .figure .figure-callout.top { - top: -9px; } - .figure .figure-callout.right { - right: -5px; } - -.figure-caption { - margin: 0 10px 20px 0; - font-size: 14px; - line-height: 20px; - font-style: italic; } - -/* rows of figures */ -.figure-row { - font-size: 0; - line-height: 0; - /* to prevent space between figures */ } - .figure-row .figure { - display: inline-block; - vertical-align: top; } - .figure-row .figure + .figure { - margin-left: 10px; - /* reintroduce space between figures */ } - -/* video containers */ -.framed-galaxynexus-land-span-13 { - background: transparent url(../images/styles/device_galaxynexus_blank_land_span13.png) no-repeat -scroll top left; - padding: 42px 122px 62px 126px; - overflow: hidden; } - .framed-galaxynexus-land-span-13, .framed-galaxynexus-land-span-13 video, -.framed-galaxynexus-land-span-13 img { - width: 512px; - height: 286px; } - - -.framed-galaxynexus-land-span-8{ - background: transparent url(../images/styles/device_galaxynexus_blank_land_span8.png) no-repeat -scroll top left; - padding: 26px 68px 38px 72px; - overflow: hidden; } - .framed-galaxynexus-land-span-8, .framed-galaxynexus-land-span-8 video, -.framed-galaxynexus-land-span-8 img { - width: 320px; - height: 180px; } - -.framed-galaxynexus-port-span-9 { - background: transparent url(../images/styles/device_galaxynexus_blank_port_span9.png) no-repeat -scroll top left; - padding: 95px 122px 107px 124px; - overflow: hidden; } - .framed-galaxynexus-port-span-9, .framed-galaxynexus-port-span-9 video, -.framed-galaxynexus-port-span-9 img { - width: 274px; - height: 488px; } - -.framed-galaxynexus-port-span-5 { - background: transparent url(../images/styles/device_galaxynexus_blank_port_span5.png) no-repeat -scroll top left; - padding: 75px 31px 76px 33px; - overflow: hidden; } - .framed-galaxynexus-port-span-5, .framed-galaxynexus-port-span-5 video, -.framed-galaxynexus-port-span-5 img { - width: 216px; - height: 384px; } - -/* landing page disclosures */ -.landing-page-link { - text-decoration: none; - font-weight: 500; - color: #333333; } - .landing-page-link:after { - content: ''; - background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%; - width: 10px; - height: 10px; - display: inline-block; - margin-left: 5px; } - -/* tooltips */ -.tooltip-box { - position: absolute; - background-color: rgba(0, 0, 0, 0.9); - border-radius: 2px; - font-size: 14px; - line-height: 20px; - color: #fff; - padding: 6px 10px; - max-width: 250px; - z-index: 10000; } - .tooltip-box.below:after { - position: absolute; - content: ''; - line-height: 0; - display: block; - top: -10px; - left: 5px; - border: 5px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.9); } - -/* video note */ -.video-instructions { - margin-top: 10px; - margin-bottom: 10px; } - .video-instructions:before { - content: ''; - background: transparent url(../images/styles/ico_movie_inline.png) no-repeat scroll top left; - display: inline-block; - width: 12px; - height: 12px; - margin-right: 8px; } - .video-instructions:after { - content: 'Click device screen to replay movie.'; } - -/* download buttons */ -.download-button { - display: block; - margin-bottom: 5px; - text-decoration: none; - background-color: #33b5e5; - color: #fff !important; - font-weight: 500; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12); - padding: 6px 12px; - border-radius: 2px; } - .download-button:hover, .download-button:focus { - background-color: #0099cc; - color: #fff !important; } - .download-button:active { - background-color: #006699; } - -/* UI tables and other things found in Writing style and Settings pattern */ -.ui-table { - width: 100%; - background-color: #282828; - color: #fff; - border-radius: 2px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); - border-collapse: separate; } - .ui-table th, - .ui-table td { - padding: 5px 10px; - background-color: inherit; - border:0;} - .ui-table thead th { - font-weight: bold; } - .ui-table tfoot td { - border-top: 1px solid #494949; - border-right: 1px solid #494949; - text-align: center; } - .ui-table tfoot td:last-child { - border-right: 0; } - -.layout-with-list-item-margins { - margin-left: 30px !important; } - -.emulate-content-left-padding { - margin-left: 10px; } - -.do-dont-label { - margin-bottom: 10px; - padding-left: 20px; - background: transparent none no-repeat scroll 0px 3px; } - .do-dont-label.bad { - background-image: url(../images/styles/ico_wrong.png); } - .do-dont-label.good { - background-image: url(../images/styles/ico_good.png); } - - - - - - - - - - - - - - - - - - - -/***** PREVIOUSLY style.css ******************/ - - - - - -@media screen, projection, print { -[dir='rtl'] { - direction: rtl; -} -html { - line-height: 20px; -} -pre, table, input, textarea, code { - font-size: 1em; -} -address, abbr, cite { - font-style: normal; -} -[dir='rtl'] th { - text-align: right; -} -html[lang^=ja] blockquote, html[lang^=ja] q, html[lang^=ko] blockquote, html[lang^=ko] q, -html[lang^=zh] blockquote, html[lang^=zh] q { - font-style: normal; -} -q { - font-style: italic; -} -fieldset, iframe, img { - border: 0; -} -img { - -ms-interpolation-mode: bicubic; - vertical-align: middle; - max-width: 100%; -} -q { - quotes: none; -} -sup, sub { - font-size: 11px; - line-height: 0; -} -} - -@media screen, projection { - -table, fieldset { - margin: 0; -} -h1 { - color:#333; - font-size: 34px; - margin: 36px 0 27px; - padding:0 0 10px; - font-weight:300; -} -h1, h2 { - line-height: 30px; -} -h1.short { - margin-right:320px; -} -h1.short { - margin-right:320px; -} -h1.super { - font-size: 37px; -} -h2 { - color:#333; - font-size: 26px; - margin: 32px 0 20px; - padding:0; - font-weight:300; -} -h3 { - color:#333; - font-size: 21px; - font-weight:400; - margin:21px 0 14px 0; -} -h3, h4 { - line-height: 21px; -} -h4 { - font-size: 18px; - margin: 12px 0; - font-weight:500; -} -h5 { - font-size: 14px; -} -h5, h6 { - margin: 5px 0; -} -h6 { - font-size: 12px; -} - - - -hr { /* applied to the bottom of h2 elements */ - height: 1px; - margin: 5px 0 20px; - border: 0; - background: #ccc; -} -p, pre, table, form { - margin: 0 0 15px; -} -small { - font-size: 11.5px; - color: #000; -} -ul, ol { - margin: 0 0 15px 18px; - padding: 0; -} -[dir='rtl'] ul, [dir='rtl'] ol { - margin: 10px 30px 10px 10px; -} -ul ul, ul ol, ol ul, ol ol { - margin-bottom: 0; - margin-top: 0; -} -li { - margin:0 0 5px; -} -dt { - font-weight:bold; -} -dd { - margin:0 0 10px 30px; - padding: 5px; -} -dd p, -dd pre, -dd ul, -dd ol, -dd dl { - margin:10px 0 0; -} -li p, -li pre, -li ul, -li ol, -li dl { - margin-top:5px; - margin-bottom:5px; -} -pre strong, pre b, a strong, a b, a code { - color: inherit; -} -pre, code { - color: #060; - font: 13px/1.5 monospace; -} -code { - font-weight:bold; - font: 13px/14px monospace; -} - -legend { - display: none; -} -a:link, a:visited { - color: #258aaf; - text-decoration: none; -} -a:focus, a:hover, a:active { - color: #33B5E5; - text-decoration: none; -} -strong, b { - font-weight:bold; - color: #222; -} -table { - border-collapse: collapse; - border-spacing: 0; - border:0; - margin: .5em 1em 1em 0; - width:100%; /* consistent table widths; within IE's quirks */ - background-color:#f7f7f7; -} -th, td { - padding: 4px 12px; - vertical-align: top; - text-align: left; -} -td { - background-color:inherit; - border:solid 1px #DDD; -} -td *:last-child { - margin-bottom:0; -} -th { - background-color: #999; - color: #fff; - border:solid 1px #DDD; - font-weight: normal; -} -tr:first-of-type th:first-of-type:empty { - visibility: hidden; -} - -/* opcodes table */ - -table.instruc td:first-child { - width: 12%; -} - -table.instruc td:first-child + td { - width: 23%; -} - -table.instruc td:first-child + td + td { - width: 28%; -} - -table.instruc td:first-child + td + td + td { - width: 37%; -} - -/* supplemental opcode format table */ - -table.supplement td:first-child { - width: 20%; -} - -table.supplement td:first-child + td { - width: 20%; -} - -table.supplement td:first-child + td + td { - width: 60%; -} - -/* math details table */ - -table.math td:first-child { - width: 10%; -} - -table.math td:first-child + td { - width: 30%; -} - -table.math td:first-child + td + td { - width: 60%; -} - -/* -------------------------------------------------------------------------- -Footer -*/ -.line { - clear: both; - background: #acbc00; - background: -moz-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #acbc00), -color-stop(50%, #acbc00), color-stop(50%, #bdde00), color-stop(100%, #bdde00)); - background: -webkit-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%); - background: -o-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%); - background: -ms-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%); - background: linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%); - height: 2px; - margin-top: 150px; - position: relative; - z-index: 11; -} -#footer { - font-size:11px; - clear: both; - color: #999; - padding: 15px 0; - margin-top:10px; - width:auto; -} -#footer-local ul { - list-style: none; - margin: 5px 0 30px 0; -} -#footer-local li { - display: inline; -} -#footer-local li+li:before { - content: '|'; - padding: 0 3px; - color: #e5e5e5; -} -#footer-global { - padding: 10px 15px; - background: #f5f5f5; -} -#footer-global { - border-top: 1px solid #ebebeb; - font-size: 11.5px; - line-height: 1.8; - list-style: none; -} -#footer-global ul { - margin: 0; -} -#footer-global li { - display: inline; - font-weight: bold; -} -#footer-global li+li:before { - content: '¬?'; - padding: 0 3px; -} -* html #footer-global li { - margin: 0 13px 0 0; -} -* [dir='rtl'] #footer-global li { - margin: 0 0 0 13px; -} -*+html #footer-global li { - margin: 0 13px 0 0; -} -*+[dir='rtl'] #footer-global li { - margin: 0 0 0 13px; -} -#footer-global li a { - font-weight: normal; -} -.locales { - margin: 10px 0 0 0px; -} -[dir='rtl'] .locales { - background-position: right center; - float: left; - padding: 0 24px 0 0; -} -.locales form { - margin: 0; -} -.locales select, .sites select { - line-height: 3.08; - margin: 0px 0; - border: solid 1px #EBEBEB; - -webkit-appearance: none; - background: white url('../images/arrows-up-down.png') right center no-repeat; - height: 30px; - color: #222; - line-height: normal; - padding: 5px; - width: 230px; -} -} - -/* ============================================================================= - Print Only - ========================================================================== */ -@media print { - /* configure printed page */ - @page { - margin: 0.75in 1in; - widows: 4; - orphans: 4; - } - - /* reset spacing metrics */ - html, body, .wrap { - margin: 0 !important; - padding: 0 !important; - width: auto !important; - } - - /* leave enough space on the left for bullets */ - body { - padding-left: 20px !important; - } - #doc-col { - margin-left: 0; - } - - /* hide a bunch of non-content elements */ - #header, #footer, #nav-x, #side-nav, - .training-nav-top, .training-nav-bottom, - #doc-col .content-footer, - .nav-x, .nav-y, - .paging-links, - a.totop { - display: none !important; - } - - /* remove extra space above page titles */ - #doc-col .content-header { - margin-top: 0; - } - - /* bump up spacing above subheadings */ - h2 { - margin-top: 40px !important; - } - - /* print link URLs where possible and give links default text color */ - p a:after { - content: " (" attr(href) ")"; - font-size: 80%; - } - p a { - word-wrap: break-word; - } - a { - color: inherit; - } - - /* syntax highlighting rules */ - .str { color: #060; } - .kwd { color: #006; font-weight: bold; } - .com { color: #600; font-style: italic; } - .typ { color: #404; font-weight: bold; } - .lit { color: #044; } - .pun { color: #440; } - .pln { color: #000; } - .tag { color: #006; font-weight: bold; } - .atn { color: #404; } - .atv { color: #060; } -} - -/* ============================================================================= - Columns - ========================================================================== */ - -@media screen, projection, print { -.full { - padding: 2.5em 0; - border-top: solid 1px #ddd; - border-bottom: solid 1px #ddd; - background: #f7f7f7; -} -.wrap { - margin: 0 auto; - width: 940px; - clear: both; -} -.cols { - height: 1%; - margin: 0 -1.533742331288343558282%; - width: 103.06748466257669%} -*+html .cols { - margin-bottom: 20px; -} -.cols:after { - clear: both; - content: ' '; - display: block; - height: 0; - visibility: hidden; -} -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, -.col-13, .col-14, .col-15, .col-16 { - display: inline; - float: left; - margin-left: 10px; - margin-right: 10px; -} -/* -* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html -.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12 { - margin: 0; - padding: 0 1.4% 20px; -} -[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5, -[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10, -[dir='rtl'] .col-11, [dir='rtl'] .col-12 { - float: right; -} -*/ -.col-1 { width: 40px } -.col-2 { width: 100px } -.col-3 { width: 160px } -.col-4 { width: 220px } -.col-5 { width: 280px } -.col-6 { width: 340px } -.col-7 { width: 400px } -.col-8 { width: 460px } -.col-9 { width: 520px } -.col-10 { width: 580px } -.col-11 { width: 640px } -.col-12 { width: 700px } -.col-13 { width: 760px } -.col-14 { width: 820px } -.col-15 { width: 880px } -.col-16 { width: 940px } -} - -.col-right { - margin-right:0px; -} - -@media screen and (max-width:772px) { -.col-5, .col-6, .col-7 { - clear: both; - width: 97.0238096%} -} - -/* ============================================================================= - Layout - ========================================================================== */ -@media screen, projection, print { - -/* -------------------------------------------------------------------------- -Header, Login, Nav-X, Search -*/ -#header { - padding: 2.2em 0 0.2em 0; -} -#header:before, #header:after { - content: ""; - display: table; - clear: both -} -.logo, .nav-x { - float: left; -} -.nav-x { - margin-top: -2px; - list-style-type: none; -} -.nav-x a { - color: #333; - font-size: 16px; -} -.design a.selected { - color: #33b5e5; -} -.develop a.selected { - color: #F80; -} -.distribute a.selected { - color: #9C0; -} -.source a.selected { - color: #33b5e5; -} -.devices a.selected { - color: #F80; -} -.security a.selected { - color: #9C0; -} -.compatibility a.selected { - color: #9933CC; -} - - -.nav-x li { - display: inline; - margin-right: 45px; -} -.search { - float: right; - position: relative; - width: 220px -} -.search .bottom, .search .left, .search .right { - position: absolute; - background-color: #a3a3a3; -} -.search .bottom { - width: 220px; - height: 1px; - top: 24px; - left: 0 -} -.search .left, .search .right { - height: 5px; - width: 1px -} -.search .left { top: 19px; left: 0 } -.search .right { top: 19px; right: 0 } -.search form { - float: left; - margin-top: 2px; - width: inherit; -} -.search .close, -#player-frame .close { - position: absolute; - right: 8px; - bottom: 4px; - width: 16px; - height: 16px; - margin: 0; - text-indent: -1000em; - background: url(../images/close.png) no-repeat 0 0; - z-index:9999; -} -.search .close:hover, .search .close:focus, -#player-frame .close:hover, #player-frame .close:focus { - background-position: -16px 0; - cursor:pointer; -} -#player-frame .close { - top: 6px; -} -.search form input { - color: #999; - font-size: 1em; - width: inherit; - border: none; - margin: 0; - padding:0 0 0 6px; - z-index: 1500; - background-color: transparent -} -.search:hover .bottom, .search:hover .left, .search:hover .right { - background-color: #33b5e5; -} -.search:hover .icon { - background-position: -8px 0 -} -.search form input:focus { - color: #222; - font-weight: bold; - outline:0; -} -/* Search Dropdown */ -.search-dropdown { - padding: 15px; - width: 192px; - border: solid 1px #c5c5c5; - background: #fff; - position: absolute; - top: 35px; - left: 0; - -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2); - -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2); - box-shadow: 0 0 10px rgba(0,0,0,0.2) -} -.search-dropdown ul, .search-dropdown ul li { - list-style-type: none; - margin: 0; - padding: 0 -} -.search-dropdown ul li { - clear: both -} -.search-dropdown img { - float: left; - margin: 0 10px 10px 0 -} -.search-dropdown h6 { - color: #222; - margin: 0; - line-height: normal -} -.search-dropdown .desc { - color: #999; - font-size: 11.5px; - line-height: normal; - margin: 0; -} -.search-dropdown li a:hover h6, .search-dropdown li a:hover .desc { - color: #33b5e5 -} -/* -------------------------------------------------------------------------- -Buttons -*/ -.button, a.button, .button-secondary, a.button-secondary { - border-image: initial; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - cursor: pointer; -} -.button, a.button { - display:inline-block; - background-color: #09c; - background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c)); - background-image: -webkit-linear-gradient(top, #2faddb, #09c); - background-image: -moz-linear-gradient(top, #2faddb, #09c); - background-image: -ms-linear-gradient(top, #2faddb, #09c); - background-image: -o-linear-gradient(top, #2faddb, #09c); - background-image: linear-gradient(top, #2faddb, #09c); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#0099cc',GradientType=0); - border: 1px solid #3990ab; - color: #fff; -} -.button-secondary, a.button-secondary { - background-color: #f3f3f3; - border: 1px solid #dcdcdc; - color: #444; -} -a.button, a.button:visited, a.button-secondary, a.button-secondary:visited { - margin-right: 16px; - font-weight: 400; - min-width: 54px; - outline: 0; - padding: 8px 15px; - text-align: center; -} -.button, .button-secondary { - margin-right: 16px; - font-weight: 400; - min-width: 54px; - outline: 0; - padding: 0 15px; - text-align: center; -} -.button:hover, a.button:hover { - border-color: #09c; - background-color: #4cadcb; - background-image: -webkit-gradient(linear, left top, left bottom, from(#5dbcd9), to(#4cadcb)); - background-image: -webkit-linear-gradient(top, #5dbcd9, #4cadcb); - background-image: -moz-linear-gradient(top, #5dbcd9, #4cadcb); - background-image: -ms-linear-gradient(top, #5dbcd9, #4cadcb); - background-image: -o-linear-gradient(top, #5dbcd9, #4cadcb); - background-image: linear-gradient(top, #5dbcd9, #4cadcb); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', -EndColorStr='#4cadcb',GradientType=0); - color: #fff !important; -} -.button:active, a.button:active { - background-color: #1e799a; - background-image: none; - border-color: #30b7e6; -} -a.button.big.subtitle { - line-height:18px; -} -.button-secondary:hover, a.button-secondary:hover { - border-color: #dbdbdb; - background-color: #f3f3f3; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); - background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); - background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); - background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); - background-image: -o-linear-gradient(top, #f9f9f9, #ececec); - background-image: linear-gradient(top, #f9f9f9, #ececec); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9', -EndColorStr='#ececec'); - color: #33B5E5 !important; -} -.button-secondary:active, a.button-secondary:active { - border-color: #dadada; - background: #ebebeb; /* Old browsers */ - /* IE9 SVG, needs conditional override of 'filter' to 'none' */ - background: -url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/ -Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0Jv -eD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+ -CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg -eDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJl -YiIgc3RvcC1vcGFjaXR5PSIxIi8+ -CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+ -CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZmFmYSIgc3RvcC1vcGFjaXR5PSIxIi8+ -CiAgICA8c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+ -CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNmY2ZjYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFy -R3JhZGllbnQ+ -CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIg -Lz4KPC9zdmc+); - background: -moz-linear-gradient(top, #ebebeb 0%, #f9f9f9 5%, #fafafa 50%, #f9f9f9 90%, -#ffffff 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb), -color-stop(5%,#f9f9f9), color-stop(50%,#fafafa), color-stop(90%,#f9f9f9), color-stop(100%,#ffffff)); -/* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 -90%,#ffffff 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff -100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff -100%); /* IE10+ */ - background: linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff -100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebebeb', -endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */ - -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); - -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); - color: #258AAF !important; -} -.button.big { - font-size:20px; - display:inline-block; -} -.button.big span.small { - font-size:14px; -} -.button-caption { - margin-top:10px; - font-size:12px; - font-style:italic; -} - -.button.disabled, -.button.disabled:hover, -.button.disabled:active { - background:#ebebeb; - color:#999 !important; - border-color:#999; - cursor:default; -} - -.training-nav-top a.button-secondary, -.training-nav-bottom a.button-secondary { - display:block; - float:left; - margin:0; - width:130px; - text-transform:uppercase; - font-weight:bold; - - background-color: #f3f3f3; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); - background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); - background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); - background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); - background-image: -o-linear-gradient(top, #f9f9f9, #ececec); - background-image: linear-gradient(top, #f9f9f9, #ececec); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9', -EndColorStr='#ececec'); - color: #33B5E5; -} - -.training-nav-top a.button-secondary:hover, -.training-nav-bottom a.button-secondary:hover { - background-color: #09c; - background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c)); - background-image: -webkit-linear-gradient(top, #2faddb, #09c); - background-image: -moz-linear-gradient(top, #2faddb, #09c); - background-image: -ms-linear-gradient(top, #2faddb, #09c); - background-image: -o-linear-gradient(top, #2faddb, #09c); - background-image: linear-gradient(top, #2faddb, #09c); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c'); - border: 1px solid #3990ab; - color: #fff !important; -} - -.training-nav-top a.button-secondary.last, -.training-nav-bottom a.button-secondary.last { - border-left:0; -} - -.training-nav-top a.button-secondary.double-size, -.training-nav-bottom a.button-secondary.double-size { - width:291px; -} - -.training-nav-top, -.training-nav-bottom { - float:right; - margin:0 0 0 20px; -} - -.training-nav-bottom { - padding:0 0 20px; -} - -#tb-wrapper, -#qv-wrapper { - float:right; - clear:right; - margin:-27px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */ - padding:0 0 20px; -} - -#tb, -#qv { - font-size:13px; - line-height:18px; - width:238px; - border:1px solid #ccc; - float:right; -} - -#tb { - width:278px; -} - -#tb h2, -#qv h2 { - margin:10px 15px; - padding:0; - text-transform:uppercase; - border-bottom:1px solid gainsboro; -} - -#tb *, -#qv * { - font-size:inherit; -} - -#tb .download-box { - padding:0 0 0 15px; -} - -#tb .download-box .filename { - font-size:11px; - margin:4px 4px 10px; - color:#666; -} - - -/* Dev guide quicknav */ - -.sidebox-wrapper { - float:right; - clear:right; - margin:0 0 0 20px; - padding:0 0 20px; -} - -.sidebox { - width:226px; - font-size:13px; - line-height:18px; - border-left:4px solid #99CC00; - float:right; - padding:0 0 0 10px; - margin:0 0 1em 20px; -} - -.sidebox h2, -.sidebox h3, -.sidebox h4, -.sidebox h5 { - font-weight:bold; - margin:0 0 10px; -} - -.sidebox * { - font-size:inherit; -} - -#tb ol, -#tb ul, -#qv ul { - margin:0 15px 10px 35px; -} - -#qv ol { - list-style:none; - margin:0 15px 15px; - font-size:inherit; - line-height:inherit; -} - -#tb ol ol, -#tb ul ul, -#qv ol ol, -#qv ul ul, -.sidebox ol ol, -.sidebox ul ul { - margin-bottom:0; -} - -#qv ol ol { - margin:3px 0 3px 15px; -} - -.sidebox p, -#qv p, -#tb p { - margin: 0 0 10px; -} - - -/* -------------------------------------------------------------------------- -Form -*/ -.article form { - margin: 0 0 20px; -} -.article form .form-required { - color: #dd4b39; -} -.article form fieldset { - margin: 0 0 20px; - padding: 0; -} -.article form legend { - display: block; - line-height: 1.5; - margin: 0; - padding: 0; -} -/* -.article form ol, .article form ul { - margin: 0 0 0 1em; - padding: 0 0 0 1em; -} -[dir='rtl'] .article form ol, [dir='rtl'] .article form ul { - margin: 0 1em 0 0; - padding: 0 1em 0 0; -} -.article form ol ul, .article form ul ul, [dir='rtl'] .article form ol ul, [dir='rtl'] .article form -ul ul { - list-style: none; - margin: 0; - padding: 0; -} -.article form li { - margin: 0 0 20px; -} -.article form li li { - margin: 0 0 5px; -} -*/ -.article form label { - display: block; - margin: 0 0 5px; - padding: 0; -} -.article form input[type='text'], .article form select, .article form textarea, .article form -.checkbox-group, .article form .radio-group { - margin-bottom: 15px; -} -.checkbox-group input { - width: 13px; - height: 13px; - background: #fff; - border: solid 1px #c6c6c6; - float: left; -} -.article form .checkbox-group, .article form .radio-group { - display: block -} -.article form select { - border: solid 1px #ebebeb; - border-top-color: #ddd; - -webkit-appearance: none; - background: #f3f3f3 url(../images/arrows-up-down.png) right center no-repeat; - height: 30px; - color: #222; - line-height: normal; - padding: 5px; - width: 130px; -} - -.article form .browse .browse-msg { - font-size: 11.5px; -} -.article form .browse .button-secondary { - height: auto; - line-height: 25px; - font-size: 11px; - padding: 0 8px; - margin: 0 10px 15px 0; -} -.article form input[type='text'], .article form textarea { - border: 1px solid #ebebeb; - border-top-color: #dcdcdc; - color: #222; - line-height: normal; - padding: 6px 10px; - width: 300px; -} -.article form textarea { - height: 150px; -} -.article form input[type='text']:focus, .article form textarea:focus { - border-color: #33B5E5; - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2); - -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2); - outline: 0; -} -.article form input[disabled], .article form textarea[disabled], .article form label.form-disabled { - color: #999; -} -.article form input[type='text'][disabled], .article form textarea[disabled] { - background-color: #ebebeb; -} -form .form-error input[type='text'], form .form-error textarea { - border-color: #dd4b39; - margin-right: 20px; -} -.aside { - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - margin: 10px 0; - padding: 20px; - color: #666; - position: relative; - background: #f9f9f9; -} -/* -.aside, .notification, .promo { - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - margin: 10px 0; - padding: 10px; - position: relative; -} -.aside>:first-child, .notification>:first-child, .promo>:first-child { - margin-top: 0; -} -.aside>:last-child, .notification>:last-child, .promo>:last-child { - margin-bottom: 0; -} -.aside { - background: #f9f9f9; -} -.notification { - background: #fffbe4; - border-color: #f8f6e6; -} -.promo { - background: #f6f9ff; - border-color: #eff2f9; -} -*/ - -/* SDK TOS styles */ - -div.sdk-terms { - white-space: pre-wrap; - word-wrap: break-word; - font-family: inherit; - font-size: inherit; - padding: 10px; - height: 370px; - width: 738px; - border: 1px solid #444; - background: transparent; - overflow:auto; - margin:0 0 10px; -} - -div.sdk-terms.fullsize { - padding: 0; - height: auto; - width: auto; - border:none; -} - -div.sdk-terms h3, -div.sdk-terms h2 { - margin:0; -} - -div#sdk-terms-form { - padding:0 0 0 10px; -} - -div#sdk-terms-form input { - display:inline; - margin:4px 4px 4px 0; -} - - -/* -------------------------------------------------------------------------- -Code Style -*/ -pre { - margin:0 0 1em 0; - padding: 1em; - overflow: auto; - border: solid 1px #ddd; - background: #f7f7f7; -} -.str { color: #080; } -.kwd { color: #008; } -.com { color: #800; } -.typ { color: #606; } -.lit { color: #066; } -.pun { color: #660; } -.pln { color: #000; } -.tag { color: #008; } -.atn { color: #828; } -.atv { color: #080; } -.dec { color: #606; } - -/* -------------------------------------------------------------------------- -Three-Pane -*/ -/* Package Nav & Classes Nav */ -.three-pane { - position: relative; - border-top: solid 1px #ebebeb; -} -#packages-nav .js-pane, -#classes-nav .js-pane { - overflow:visible; -} -#packages-nav { - height:270px; - max-height: inherit; - overflow: hidden; - position: relative; -} -#classes-nav { - overflow: hidden; - position: relative; -} -#packages-nav ul, #classes-nav ul { - list-style-type: none; - margin: 10px 0 20px 0; - padding: 0; -} -#classes-nav li { - font-weight: bold; - margin: 5px 0; -} -#packages-nav li, -#classes-nav li li { - margin: 0; -} -#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited, -#classes-nav li a, #classes-nav li a:active, #classes-nav li a:visited { - padding: 0 0 0 4px; -} -#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited, -#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited, -#nav-tree li a, #nav-tree li a:active, #nav-tree li a:visited { - color: #222; - font-weight: normal; -} -#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited, -#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited { - display: block; -} -#packages-nav li.selected a, #packages-nav li.selected a:active, #packages-nav li.selected -a:visited, -#classes-nav li li.selected a, #classes-nav li li.selected a:active, #classes-nav li li.selected -a:visited, -#nav-tree li div.selected { - font-weight: 500; - color: #0099cc; - background-color:#fff; } - #packages-nav li.selected ul li a, - #classes-nav li.selected ul li a { - /* don't highlight child items */ - color: #555555; } -#nav-tree li div.selected a { - font-weight: 500; - color: #0099cc; -} -#nav-swap { - height:30px; - border-top:1px solid #ccc; - display: none; -} -#nav-swap a { - display:inline-block; - height:100%; - color: #222; - font-size: 12px; - padding: 5px 0 5px 5px; -} - -#nav-swap .fullscreen { - float: right; - width: 24px; - height: 24px; - text-indent: -1000em; - padding:0; - margin:3px 5px 0; - background: url(../images/fullscreen.png) no-repeat -24px 0; -} -#nav-swap .fullscreen.disabled { - background-position: 0 0; -} -#nav-swap .fullscreen:hover, -#nav-swap .fullscreen:focus { - cursor:pointer; -} - - -/* nav tree */ -#side-nav, #devdoc-nav, #swapper, -#nav-tree, #tree-list { - overflow:hidden; - margin-left:0; -} - -#nav-tree, #swapper { - display: none; -} - -#nav-tree ul { - list-style:none; - padding:0; - margin:10px 0; -} - -#nav-tree ul li div { - padding:0 0 0 4px; -} - -#side-nav #nav-tree ul li a, -#side-nav #nav-tree ul li span.no-children { - padding: 0; - margin: 0; -} - -#nav-tree .plus { - margin: 0 3px 0 0; -} - -#nav-tree ul ul { - list-style: none; - margin: 0; - padding: 0 0 0 0; -} - -#nav-tree ul li { - margin: 0; - padding: 0 0 0 0; - white-space: nowrap; -} - -#nav-tree .children_ul { - padding:0; - margin:0; -} -#nav-tree .children_ul li div { - padding:0 0 0 10px; -} -#nav-tree .children_ul .children_ul li div { - padding:0 0 0 20px; -} - -#nav-tree a.nolink { - color: #222; - text-decoration: none; -} - -#nav-tree span.label { - width: 100%; -} - -#nav-tree { - overflow-x: auto; - overflow-y: scroll; - outline:0; -} - - -/* Content */ -#doc-col { - margin-right:0; -} -#doc-content-container { - margin-left: 291px -} -#doc-header, #doc-content { - padding: 1em 2em; -} -#doc-header { - background: #f7f7f7; -} -#doc-header h1 { - line-height: 0; - margin-bottom: 15px; -} -#api-info-block { - float: right; - font-weight: bold; -} -#api-info-block a, #api-info-block a:active, #api-info-block a:visited { - color: #222; -} -#api-info-block a:hover, #api-info-block a:focus { - color: #33B5E5; -} -#api-nav-header { - height:19px; /* plus 16px padding = 35; same as #nav li */ - font-size:14px; - padding: 8px 0; - margin: 0; - border-bottom: 1px solid #CCC; - background:#e9e9e9; - background: rgba(0, 0, 0, 0.05); /* matches #nav li.expanded */ - display: none; - -} -#api-nav-title { - padding:0 5px; - white-space:nowrap; - display: none; -} - -#api-level-toggle { - float:right; - padding:0 5px; -} - -#api-level-toggle label { - margin:0; - vertical-align:top; - line-height: 19px; - font-size:13px; - height: 19px; -} - -#api-level-toggle .select-wrapper { - width: 35px; - display: inline-block; - overflow: hidden; -} -#api-level-toggle select { - border: 0; - appearance:none; - -moz-appearance:none; - -webkit-appearance: none; - background: transparent url(../images/arrows-up-down.png) 23px 5px no-repeat; - color: #222; - height: 19px; - line-height: 19px; - padding: 0; - margin:1px 0 0 0; - width:150%; - font-size:13px; - vertical-align:top; - outline:0; -} - - -/* Toggle for revision notes and stuff */ -div.toggle-content.closed .toggle-content-toggleme { - display:none; -} - -#jd-content img.toggle-content-img { - margin:0 5px 5px 0; -} -div.toggle-content p { - margin:10px 0 0; -} -div.toggle-content-toggleme { - padding:0 0 0 15px; -} - - -/* API LEVEL FILTERED MEMBERS */ - -.absent, -.absent a:link, -.absent a:visited, -.absent a:hover, -.absent * { - color:#bbb !important; - cursor:default !important; - text-decoration:none !important; -} -#devdoc-nav li.absent.selected, -#devdoc-nav li.absent.selected *, -#devdoc-nav div.label.absent.selected, -#devdoc-nav div.label.absent.selected * { - background-color:#eaeaea !important; -} -.absent h4.jd-details-title, -.absent h4.jd-details-title * { - background-color:#f6f6f6 !important; -} -.absent img { - opacity: .3; - filter: alpha(opacity=30); - -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; -} - - - - - - - - - -/* JQUERY RESIZABLE STYLES */ -.ui-resizable { position: relative; } -.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; } -.ui-resizable .ui-resizable-handle { display: block; border-bottom: 1px solid #e4e4e4; } -/*body .ui-resizable-disabled .ui-resizable-handle { display: none; } -body .ui-resizable-autohide .ui-resizable-handle { display: none; }*/ -.ui-resizable-s { cursor: s-resize; height: 10px; width: 100% !important; bottom: -11px; left: 0; -border-bottom: solid 1px #ededed; - background: #f7f7f7 url("../images/resizable-s2.png") no-repeat scroll center center; } -/* -.ui-resizable-e { -cursor: e-resize; width: 10px; right: 0; top: 0; height: 100%; border-right: solid -1px #ededed;background: #f7f7f7 url("../images/resizable-e2.png") no-repeat scroll center center; } -*/ - -/* -------------------------------------------------------------------------- -Lightbox -*/ -.lightbox { - width: 769px; - padding: 1.5em; - margin: 0 auto; - border: solid 1px #dcdcdc; - background: #fff; - -moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.1); - -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1); - box-shadow: 1px 1px 5px rgba(0,0,0,0.1) -} -.lightbox .header { - float: left; - width: 720px; - margin: -10px 20px 10px 0; -} -.lightbox .close { - float: right; - width: 10px; - height: 10px; - margin: -10px -10px 10px 0; - text-indent: -1000em; - background: url(../images/close.png) no-repeat 0 0; -} -.lightbox .close:hover, .lightbox .close:focus { - background-position: -10px 0; -} - -/* -------------------------------------------------------------------------- -Butterbar -*/ -#butterbar-wrapper { - position:absolute; - top:0; - left:0; - width:100%; -} -#butterbar { - width:940px; - margin:0 auto; -} -#butterbar-message { - background-color:#f80; - float:right; - font-size:12px; - font-weight:bold; - padding:0 10px; - border-radius: 0 0 5px 5px; -} -#butterbar-message a {color:#fff !important} -#butterbar-message a:hover {text-decoration:underline;} - -/* -------------------------------------------------------------------------- -Misc -*/ - - -.clearfix:before, .clearfix:after { - content: ""; - display: table -} -.clearfix:after { - clear: both -} -.clearfix { - *zoom: 1 -} -table.blank th, table.blank td { - border: 0; - background: none -} -.caption { - margin: 0.5em 0 2em 0; - color: #000; - font-size: 11.5px; -} - -.nolist { - list-style:none; - margin-left:0; -} -#tb .nolist { - margin-left:15px; -} - - -pre.classic { - background-color:transparent; - border:none; - padding:0; -} - -p.img-caption { - margin: -10px 0 20px; - font-size:13px; - color:#666; -} - -div.figure, -div.figure-right { - float:right; - clear:right; - margin:10px 0 0 0; - padding:0 0 0 20px; - /* width must be defined w/ an inline style matching the image width */ -} - -div.figure-left { - float:left; - clear:left; - margin:10px 0 0 0; - padding:0 20px 0 0; - /* width must be defined w/ an inline style matching the image width */ -} - -img.frame { - border:1px solid #DDD; - padding:4px; -} - -p.table-caption { - margin: 0 0 4px 0; - font-size:13px; - color:#666; -} - -p.code-caption { - margin: 0 0 4px 0; - font: 12px/1.5 monospace; - color:#666; -} - -div.note, -div.caution, -div.warning { - margin: 0 0 15px; -} - -p.note, div.note, -p.caution, div.caution, -p.warning, div.warning { - padding: 0 0 0 10px; - border-left: 4px solid; -} - -p.note, div.note { - border-color: #258AAF; -} - -p.caution, div.caution { - border-color: #FF8800; -} - -p.warning, div.warning { - border-color: #ff4443; -} - -div.note.design { - border-left: 4px solid #33B5E5; -} - -div.note.develop { - border-left: 4px solid #F80; -} - -div.note.distribute { - border-left: 4px solid #9C0; -} - -.note p, .caution p, .warning p { - margin:0 0 5px; -} - -.note p:last-child, .caution p:last-child, .warning p:last-child { - margin-bottom:0; -} - -body.about blockquote { - display:block; - float:right; - width:280px; - font-size:20px; - font-style:italic; - line-height:24px; - color:#33B5E5; - margin:0 0 20px 30px; -} - -div.design-announce p { - margin:0 0 10px; -} - -#devdoc-nav a.totop { - display:block; - top:0; - width:inherit; - background: transparent url(../images/styles/gototop.png) no-repeat scroll 50% 50%; - text-indent:-9999em; -} -#devdoc-nav a.totop { - position:fixed; - display:none; -} -#devdoc-nav a.totop:hover { - background-color:#33B5E5; -} - -.content-footer a.totop { - text-transform:uppercase; - line-height:30px; -} - -.expandable { - height:34px; - padding-left:20px; - position:relative; -} -.expandable:before { - content: ''; - background-image: url(../images/styles/disclosure_down.png); - background-repeat:no-repeat; - background-position: -12px -9px; - width: 20px; - height: 20px; - display: inline-block; - position: absolute; - top: 0; - left: 0; } -} -.expandable.expanded:before { - background-image: url(../images/styles/disclosure_up.png); -} - - - -/* ----------------------------------------------- -Dialog box for popup messages -*/ - -div.dialog { - height:0; - margin:0 auto; -} - -div.dialog>div { - z-index:99; - position:fixed; - margin:70px 0; - width: 391px; - height: 200px; - background: #F7F7F7; --moz-box-shadow: 0 0 15px rgba(0,0,0,0.5); --webkit-box-shadow: 0 0 15px rgba(0,0,0,0.5); -box-shadow: 0 0 15px rgba(0,0,0,0.5); -} -/* IE6 can't position fixed */ -* html div.dialog div { position:absolute; } - - -div#deprecatedSticker { - display:none; - z-index:99; - position:fixed; - right:15px; - top:114px; - margin:0; - padding:1em; - background:#FFF; - border:1px solid #dddd00; - box-shadow:-5px 5px 10px #ccc; - -moz-box-shadow:-5px 5px 10px #ccc; - -webkit-box-shadow:-5px 5px 10px #ccc; -} - -div#naMessage { - display:none; - width:555px; - height:0; - margin:0 auto; -} - -div#naMessage div { - z-index:99; - width:450px; - position:fixed; - margin:50px 0; - padding:4em 4em 3em; - background:#FFF; - border:1px solid #999; - box-shadow:-10px 10px 40px #888; - -moz-box-shadow:-10px 10px 40px #888; - -webkit-box-shadow:-10px 10px 40px #888; -} -/* IE6 can't position fixed */ -* html div#naMessage div { position:absolute; } - -div#naMessage strong { - font-size:1.1em; -} - - -/* -------------------------------------------------------------------------- -Slideshow Controls & Next/Prev -*/ -.slideshow-next, .slideshow-prev { - width: 20px; - height: 36px; - text-indent: -1000em; -} -.slideshow-container { - margin: 2em 0; -} -.slideshow-container:before, .slideshow-container:after { - content: ""; - display: table; - clear: both; -} -a.slideshow-next, a.slideshow-next:visited { - - float: right; - - background: url(../images/arrow-right.png) no-repeat 0 0 - -} - -a.slideshow-prev, a.slideshow-prev:visited { - - float: left; - - background: url(../images/arrow-left.png) no-repeat 0 0 - -} - -.slideshow-next:hover, .slideshow-prev:hover, .slideshow-next:focus, .slideshow-prev:focus { - - background-position: 0 -36px - -} - -.slideshow-next:active, .slideshow-prev:active { - - background-position: 0 -72px - -} -.slideshow-nav { - width: 74px; - margin: 0 auto; -} -.slideshow-nav a, .slideshow-nav a:visited { - display: inline-block; - width: 12px; - height: 12px; - margin: 0 2px 20px 2px; - background: #ccc; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; -} -.slideshow-nav a:hover, .slideshow-nav a:focus { - - background: #33B5E5 -} - -.slideshow-nav a:active { - - background: #1e799a; - background: #ebebeb; - -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); - -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); -} -.slideshow-nav a.active, .slideshow-nav a.active:active, .slideshow-nav a.active:visited { - background: #33B5E5 -} -/* -------------------------------------------------------------------------- -Tabs -*/ -ul.tabs { - padding: 0; - margin: 2em 0 0 0; -} -ul.tabs:before, ul.tabs:after { - content: ""; - display: table; - clear: both; -} -ul.tabs li { - list-style-type: none; - float: left; -} -ul.tabs li a, ul.tabs li a:active, ul.tabs li a:visited { - display: block; - height: 36px; - line-height: 36px; - padding: 0 15px; - margin-right: 2px; - color: #222; - -moz-border-radius-topleft: 2px; - -moz-border-radius-topright: 2px; - -moz-border-radius-bottomright: px; - -moz-border-radius-bottomleft: px; - -webkit-border-radius: 2px 2px px px; - border-radius: 2px 2px px px; - border-top: solid 1px #ebebeb; - border-left: solid 1px #ebebeb; - border-right: solid 1px #ebebeb; - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa)); - background-image: -webkit-linear-gradient(top, #ffffff, #fafafa); - background-image: -moz-linear-gradient(top, #ffffff, #fafafa); - background-image: -ms-linear-gradient(top, #ffffff, #fafafa); - background-image: -o-linear-gradient(top, #ffffff, #fafafa); - background-image: linear-gradient(top, #ffffff, #fafafa); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', -EndColorStr='#fafafa'); -} -ul.tabs li a:hover { - color: #33B5E5; -} -ul.tabs li a.selected { - height: 37px; - color: #33B5E5; - background-color: #f7f7f7; - background-image: none; - border-color: #ddd; -} -.tab-content { - padding: 1.2em; - margin: -1px 0 2em 0; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: solid 1px #ddd; - background: #f7f7f7; -} -/* -------------------------------------------------------------------------- -Feature Boxes -*/ -.feature-box { - width: 291px; - height: 200px; - position: relative; - background: #F7F7F7; -} -.box-border .top, .box-border .bottom, .box-border .left, .box-border .right { - z-index: 100; - position: absolute; - background-color: #aaa; -} -.box-border .top, .box-border .bottom { - width: 291px; - height: 1px; -} -.dialog .box-border .top, -.dialog .box-border .bottom { width:391px; } - -.box-border .left, .box-border .right { - width: 1px; - height: 8px; -} -.box-border .top { top: 0; left: 0 } -.box-border .top .left { top: 1px; left: 0 } -.box-border .top .right { top: 1px; right: 0 } -.box-border .bottom .left { top: -8px; left: 0 } -.box-border .bottom { top: 200px; left: 0 } -.box-border .bottom .right { top: -8px; right: 0 } - -.feature-box h4, -.dialog h4 { - margin: 15px 18px 10px; - padding:0; -} - -.feature-box p, -.dialog p { - margin: 10px 18px; - padding:0; -} -.feature-box .link, -.dialog .link { - border-top: 1px solid #dedede; - bottom: 0; - position: absolute; - width: inherit; -} -.feature-box a, .feature-box h4, -.dialog a, .dialog h4 { - -webkit-transition: color .4s ease; - -moz-transition: color .4s ease; - -o-transition: color .4s ease; - transition: color .4s ease; -} -.feature-box:hover { - cursor: pointer; -} -.feature-box:hover .box-border .top, .feature-box:hover .box-border .bottom, .feature-box:hover -.left, .feature-box:hover .right { - background-color: #33B5E5; -} -.feature-box:hover h4, .feature-box:hover a { - color: #33B5E5; -} -/* -------------------------------------------------------------------------- -Page-Specific Styles -*/ -.colors { - position: relative; - float: left; - width: 92px; - margin: 40px 0 20px; -} -.colors div { - color: #fff; - font-size: 11.5px; - width: 82px; - height: 82px; - margin-top:-30px; - line-height: 82px; - text-align: center; - border: solid 5px #fff; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; -} - - - - - - - - - - - - - - -/* ########### REFERENCE DOCS ################## */ - -#packages-nav h2, -#classes-nav h2 { - font-size:18px; - margin:0; - padding:0 0 0 4px; -} - -#jd-header { - padding: 0 0 5px; - margin: 20px 0 10px; - font-size:13px; - border-bottom:solid 1px #ccc; -} - -#jd-header h1 { - margin:0; - padding:0; -} - -/* page-top-right container for reference pages (holds -links to summary tables) */ -#api-info-block { - font-size:13px; - margin:20px 0 0; - padding:0 10px 6px; - font-weight:normal; - float:right; - text-align:right; - color:#999; - max-width:70%; -} - -#api-info-block div.api-level { - font-weight:bold; - font-size:inherit; - float:none; - color:#222; - padding:0; - margin:0; -} - -/* inheritance table */ -.jd-inheritance-table { - border-spacing:0; - margin:0; - padding:0; - font-size:13px; - background-color:transparent; -} -.jd-inheritance-table tr td { - border: none; - margin: 0; - padding: 0; - background-color:transparent; -} -.jd-inheritance-table .jd-inheritance-space { - font-weight:bold; - width:1em; -} -.jd-inheritance-table .jd-inheritance-interface-cell { - padding-left: 17px; -} - - - -.jd-sumtable a { - text-decoration:none; -} - -.jd-sumtable a:hover { - text-decoration:underline; -} - -/* the link inside a sumtable for "Show All/Hide All" */ -.toggle-all { - display:block; - float:right; - font-weight:normal; - font-size:0.9em; -} - -/* adjustments for in/direct subclasses tables */ -.jd-sumtable.jd-sumtable-subclasses { - margin: 1em 0 0 0; - max-width:968px; - background-color:transparent; - font-size:13px; -} - -/* extra space between end of method name and open-paren */ -.sympad { - margin-right: 2px; -} - -/* right alignment for the return type in sumtable */ -.jd-sumtable .jd-typecol { - text-align:right; -} - -/* adjustments for the expando table-in-table */ -.jd-sumtable-expando { - margin:.5em 0; - padding:0; -} - -/* a div that holds a short description */ -.jd-descrdiv { - padding:3px 1em 0 1em; - margin:0; - border:0; -} - -#jd-content img.jd-expando-trigger-img { - padding:0 4px 4px 0; - margin:0; -} - -.jd-sumtable-subclasses div#subclasses-direct, -.jd-sumtable-subclasses div#subclasses-indirect { - margin:0 0 0 13px; -} - - - -/********* MEMBER REF *************/ - - -.jd-details { -/* border:1px solid #669999; - padding:4px; */ - margin:0 0 1em; -} - -/* API reference: a container for the -.tagdata blocks that make up the detailed -description */ -.jd-details-descr { - padding:0; - margin:.5em .25em; -} - -/* API reference: a block containing -a detailed description, a params table, -seealso list, etc */ -.jd-tagdata { - margin:.5em 1em; -} - -.jd-tagdata p { - margin:0 0 1em 1em; -} - -/* API reference: adjustments to -the detailed description block */ -.jd-tagdescr { - margin:.25em 0 .75em 0; -} - -.jd-tagdescr ol, -.jd-tagdescr ul { - margin:0 2.5em; - padding:0; -} - -.jd-tagdescr table, -.jd-tagdescr img { - margin:.25em 1em; -} - -.jd-tagdescr li { -margin:0 0 .25em 0; -padding:0; -} - -/* API reference: heading marking -the details section for constants, -attrs, methods, etc. */ -h4.jd-details-title { - font-size:1.15em; - background-color: #E2E2E2; - margin:1.5em 0 .6em; - padding:3px 95px 3px 3px; /* room for api-level */ -} -body.google h4.jd-details-title { - background-color: #FFF; - padding-top:5px; - border-top: 1px solid #ccc; -} -body.google table.jd-sumtable th { - background-color: #FFF; - color:#000; -} - -h4.jd-tagtitle { - margin:0; -} - -h4 .normal { - font-weight:normal; -} - -/* API reference: heading for "Parameters", "See Also", etc., -in details sections */ -h5.jd-tagtitle { - margin:0 0 .25em 0; - font-size:1em; -} - -.jd-tagtable { - margin:0; - background-color:transparent; - width:auto; -} - -.jd-tagtable td, -.jd-tagtable th { - border:none; - background-color:#fff; - vertical-align:top; - font-weight:normal; - padding:2px 10px; -} - -.jd-tagtable th { - font-style:italic; -} - -/* Inline api level indicator for methods */ -div.api-level { - font-size:.8em; - font-weight:normal; - color:#999; - float:right; - padding:0 8px 0; - margin-top:-30px; -} - -table.jd-tagtable td, -table.jd-tagtable th { - background-color:transparent; -} - -table.jd-tagtable th { - color:inherit; -} - - - - - - - - - - - - - - - - - - - - - - - -/* SEARCH FILTER */ - -#search_autocomplete { - font-weight:normal; -} - -#search_filtered_wrapper { - width: 193px; - float: right; -} -#search_filtered_div { - position:absolute; - z-index:9999; - min-width:171px; /* +padding and border makes this match input width */ - padding:5px; - border: solid 1px #C5C5C5; - background: white; - top: 35px; - -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2); - -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); -} - -ul#search_filtered { - min-width:100%; - margin:0; - list-style: none; - margin: 0; - padding: 0; -} - -#search_filtered .jd-selected { - background-color: #33B5E5; - cursor:pointer; -} -#search_filtered .jd-selected, -#search_filtered .jd-selected a { - color:#f7f7f7 !important; -} - -.no-display { - display: none; -} - -#search_filtered li.jd-autocomplete { - font-size: 0.81em; - border: none; - margin: 0 0 2px; - padding: 0; - line-height:1.5em; -} - -#search_filtered li a { - padding:0 5px; - color:#222 !important; -} - -#search_filtered li.header { - color:#aaa; - font-weight:bold; - font-size: 0.81em; - border: none; - margin: 8px 0 2px; - padding:1px 5px; - line-height:1.5em; -} - -#search_filtered li.header:first-child { - margin: 0 0 2px; -} - -.show-item { - display: table-row; -} -.hide-item { - display: hidden; -} - - - - - -/* SEARCH RESULTS */ - - -#leftSearchControl .gsc-twiddle { - background-image : none; -} - -#leftSearchControl td, #searchForm td { - border: 0px solid #000; - padding:0; -} - -#leftSearchControl .gsc-resultsHeader .gsc-title { - padding-left : 0px; - font-weight : bold; - font-size : 13px; - color:#006699; - display : none; -} - -#leftSearchControl .gsc-resultsHeader div.gsc-results-selector { - display : none; -} - -#leftSearchControl .gsc-resultsRoot { - padding-top : 6px; -} - -#leftSearchControl div.gs-visibleUrl-long { - display : block; - color:#006699; -} - -#leftSearchControl .gsc-webResult { - padding:0 0 20px 0; -} - -.gsc-webResult div.gs-visibleUrl-short, -table.gsc-branding, -.gsc-clear-button { - display : none; -} - -.gsc-cursor-box .gsc-cursor div.gsc-cursor-page, -.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results, -#leftSearchControl a, -#leftSearchControl a b { - color:#006699; -} - -.gsc-resultsHeader { - display: none; -} - -/* Disable built in search forms */ -.gsc-control form.gsc-search-box { - display : none; -} -table.gsc-search-box { - margin:6px 0 0 0; - border-collapse:collapse; -} - -td.gsc-input { - padding:0 2px; - width:100%; - vertical-align:middle; -} - -input.gsc-input { - border:1px solid #BCCDF0; - width:99%; - padding-left:2px; - font-size:.95em; -} - -td.gsc-search-button { - text-align: right; - padding:0; - vertical-align:top; -} - - -#searchResults { - overflow:hidden; /* because the repositioned page links makes the section think it needs to scroll -(it doesn't) */ - height:auto; -} - -#searchResults .gsc-control { - position:relative; - width:auto; - padding:0 0 10px; -} - -#searchResults .gsc-tabsArea { - position:relative; - white-space:nowrap; - float:left; - width:200px; -} - -#searchResults .gsc-above-wrapper-area { - display:none; -} - -#searchResults .gsc-resultsbox-visible { - float:left; - width:720px; - margin-left:20px; -} - -#searchResults .gsc-tabHeader { - padding: 3px 6px; - position:relative; - width:auto; - display:block; -} - -#searchResults h2#searchTitle { - padding:0; - margin:5px 0; - border:none; -} - -#searchResults h2#searchTitle em { - font-style:normal; - color:#33B5E5; -} - -#searchResults .gsc-table-result { - margin:5px 0 10px 0; - background-color:transparent; -} -#searchResults .gs-web-image-box, .gs-promotion-image-box { - width:120px; -} -#searchResults .gs-web-image-box img.gs-image, .gs-promotion-image-box img.gs-promotion-image { - max-width:120px; -} - -#searchResults .gsc-table-result .gsc-thumbnail { - padding:0 20px 0 0; -} - -#searchResults td { - background-color:transparent; -} - -#searchResults .gsc-expansionArea { - position:relative; -} -#searchResults .gsc-tabsArea .gsc-cursor-box { - width:200px; - padding:20px 0 0 1px; -} -#searchResults .gsc-cursor-page { - display:inline-block; - float:left; - margin:-1px 0 0 -1px; - padding:0; - height:27px; - width:27px; - text-align:center; - line-height:2; -} - -#searchResults .gsc-tabHeader.gsc-tabhInactive, -#searchResults .gsc-cursor-page { - text-decoration:none; - color:#258AAF; - border: solid 1px #DADADA; -} - -#searchResults .gsc-tabHeader.gsc-tabhInactive:hover, -#searchResults .gsc-cursor-page:hover { - border-color: #DBDBDB; - background-color: #F3F3F3; - background-image: -webkit-gradient(linear, left top, left bottom, from(#F9F9F9), to(#ECECEC)); - background-image: -webkit-linear-gradient(top, #F9F9F9, #ECECEC); - background-image: -moz-linear-gradient(top, #F9F9F9, #ECECEC); - background-image: -ms-linear-gradient(top, #F9F9F9, #ECECEC); - background-image: -o-linear-gradient(top, #F9F9F9, #ECECEC); - background-image: linear-gradient(top, #F9F9F9, #ECECEC); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9', -EndColorStr='#ececec'); - color: #33B5E5; -} - -#searchResults .gsc-tabHeader.gsc-tabhActive, -#searchResults .gsc-tabHeader.gsc-tabhActive:hover, -#searchResults .gsc-cursor-page.gsc-cursor-current-page, -#searchResults .gsc-cursor-page.gsc-cursor-current-page:hover { - color:#fff; - background-color: #09C; - background-image: -webkit-gradient(linear, left top, left bottom, from(#2FADDB), to(#09C)); - background-image: -webkit-linear-gradient(top, #2FADDB, #09C); - background-image: -moz-linear-gradient(top, #2FADDB, #09C); - background-image: -ms-linear-gradient(top, #2FADDB, #09C); - background-image: -o-linear-gradient(top, #2FADDB, #09C); - background-image: linear-gradient(top, #2FADDB, #09C); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c'); - border: 1px solid #3990AB; - z-index:100; -} - -} - - - - - - - - - - - - - -/*********** PREVIOUSLY dac-styles.css ***************/ - - -#header { - border-bottom:0; -} - -#header .wrap { - max-width:940px; - height:41px; - border-bottom:1px solid; - border-color: #ccc; - position:relative; -} - -.about #header .wrap { - border-color: #9933CC; -} - -.design #header .wrap { - border-color: #33b5e5; -} - -// Fudging this so SAC looks OK -.develop #header .wrap { - border-color: #CCC; -} - -.distribute #header .wrap { - border-color: #9C0; -} - -.logo a { - width:123px; - float:left; -} - -#header .logo { - margin-top: -6px; - margin-left: 0px; - margin-bottom:0px; - width: 160px; - padding-right:10px; -} - -#header .saclogo { - margin-top: -3px; - margin-left: 0px; - margin-bottom: 0px; - margin-right: 30px; - width: 140px; - padding-right:0px; - border-right:1px solid #CCC; -} - -.search { - height:25px; - margin-top: -3px; - margin-bottom: 0px; -} - - - -/* Quicknav */ -.btn-quicknav { - width:20px; - height:28px; - float:left; - margin-left:6px; - padding-right:10px; - position:relative; - cursor:pointer; - border-right:1px solid #CCC; -} - -.btn-quicknav a { - zoom:1; - position:absolute; - top:13px; - left:5px; - display:block; - text-indent:-9999em; - width:10px; - height:5px; - background:url(../images/quicknav_arrow.png) no-repeat; -} - -.btn-quicknav a.arrow-active { - background-position: 0 -5px; - display:none; -} - -#header-wrap.quicknav a.arrow-inactive { - display:none; -} - -.btn-quicknav.active a.arrow-active { - display:block; -} - -.nav-x li { - display:block; - float:left; - margin-right:45px; - -webkit-transition: all 0.25s linear; - -moz-transition: all 0.25s linear; - -ms-transition: all 0.25s linear; - -o-transition: all 0.25s linear; - transition: all 0.25s linear; -} - -#header-wrap.quicknav .nav-x li { - min-width:160px; - margin-right:20px; -} - -#header-wrap.quicknav li.last { - margin-right:0px; -} - -#quicknav { - float:none; - clear:both; - margin-left:180px; - margin-top:-30px; - display:none; - overflow:hidden; -} - -#header-wrap.quicknav #quicknav { - -} - -#quicknav ul { - margin:10px 0; - padding:0; -} - -#quicknav ul li.design { - border-top:1px solid #33b5e5; -} - -#quicknav ul li.develop { - border-top:1px solid #FF8800; -} - -#quicknav ul li.distribute { - border-top:1px solid #99cc00; -} - -#quicknav ul li { - display:block; - float:left; - margin:0 20px 0 0; - min-width:140px; -} - -#quicknav ul li.last { - margin-right:0px; -} - -#quicknav ul li ul li { - float:none; -} - -#quicknav ul li ul li a { - color:#222; -} - -#quicknav ul li li ul, -#quicknav ul li li ul li { - margin:0; -} - -#quicknav ul li li ul li:before { - content:"\21B3"; -} - -#header-wrap { - -webkit-transition: all 0.25s ease-out; - -moz-transition: all 0.25s ease-out; - -ms-transition: all 0.25s ease-out; - -o-transition: all 0.25s ease-out; - transition: all 0.25s ease-out; - -} - -#header-wrap.quicknav { - height:196px; - -} - -/* SEARCH AND MORE */ -.search { - position: absolute; - width: 50px; - height:28px; - display: block; - margin-top:-3px; - margin-bottom:7px; - overflow:hidden; - z-index:100; - right:54px; - -webkit-transition: width 0.4s ease; - -moz-transition: width 0.4s ease; - -o-transition: width 0.4s ease; - transition: width 0.4s ease; -} - -.search #search-btn { - width:50px; - height:28px; - background:url(../images/icon_search.png) no-repeat; - float:left; -} - -.search-inner { - width:245px; -} - -.search:hover, .search.active { - width:245px; -} - -.search .bottom, .search .left, .search .right { - position: absolute; - background-color: #a2a2a2 -} - -.search .bottom { - width: 214px; - height: 1px; - top: 24px; - left: 0 -} - -.search .left, .search .right { - height: 5px; - width: 1px -} - -.search .left { - top: 22px; - left: 56px; - background-color:#CCC; -} - -.search .right { - top: 22px; - left: 238px; - background-color:#CCC; -} - -.search form { - margin-top: 2px; - width: 162px; - float:left; -} - -.search form input { - color: #2f2f2f; - font-size: 0.95em; - width: 178px; - border: none; - margin-left: 6px; - z-index: 1500; - position: relative; - background-color: transparent; - border-bottom:1px solid #CCC; - padding:0 0 0 4px; - outline:none; - height:24px; -} - -.search:hover form input { - border-bottom:1px solid #33B5E5; -} - -.search:hover .bottom, .search:hover .left, .search:hover .right { - background-color: #33b5e5; -} - -.search:hover #search-btn { - background-position: 0 -28px -} - -.search form input:focus { - color: #222; - font-weight: bold -} - -.moremenu { - float: right; - position: relative; - width: 50px; - height:28px; - display: block; - margin-top:-3px; - margin-bottom:7px; - overflow:hidden; - -webkit-transition: width 0.25s ease; - -moz-transition: width 0.25s ease; - -o-transition: width 0.25s ease; - transition: width 0.25s ease; -} - -.moremenu #more-btn { - width:40px; - height:28px; - background:url(../images/icon_more.png) no-repeat; - border-left:1px solid #CCC; - float:left; - cursor:pointer; -} - -.moremenu:hover #more-btn { - background-position:0 -28px; -} - -.morehover { - position:absolute; - right:6px; - top:-9px; - width:40px; - height:35px; - z-index:99; - overflow:hidden; - - -webkit-opacity:0; - -moz-opacity:0; - -o-opacity:0; - opacity:0; - - -webkit-transform-origin:100% 0%; - -moz-transform-origin:100% 0%; - -o-transform-origin:100% 0%; - transform-origin:100% 0%; - - -webkit-transition-property: -webkit-opacity; - -webkit-transition-duration: .25s; - -webkit-transition-timing-function:ease; - - -moz-transition-property: -webkit-opacity; - -moz-transition-duration: .25s; - -moz-transition-timing-function:ease; - - -o-transition-property: -webkit-opacity; - -o-transition-duration: .25s; - -o-transition-timing-function:ease; - - -transition-property: -webkit-opacity; - -transition-duration: .25s; - -transition-timing-function:ease; -} - -.morehover:hover, -.morehover.hover { - opacity:1; - height:385px; - width:268px; - -webkit-transition-property:height, -webkit-opacity; -} - -.morehover .top { - width:268px; - height:39px; - background:url(../images/more_top.png) no-repeat; -} - -.morehover .mid { - width:228px; - background:url(../images/more_mid.png) repeat-y; - padding:10px 20px 0 20px; -} - -.morehover .mid .header { - border-bottom:1px solid #ccc; - font-weight:bold; -} - -.morehover .bottom { - width:268px; - height:6px; - background:url(../images/more_bottom.png) no-repeat; -} - -.morehover ul { - margin:10px 10px 20px 0; -} - -.morehover ul li { - list-style:none; -} - -.morehover ul li.active a, -.morehover ul li.active a:hover { - color:#222 !important; -} - -.morehover ul li.active img { - margin-right:4px; -} - - - - -/* MARQUEE */ -.slideshow-container { - width:100%; - overflow:hidden; - position:relative; -} -.slideshow-container .slideshow-prev { - position:absolute; - top:50%; - left:0px; - margin-top:-36px; - z-index:99; -} -.slideshow-container .slideshow-next { - position:absolute; - top:50%; - margin-top:-36px; - z-index:99; - right:0px; -} - -.slideshow-container .pagination { - position:absolute; - bottom:20px; - width:100%; - text-align:center; - z-index:99; -} -.slideshow-container .pagination ul { - margin:0; -} -.slideshow-container .pagination ul li{ - display: inline-block; - width:12px; - height:12px; - text-indent:-8000px; - list-style:none; - margin: 0 2px; - border-radius:6px; - background-color:#ccc; - cursor:pointer; - -webkit-transition:color .5s ease-in; - -moz-transition:color .5s ease-in; - -o-transition:color .5s ease-in; - transition:color .5s ease-in; -} -.slideshow-container .pagination ul li:hover { - background-color:#999; -} -.slideshow-container .pagination ul li.active { - background-color:#33b5e5; -} -.slideshow-container .pagination ul li.active:hover { - background-color:#33b5e5; -} -.slideshow-container ul li { - display:inline; - list-style:none; -} - - - - -a.download-sdk { - float:right; - margin:-10px 0; - height:30px; - padding-top:4px; - padding-bottom:0px; -} - -#nav-x { - padding-top: 14px; -} - -#nav-x .wrap { - min-height:34px; -} - -#nav-x .wrap, -#searchResults.wrap { - max-width:940px; - border-bottom:1px solid #CCC; -} - -#searchResults.wrap #leftSearchControl { - min-height:700px -} -.nav-x { - margin-left:0; - margin-bottom:0; -} - - - - - - - - - - -/* - * CSS Styles that are needed by jScrollPane for it to operate correctly. - */ - -.jspContainer { - overflow: hidden; - position: relative; -} - -.jspPane { - position: absolute; - overflow: hidden; - width:100% !important; /* to avoid cut-off api names in reference in horiz scroll */ -} - -.jspVerticalBar { - position: absolute; - top: 0; - right: 0; - width: 4px; - height: 100%; - background: #f5f5f5; -} - -.jspHorizontalBar { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 4px; - background: #f5f5f5; -} - -.jspVerticalBar *, -.jspHorizontalBar * { - margin: 0; - padding: 0; -} -.jspCap { - display: block; -} - -.jspVerticalBar .jspCap { - height: 4px; -} - -.jspHorizontalBar .jspCap { - width: 0; - height: 100%; -} - -.jspHorizontalBar .jspCap { - float: left; -} - -.jspTrack { - position: relative; -} - -.jspDrag { - background: #bbb; - position: relative; - top: 0; - left: 0; - cursor: pointer; -} - -.jspDrag:hover, -.jspDrag:active { - border-color: #09c; - background-color: #4cadcb; - background-image: -webkit-gradient(linear, left top, right top, from(#5dbcd9), to(#4cadcb)); - background-image: -webkit-linear-gradient(left, #5dbcd9, #4cadcb); - background-image: -moz-linear-gradient(left, #5dbcd9, #4cadcb); - background-image: -ms-linear-gradient(left, #5dbcd9, #4cadcb); - background-image: -o-linear-gradient(left, #5dbcd9, #4cadcb); - background-image: linear-gradient(left, #5dbcd9, #4cadcb); - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', EndColorStr='#4cadcb'); -} - -.jspHorizontalBar .jspTrack, -.jspHorizontalBar .jspDrag { - float: left; - height: 100%; -} - -.jspArrow { - background: #999; - text-indent: -20000px; - display: block; - cursor: pointer; -} - -.jspArrow.jspDisabled { - cursor: default; - background: #ccc; -} - -.jspVerticalBar .jspArrow { - height: 16px; -} - -.jspHorizontalBar .jspArrow { - width: 16px; - float: left; - height: 100%; -} - -.jspVerticalBar .jspArrow:focus { - outline: none; -} - -.jspCorner { - float: left; - height: 100%; -} - -/* Yuk! CSS Hack for IE6 3 pixel bug :( */ -* html .jspCorner { - margin: 0 -3px 0 0; -} -/******* end of jscrollpane *********/ - - - - - -/************ DEVELOP HOMEPAGE ******************/ - -/* Slideshow */ -.slideshow-develop { - height: 300px; - width: 940px; - position: relative; - overflow:hidden; -} -.slideshow-develop .frame { - width: 940px; - height: 300px; -} -.slideshow-develop img.play { - max-width:350px; - max-height:240px; - margin:20px 0 0 90px; - -webkit-transform: perspective(800px ) rotateY( 35deg ); - box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3); - -moz-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3); -} -.slideshow-develop img.play.no-shadow { - box-shadow: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; -} -.slideshow-develop img.play.no-transform { - -webkit-transform: none; -} -.slideshow-develop a.slideshow-next { - background: url(../images/arrow-right-develop.png); -} -.slideshow-develop a.slideshow-prev { - background: url(../images/arrow-left-develop.png); -} -.slideshow-develop .content-right { - float: left; -} -.slideshow-develop .content-right h2 { - padding:0; - margin-bottom:10px; - border:none; -} -.slideshow-develop .item { - height: 300px; - width: 940px; -} -.slideshow-develop .pagination ul li.active { - background-color: #F80; -} -.slideshow-develop .pagination ul li.active:hover { - background-color: #F80; -} -.slideshow-develop .item hr { - margin:5px 0 10px; -} -.slideshow-develop .item p { - margin:10px 0; -} -.slideshow-develop .item p.title-intro { - position:absolute; - margin:0; -} - -/* Feeds */ -.feed ul { - margin: 0; -} -.feed .feed-nav { - height: 25px; - border-bottom: 1px solid #CCC; -} -.feed .feed-nav li { - list-style: none; - float: left; - height: 21px; /* +4px bottom border = 25px; same as .feed-nav */ - margin-right: 25px; - cursor: pointer; -} -.feed .feed-nav li.active { - color: #000; - border-bottom: 4px solid #F80; -} -.feed .feed-container { - overflow: hidden; - width: 460px; -} -.feed .feed-container .feed-frame { - width: 1000px; -} -.feed .feed-container .feed-frame ul { - float: left; - width:460px; -} -.feed .feed-container .feed-frame ul ul { - float: none; - margin:10px 0 0 30px; -} -.feed .feed-container .feed-frame li { - list-style: none; - margin: 20px 0 20px 0; - width: 460px; - height:93px; -} -.feed .feed-container .feed-frame li.playlist { - height:auto; -} -.feed .feed-container .feed-frame li.playlist a { - height:93px; - display:block; -} -.feed .feed-container .feed-frame li.more { - height:20px; - margin:10px 0 5px 5px; -} -.feed .feed-container .feed-frame li.more a { - height:inherit; -} -.feed .feed-container .feed-frame li.playlist-video { - list-style: none; - margin: 0; - width: 460px; - height:55px; - font-size:12px; -} -.feed .feed-container .feed-frame li.playlist-video a { - height:45px; - padding:5px; -} -.feed .feed-container .feed-frame li.playlist-video h5 { - font-size:12px; - line-height:13px; - margin:0; -} -.feed .feed-container .feed-frame li.playlist-video p { - margin:5px 0 0; - line-height:15px; -} -.feed-container .feed-frame div.feed-image { - float: left; - border: 1px solid #999; - margin:0 20px 0 0; - width:122px; - height:92px; - background:url('../images/blog-default.png') no-repeat 0 0; - background-size:180px; -} -#jd-content .feed .feed-container .feed-frame li img { - float: left; - border: 1px solid #999; - margin:0 20px 0 0; - width:122px; - height:92px; -} -#jd-content .feed .feed-container .feed-frame li.playlist-video img { - width:inherit; - height:inherit; -} - -.feed .feed-container .feed-frame li a, -.feed .feed-container .feed-frame li a:active { - color:#555 !important; -} - -.feed .feed-container .feed-frame li a:hover, -.feed .feed-container .feed-frame li a:hover * { - color:#7AA1B0 !important; -} - -/* Video player */ -#player-wrapper { - display:none; - margin: -1px auto 0; - position: relative; - width: 940px; - height: 0px; -} -#player-frame { - background: #EFEFEF; - border: 1px solid #CCC; - padding: 0px 207px; - z-index: 10; /* stay above marque, but below search suggestions */ - width: 525px; - height: 330px; - position: relative; -} - - - -/************ DISTRIBUTE HOMEPAGE ***************/ - -.marquee { - width: 760px; -} -.marquee .main-img { - float: left; - margin-top: 20px; - width: 490px; -} -.marquee .copy { - width: 270px; - float: left; - margin-top: 30px; -} -.distribute-features { - margin: 0; -} -.distribute-features ul { - margin: 0; -} -.distribute-features ul li { - list-style: none; - float: left; - border-top: 1px solid #9C0; - width: 220px; - margin-right: 50px; -} -.distribute-features ul li.last { - margin-right: 0px; -} - - - -/************ DEVELOP TOPIC CONTAINERS ************/ - -.landing-banner, -.landing-docs { - margin:20px 0 0; -} -.landing-banner div:first-child, -.landing-docs div:first-child, -.landing-docs .col-12 { - margin-left:0; - min-height:280px; -} -.landing-banner div:last-child, -.landing-docs div:last-child, -.landing-docs .col-12 { - margin-right:0; -} - -.landing-banner h1 { - margin-top:0; -} -.landing-docs { - clear:left; - overflow:hidden; -} -.landing-docs h3 { - font-size:14px; - line-height:21px; - color:#555; - text-transform:uppercase; - border-bottom:1px solid #CCC; - margin:0 0 20px; -} -.landing-docs a { - color:#333 !important; -} - -.landing-docs a:hover, -.landing-docs a:hover * { - color:#7AA1B0 !important -} - -.landing-docs .normal-links a { - color:#258aaf !important; -} - -.plusone { - float:right; -} - -.feedback { - float:right !important; - margin: 0 0 0 10px; - font-size: 14px; -} - - -/************* HOME/LANDING PAGE *****************/ - -.slideshow-home { - height: 500px; - width: 940px; - border-bottom: 1px solid #CCC; - position: relative; - margin: 0; -} -.slideshow-home .frame { - width: 940px; - height: 500px; -} -.slideshow-home .content-left { - float: left; - text-align: center; - vertical-align: center; - margin: 0 0 0 35px; -} -.slideshow-home .content-right { - margin: 80px 0 0 0; -} -.slideshow-home .content-right p { - margin-bottom: 10px; -} -.slideshow-home .content-right p:last-child { - margin-top: 15px; -} -.slideshow-home .content-right h1 { - padding:0; -} -.slideshow-home .item { - height: 500px; - width: 940px; -} -.home-sections { - padding: 30px 20px 20px; - margin: 20px 0; - background: -webkit-linear-gradient(top, #F6F6F6,#F9F9F9); -} -.home-sections ul { - margin: 0; -} -.home-sections ul li { - float: left; - display: block; - list-style: none; - width: 170px; - height: 35px; - border: 1px solid #ccc; - background: white; - margin-right: 10px; - border-radius: 1px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - box-shadow: 1px 1px 5px #EEE; - -webkit-box-shadow: 1px 1px 5px #EEE; - -moz-box-shadow: 1px 1px 5px #EEE; - background: white; -} -.home-sections ul li:hover { - background: #F9F9F9; - border: 1px solid #CCC; -} -.home-sections ul li a, -.home-sections ul li a:hover { - font-weight: bold; - margin-top: 8px; - line-height: 18px; - float: left; - width: 100%; - text-align: center; - color: #09c !important; -} -.home-sections ul li a { - font-weight: bold; - margin-top: 8px; - line-height: 18px; - float: left; - width:100%; - text-align:center; -} -.home-sections ul li img { - float: left; - margin: -8px 0 0 10px; -} -.home-sections ul li.last { - margin-right: 0px; -} -.fullpage #footer { - margin-top: -40px; -} - -.annotation-message { - display: block; -} - -.dac-custom-search { - background: #fff; - margin: 0 -10px; - padding: 20px 10px; - z-index: 1; -} - -.dac-custom-search .dac-fab, .dac-custom-search .dac-button-social { - top: -48px; -} - -.dac-custom-search-section-title { - color: #505050; -} - -.dac-custom-search-entry { - margin-bottom: 36px; - margin-top: 24px; - margin-left: 0em; -} - -.dac-custom-search-image { - background-size: cover; - height: 112px; -} - -.dac-custom-search-title { - color: #333; - font-size: 14px; - font-weight: 700; - line-height: 0px; - padding: 0; - margin: 1em 0em 1em 0em; -} - -.dac-custom-search-title a { - color: inherit; -} - -.dac-custom-search-section { - color: #999; - font-size: 16px; - font-variant: small-caps; - font-weight: 700; - margin: -5px 0 0 0; -} - -.dac-custom-search-snippet { - color: #666; - margin: 0em 0em .25em 0em; -} - -.dac-custom-search-link { - font-weight: 500; - word-wrap: break-word; - width: 100%; -} - -.dac-custom-search-load-more { - background: none; - border: none; - color: #333; - cursor: pointer; - display: block; - font-size: 14px; - font-weight: 700; - margin: 75px auto; - outline: none; - padding: 10px; -} - -.dac-custom-search-load-more:hover { - opacity: 0.7; -} - -.dac-custom-search-no-results { - color: #999; -} - diff --git a/tools/droiddoc/templates-sac/assets/css/fullscreen.css b/tools/droiddoc/templates-sac/assets/css/fullscreen.css deleted file mode 100644 index 71cf65b129..0000000000 --- a/tools/droiddoc/templates-sac/assets/css/fullscreen.css +++ /dev/null @@ -1,200 +0,0 @@ - -/* ============================================================================= - Columns - ========================================================================== */ -/* Applied to body to debug layout alignments -.grid { - width:100%; - height:100%; - background:url(../images/grid.png) center repeat-y; - top:0px; - margin:auto; - position:absolute; -} -*/ - -@media screen, projection, print { -.full { - padding: 2.5em 0; - border-top: solid 1px #ddd; - border-bottom: solid 1px #ddd; - background: #f7f7f7; -} -.wrap { - margin: 0 auto; - width: 100%; - min-width:600px; - clear: both; -} -.cols { - height: 1%; - margin: 0 -1.533742331288343558282%; - width: 103.06748466257669%} -*+html .cols { - margin-bottom: 20px; -} -.cols:after { - clear: both; - content: ' '; - display: block; - height: 0; - visibility: hidden; -} -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, -.col-13, .col-14, .col-15, .col-16 { - float: left; - margin: 0 1.063829787234% 20px 1.063829787234%; -} -* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html -.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12, * html -.col-13, * html .col-14, * html .col-15, * html .col-16 { - margin: 0; - margin: 0 1.063829787234% 20px 1.063829787234%; -} -[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5, -[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10, -[dir='rtl'] .col-11, [dir='rtl'] .col-12 { - float: right; -} -.col-1 { - width: 4.16666666666667%; -} -.col-2 { - width: 10.4166666666667%; -} -.col-3 { - width: 16.6666666666667%; -} -.col-4 { - width: 22.9166666666667%; -} -.col-5 { - width: 29.1666666666667%; -} -.col-6 { - width: 35.4166666666667%; -} -.col-7 { - width: 41.6666666666667%; -} -.col-8 { - width: 47.9166666666667%; -} -.col-9 { - width: 55.3333333333333%; -} -.col-10 { - width: 60.4166666666667%; -} -.col-11 { - width: 66.6666666666667%; -} -.col-12 { - width: 72.9166666666667%; -} -.col-13 { - width: 79.1666666666667%; -} -.col-14 { - width: 85.4166666666667%; -} -.col-15 { - width: 91.6666666666667%; -} -.col-16 { - width: 97.9166666666667%; -} - - - - - - - -#header .col-1, -#nav-x .col-1 { width: 40px } -#header .col-2, -#nav-x .col-2 { width: 100px } -#header .col-3, -#nav-x .col-3 { width: 160px } -#header .col-4, -#nav-x .col-4 { width: 220px } -#header .col-5, -#nav-x .col-5 { width: 280px } -#header .col-6, -#nav-x .col-6 { width: 340px } -#header .col-7, -#nav-x .col-7 { width: 400px } -#header .col-8, -#nav-x .col-8 { width: 460px } -#header .col-9, -#nav-x .col-9 { width: 520px } -#header .col-10, -#nav-x .col-10 { width: 580px } -#header .col-11, -#nav-x .col-11 { width: 640px } -#header .col-12, -#nav-x .col-12 { width: 700px } -#header .col-13, -#nav-x .col-13 { width: 760px } -#header .col-14, -#nav-x .col-14 { width: 820px } -#header .col-15, -#nav-x .col-15 { width: 880px } -#header .col-16, -#nav-x .col-16 { width: 940px } - - - -body { - padding:0 20px; -} -#header, -#searchResults, -#nav-x { - margin:0; -} -#body-content { - margin:0; -} -#body-content > .col-12 { - width:77.9804965%; - margin:0 0 0 0.97%; /* this percentage chosen to make IE9 happy */ -} -#side-nav { - width: 19.9804965%; - margin:0 1.063829787234% 0 0; -} - -#header .wrap { - max-width: 100%; -} - -#nav-x .wrap, -#searchResults.wrap { - max-width:100%; -} - -.nav-x { - margin:-2px 0 0 0; -} - -#devdoc-nav.fixed, -#devdoc-nav.fixed a.totop { - left:20px; /* !important ... for IE i think */ -} - - - - -} - -.col-right { - margin-right:0px; -} - -@media screen and (max-width:772px) { -.col-5, .col-6, .col-7 { - clear: both; - width: 97.0238096%} -} \ No newline at end of file diff --git a/tools/droiddoc/templates-sac/assets/design/default.js b/tools/droiddoc/templates-sac/assets/design/default.js deleted file mode 100644 index 3ba8486860..0000000000 --- a/tools/droiddoc/templates-sac/assets/design/default.js +++ /dev/null @@ -1,188 +0,0 @@ -$(document).ready(function() { - // prep nav expandos - var pagePath = document.location.pathname; - if (pagePath.indexOf(SITE_ROOT) == 0) { - pagePath = pagePath.substr(SITE_ROOT.length); - if (pagePath == '' || pagePath.charAt(pagePath.length - 1) == '/') { - pagePath += 'index.html'; - } - } - - if (SITE_ROOT.match(/\.\.\//) || SITE_ROOT == '') { - // If running locally, SITE_ROOT will be a relative path, so account for that by - // finding the relative URL to this page. This will allow us to find links on the page - // leading back to this page. - var pathParts = pagePath.split('/'); - var relativePagePathParts = []; - var upDirs = (SITE_ROOT.match(/(\.\.\/)+/) || [''])[0].length / 3; - for (var i = 0; i < upDirs; i++) { - relativePagePathParts.push('..'); - } - for (var i = 0; i < upDirs; i++) { - relativePagePathParts.push(pathParts[pathParts.length - (upDirs - i) - 1]); - } - relativePagePathParts.push(pathParts[pathParts.length - 1]); - pagePath = relativePagePathParts.join('/'); - } else { - // Otherwise the page path should be an absolute URL. - pagePath = SITE_ROOT + pagePath; - } - - // select current page in sidenav and set up prev/next links if they exist - var $selNavLink = $('.nav-y').find('a[href="' + pagePath + '"]'); - if ($selNavLink.length) { - $selListItem = $selNavLink.closest('li'); - - $selListItem.addClass('selected'); - $selListItem.closest('li>ul').addClass('expanded'); - - // set up prev links - var $prevLink = []; - var $prevListItem = $selListItem.prev('li'); - if ($prevListItem.length) { - if ($prevListItem.hasClass('nav-section')) { - // jump to last topic of previous section - $prevLink = $prevListItem.find('a:last'); - } else { - // jump to previous topic in this section - $prevLink = $prevListItem.find('a:eq(0)'); - } - } else { - // jump to this section's index page (if it exists) - $prevLink = $selListItem.parents('li').find('a'); - } - - if ($prevLink.length) { - var prevHref = $prevLink.attr('href'); - if (prevHref == SITE_ROOT + 'index.html') { - // Don't show Previous when it leads to the homepage - $('.prev-page-link').hide(); - } else { - $('.prev-page-link').attr('href', prevHref).show(); - } - } else { - $('.prev-page-link').hide(); - } - - // set up next links - var $nextLink = []; - if ($selListItem.hasClass('nav-section')) { - // we're on an index page, jump to the first topic - $nextLink = $selListItem.find('ul').find('a:eq(0)') - } else { - // jump to the next topic in this section (if it exists) - $nextLink = $selListItem.next('li').find('a:eq(0)'); - if (!$nextLink.length) { - // no more topics in this section, jump to the first topic in the next section - $nextLink = $selListItem.parents('li').next('li.nav-section').find('a:eq(0)'); - } - } - if ($nextLink.length) { - $('.next-page-link').attr('href', $nextLink.attr('href')).show(); - } else { - $('.next-page-link').hide(); - } - } - - // Set up expand/collapse behavior - $('.nav-y li').has('ul').click(function() { - if ($(this).hasClass('expanded')) { - return; - } - - // hide other - var $old = $('.nav-y li.expanded'); - if ($old.length) { - var $oldUl = $old.children('ul'); - $oldUl.css('height', $oldUl.height() + 'px'); - window.setTimeout(function() { - $oldUl - .addClass('animate-height') - .css('height', ''); - }, 0); - $old.removeClass('expanded'); - } - - // show me - $(this).addClass('expanded'); - var $ul = $(this).children('ul'); - var expandedHeight = $ul.height(); - $ul - .removeClass('animate-height') - .css('height', 0); - window.setTimeout(function() { - $ul - .addClass('animate-height') - .css('height', expandedHeight + 'px'); - }, 0); - }); - - // Stop expand/collapse behavior when clicking on nav section links (since we're navigating away - // from the page) - $('.nav-y li').has('ul').find('a:eq(0)').click(function(evt) { - window.location.href = $(this).attr('href'); - return false; - }); - - // Set up play-on-hover