merge in KFS78N (no-op)
diff --git a/CleanSpec.mk b/CleanSpec.mk
index a424cb7..877c690 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -200,6 +200,11 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/SprintDM.apk)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/omadm)
+# KLP I mean KitKat now API 19.
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
+
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 33bc6fd..36f36c1 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -141,15 +141,16 @@
###########################################################
# Pick a name for the intermediate and final targets
###########################################################
-LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))
-ifeq ($(LOCAL_MODULE_STEM),)
+ifndef LOCAL_MODULE_STEM
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
endif
-LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
-LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM))
-ifeq ($(LOCAL_BUILT_MODULE_STEM),)
- LOCAL_BUILT_MODULE_STEM := $(LOCAL_INSTALLED_MODULE_STEM)
+ifndef LOCAL_BUILT_MODULE_STEM
+ LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
+endif
+
+ifndef LOCAL_INSTALLED_MODULE_STEM
+ LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
endif
# OVERRIDE_BUILT_MODULE_PATH is only allowed to be used by the
@@ -185,9 +186,6 @@
aidl_java_sources := $(patsubst %.aidl,%.java,$(addprefix $(intermediates.COMMON)/src/, $(aidl_sources)))
aidl_sources := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(aidl_sources))
-ifeq (,$(TARGET_BUILD_APPS))
-LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
-endif
aidl_preprocess_import :=
LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION))
ifdef LOCAL_SDK_VERSION
@@ -197,6 +195,9 @@
else
aidl_preprocess_import := $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/framework.aidl
endif # !current
+else
+# build against the platform.
+LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
endif # LOCAL_SDK_VERSION
$(aidl_java_sources): PRIVATE_AIDL_FLAGS := -b $(addprefix -p,$(aidl_preprocess_import)) -I$(LOCAL_PATH) -I$(LOCAL_PATH)/src $(addprefix -I,$(LOCAL_AIDL_INCLUDES))
diff --git a/core/build_id.mk b/core/build_id.mk
index 1af22fc..a3b9db6 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -18,4 +18,6 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=KFS78N
+BUILD_ID := KLP
+
+DISPLAY_BUILD_NUMBER := true
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index c30f0a8..a8b7b28 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -11,6 +11,7 @@
LOCAL_BUILT_MODULE_STEM:=
OVERRIDE_BUILT_MODULE_PATH:=
LOCAL_INSTALLED_MODULE:=
+LOCAL_INSTALLED_MODULE_STEM:=
LOCAL_UNINSTALLABLE_MODULE:=
LOCAL_INTERMEDIATE_TARGETS:=
LOCAL_UNSTRIPPED_PATH:=
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 77b239b..e2e76b8 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -56,7 +56,9 @@
$(_dbj_jar_no_dex) : $(_dbj_src_jar) | $(ACP) $(AAPT)
$$(call copy-file-to-target)
+ifneq ($(DEX_PREOPT_DEFAULT),nostripping)
$$(call dexpreopt-remove-classes.dex,$$@)
+endif
$(eval _dbj_jar :=)
$(eval _dbj_odex :=)
diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk
index 6ede57f..7778477 100644
--- a/core/dynamic_binary.mk
+++ b/core/dynamic_binary.mk
@@ -26,12 +26,17 @@
# TODO: This duplicates logic from base_rules.mk because we need to
# know its results before base_rules.mk is included.
# Consolidate the duplicates.
-LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))
-ifeq ($(LOCAL_MODULE_STEM),)
+ifndef LOCAL_MODULE_STEM
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
endif
-LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
-LOCAL_BUILT_MODULE_STEM := $(LOCAL_INSTALLED_MODULE_STEM)
+
+ifndef LOCAL_BUILT_MODULE_STEM
+ LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
+endif
+
+ifndef LOCAL_INSTALLED_MODULE_STEM
+ LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
+endif
# base_rules.make defines $(intermediates), but we need its value
# before we include base_rules. Make a guess, and verify that
@@ -90,7 +95,7 @@
## Store a copy with symbols for symbolic debugging
###########################################################
symbolic_input := $(compress_output)
-symbolic_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_BUILT_MODULE_STEM)
+symbolic_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_INSTALLED_MODULE_STEM)
$(symbolic_output) : $(symbolic_input) | $(ACP)
@echo "target Symbolic: $(PRIVATE_MODULE) ($@)"
$(copy-file-to-target)
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index ca27f28..391050c 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -26,14 +26,29 @@
# base_rules.mk looks at this
all_res_assets :=
-ifeq ($(LOCAL_BUILD_HOST_DEX),true)
-ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
- LOCAL_JAVA_LIBRARIES := $(sort core-hostdex $(LOCAL_JAVA_LIBRARIES))
+proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
+ifneq ($(proto_sources),)
+ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro)
+ LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-micro
+else
+ ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nano)
+ LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-nano
+ else
+ LOCAL_JAVA_LIBRARIES += host-libprotobuf-java-2.3.0-lite
+ endif
+endif
endif
intermediates := $(call local-intermediates-dir)
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
+LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
+
+ifeq ($(LOCAL_BUILD_HOST_DEX),true)
+ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
+ LOCAL_JAVA_LIBRARIES += core-hostdex
+endif
+
full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar
full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar
full_classes_jar := $(intermediates.COMMON)/classes.jar
@@ -45,13 +60,15 @@
$(full_classes_jar) \
$(built_dex)
-LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
# See comment in java.mk
java_alternative_checked_module := $(full_classes_compiled_jar)
-
endif # LOCAL_BUILD_HOST_DEX
+LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
+
+#######################################
include $(BUILD_SYSTEM)/base_rules.mk
+#######################################
$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g
@@ -73,7 +90,7 @@
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
- $(jar_manifest_file) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-host-java-to-package)
# Run jarjar if necessary, otherwise just copy the file.
@@ -112,6 +129,6 @@
$(LOCAL_BUILT_MODULE): PRIVATE_JAR_EXCLUDE_FILES :=
$(LOCAL_BUILT_MODULE): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
$(LOCAL_BUILT_MODULE): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
- $(jar_manifest_file) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-host-java-to-package)
endif # LOCAL_BUILD_HOST_DEX
diff --git a/core/java.mk b/core/java.mk
index 76f0c6c..f237965 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -82,18 +82,10 @@
LOCAL_PROGUARD_ENABLED :=
endif
-# By giving different file name, files can be updated correctly when switching
-# between builds with and without Proguard enabled.
-# Note that ANY intermediate targets between the proguard and
-# the final built_dex should be differently named!
ifdef LOCAL_PROGUARD_ENABLED
proguard_jar_leaf := proguard.classes.jar
-built_dex_intermediate_leaf := proguard.$(built_dex_intermediate_leaf)
-built_dex_leaf := proguard.classes.dex
else
proguard_jar_leaf := noproguard.classes.jar
-built_dex_intermediate_leaf := noproguard.$(built_dex_intermediate_leaf)
-built_dex_leaf := noproguard.classes.dex
endif
full_classes_compiled_jar := $(intermediates.COMMON)/$(full_classes_compiled_jar_leaf)
@@ -113,7 +105,7 @@
built_dex :=
else
full_classes_jar := $(intermediates.COMMON)/classes.jar
-built_dex := $(intermediates.COMMON)/$(built_dex_leaf)
+built_dex := $(intermediates.COMMON)/classes.dex
endif
LOCAL_INTERMEDIATE_TARGETS += \
@@ -304,14 +296,6 @@
ifdef full_classes_jar
-# If LOCAL_BUILT_MODULE_STEM wasn't overridden by our caller,
-# full_classes_jar will be the same module as LOCAL_BUILT_MODULE.
-# Otherwise, the caller will define it as a prerequisite of
-# LOCAL_BUILT_MODULE, so it will inherit the necessary PRIVATE_*
-# variable definitions.
-full_classes_jar := $(intermediates.COMMON)/classes.jar
-built_dex := $(intermediates.COMMON)/$(built_dex_leaf)
-
# Droiddoc isn't currently able to generate stubs for modules, so we're just
# allowing it to use the classes.jar as the "stubs" that would be use to link
# against, for the cases where someone needs the jar to link against.
diff --git a/core/java_library.mk b/core/java_library.mk
index 9dbd79b..4c6b652 100644
--- a/core/java_library.mk
+++ b/core/java_library.mk
@@ -40,7 +40,7 @@
ifeq (,$(TARGET_BUILD_APPS))
ifeq (,$(LOCAL_APK_LIBRARIES))
ifndef LOCAL_DEX_PREOPT
-LOCAL_DEX_PREOPT := true
+LOCAL_DEX_PREOPT := $(DEX_PREOPT_DEFAULT)
endif
endif
endif
diff --git a/core/package.mk b/core/package.mk
index fd72cce..551028c 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -153,7 +153,7 @@
ifeq (,$(LOCAL_APK_LIBRARIES))
ifneq (,$(LOCAL_SRC_FILES))
ifndef LOCAL_DEX_PREOPT
-LOCAL_DEX_PREOPT := true
+LOCAL_DEX_PREOPT := $(DEX_PREOPT_DEFAULT)
endif
endif
endif
diff --git a/core/pathmap.mk b/core/pathmap.mk
index 0292a30..5dfc543 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -109,6 +109,7 @@
v7/gridlayout \
v7/appcompat \
v7/mediarouter \
+ v8/renderscript \
v13
#
diff --git a/core/pdk_config.mk b/core/pdk_config.mk
index cdd2a76..9590d70 100644
--- a/core/pdk_config.mk
+++ b/core/pdk_config.mk
@@ -51,7 +51,8 @@
target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates \
target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates \
target/common/obj/JAVA_LIBRARIES/voip-common_intermediates \
- target/common/obj/JAVA_LIBRARIES/mms-common_intermediates
+ target/common/obj/JAVA_LIBRARIES/mms-common_intermediates \
+ target/common/obj/JAVA_LIBRARIES/android-ex-camera2_intermediates
# not java libraries
PDK_PLATFORM_JAVA_ZIP_CONTENTS := \
target/common/obj/APPS/framework-res_intermediates/package-export.apk \
diff --git a/core/tasks/vendor_module_check.mk b/core/tasks/vendor_module_check.mk
index fcf2bbe..c51a40c 100644
--- a/core/tasks/vendor_module_check.mk
+++ b/core/tasks/vendor_module_check.mk
@@ -85,10 +85,12 @@
$(foreach m, $(_vendor_check_modules), \
$(if $(filter vendor/%, $(ALL_MODULES.$(m).PATH)),\
- $(if $(filter $(TARGET_OUT_VENDOR)/%, $(ALL_MODULES.$(m).INSTALLED)),,\
- $(error Error: vendor module "$(m)" in $(ALL_MODULES.$(m).PATH) \
- in product "$(TARGET_PRODUCT)" being installed to \
- $(ALL_MODULES.$(m).INSTALLED) which is not in the vendor tree))))
+ $(if $(filter-out FAKE, $(ALL_MODULES.$(m).CLASS)),\
+ $(if $(filter-out ,$(ALL_MODULES.$(m).INSTALLED)),\
+ $(if $(filter $(TARGET_OUT_VENDOR)/% $(HOST_OUT)/%, $(ALL_MODULES.$(m).INSTALLED)),,\
+ $(error Error: vendor module "$(m)" in $(ALL_MODULES.$(m).PATH) \
+ in product "$(TARGET_PRODUCT)" being installed to \
+ $(ALL_MODULES.$(m).INSTALLED) which is not in the vendor tree))))))
endif
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 8fa5081..faa12d2 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -41,7 +41,7 @@
# which is the version that we reveal to the end user.
# Update this value when the platform version changes (rather
# than overriding it somewhere else). Can be an arbitrary string.
- PLATFORM_VERSION := KeyLimePie
+ PLATFORM_VERSION := 4.4
endif
ifeq "" "$(PLATFORM_SDK_VERSION)"
@@ -53,13 +53,13 @@
# intermediate builds). During development, this number remains at the
# SDK version the branch is based on and PLATFORM_VERSION_CODENAME holds
# the code-name of the new development work.
- PLATFORM_SDK_VERSION := 18
+ PLATFORM_SDK_VERSION := 19
endif
ifeq "" "$(PLATFORM_VERSION_CODENAME)"
# This is the current development code-name, if the build is not a final
# release build. If this is a final release build, it is simply "REL".
- PLATFORM_VERSION_CODENAME := KeyLimePie
+ PLATFORM_VERSION_CODENAME := REL
endif
ifeq "" "$(DEFAULT_APP_TARGET_SDK)"
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 3bd4f31..60decfb 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -45,6 +45,28 @@
# the GLES renderer disables itself if host GL acceleration isn't available.
USE_OPENGL_RENDERER := true
+# Set the phase offset of the system's vsync event relative to the hardware
+# vsync. The system's vsync event drives Choreographer and SurfaceFlinger's
+# rendering. This value is the number of nanoseconds after the hardware vsync
+# that the system vsync event will occur.
+#
+# This phase offset allows adjustment of the minimum latency from application
+# wake-up (by Choregographer) time to the time at which the resulting window
+# image is displayed. This value may be either positive (after the HW vsync)
+# or negative (before the HW vsync). Setting it to 0 will result in a
+# minimum latency of two vsync periods because the app and SurfaceFlinger
+# will run just after the HW vsync. Setting it to a positive number will
+# result in the minimum latency being:
+#
+# (2 * VSYNC_PERIOD - (vsyncPhaseOffsetNs % VSYNC_PERIOD))
+#
+# Note that reducing this latency makes it more likely for the applications
+# to not have their window content image ready in time. When this happens
+# the latency will end up being an additional vsync period, and animations
+# will hiccup. Therefore, this latency should be tuned somewhat
+# conservatively (or at least with awareness of the trade-off being made).
+VSYNC_EVENT_PHASE_OFFSET_NS := 0
+
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800
BOARD_USERDATAIMAGE_PARTITION_SIZE := 209715200
diff --git a/target/product/base.mk b/target/product/base.mk
index 7ecc737..c8f4354 100644
--- a/target/product/base.mk
+++ b/target/product/base.mk
@@ -42,7 +42,6 @@
libbundlewrapper \
libcamera_client \
libcameraservice \
- libchromium_net \
libdl \
libeffectproxy \
libeffects \
@@ -50,6 +49,7 @@
libiprouteutil \
libjni_latinime \
libjnigraphics \
+ libldnhncr \
libmedia \
libmedia_jni \
libmediaplayerservice \
diff --git a/target/product/core.mk b/target/product/core.mk
index 910dade..c5ef2aa 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -24,6 +24,7 @@
Browser \
Contacts \
DocumentsUI \
+ DownloadProviderUi \
ExternalStorageProvider \
KeyChain \
PicoTts \
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index 1915e3c..fc2fc80 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -25,7 +25,6 @@
PRODUCT_PACKAGES += \
BackupRestoreConfirmation \
DownloadProvider \
- DownloadProviderUi \
HTMLViewer \
MediaProvider \
PackageInstaller \
@@ -59,8 +58,6 @@
PRODUCT_BOOT_JARS := core:conscrypt:okhttp:core-junit:bouncycastle:ext:framework:framework2:android.policy:services:apache-xml:webviewchromium
PRODUCT_RUNTIMES := runtime_libdvm_default
-ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
- PRODUCT_RUNTIMES += runtime_libart
-endif
+PRODUCT_RUNTIMES += runtime_libart
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
diff --git a/target/product/generic_no_telephony.mk b/target/product/generic_no_telephony.mk
index 1f05a0d..1155b4e 100644
--- a/target/product/generic_no_telephony.mk
+++ b/target/product/generic_no_telephony.mk
@@ -26,6 +26,8 @@
Calendar \
Camera2 \
CertInstaller \
+ Email \
+ Exchange2 \
FusedLocation \
Gallery2 \
InputDevices \
@@ -41,11 +43,11 @@
Settings \
SystemUI \
TeleService \
- Terminal \
CalendarProvider \
bluetooth-health \
hostapd \
- wpa_supplicant.conf
+ wpa_supplicant.conf \
+ WallpaperCropper
PRODUCT_PACKAGES += \
audio \
diff --git a/target/product/runtime_libart.mk b/target/product/runtime_libart.mk
index b127dad..5fddc3f 100644
--- a/target/product/runtime_libart.mk
+++ b/target/product/runtime_libart.mk
@@ -19,7 +19,8 @@
PRODUCT_PACKAGES += \
core-libart \
libart \
- dex2oat
+ dex2oat \
+ oatdump
# host-only dependencies
ifeq ($(WITH_HOST_DALVIK),true)
@@ -27,4 +28,7 @@
core-libart-hostdex
endif
+# We currently don't suport DEX_PREOPT for art
+DEX_PREOPT_DEFAULT := nostripping
+
include $(SRC_TARGET_DIR)/product/runtime_common.mk
diff --git a/target/product/runtime_libdvm.mk b/target/product/runtime_libdvm.mk
index e7647b8..42e86ed 100644
--- a/target/product/runtime_libdvm.mk
+++ b/target/product/runtime_libdvm.mk
@@ -27,4 +27,9 @@
core-hostdex
endif
+# If runtime_libart has disabled, do not override
+ifndef DEX_PREOPT_DEFAULT
+DEX_PREOPT_DEFAULT := true
+endif
+
include $(SRC_TARGET_DIR)/product/runtime_common.mk
diff --git a/target/product/sdk.mk b/target/product/sdk.mk
index b3640a9..817d9a4 100644
--- a/target/product/sdk.mk
+++ b/target/product/sdk.mk
@@ -32,7 +32,7 @@
libWnnEngDic \
libWnnJpnDic \
libwnndict \
- Phone \
+ TeleService \
PinyinIME \
Protips \
SoftKeyboard \
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index 87cbcd3..1659cc6 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -587,12 +587,22 @@
});
}
+/** Highlight the current page in sidenav, expanding children as appropriate */
function highlightSidenav() {
- // select current page in sidenav and header, and set up prev/next links if they exist
- var $selNavLink = $('#nav').find('a[href="' + mPagePath + '"]');
+ // if something is already highlighted, undo it. This is for dynamic navigation (Samples index)
+ if ($("ul#nav li.selected").length) {
+ unHighlightSidenav();
+ }
+ // look for URL in sidenav, including the hash
+ var $selNavLink = $('#nav').find('a[href="' + mPagePath + location.hash + '"]');
+
+ // If the selNavLink is still empty, look for it without the hash
+ if ($selNavLink.length == 0) {
+ $selNavLink = $('#nav').find('a[href="' + mPagePath + '"]');
+ }
+
var $selListItem;
if ($selNavLink.length) {
-
// Find this page's <li> in sidenav and set selected
$selListItem = $selNavLink.closest('li');
$selListItem.addClass('selected');
@@ -605,6 +615,10 @@
}
}
+function unHighlightSidenav() {
+ $("ul#nav li.selected").removeClass("selected");
+ $('ul#nav li.nav-section.expanded').removeClass('expanded').children('ul').hide();
+}
function toggleFullscreen(enable) {
var delay = 20;
@@ -2142,6 +2156,12 @@
// when an event on the browser history occurs (back, forward, load) requery hash and do search
$(window).hashchange( function(){
+ // Handle hash changes in the samples browser
+ if ($("body").hasClass("samples") && location.href.indexOf("/samples/index.html") != -1) {
+ showSamples();
+ highlightSidenav();
+ resizeNav();
+ }
// Exit if the hash isn't a search query or there's an error in the query
if ((location.hash.indexOf("q=") == -1) || (query == "undefined")) {
// If the results pane is open, close it.
@@ -2676,10 +2696,15 @@
/****** NEW version of script to build google and sample navs dynamically ******/
// TODO: update Google reference docs to tolerate this new implementation
+var NODE_NAME = 0;
+var NODE_HREF = 1;
+var NODE_GROUP = 2;
+var NODE_TAGS = 3;
+var NODE_CHILDREN = 4;
+
function init_google_navtree2(navtree_id, data)
{
var $containerUl = $("#"+navtree_id);
- var linkText;
for (var i in data) {
var node_data = data[i];
$containerUl.append(new_google_node2(node_data));
@@ -2690,25 +2715,25 @@
function new_google_node2(node_data)
{
- var linkText = node_data[0];
+ var linkText = node_data[NODE_NAME];
if(linkText.match("^"+"com.google.android")=="com.google.android"){
linkText = linkText.substr(19, linkText.length);
}
var $li = $('<li>');
var $a;
- if (node_data[1] != null) {
- $a = $('<a href="' + toRoot + node_data[1] + '">' + linkText + '</a>');
+ if (node_data[NODE_HREF] != null) {
+ $a = $('<a href="' + toRoot + node_data[NODE_HREF] + '">' + linkText + '</a>');
} else {
$a = $('<a href="#" onclick="return false;">' + linkText + '/</a>');
}
var $childUl = $('<ul>');
- if (node_data[2] != null) {
+ if (node_data[NODE_CHILDREN] != null) {
$li.addClass("nav-section");
$a = $('<div class="nav-section-header">').append($a);
- if (node_data[1] == null) $a.addClass('empty');
+ if (node_data[NODE_HREF] == null) $a.addClass('empty');
- for (var i in node_data[2]) {
- var child_node_data = node_data[2][i];
+ for (var i in node_data[NODE_CHILDREN]) {
+ var child_node_data = node_data[NODE_CHILDREN][i];
$childUl.append(new_google_node2(child_node_data));
}
$li.append($childUl);
diff --git a/tools/droiddoc/templates-sdk/head_tag.cs b/tools/droiddoc/templates-sdk/head_tag.cs
index 37f1b37..379829c 100644
--- a/tools/droiddoc/templates-sdk/head_tag.cs
+++ b/tools/droiddoc/templates-sdk/head_tag.cs
@@ -1,5 +1,6 @@
<head>
-<?cs ####### If building devsite, add some meta data needed for when generating the top nav ######### ?>
+<?cs
+ ####### If building devsite, add some meta data needed for when generating the top nav ######### ?>
<?cs
if:devsite ?><?cs
if:guide||develop||training||reference||tools||sdk||google||samples
@@ -11,13 +12,17 @@
/if ?>
<?cs
/if
-?><?cs # END if/else devsite ?>
-
+?><?cs
+ # END if/else devsite ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
-<?cs if:page.metaDescription ?>
-<meta name="Description" content="<?cs var:page.metaDescription ?>">
-<?cs /if ?>
+<?cs
+ if:page.metaDescription ?>
+<meta name="Description" content="<?cs var:page.metaDescription ?>"><?cs
+ /if ?><?cs
+ if:page.customHeadTag ?>
+<?cs var:page.customHeadTag ?><?cs
+ /if ?>
<link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>favicon.ico" />
<title><?cs
if:page.title ?><?cs