auto import from //branches/cupcake/...@127101
diff --git a/cleanspec.mk b/cleanspec.mk
index f7a215b..75f83bf 100644
--- a/cleanspec.mk
+++ b/cleanspec.mk
@@ -58,6 +58,8 @@
$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/NOTICE.html)
# Remove generated java files after CL 126153
$(call add-clean-step, find $(OUT_DIR) -type f -name "*.java" -print0 | xargs -0 rm -f)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sapphire/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates/led)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/core/Makefile b/core/Makefile
index 0d82299..a87f606 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -809,6 +809,11 @@
fi
endef
+built_ota_tools := \
+ $(hide) $(ACP) $(call intermediates-dir-for,EXECUTABLES,applypatch)/applypatch \
+ $(hide) $(ACP) $(call intermediates-dir-for,EXECUTABLES,check_prereq)/check_prereq
+$(BUILT_TARGET_FILES_PACKAGE): PRIVATE_OTA_TOOLS := $(built_ota_tools)
+
# Depending on the various images guarantees that the underlying
# directories are up-to-date.
$(BUILT_TARGET_FILES_PACKAGE): \
@@ -820,6 +825,7 @@
$(INSTALLED_USERDATAIMAGE_TARGET) \
$(INSTALLED_ANDROID_INFO_TXT_TARGET) \
$(INTERNAL_OTA_SCRIPT_TARGET) \
+ $(built_ota_tools) \
$(APKCERTS_FILE) \
| $(ACP)
@echo "Package target files: $@"
@@ -865,10 +871,11 @@
$(hide) $(call package_files-copy-root, \
$(TARGET_OUT_DATA),$(zip_root)/DATA)
@# Extra contents of the OTA package
- $(hide) mkdir -p $(zip_root)/OTA
+ $(hide) mkdir -p $(zip_root)/OTA/bin
$(hide) $(call package_files-copy-root, \
$(INTERNAL_OTA_INTERMEDIATES_DIR),$(zip_root)/OTA)
$(hide) $(ACP) $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(zip_root)/OTA/
+ $(hide) $(ACP) $(PRIVATE_OTA_TOOLS) $(zip_root)/OTA/bin/
@# Files that don't end up in any images, but are necessary to
@# build them.
$(hide) mkdir -p $(zip_root)/META
diff --git a/core/definitions.mk b/core/definitions.mk
index 780d8fb..67f7166 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -243,15 +243,9 @@
###########################################################
define find-subdir-assets
-$(if $(1),\
- $(patsubst ./%,%, $(foreach dir,$(1),\
- $(shell if [ -d $(dir) ] ; then\
- cd $(dir) ; find ./ -type f -and -not -type l ;\
- fi \
- ) \
- )) \
-, \
- $(warning Empty argument supplied to find-subdir-assets) \
+$(if $(1),$(patsubst ./%,%, \
+ $(shell if [ -d $(1) ] ; then cd $(1) ; find ./ -type f -and -not -type l ; fi)), \
+ $(warning Empty argument supplied to find-subdir-assets) \
)
endef
diff --git a/core/package.mk b/core/package.mk
index ba41495..32f394f 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -65,9 +65,11 @@
endif
ifeq (,$(LOCAL_RESOURCE_DIR))
-LOCAL_RESOURCE_DIR := $(wildcard $(addsuffix /$(LOCAL_PATH)/res, $(PRODUCT_PACKAGE_OVERLAYS))) \
- $(LOCAL_PATH)/res
+ LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
endif
+LOCAL_RESOURCE_DIR := \
+ $(wildcard $(addsuffix /$(LOCAL_RESOURCE_DIR), $(PRODUCT_PACKAGE_OVERLAYS))) \
+ $(LOCAL_RESOURCE_DIR)
# this is an app, so add the system libraries to the search path
LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
@@ -77,8 +79,14 @@
all_assets := $(call find-subdir-assets,$(LOCAL_ASSET_DIR))
all_assets := $(addprefix $(LOCAL_ASSET_DIR)/,$(patsubst assets/%,%,$(all_assets)))
-all_resources := $(call find-subdir-assets,$(LOCAL_RESOURCE_DIR))
-all_resources := $(addprefix $(LOCAL_RESOURCE_DIR)/,$(patsubst res/%,%,$(all_resources)))
+all_resources := $(strip \
+ $(foreach dir, $(LOCAL_RESOURCE_DIR), \
+ $(addprefix $(dir)/, \
+ $(patsubst res/%,%, \
+ $(call find-subdir-assets,$(dir)) \
+ ) \
+ ) \
+ ))
all_res_assets := $(strip $(all_assets) $(all_resources))
diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk
index 71c2b8a..1bf3c3f 100644
--- a/target/product/AndroidProducts.mk
+++ b/target/product/AndroidProducts.mk
@@ -27,6 +27,7 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/generic.mk \
+ $(LOCAL_DIR)/min_dev.mk \
$(LOCAL_DIR)/sdk.mk \
$(LOCAL_DIR)/sim.mk \
$(LOCAL_DIR)/generic_with_google.mk
diff --git a/target/product/core.mk b/target/product/core.mk
index 534925f..117bb11 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -18,5 +18,6 @@
MediaProvider \
SettingsProvider \
TelephonyProvider \
+ UserDictionaryProvider \
PackageInstaller \
Bugreport
diff --git a/target/product/min_dev.mk b/target/product/min_dev.mk
new file mode 100644
index 0000000..34096a3
--- /dev/null
+++ b/target/product/min_dev.mk
@@ -0,0 +1,18 @@
+
+PRODUCT_POLICY := android.policy_phone
+PRODUCT_PROPERTY_OVERRIDES := \
+ ro.config.notification_sound=F1_New_SMS.ogg
+PRODUCT_BRAND := generic
+PRODUCT_NAME := min_dev
+PRODUCT_DEVICE := generic
+
+PRODUCT_PACKAGES := \
+ DownloadProvider \
+ MediaProvider \
+ SettingsProvider \
+ PackageInstaller \
+ Bugreport \
+ Launcher \
+ Settings \
+ sqlite3
+
diff --git a/tools/applypatch/Android.mk b/tools/applypatch/Android.mk
index 725c21f..09f9862 100644
--- a/tools/applypatch/Android.mk
+++ b/tools/applypatch/Android.mk
@@ -17,12 +17,12 @@
ifneq ($(TARGET_SIMULATOR),true)
-LOCAL_SRC_FILES := applypatch.c xdelta3.c bsdiff.c freecache.c
+LOCAL_SRC_FILES := applypatch.c bsdiff.c freecache.c
LOCAL_MODULE := applypatch
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_TAGS := eng
-LOCAL_C_INCLUDES += external/xdelta3 external/bzip2
-LOCAL_STATIC_LIBRARIES += libxdelta3 libmincrypt libbz libc
+LOCAL_C_INCLUDES += external/bzip2
+LOCAL_STATIC_LIBRARIES += libmincrypt libbz libc
include $(BUILD_EXECUTABLE)
diff --git a/tools/applypatch/applypatch.c b/tools/applypatch/applypatch.c
index 23ed715..9954869 100644
--- a/tools/applypatch/applypatch.c
+++ b/tools/applypatch/applypatch.c
@@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * 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
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
+ * 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.
*/
#include <errno.h>
@@ -209,24 +206,6 @@
}
int ShowLicenses() {
- puts("\nCopyright (C) 2008 The Android Open Source Project\n"
- "\n"
- "This program is free software; you can redistribute it and/or\n"
- "modify it under the terms of the GNU General Public License\n"
- "as published by the Free Software Foundation; either version 2\n"
- "of the License, or (at your option) any later version.\n"
- "\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU General Public License\n"
- "along with this program; if not, write to the Free Software\n"
- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n"
- "02110-1301, USA.\n"
- "\n------------------\n"
- );
ShowBSDiffLicense();
return 0;
}
@@ -251,10 +230,10 @@
// successfully.
//
// - otherwise, if the sha1 hash of <file> is <src-sha1>, applies the
-// xdelta3 or bsdiff <patch> to <file> to produce a new file (the
-// type of patch is automatically detected from the file header).
-// If that new file has sha1 hash <tgt-sha1>, moves it to replace
-// <file>, and exits successfully.
+// bsdiff <patch> to <file> to produce a new file (the type of patch
+// is automatically detected from the file header). If that new
+// file has sha1 hash <tgt-sha1>, moves it to replace <file>, and
+// exits successfully.
//
// - otherwise, or if any error is encountered, exits with non-zero
// status.
@@ -426,12 +405,8 @@
header[2] == 0xc4 && header[3] == 0) {
// xdelta3 patches begin "VCD" (with the high bits set) followed
// by a zero byte (the version number).
- int result = ApplyXDelta3Patch(source_to_use->data, source_to_use->size,
- patch_filename, output, &ctx);
- if (result != 0) {
- fprintf(stderr, "ApplyXDelta3Patch failed\n");
- return result;
- }
+ fprintf(stderr, "error: xdelta3 patches no longer supported\n");
+ return 1;
} else if (header_bytes_read >= 8 &&
memcmp(header, "BSDIFF40", 8) == 0) {
int result = ApplyBSDiffPatch(source_to_use->data, source_to_use->size,
diff --git a/tools/applypatch/applypatch.h b/tools/applypatch/applypatch.h
index 3059e22..76fc80a 100644
--- a/tools/applypatch/applypatch.h
+++ b/tools/applypatch/applypatch.h
@@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * 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
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
+ * 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.
*/
#ifndef _APPLYPATCH_H
@@ -44,11 +41,6 @@
// applypatch.c
size_t FreeSpaceForFile(const char* filename);
-// xdelta3.c
-int ApplyXDelta3Patch(const unsigned char* old_data, ssize_t old_size,
- const char* patch_filename,
- FILE* output, SHA_CTX* ctx);
-
// bsdiff.c
void ShowBSDiffLicense();
int ApplyBSDiffPatch(const unsigned char* old_data, ssize_t old_size,
diff --git a/tools/applypatch/applypatch.sh b/tools/applypatch/applypatch.sh
index 193e7fd..181cd5c 100755
--- a/tools/applypatch/applypatch.sh
+++ b/tools/applypatch/applypatch.sh
@@ -128,7 +128,7 @@
# --------------- apply patch ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
-$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
+$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
# Check that the partition has enough space to apply the patch without
# copying. If it doesn't, we'll be testing the low-space condition
@@ -145,19 +145,6 @@
exit 1
fi
-testname "apply xdelta3 patch"
-run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
-$ADB pull $WORK_DIR/old.file $tmpdir/patched
-diff -q $DATA_DIR/new.file $tmpdir/patched || fail
-
-testname "reapply xdelta3 patch"
-run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
-$ADB pull $WORK_DIR/old.file $tmpdir/patched
-diff -q $DATA_DIR/new.file $tmpdir/patched || fail
-
-$ADB push $DATA_DIR/old.file $WORK_DIR
-$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
-
testname "apply bsdiff patch"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
@@ -172,7 +159,6 @@
# --------------- apply patch with low space on /system ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
-$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
free_kb=$(free_space $WORK_FS)
@@ -182,18 +168,6 @@
free_kb=$(free_space $WORK_FS)
echo "${free_kb}kb free on /$WORK_FS now."
-testname "apply xdelta3 patch with low space"
-run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
-$ADB pull $WORK_DIR/old.file $tmpdir/patched
-diff -q $DATA_DIR/new.file $tmpdir/patched || fail
-
-testname "reapply xdelta3 patch with low space"
-run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
-$ADB pull $WORK_DIR/old.file $tmpdir/patched
-diff -q $DATA_DIR/new.file $tmpdir/patched || fail
-
-$ADB push $DATA_DIR/old.file $WORK_DIR
-
testname "apply bsdiff patch with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
@@ -207,7 +181,6 @@
# --------------- apply patch with low space on /system and /cache ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
-$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
free_kb=$(free_space $WORK_FS)
@@ -216,7 +189,7 @@
run_command mkdir /cache/subdir
run_command 'echo > /cache/subdir/a.file'
run_command 'echo > /cache/a.file'
-run_command mkdir -p /cache/recovery/otatest
+run_command mkdir /cache/recovery /cache/recovery/otatest
run_command 'echo > /cache/recovery/otatest/b.file'
run_command "echo > $CACHE_TEMP_SOURCE"
free_kb=$(free_space cache)
@@ -268,8 +241,8 @@
# put some junk in the old file
run_command dd if=/dev/urandom of=$WORK_DIR/old.file count=100 bs=1024 || fail
-testname "apply xdelta3 patch from cache (corrupted source) with low space"
-run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
+testname "apply bsdiff patch from cache (corrupted source) with low space"
+run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail
diff --git a/tools/applypatch/bsdiff.c b/tools/applypatch/bsdiff.c
index f502a6b..a2851f9 100644
--- a/tools/applypatch/bsdiff.c
+++ b/tools/applypatch/bsdiff.c
@@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * 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
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
+ * 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 is a nearly line-for-line copy of bspatch.c from the
diff --git a/tools/applypatch/testdata/patch.xdelta3 b/tools/applypatch/testdata/patch.xdelta3
deleted file mode 100644
index 2af3ede..0000000
--- a/tools/applypatch/testdata/patch.xdelta3
+++ /dev/null
Binary files differ
diff --git a/tools/applypatch/xdelta3.c b/tools/applypatch/xdelta3.c
deleted file mode 100644
index c9a0f73..0000000
--- a/tools/applypatch/xdelta3.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include "xdelta3.h"
-#include "mincrypt/sha.h"
-
-int ApplyXDelta3Patch(const unsigned char* old_data, ssize_t old_size,
- const char* patch_filename,
- FILE* output, SHA_CTX* ctx) {
-#define WINDOW_SIZE 32768
-
- int ret;
- xd3_stream stream;
- xd3_config config;
-
- xd3_init_config(&config, 0);
- config.winsize = WINDOW_SIZE;
- ret = xd3_config_stream(&stream, &config);
- if (ret != 0) {
- fprintf(stderr, "xd3_config_stream error: %s\n", xd3_strerror(ret));
- return 1;
- }
-
- // In xdelta3 terms, the "input" is the patch file: it contains a
- // sequence of instruction codes and data that will be executed to
- // produce the output file. The "source" is the original data file;
- // it is a blob of data to which instructions in the input may refer
- // (eg, an instruction may say "copy such-and-such range of bytes
- // from the source to the output").
-
- // For simplicity, we provide the entire source to xdelta as a
- // single block. This means it should never have to ask us to load
- // blocks of the source file.
- xd3_source source;
- source.name = "old name";
- source.size = old_size;
- source.ioh = NULL;
- source.blksize = old_size;
- source.curblkno = 0;
- source.curblk = old_data;
- source.onblk = old_size;
-
- ret = xd3_set_source(&stream, &source);
- if (ret != 0) {
- fprintf(stderr, "xd3_set_source error: %s\n", xd3_strerror(ret));
- return 1;
- }
-
- unsigned char buffer[WINDOW_SIZE];
- FILE* input = fopen(patch_filename, "rb");
- if (input == NULL) {
- fprintf(stderr, "failed to open patch file %s: %d (%s)\n",
- patch_filename, errno, strerror(errno));
- return 1;
- }
-
- size_t bytes_read;
-
- do {
- bytes_read = fread(buffer, 1, WINDOW_SIZE, input);
- if (feof(input)) {
- xd3_set_flags(&stream, XD3_FLUSH);
- }
- xd3_avail_input(&stream, buffer, bytes_read);
- process:
- ret = xd3_decode_input(&stream);
- switch (ret) {
- case XD3_INPUT:
- continue;
- case XD3_OUTPUT:
- SHA_update(ctx, stream.next_out, stream.avail_out);
- if (fwrite(stream.next_out, 1, stream.avail_out, output) !=
- stream.avail_out) {
- fprintf(stderr, "short write of output file: %d (%s)\n",
- errno, strerror(errno));
- return 1;
- }
- xd3_consume_output(&stream);
- goto process;
- case XD3_GETSRCBLK:
- // We provided the entire source file already; it should never
- // have to ask us for a block.
- fprintf(stderr, "xd3_decode_input: unexpected GETSRCBLK\n");
- return 1;
- case XD3_GOTHEADER:
- case XD3_WINSTART:
- case XD3_WINFINISH:
- // These are informational events we don't care about.
- goto process;
- default:
- fprintf(stderr, "xd3_decode_input: unknown error %s (%s)\n",
- xd3_strerror(ret), stream.msg);
- return 1;
- }
- } while (!feof(input));
-
- fclose(input);
- return 0;
-
-#undef WINDOW_SIZE
-}
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.css b/tools/droiddoc/templates/assets/android-developer-docs.css
index cfbcc75..44b5a4d 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.css
+++ b/tools/droiddoc/templates/assets/android-developer-docs.css
@@ -207,7 +207,7 @@
}
#jd-header {
- background-color: #E9E9E9;
+ background-color: #E2E2E2;
padding: 7px 20px;
}
@@ -253,6 +253,86 @@
position:relative;
}
+/* summary tables for reference pages */
+.jd-sumtable {
+margin: .5em 1em 1em 1em;
+width:99%;
+font-size:.9em;
+}
+
+.jd-sumtable a {
+ text-decoration:none;
+}
+
+.jd-sumtable a:hover {
+ text-decoration:underline;
+}
+
+/* a div inside a sumtable th holding "Expand All" */
+.expandall {
+float:right;
+font-weight:normal;
+}
+
+/* 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 {
+ width:100%;
+ 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;
+ margin:0;
+ padding:6px;
+ font-weight:normal;
+ float:right;
+ text-align:right;
+ color:#999;
+ max-width:70%;
+}
+
+/* applies to a div containing links to summary tables */
+.sum-details-links {
+ margin:0 .5em;
+ 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;
@@ -295,7 +375,7 @@
color:#111;
border-top:2px solid #ccc;
padding: .5em 0 0;
- margin: 1.75em 0 1em 0;
+ margin: 1.5em 0 1em 0;
max-width:968px;
}
@@ -334,7 +414,12 @@
.nolist {
list-style:none;
padding:0;
- margin:0 0 1em 1em;
+ margin:0 0 0 1em;
+}
+
+.nolist li {
+ padding:0;
+ margin:0;
}
h4 .normal {
@@ -348,18 +433,57 @@
margin:0 0 1em;
}
-.jd-tagdata {
- margin:.6em 0;
+/* API reference: a container for the
+.tagdata blocks that make up the detailed
+description */
+.jd-details-descr {
+ padding:0;
+ margin:.5em .25em;
}
-.jd-tagdata ul {
+/* API reference: a block containing
+a detailed description, a params table,
+seealso list, etc */
+.jd-tagdata {
+ margin:.5em 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: #d6d6d6;
- margin:0 0 .6em;
+ background-color: #E2E2E2;
+ margin:1.5em 0 .6em;
padding:3px;
}
@@ -367,8 +491,11 @@
margin:0;
}
-.jd-details-descr {
- padding:3px;
+/* API reference: heading for "Parameters", "See Also", etc.,
+in details sections */
+h5.jd-tagtitle {
+ margin:0 0 .25em 0;
+ font-size:1em;
}
.jd-tagtable {
@@ -398,13 +525,13 @@
}
div.special {
- padding: 15px 20px 3px;
+ padding: .5em 1em 1em 1em;
margin: 0 0 1em;
background-color: #ddf0f2;
}
div.special p {
- margin: .25em 0;
+ margin: .5em 0 0 0;
}
div.special ol {
@@ -529,6 +656,7 @@
margin-top:0px;
width:295;
float:right;
+ font-size:.9em;
}
#qv ol {
@@ -725,7 +853,7 @@
}
tr.alt-color {
- background-color: #e6e6e6;
+ background-color: #f6f6f6;
}
/* expando trigger */
diff --git a/tools/droiddoc/templates/class.cs b/tools/droiddoc/templates/class.cs
index 1fd4369..005ed6a 100644
--- a/tools/droiddoc/templates/class.cs
+++ b/tools/droiddoc/templates/class.cs
@@ -23,6 +23,84 @@
<div class="g-unit" id="doc-content">
+<div id="api-info-block">
+
+<?cs # are there inherited members ?>
+<?cs each:cl=class.inherited ?>
+ <?cs if:subcount(cl.methods) ?>
+ <?cs set:inhmethods = #1 ?>
+ <?cs /if ?>
+ <?cs if:subcount(cl.constants) ?>
+ <?cs set:inhconstants = #1 ?>
+ <?cs /if ?>
+ <?cs if:subcount(cl.fields) ?>
+ <?cs set:inhfields = #1 ?>
+ <?cs /if ?>
+ <?cs if:subcount(cl.attrs) ?>
+ <?cs set:inhattrs = #1 ?>
+ <?cs /if ?>
+<?cs /each ?>
+
+<div class="sum-details-links">
+Summary:
+<?cs if:subcount(class.inners) ?>
+ <a href="#nestedclasses">Nested Classes</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.attrs) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#lattrs">XML Attrs</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:inhattrs ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.enumConstants) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#enumconstants">Enums</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.constants) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#constants">Constants</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:inhconstants ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.fields) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#lfields">Fields</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:inhfields ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#inhfields">Inherited Fields</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.ctors.public) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#pubctors">Ctors</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.ctors.protected) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#proctors">Protected Ctors</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.methods.public) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#pubmethods">Methods</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:subcount(class.methods.protected) ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#promethods">Protected Methods</a>
+ <?cs set:linkcount = #1 ?>
+<?cs /if ?>
+<?cs if:inhmethods ?>
+ <?cs if:linkcount ?>| <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
+<?cs /if ?>
+</nobr>
+<?cs if:inhattrs || inhconstants || inhfields || inhmethods || subcount(class.subclasses.direct) || subcount(class.subclasses.indirect) ?>
+| [<a href="">Expand All</a>]
+<?cs /if ?>
+</div>
+</div>
+
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== START OF CLASS DATA ======== -->
@@ -58,7 +136,7 @@
<tr>
<?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
<td class="jd-inheritance-space"> <?cs if:(subcount(class.inheritance)-colspan) == i ?> ↳<?cs /if ?></td>
- <?cs /loop ?>
+ <?cs /loop ?>
<td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
if:colspan == 1
?><?cs call:class_name(class.qualifiedType) ?><?cs
@@ -70,6 +148,21 @@
<?cs /each ?>
</table>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<?cs if:subcount(class.subclasses.direct) ?>
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+<?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
+<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
+</td></tr></table>
+<?cs /if ?>
+
+<?cs if:subcount(class.subclasses.indirect) ?>
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+<?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
+<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
+</td></tr></table>
+<?cs /if ?>
<div class="jd-descr">
<?cs call:deprecated_warning(class) ?>
@@ -78,33 +171,15 @@
<p><?cs call:tag_list(class.descr) ?></p>
<?cs /if ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<?cs if:subcount(class.inners) ?>
-<h4><?cs call:expando_trigger("nested-classes", "opened") ?>Nested Classes</h4>
-<?cs call:expandable_class_list("nested-classes", class.inners, "summary") ?>
-<?cs /if ?>
-
-<?cs if:subcount(class.subclasses.direct) ?>
-<h4><?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses</h4>
-<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
-<?cs /if ?>
-
-<?cs if:subcount(class.subclasses.indirect) ?>
-<h4><?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses</h4>
-<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
-<?cs /if ?>
-
<?cs call:see_also_tags(class.seeAlso) ?>
</div><!-- jd-descr -->
-<?cs # summar macros ?>
+<?cs # summary macros ?>
<?cs def:write_method_summary(methods) ?>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
<?cs each:method = methods ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-typecol"><nobr>
@@ -115,71 +190,80 @@
<?cs call:type_link(method.generic) ?>
<?cs call:type_link(method.returnType) ?></nobr>
</td>
- <td class="jd-linkcol" width="100%"><a href="<?cs var:toroot ?><?cs var:method.href ?>"><strong><?cs var:method.name ?></strong></a>(<?cs call:parameter_list(method.params) ?>)</td>
- </tr>
- <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
- <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
- <td class="jd-commentrow"></td>
- <td class="jd-commentrow"><?cs call:short_descr(method) ?></td>
- </tr>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="<?cs var:toroot ?><?cs var:method.href ?>">
+ <?cs var:method.name ?></a></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
+ <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
+ <div class="jd-descrdiv"><?cs call:short_descr(method) ?></div>
<?cs /if ?>
+ </td></tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
-</table>
<?cs /def ?>
<?cs def:write_field_summary(fields) ?>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
<?cs each:field=fields ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
- <td class="jd-descrcol"><?cs var:field.scope ?> </td>
- <td class="jd-descrcol"><?cs var:field.static ?> </td>
- <td class="jd-descrcol"><?cs var:field.final ?> </td>
- <td class="jd-descrcol"><?cs call:type_link(field.type) ?> </td>
- <td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a> </td>
- <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?> </td>
+ <td class="jd-typecol"><nobr>
+ <?cs var:field.scope ?>
+ <?cs var:field.static ?>
+ <?cs var:field.final ?>
+ <?cs call:type_link(field.type) ?></nobr></td>
+ <td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a></td>
+ <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
-</table>
<?cs /def ?>
<?cs def:write_constant_summary(fields) ?>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
-
<?cs each:field=fields ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
- <td class="jd-descrcol"><?cs call:type_link(field.type) ?> </td>
- <td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a> </td>
- <td class="jd-descrcol"><?cs call:short_descr(field) ?> </td>
+ <td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
+ <td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a></td>
+ <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
-</table>
<?cs /def ?>
<?cs def:write_attr_summary(attrs) ?>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
<tr>
- <th>Attribute name</th>
- <th>Related methods</th>
- <th> </th>
+ <td><nobr><em>Attribute Name</em></nobr></td>
+ <td><nobr><em>Related Method</em></nobr></td>
+ <td><nobr><em>Description</em></nobr></td>
</tr>
<?cs each:attr=attrs ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></td>
- <td class="jd-linkcol"><?cs each:m=attr.methods
- ?><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a><br/>
- <?cs /each ?>
+ <td class="jd-linkcol"><?cs each:m=attr.methods ?>
+ <a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a>
+ <?cs /each ?>
</td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(attr) ?> </td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
-</table>
+<?cs /def ?>
+
+<?cs def:write_inners_summary(classes) ?>
+<?cs set:count = #1 ?>
+ <?cs each:cl=class.inners ?>
+ <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
+ <td class="jd-typecol"><nobr>
+ <?cs var:class.scope ?>
+ <?cs var:class.static ?>
+ <?cs var:class.final ?>
+ <?cs var:class.abstract ?>
+ <?cs var:class.kind ?></nobr></td>
+ <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
+ <td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?> </td>
+ </tr>
+ <?cs set:count = count + #1 ?>
+ <?cs /each ?>
<?cs /def ?>
<?cs # end macros ?>
@@ -187,39 +271,50 @@
<div class="jd-descr">
<h2>Summary</h2>
+<?cs if:subcount(class.inners) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== FIELD SUMMARY =========== -->
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+<?cs call:write_inners_summary(class.inners) ?>
+<?cs /if ?>
+
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<?cs if:subcount(class.attrs) ?>
-<h3>XML Attributes</h3>
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
<?cs call:write_attr_summary(class.attrs) ?>
<?cs /if ?>
+<?cs # if there are inherited attrs, write the table ?>
+<?cs if:inhattrs ?>
+<table id="inhattrs" class="jd-sumtable"><tr><th>
+ <div class="expandall">[<a href="">Expand All</a>]</div>
+ <div style="clear:left;">Inherited XML Attributes</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.attrs) ?>
-<h4><?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>XML Attributes inherited
- from <?cs var:cl.kind ?>
- <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-</h4>
+<tr><td colspan="12">
+<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
+<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-attrs-<?cs var:cl.qualified ?>">
<div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
- class="jd-inheritedlinks">
+ class="jd-inheritedlinks">
</div>
- <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary"
- style="display: none;">
- <?cs call:write_attr_summary(cl.attrs) ?>
+ <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+ <?cs call:write_attr_summary(cl.attrs) ?></table>
</div>
</div>
+</td></tr>
<?cs /if ?>
<?cs /each ?>
-
-
+</table>
+<?cs /if ?>
<?cs if:subcount(class.enumConstants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<h3>Enum Values</h3>
+<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
<?cs each:field=class.enumConstants ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-descrcol"><?cs call:type_link(field.type) ?> </td>
@@ -228,109 +323,129 @@
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
-</table>
<?cs /if ?>
<?cs if:subcount(class.constants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
-<h3>Constants</h3>
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
<?cs call:write_constant_summary(class.constants) ?>
+</table>
<?cs /if ?>
+<?cs # if there are inherited constants, write the table ?>
+<?cs if:inhconstants ?>
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <div class="expandall">[<a href="">Expand All</a>]</div>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.constants) ?>
-<h4><?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>Constants inherited
- from <?cs var:cl.kind ?>
- <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-</h4>
+<tr><td colspan="12">
+<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
+<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-constants-<?cs var:cl.qualified ?>">
-<div id="inherited-constants-<?cs var:cl.qualified ?>-list"
+ <div id="inherited-constants-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
-
+ </div>
+ <div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+ <?cs call:write_constant_summary(cl.constants) ?></table>
+ </div>
</div>
-<div id="inherited-constants-<?cs var:cl.qualified ?>-summary"
- style="display: none;">
-<?cs call:write_constant_summary(cl.constants) ?>
-</div>
-</div>
+</td></tr>
<?cs /if ?>
<?cs /each ?>
-
+</table>
+<?cs /if ?>
<?cs if:subcount(class.fields) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
-<h3>Fields</h3>
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
<?cs call:write_field_summary(class.fields) ?>
+</table>
<?cs /if ?>
+<?cs # if there are inherited fields, write the table ?>
+<?cs if:inhfields ?>
+<table id="inhfields" class="jd-sumtable"><tr><th>
+ <div class="expandall">[<a href="">Expand All</a>]</div>
+ <div style="clear:left;">Inherited Fields</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.fields) ?>
-<h4><?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>Fields inherited
- from <?cs var:cl.kind ?>
- <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-</h4>
+<tr><td colspan="12">
+<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
+<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-fields-<?cs var:cl.qualified ?>">
-<div id="inherited-fields-<?cs var:cl.qualified ?>-list"
+ <div id="inherited-fields-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
-
+ </div>
+ <div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+ <?cs call:write_field_summary(cl.fields) ?></table>
+ </div>
</div>
-<div id="inherited-fields-<?cs var:cl.qualified ?>-summary"
- style="display: none;">
-<?cs call:write_field_summary(cl.fields) ?>
-</div>
-</div>
+</td></tr>
<?cs /if ?>
<?cs /each ?>
-
+</table>
+<?cs /if ?>
<?cs if:subcount(class.ctors.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<h3>Public Constructors</h3>
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
<?cs call:write_method_summary(class.ctors.public) ?>
+</table>
<?cs /if ?>
<?cs if:subcount(class.ctors.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<h3>Protected Constructors</h3>
+<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
<?cs call:write_method_summary(class.ctors.protected) ?>
+</table>
<?cs /if ?>
<?cs if:subcount(class.methods.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
-<h3>Public Methods</h3>
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
<?cs call:write_method_summary(class.methods.public) ?>
+</table>
<?cs /if ?>
<?cs if:subcount(class.methods.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
-<h3>Protected Methods</h3>
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
<?cs call:write_method_summary(class.methods.protected) ?>
+</table>
<?cs /if ?>
+<?cs # if there are inherited methods, write the table ?>
+<?cs if:inhmethods ?>
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <div class="expandall">[<a href="">Expand All</a>]</div>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.methods) ?>
-<h4><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>Methods inherited
- from <?cs var:cl.kind ?>
- <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-</h4>
+<tr><td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
+From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-methods-<?cs var:cl.qualified ?>">
-<div id="inherited-methods-<?cs var:cl.qualified ?>-list"
+ <div id="inherited-methods-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
-
+ </div>
+ <div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+ <?cs call:write_method_summary(cl.methods) ?></table>
+ </div>
</div>
-<div id="inherited-methods-<?cs var:cl.qualified ?>-summary"
- style="display: none;">
-<?cs call:write_method_summary(cl.methods) ?>
-</div>
-</div>
+</td></tr>
<?cs /if ?>
<?cs /each ?>
+</table>
+<?cs /if ?>
</div><!-- jd-descr (summary) -->
@@ -381,7 +496,8 @@
<?cs var:method.synchronized ?>
<?cs call:type_link(method.returnType) ?>
</span>
- <?cs var:method.name ?>(<?cs call:parameter_list(method.params) ?>)
+ <span class="sympad"><?cs var:method.name ?></span>
+ <span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
</h4>
<div class="jd-details-descr"><?cs call:description(method) ?></div>
</div>
diff --git a/tools/droiddoc/templates/classes.cs b/tools/droiddoc/templates/classes.cs
index 44aefbd..f8494e5 100644
--- a/tools/droiddoc/templates/classes.cs
+++ b/tools/droiddoc/templates/classes.cs
@@ -18,10 +18,10 @@
<?cs each:letter=docs.classes ?>
<?cs set:count = #1 ?>
<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
-<table class="jd-linktable jd-lettertable">
+<table class="jd-sumtable">
<?cs set:cur_row = #0 ?>
<?cs each:cl = letter ?>
- <tr class="jd-letterentries <?cs if:count % #2 ?>alt-color<?cs /if ?>" >
+ <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?> </td>
</tr>
diff --git a/tools/droiddoc/templates/macros.cs b/tools/droiddoc/templates/macros.cs
index 1325496..8f5fa8e 100644
--- a/tools/droiddoc/templates/macros.cs
+++ b/tools/droiddoc/templates/macros.cs
@@ -103,7 +103,7 @@
<?cs def:see_also_tags(also) ?>
<?cs if:subcount(also) ?>
<div class="jd-tagdata">
- <h4 class="jd-tagtitle">See Also</h4>
+ <h5 class="jd-tagtitle">See Also</h5>
<ul class="nolist">
<?cs each:tag=also
?><li><?cs
@@ -114,8 +114,7 @@
else ?>[ERROR: Unknown @see kind]<?cs
/if ?></li>
<?cs /each ?>
- </table>
- <ul>
+ </ul>
</div>
<?cs /if ?>
<?cs /def ?>
@@ -127,11 +126,12 @@
<?cs def:description(obj) ?>
<?cs call:deprecated_warning(obj) ?>
-<?cs call:tag_list(obj.descr) ?>
+<div class="jd-tagdata jd-tagdescr"><p><?cs call:tag_list(obj.descr) ?></p></div>
+
<?cs if:subcount(obj.attrRefs) ?>
<div class="jd-tagdata">
- <h4 class="jd-tagtitle">Related XML Attributes</h4>
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
<ul class="nolist">
<?cs each:attr=obj.attrRefs ?>
<li><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></li>
@@ -142,7 +142,7 @@
<?cs if:subcount(obj.paramTags) ?>
<div class="jd-tagdata">
- <h4 class="jd-tagtitle">Parameters</h4>
+ <h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<?cs each:tag=obj.paramTags
?><tr>
@@ -158,14 +158,14 @@
<?cs if:subcount(obj.returns) ?>
<div class="jd-tagdata">
- <h4 class="jd-tagtitle">Returns</h4>
+ <h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li><?cs call:tag_list(obj.returns) ?></li></ul>
</div>
<?cs /if ?>
<?cs if:subcount(obj.throws) ?>
<div class="jd-tagdata">
- <h4 class="jd-tagtitle">Throws</h4>
+ <h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<?cs each:tag=obj.throws
?> <tr>
@@ -185,7 +185,7 @@
<?cs # A table of links to classes with descriptions, as in a package file or the nested classes ?>
<?cs def:class_link_table(classes) ?>
<?cs set:count = #1 ?>
-<table class="jd-linktable"><?cs
+<table class="jd-sumtable-expando"><?cs
each:cl=classes ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
diff --git a/tools/droiddoc/templates/package.cs b/tools/droiddoc/templates/package.cs
index 65f0278..becf482 100644
--- a/tools/droiddoc/templates/package.cs
+++ b/tools/droiddoc/templates/package.cs
@@ -29,7 +29,9 @@
<?cs def:class_table(label, classes) ?>
<?cs if:subcount(classes) ?>
<h3><?cs var:label ?></h3>
+ <div class="jd-sumtable">
<?cs call:class_link_table(classes) ?>
+ </div>
<?cs /if ?>
<?cs /def ?>
diff --git a/tools/droiddoc/templates/packages.cs b/tools/droiddoc/templates/packages.cs
index 14f7246..3ef85b8 100644
--- a/tools/droiddoc/templates/packages.cs
+++ b/tools/droiddoc/templates/packages.cs
@@ -17,9 +17,9 @@
</div>
<?cs set:count = #1 ?>
-<table class="jd-linktable">
+<table class="jd-sumtable">
<?cs each:pkg = docs.packages ?>
- <tr class="jd-letterentries <?cs if:count % #2 ?>alt-color<?cs /if ?>" >
+ <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:package_link(pkg) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?> </td>
</tr>