diff options
-rw-r--r-- | cleanspec.mk | 2 | ||||
-rw-r--r-- | core/Makefile | 9 | ||||
-rw-r--r-- | core/definitions.mk | 12 | ||||
-rw-r--r-- | core/package.mk | 16 | ||||
-rw-r--r-- | target/product/AndroidProducts.mk | 1 | ||||
-rw-r--r-- | target/product/core.mk | 1 | ||||
-rw-r--r-- | target/product/min_dev.mk | 18 | ||||
-rw-r--r-- | tools/applypatch/Android.mk | 6 | ||||
-rw-r--r-- | tools/applypatch/applypatch.c | 55 | ||||
-rw-r--r-- | tools/applypatch/applypatch.h | 26 | ||||
-rwxr-xr-x | tools/applypatch/applypatch.sh | 35 | ||||
-rw-r--r-- | tools/applypatch/bsdiff.c | 21 | ||||
-rw-r--r-- | tools/applypatch/testdata/patch.xdelta3 | bin | 172744 -> 0 bytes | |||
-rw-r--r-- | tools/applypatch/xdelta3.c | 121 | ||||
-rw-r--r-- | tools/droiddoc/templates/assets/android-developer-docs.css | 152 | ||||
-rw-r--r-- | tools/droiddoc/templates/class.cs | 326 | ||||
-rw-r--r-- | tools/droiddoc/templates/classes.cs | 4 | ||||
-rw-r--r-- | tools/droiddoc/templates/macros.cs | 18 | ||||
-rw-r--r-- | tools/droiddoc/templates/package.cs | 2 | ||||
-rw-r--r-- | tools/droiddoc/templates/packages.cs | 4 |
20 files changed, 461 insertions, 368 deletions
diff --git a/cleanspec.mk b/cleanspec.mk index f7a215b..75f83bf 100644 --- a/cleanspec.mk +++ b/cleanspec.mk @@ -58,6 +58,8 @@ INTERNAL_CLEAN_BUILD_VERSION := 2 $(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 @@ define package_files-copy-root 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 @@ $(BUILT_TARGET_FILES_PACKAGE): \ $(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 @@ endif $(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 @@ endef ########################################################### 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 @@ LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets 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 @@ LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS) 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 @@ PRODUCT_PACKAGES := \ 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 @@ include $(CLEAR_VARS) 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 CheckMode(int argc, char** argv) { } 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 @@ size_t FreeSpaceForFile(const char* filename) { // 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 @@ int main(int argc, char** argv) { 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 @@ typedef struct _FileContents { // 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 @@ run_command $WORK_DIR/applypatch -c $WORK_DIR/old.file $BAD2_SHA1 $BAD1_SHA1 && # --------------- 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 @@ if (( free_kb * 1024 < NEW_SIZE * 3 / 2 )); then 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 @@ diff -q $DATA_DIR/new.file $tmpdir/patched || fail # --------------- 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 @@ run_command dd if=/dev/zero of=$WORK_DIR/bloat.dat count=$((free_kb-512)) bs=102 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 @@ diff -q $DATA_DIR/new.file $tmpdir/patched || fail # --------------- 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 @@ echo "${free_kb}kb free on /$WORK_FS" 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 @@ $ADB push $DATA_DIR/old.file $CACHE_TEMP_SOURCE # 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 Binary files differdeleted file mode 100644 index 2af3ede..0000000 --- a/tools/applypatch/testdata/patch.xdelta3 +++ /dev/null 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 @@ hr { 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 @@ hr { .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 @@ h4 .normal { 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:.6em 0; + margin:.5em 1em; } -.jd-tagdata ul { +/* 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 @@ h4.jd-tagtitle { 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 @@ h4.jd-tagtitle { } 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 @@ pre.classic { margin-top:0px; width:295; float:right; + font-size:.9em; } #qv ol { @@ -725,7 +853,7 @@ table ol.toc { } 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 @@ function toggle_inherited(base) { <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 @@ function toggle_inherited(base) { <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,29 +148,27 @@ function toggle_inherited(base) { <?cs /each ?> </table> - -<div class="jd-descr"> -<?cs call:deprecated_warning(class) ?> -<?cs if:subcount(class.descr) ?> -<h2>Class Overview</h2> -<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> +<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) ?> -<h4><?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses</h4> +<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) ?> +<?cs if:subcount(class.descr) ?> +<h2>Class Overview</h2> +<p><?cs call:tag_list(class.descr) ?></p> <?cs /if ?> <?cs call:see_also_tags(class.seeAlso) ?> @@ -100,11 +176,10 @@ function toggle_inherited(base) { </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 @@ function toggle_inherited(base) { <?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 @@ function toggle_inherited(base) { <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 ?> +<!-- ======== 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 ?> -<!-- =========== FIELD SUMMARY =========== --> <?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 @@ function toggle_inherited(base) { </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;"> -<?cs call:write_constant_summary(cl.constants) ?> -</div> + </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> +</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;"> -<?cs call:write_field_summary(cl.fields) ?> -</div> + </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> +</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;"> -<?cs call:write_method_summary(cl.methods) ?> -</div> + </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> +</td></tr> <?cs /if ?> <?cs /each ?> +</table> +<?cs /if ?> </div><!-- jd-descr (summary) --> @@ -381,7 +496,8 @@ function toggle_inherited(base) { <?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 @@ This <?cs var:kind ?> is deprecated. <?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 @@ This <?cs var:kind ?> is deprecated. else ?>[ERROR: Unknown @see kind]<?cs /if ?></li> <?cs /each ?> - </table> - <ul> + </ul> </div> <?cs /if ?> <?cs /def ?> @@ -127,11 +126,12 @@ This <?cs var:kind ?> is deprecated. <?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 @@ This <?cs var:kind ?> is deprecated. <?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 @@ This <?cs var:kind ?> is deprecated. <?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 @@ This <?cs var:kind ?> is deprecated. <?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> |