Browse Source

fresh start to mm

Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
Arnav Gupta 4 years ago
commit
d9c5742df6
100 changed files with 187213 additions and 0 deletions
  1. 3
    0
      .gitignore
  2. 7
    0
      .gitreview
  3. 58
    0
      README.md
  4. 2766
    0
      bash_completion/git.bash
  5. 655
    0
      bash_completion/repo.bash
  6. 129
    0
      build/core/apicheck.mk
  7. 16
    0
      build/core/clear_vars.mk
  8. 27
    0
      build/core/config.mk
  9. 6
    0
      build/core/definitions.mk
  10. 69
    0
      build/core/maven_artifact.mk
  11. 54
    0
      build/core/maven_artifact_publish.mk
  12. 2768
    0
      build/tools/droiddoc/templates-cmsdk/assets/android-developer-docs.css
  13. BIN
      build/tools/droiddoc/templates-cmsdk/assets/cid_smart.png
  14. 7440
    0
      build/tools/droiddoc/templates-cmsdk/assets/css/default.css
  15. 208
    0
      build/tools/droiddoc/templates-cmsdk/assets/css/fullscreen.css
  16. 14
    0
      build/tools/droiddoc/templates-cmsdk/assets/customizations.css
  17. 188
    0
      build/tools/droiddoc/templates-cmsdk/assets/design/design.js
  18. 4339
    0
      build/tools/droiddoc/templates-cmsdk/assets/docs.js
  19. BIN
      build/tools/droiddoc/templates-cmsdk/assets/favicon.ico
  20. BIN
      build/tools/droiddoc/templates-cmsdk/assets/fullscreen.png
  21. BIN
      build/tools/droiddoc/templates-cmsdk/assets/images/fullscreen.png
  22. 679
    0
      build/tools/droiddoc/templates-cmsdk/class.cs
  23. 53
    0
      build/tools/droiddoc/templates-cmsdk/classes.cs
  24. 10
    0
      build/tools/droiddoc/templates-cmsdk/components/masthead.cs
  25. 516
    0
      build/tools/droiddoc/templates-cmsdk/customizations.cs
  26. 86
    0
      build/tools/droiddoc/templates-cmsdk/head_tag.cs
  27. 36
    0
      build/tools/droiddoc/templates-cmsdk/macros_override.cs
  28. 65
    0
      build/tools/droiddoc/templates-cmsdk/package.cs
  29. 45
    0
      build/tools/droiddoc/templates-cmsdk/packages.cs
  30. 1
    0
      build/tools/droiddoc/templates-cmsdk/timestamp.cs
  31. 43
    0
      configs/cm_audio.mk
  32. 309
    0
      configs/common.mk
  33. 49
    0
      configs/common_full.mk
  34. 9
    0
      configs/common_full_phone.mk
  35. 7
    0
      configs/common_full_tablet_wifionly.mk
  36. 7
    0
      configs/common_full_tv.mk
  37. 12
    0
      configs/common_mini_phone.mk
  38. 10
    0
      configs/common_mini_tablet_wifionly.mk
  39. 10
    0
      configs/common_mini_tv.mk
  40. 3
    0
      configs/nfc_enhanced.mk
  41. 20
    0
      configs/permissions/com.aokp.android.xml
  42. 20
    0
      configs/permissions/com.aokp.nfc.enhanced.xml
  43. 19
    0
      configs/permissions/com.tmobile.software.themes.xml
  44. 28
    0
      configs/permissions/org.cyanogenmod.theme.xml
  45. 18
    0
      configs/telephony.mk
  46. 8
    0
      configs/themes_common.mk
  47. 45
    0
      dict/README
  48. 290
    0
      dict/en_whitelist.xml
  49. 165463
    0
      dict/en_words.xml
  50. BIN
      overlay/common/frameworks/base/core/res/res/drawable-hdpi/default_wallpaper.jpg
  51. BIN
      overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
  52. BIN
      overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.jpg
  53. BIN
      overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg
  54. BIN
      overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.jpg
  55. BIN
      overlay/common/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.jpg
  56. BIN
      overlay/common/frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.jpg
  57. 22
    0
      overlay/common/frameworks/base/core/res/res/values-mcc234-mnc02/config.xml
  58. 22
    0
      overlay/common/frameworks/base/core/res/res/values-mcc234-mnc10/config.xml
  59. 22
    0
      overlay/common/frameworks/base/core/res/res/values-mcc234-mnc11/config.xml
  60. 22
    0
      overlay/common/frameworks/base/core/res/res/values-mcc268-mnc06/config.xml
  61. 23
    0
      overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
  62. 66
    0
      overlay/common/frameworks/base/core/res/res/values/config.xml
  63. 20
    0
      overlay/common/frameworks/base/packages/Keyguard/res/values-sw600dp/bools.xml
  64. 27
    0
      overlay/common/frameworks/base/packages/Keyguard/res/values/config.xml
  65. 25
    0
      overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  66. 27
    0
      overlay/common/frameworks/base/packages/SystemUI/res/values/config.xml
  67. 23
    0
      overlay/common/packages/apps/Mms/res/xml-mcc440-mnc20/mms_config.xml
  68. 20
    0
      overlay/common/packages/apps/Settings/res/values/strings.xml
  69. 22
    0
      overlay/common/packages/apps/Trebuchet/res/values/config.xml
  70. 22
    0
      overlay/common/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml
  71. 23
    0
      overlay/common/packages/providers/TelephonyProvider/res/values-mcc310-mnc260/config.xml
  72. 23
    0
      overlay/common/packages/providers/TelephonyProvider/res/values-mcc310-mnc410/config.xml
  73. 23
    0
      overlay/common/packages/providers/TelephonyProvider/res/values-mcc450-mnc08/config.xml
  74. 29
    0
      overlay/common/packages/services/Telecomm/res/values/cm_config.xml
  75. 22
    0
      overlay/common/packages/services/Telephony/res/values/cm_config.xml
  76. 26
    0
      overlay/common/vendor/cmsdk/cm/res/res/values/config.xml
  77. 30
    0
      overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
  78. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict
  79. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_cs.dict
  80. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_da.dict
  81. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_el.dict
  82. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict
  83. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_fi.dict
  84. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hr.dict
  85. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict
  86. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_iw.dict
  87. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict
  88. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict
  89. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nb.dict
  90. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nl.dict
  91. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pt_pt.dict
  92. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sv.dict
  93. BIN
      overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict
  94. 66
    0
      prebuilt/Android.mk
  95. BIN
      prebuilt/bootanimation/1080.zip
  96. BIN
      prebuilt/bootanimation/1440.zip
  97. BIN
      prebuilt/bootanimation/480.zip
  98. BIN
      prebuilt/bootanimation/720.zip
  99. BIN
      prebuilt/bootanimation/bootanimation-kiernan.zip
  100. 0
    0
      prebuilt/common/Android.mk

+ 3
- 0
.gitignore View File

@@ -0,0 +1,3 @@
1
+bot/
2
+resources/
3
+.DS_Store

+ 7
- 0
.gitreview View File

@@ -0,0 +1,7 @@
1
+[gerrit]
2
+host=gerrit.aokp.co
3
+port=29418
4
+project=AOKP/vendor_aokp
5
+defaultbranch=kitkat
6
+defaultremote=review
7
+defaultrebase=0

+ 58
- 0
README.md View File

@@ -0,0 +1,58 @@
1
+[Android Open Kang Project](http://aokp.co)
2
+====================================
3
+
4
+
5
+Download the Source
6
+===================
7
+
8
+Please read the [AOSP building instructions](http://source.android.com/source/index.html) before proceeding.
9
+
10
+Initializing Repository
11
+-----------------------
12
+
13
+Init core trees without any device/kernel/vendor :
14
+
15
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm
16
+
17
+Init repo with all devices, kernels and vendors supported by AOKP :
18
+
19
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm -g all,kernel,device,vendor
20
+
21
+Init repo only for a particular device :
22
+
23
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm -g all,-notdefault,<devicename>,<vendorname>
24
+
25
+for example, to init only trees needed to build mako :
26
+
27
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm -g all,-notdefault,mako,lge
28
+
29
+Init repo for multiple devices :
30
+
31
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm -g all,-notdefault,<devicename1>,<devicename2>,<devicename3>,<vendorname1>,<vendorname2>,<vendorname3>
32
+
33
+for example, to init trees needed to build mako and flo :
34
+
35
+    $ repo init -u https://github.com/MarshMallowKang/platform_manifest.git -b mm -g all,-notdefault,mako,flo,lge,asus
36
+
37
+
38
+sync repo :
39
+
40
+    $ repo sync
41
+
42
+***
43
+
44
+Building
45
+--------
46
+
47
+After the sync is finished, please read the [instructions from the Android site](http://s.android.com/source/building.html) on how to build.
48
+
49
+    . build/envsetup.sh
50
+    brunch
51
+
52
+
53
+You can also build (and see how long it took) for specific devices like this:
54
+
55
+    . build/envsetup.sh
56
+    time brunch aokp_mako-userdebug
57
+
58
+Remember to `make clobber` every now and then!

+ 2766
- 0
bash_completion/git.bash
File diff suppressed because it is too large
View File


+ 655
- 0
bash_completion/repo.bash View File

@@ -0,0 +1,655 @@
1
+# -*- mode: sh; -*-
2
+
3
+declare -A CMD_HANDLERS
4
+CMD_HANDLERS=(
5
+    ["init"]=_repo_init
6
+    ["help"]=_repo_help
7
+    ["abandon"]=_repo_abandon
8
+    ["branch"]=_repo_branch
9
+    ["branches"]=_repo_branches
10
+    ["checkout"]=_repo_checkout
11
+    ["cherry-pick"]=_repo_cherry_pick
12
+    ["diff"]=_repo_diff
13
+    ["download"]=_repo_download
14
+    ["forall"]=_repo_forall
15
+    ["grep"]=_repo_grep
16
+    ["list"]=_repo_list
17
+    ["prune"]=_repo_prune
18
+    ["rebase"]=_repo_rebase
19
+    ["selfupdate"]=_repo_selfupdate
20
+    ["smartsync"]=_repo_smartsync
21
+    ["stage"]=_repo_stage
22
+    ["start"]=_repo_start
23
+    ["status"]=_repo_status
24
+    ["sync"]=_repo_sync
25
+    ["upload"]=_repo_upload
26
+    ["version"]=_repo_version
27
+)
28
+
29
+# To be populated by command handlers.
30
+declare -a OPTIONS
31
+declare -A ARG_OPTIONS
32
+
33
+declare cur
34
+declare prev
35
+
36
+_init_cur_prev() {
37
+    cur=$(_get_cword "=")
38
+    prev=$(_get_cword "=" 1)
39
+
40
+    _split_longopt
41
+}
42
+
43
+_find_repo() {
44
+    local dir=$(pwd)
45
+    local found=1
46
+
47
+    while [ "${dir}" != / ]
48
+    do
49
+        if [ -e "${dir}/.repo/repo/main.py" ]
50
+        then
51
+            found=0
52
+            break
53
+        fi
54
+
55
+        dir=$(cd "${dir}/.." && pwd)
56
+    done
57
+
58
+    if [ ${found} -eq 0 ]
59
+    then
60
+        echo "${dir}"
61
+    fi
62
+}
63
+
64
+_is_repo_dir() {
65
+    local repo_root=$(_find_repo)
66
+
67
+    [ -n "${repo_root}" ]
68
+}
69
+
70
+_gen_comps() {
71
+    local completions="$1"
72
+    local suffix="${2:- }"
73
+
74
+    local -i i
75
+    local -a tmp=( $(compgen -W "${completions}" -- ${cur}) )
76
+
77
+    for (( i=0; i < ${#tmp[*]}; i++ ))
78
+    do
79
+        tmp[$i]="${tmp[$i]}${suffix}"
80
+    done
81
+
82
+    COMPREPLY=(
83
+        "${COMPREPLY[@]}"
84
+        "${tmp[@]}"
85
+    )
86
+}
87
+
88
+_strip_colors () {
89
+    # taken from http://goo.gl/7KlLZ
90
+    sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
91
+}
92
+
93
+_no_completion() {
94
+    true
95
+}
96
+
97
+_command_completion() {
98
+    local cmds
99
+
100
+    if _is_repo_dir
101
+    then
102
+        cmds=("abandon" "branch" "branches" "checkout" "cherry-pick" "diff"
103
+            "download" "forall" "grep" "help" "init" "list" "prune" "rebase"
104
+            "selfupdate" "smartsync" "stage" "start" "status" "sync"
105
+            "upload" "version")
106
+    else
107
+        cmds=("help" "init")
108
+    fi
109
+
110
+    _gen_comps "${cmds[*]}"
111
+}
112
+
113
+_branch_completion() {
114
+    local raw_branches
115
+
116
+    # separate statement required to be able to access exit code
117
+    raw_branches=$(repo branches 2>/dev/null)
118
+
119
+    if [ $? -eq 0 ]
120
+    then
121
+        local branches=$(
122
+            echo "${raw_branches}" |
123
+            _strip_colors | awk 'BEGIN { FS="|" } { print $1 }' | cut -c 3-
124
+        )
125
+
126
+        _gen_comps "${branches}"
127
+    fi
128
+}
129
+
130
+_dir_completion() {
131
+    _filedir -d
132
+}
133
+
134
+_project_completion() {
135
+    local repo_root=$(_find_repo)
136
+
137
+    if [ -n "${repo_root}" -a -f "${repo_root}/.repo/project.list" ]
138
+    then
139
+        local projects=$(cat "${repo_root}/.repo/project.list")
140
+        _gen_comps "${projects}"
141
+    fi
142
+}
143
+
144
+_manifest_completion() {
145
+    local repo_root=$(_find_repo)
146
+
147
+    if [ -n "${repo_root}" ]
148
+    then
149
+        local manifests_dir="${repo_root}/.repo/manifests"
150
+        local git_dir="${manifests_dir}/.git"
151
+        local candidates
152
+
153
+        manifests=$(
154
+            git --git-dir "${git_dir}" ls-files "*.xml" 2>/dev/null)
155
+
156
+        if [ $? -eq 0 ]
157
+        then
158
+            _gen_comps "${manifests}"
159
+        fi
160
+    fi
161
+}
162
+
163
+_path_cmd_completion() {
164
+    _gen_comps "$(compgen -c ${cur})"
165
+}
166
+
167
+_is_option() {
168
+    local opt="$1"
169
+
170
+    [[ "${opt}" == -* ]]
171
+}
172
+
173
+_is_long_option() {
174
+    local opt="$1"
175
+
176
+    [[ "${opt}" == --* ]]
177
+}
178
+
179
+_expects_arg() {
180
+    local opt="$1"
181
+
182
+    if [[ ${ARG_OPTIONS[$opt]} ]]
183
+    then
184
+        return 0
185
+    else
186
+        return 1
187
+    fi
188
+}
189
+
190
+_handle_options() {
191
+    if _expects_arg "${prev}"
192
+    then
193
+        local handler=${ARG_OPTIONS[$prev]}
194
+        eval ${handler} "${cur}"
195
+    elif _is_option "${cur}"
196
+    then
197
+        _gen_comps "${OPTIONS[*]}"
198
+
199
+        local arg_short
200
+        local arg_long
201
+
202
+        for opt in "${!ARG_OPTIONS[@]}"
203
+        do
204
+            if _is_long_option "${opt}"
205
+            then
206
+                arg_long="${arg_long} ${opt}"
207
+            else
208
+                arg_short="${arg_short} ${opt}"
209
+            fi
210
+        done
211
+
212
+        _gen_comps "${arg_short}"
213
+        _gen_comps "${arg_long}" "="
214
+    else
215
+        return 1
216
+    fi
217
+
218
+    return 0
219
+}
220
+
221
+_is_known_shortopt() {
222
+    local needle="$1"
223
+
224
+    for opt in ${OPTIONS[@]}
225
+    do
226
+        if [ "${opt}" = "${needle}" ]
227
+        then
228
+            return 0
229
+        fi
230
+    done
231
+
232
+    return 1
233
+}
234
+
235
+_is_known_longopt() {
236
+    local needle="$1"
237
+
238
+    [[ ${ARG_OPTIONS[$1]} ]]
239
+}
240
+
241
+_arg_index() {
242
+    local -i i=2               # skip repo and command
243
+    local -i ix=0
244
+
245
+    while [ ${i} -lt ${COMP_CWORD} ]
246
+    do
247
+        if _is_known_shortopt "${COMP_WORDS[i]}"
248
+        then
249
+            i+=1
250
+        elif _is_known_longopt "${COMP_WORDS[i]}"
251
+        then
252
+            i+=2
253
+        elif _is_option "${COMP_WORDS[i]}"
254
+        then
255
+            i+=1
256
+        else
257
+            i+=1
258
+            ix+=1
259
+        fi
260
+    done
261
+
262
+    eval $1="${ix}"
263
+}
264
+
265
+_when_ix() {
266
+    local ix="$1"
267
+    local completion="$2"
268
+
269
+    _arg_index arg_ix
270
+
271
+    if [ ${arg_ix} -eq ${ix} ]
272
+    then
273
+        ${completion}
274
+        return 0
275
+    else
276
+        return 1
277
+    fi
278
+}
279
+
280
+_when_first() {
281
+    _when_ix 0 "$1"
282
+}
283
+
284
+_when_even() {
285
+    local completion="$1"
286
+
287
+    _arg_index arg_ix
288
+
289
+    if [ $(( ${arg_ix} % 2 )) -eq 0 ]
290
+    then
291
+        ${completion}
292
+        return 0
293
+    else
294
+        return 1
295
+    fi
296
+}
297
+
298
+_cmp_opts() {
299
+    local opt="$1"
300
+    local word="$2"
301
+
302
+    if _is_option "${opt}" && ! _is_long_option "${opt}"
303
+    then
304
+        [ "${word}" == "${opt}" ]
305
+    else
306
+        [[ "${word}" == "${opt}"=* || "${word}" == "${opt}" ]]
307
+    fi
308
+}
309
+
310
+_before() {
311
+    local completion="$1"
312
+    local words
313
+
314
+    shift
315
+
316
+    _get_comp_words_by_ref -n = words
317
+
318
+    for word in "${words[@]}"
319
+    do
320
+        for needle in "$@"
321
+        do
322
+            if _cmp_opts "${needle}" "${word}"
323
+            then
324
+                return 1
325
+            fi
326
+        done
327
+    done
328
+
329
+    ${completion}
330
+    return 0
331
+}
332
+
333
+_repo_init() {
334
+    OPTIONS=(
335
+        "-h" "--help"
336
+        "-q" "--quite"
337
+        "--mirror"
338
+        "--no-repo-verify"
339
+    )
340
+
341
+    ARG_OPTIONS=(
342
+        ["-u"]=_no_completion
343
+        ["--manifest-url"]=_no_completion
344
+        ["-b"]=_no_completion
345
+        ["--manifest-branch"]=_no_completion
346
+        ["-m"]=_manifest_completion
347
+        ["--manifest-name"]=_manifest_completion
348
+        ["--reference"]=_dir_completion
349
+        ["--repo-url"]=_no_completion
350
+        ["--repo-branch"]=_no_completion
351
+    )
352
+
353
+    _handle_options
354
+}
355
+
356
+_repo_help() {
357
+    OPTIONS=(
358
+        "-a" "--all"
359
+        "-h" "--help"
360
+    )
361
+
362
+    ARG_OPTIONS=()
363
+
364
+    _handle_options || _when_first _command_completion
365
+}
366
+
367
+_repo_abandon() {
368
+    OPTIONS=(
369
+        "-h" "--help"
370
+    )
371
+
372
+    ARG_OPTIONS=()
373
+
374
+    _handle_options || _when_first _branch_completion || _project_completion
375
+}
376
+
377
+_repo_branch() {
378
+    OPTIONS=(
379
+        "-h" "--help"
380
+    )
381
+
382
+    ARG_OPTIONS=()
383
+
384
+    _handle_options
385
+}
386
+
387
+_repo_branches() {
388
+    OPTIONS=(
389
+        "-h" "--help"
390
+    )
391
+
392
+    ARG_OPTIONS=()
393
+
394
+    _handle_options
395
+}
396
+
397
+_repo_checkout() {
398
+    OPTIONS=(
399
+        "-h" "--help"
400
+    )
401
+
402
+    ARG_OPTIONS=()
403
+
404
+    _handle_options || _when_first _branch_completion || _project_completion
405
+}
406
+
407
+_repo_cherry_pick() {
408
+    OPTIONS=(
409
+        "-h" "--help"
410
+    )
411
+
412
+    ARG_OPTIONS=()
413
+
414
+    _handle_options
415
+}
416
+
417
+_repo_diff() {
418
+    OPTIONS=(
419
+        "-h" "--help"
420
+    )
421
+
422
+    ARG_OPTIONS=()
423
+
424
+    _handle_options || _project_completion
425
+}
426
+
427
+_repo_download() {
428
+    OPTIONS=(
429
+        "-h" "--help"
430
+    )
431
+
432
+    ARG_OPTIONS=()
433
+
434
+    _handle_options || _when_even _project_completion
435
+}
436
+
437
+_repo_forall() {
438
+    OPTIONS=(
439
+        "-h" "--help"
440
+        "-p"
441
+        "-v" "--verbose"
442
+    )
443
+
444
+    ARG_OPTIONS=(
445
+        ["-c"]=_path_cmd_completion
446
+        ["--command"]=_path_cmd_completion
447
+    )
448
+
449
+    _handle_options || _before _project_completion -c --command || _filedir
450
+}
451
+
452
+_repo_grep() {
453
+    OPTIONS=(
454
+        "-h" "--help"
455
+        "--cached"
456
+        "-r" "--revision"
457
+        "-i" "--ignore-case"
458
+        "-a" "--text"
459
+        "-I"
460
+        "-w" "--word-regexp"
461
+        "-v" "--invert-match"
462
+        "-G" "--basic-regexp"
463
+        "-E" "--extended-regexp"
464
+        "-F" "--fixed-strings"
465
+        "--all-match"
466
+        "--and" "--or" "--not"
467
+        "-(" "-)"
468
+        "-n"
469
+        "-l" "--name-only" "--files-with-matches"
470
+        "-L" "--files-without-match"
471
+    )
472
+
473
+    ARG_OPTIONS=(
474
+        ["-e"]=_no_completion
475
+        ["-C"]=_no_completion
476
+        ["-B"]=_no_completion
477
+        ["-A"]=_no_completion
478
+    )
479
+
480
+    _handle_options || _project_completion
481
+}
482
+
483
+_repo_list() {
484
+    OPTIONS=(
485
+        "-h" "--help"
486
+    )
487
+
488
+    ARG_OPTIONS=()
489
+
490
+    _handle_options || _project_completion
491
+}
492
+
493
+_repo_prune() {
494
+    OPTIONS=(
495
+        "-h" "--help"
496
+    )
497
+
498
+    ARG_OPTIONS=()
499
+
500
+    _handle_options || _project_completion
501
+}
502
+
503
+_repo_rebase() {
504
+    OPTIONS=(
505
+        "-h" "--help"
506
+        "-i" "--interactive"
507
+        "-f" "--force-rebase"
508
+        "--no-ff"
509
+        "-q" "--quiet"
510
+        "--autosquash"
511
+    )
512
+
513
+    ARG_OPTIONS=(
514
+        ["--whitespace"]=_no_completion
515
+    )
516
+
517
+    _handle_options || _project_completion
518
+}
519
+
520
+_repo_selfupdate() {
521
+    OPTIONS=(
522
+        "-h" "--help"
523
+        "--no-repo-verify"
524
+    )
525
+
526
+    ARG_OPTIONS=()
527
+
528
+    _handle_options
529
+}
530
+
531
+_repo_smartsync() {
532
+    OPTIONS=(
533
+        "-h" "--help"
534
+        "-f" "--force-broken"
535
+        "-l" "--local-only"
536
+        "-n" "--network-only"
537
+        "-d" "--detach"
538
+        "-q" "--quiet"
539
+        "--no-repo-verify"
540
+    )
541
+
542
+    ARG_OPTIONS=(
543
+        ["-j"]=_no_completion
544
+        ["--jobs"]=_no_completion
545
+
546
+    )
547
+
548
+    _handle_options || _project_completion
549
+}
550
+
551
+_repo_stage() {
552
+    OPTIONS=(
553
+        "-h" "--help"
554
+        "-i" "--interactive"
555
+    )
556
+
557
+    ARG_OPTIONS=()
558
+
559
+    _handle_options || _project_completion
560
+}
561
+
562
+_repo_start() {
563
+    OPTIONS=(
564
+        "-h" "--help"
565
+        "--all"
566
+    )
567
+
568
+    ARG_OPTIONS=()
569
+
570
+    _handle_options || _when_first _branch_completion || _project_completion
571
+}
572
+
573
+_repo_status() {
574
+    OPTIONS=(
575
+        "-h" "--help"
576
+    )
577
+
578
+    ARG_OPTIONS=(
579
+        ["-j"]=_no_completion
580
+        ["--jobs"]=_no_completion
581
+    )
582
+
583
+    _handle_options || _project_completion
584
+}
585
+
586
+_repo_sync() {
587
+    OPTIONS=(
588
+        "-h" "--help"
589
+        "-f" "--force-broken"
590
+             "--force-sync"
591
+        "-l" "--local-only"
592
+        "-n" "--network-only"
593
+        "-d" "--detach"
594
+        "-q" "--quiet"
595
+        "-s" "--smart-sync"
596
+        "--no-repo-verify"
597
+    )
598
+
599
+    ARG_OPTIONS=(
600
+        ["-j"]=_no_completion
601
+        ["--jobs"]=_no_completion
602
+    )
603
+
604
+    _handle_options || _project_completion
605
+}
606
+
607
+_repo_upload() {
608
+    OPTIONS=(
609
+        "-h" "--help"
610
+        "-t"
611
+        "--no-verify"
612
+        "--verify"
613
+    )
614
+
615
+    ARG_OPTIONS=(
616
+        ["--re"]=_no_completion
617
+        ["--reviewers"]=_no_completion
618
+        ["--cc"]=_no_completion
619
+        ["--br"]=_branch_completion
620
+    )
621
+
622
+    _handle_options || _project_completion
623
+}
624
+
625
+_repo_version() {
626
+    OPTIONS=(
627
+        "-h" "--help"
628
+    )
629
+
630
+    ARG_OPTIONS=()
631
+
632
+    _handle_options
633
+}
634
+
635
+_repo() {
636
+    COMPREPLY=()
637
+
638
+    _init_cur_prev
639
+
640
+    if [ ${COMP_CWORD} -eq 1 ]
641
+    then
642
+        _command_completion
643
+    else
644
+        local cmd=${COMP_WORDS[1]}
645
+        local handler=${CMD_HANDLERS["${cmd}"]}
646
+        if [ -n ${handler} ]
647
+        then
648
+            eval ${handler}
649
+        fi
650
+    fi
651
+
652
+    return 0
653
+}
654
+
655
+complete -o nospace -F _repo repo

+ 129
- 0
build/core/apicheck.mk View File

@@ -0,0 +1,129 @@
1
+# Copyright (C) 2015 The CyanogenMod Project
2
+#
3
+# Licensed under the Apache License, Version 2.0 (the "License");
4
+# you may not use this file except in compliance with the License.
5
+# You may obtain a copy of the License at
6
+#
7
+#      http://www.apache.org/licenses/LICENSE-2.0
8
+#
9
+# Unless required by applicable law or agreed to in writing, software
10
+# distributed under the License is distributed on an "AS IS" BASIS,
11
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+# See the License for the specific language governing permissions and
13
+# limitations under the License.
14
+
15
+#
16
+# Rules for running apicheck to confirm that you haven't broken
17
+# api compatibility or added apis illegally.
18
+#
19
+
20
+# skip api check for PDK buid
21
+ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK)))
22
+
23
+.PHONY: checkapi-cm
24
+
25
+# Run the checkapi rules by default.
26
+droidcore: checkapi-cm
27
+
28
+cm_last_released_sdk_version := $(lastword $(call numerically_sort, \
29
+            $(filter-out current, \
30
+                $(patsubst $(CM_SRC_API_DIR)/%.txt,%, $(wildcard $(CM_SRC_API_DIR)/*.txt)) \
31
+             )\
32
+        ))
33
+
34
+.PHONY: check-cm-public-api
35
+checkapi-cm : check-cm-public-api
36
+
37
+.PHONY: update-cm-api
38
+
39
+# INTERNAL_CM_PLATFORM_API_FILE is the one build by droiddoc.
40
+# Note that since INTERNAL_CM_PLATFORM_API_FILE  is the byproduct of api-stubs module,
41
+# (See vendor/cmsdk/Android.mk)
42
+# we need to add api-stubs as additional dependency of the api check.
43
+
44
+# Check that the API we're building hasn't broken the last-released
45
+# SDK version.
46
+$(eval $(call check-api, \
47
+    checkpublicapi-cm-last, \
48
+    $(CM_SRC_API_DIR)/$(cm_last_released_sdk_version).txt, \
49
+    $(INTERNAL_CM_PLATFORM_API_FILE), \
50
+    $(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE), \
51
+    $(INTERNAL_CM_PLATFORM_REMOVED_API_FILE), \
52
+    cat $(BUILD_SYSTEM)/apicheck_msg_last.txt, \
53
+    check-cm-public-api, \
54
+    $(call doc-timestamp-for, cm-api-stubs) \
55
+    ))
56
+
57
+
58
+# Check that the API we're building hasn't changed from the not-yet-released
59
+# SDK version.
60
+$(eval $(call check-api, \
61
+    checkpublicapi-cm-current, \
62
+    $(FRAMEWORK_CM_PLATFORM_API_FILE), \
63
+    $(INTERNAL_CM_PLATFORM_API_FILE), \
64
+    $(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE), \
65
+    $(INTERNAL_CM_PLATFORM_REMOVED_API_FILE), \
66
+    cat $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
67
+    check-cm-public-api, \
68
+    $(call doc-timestamp-for, cm-api-stubs) \
69
+    ))
70
+
71
+.PHONY: update-cm-public-api
72
+update-cm-public-api: $(INTERNAL_CM_PLATFORM_API_FILE) | $(ACP)
73
+	@echo -e ${CL_GRN}"Copying cm_current.txt"${CL_RST}
74
+	$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_API_FILE) $(FRAMEWORK_CM_PLATFORM_API_FILE)
75
+	@echo -e ${CL_GRN}"Copying cm_removed.txt"${CL_RST}
76
+	$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_REMOVED_API_FILE) $(FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE)
77
+
78
+update-cm-api : update-cm-public-api
79
+
80
+#####################Check System API#####################
81
+.PHONY: check-cm-system-api
82
+checkapi-cm : check-cm-system-api
83
+
84
+# Check that the Cyanogen System API we're building hasn't broken the last-released
85
+# SDK version.
86
+$(eval $(call check-api, \
87
+    checksystemapi-cm-last, \
88
+    $(CM_SRC_SYSTEM_API_DIR)/$(cm_last_released_sdk_version).txt, \
89
+    $(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE), \
90
+    $(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
91
+    $(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
92
+    cat $(BUILD_SYSTEM)/apicheck_msg_last.txt, \
93
+    check-cm-system-api, \
94
+    $(call doc-timestamp-for, cm-system-api-stubs) \
95
+    ))
96
+
97
+# Check that the System API we're building hasn't changed from the not-yet-released
98
+# SDK version.
99
+$(eval $(call check-api, \
100
+    checksystemapi-cm-current, \
101
+    $(FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE), \
102
+    $(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE), \
103
+    $(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
104
+    $(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE), \
105
+    cat $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
106
+    check-cm-system-api, \
107
+    $(call doc-timestamp-for, cm-system-api-stubs) \
108
+    ))
109
+
110
+.PHONY: update-cm-system-api
111
+update-cm-api : update-cm-system-api
112
+
113
+update-cm-system-api: $(INTERNAL_PLATFORM_CM_SYSTEM_API_FILE) | $(ACP)
114
+	@echo Copying cm_system-current.txt
115
+	$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE) $(FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE)
116
+	@echo Copying cm_system-removed.txt
117
+	$(hide) $(ACP) $(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE) $(FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE)
118
+
119
+.PHONY: update-cm-prebuilts-latest-public-api
120
+current_sdk_release_text_file := $(CM_SRC_API_DIR)/$(cm_last_released_sdk_version).txt
121
+current_system_api_release_text_file := $(CM_SRC_SYSTEM_API_DIR)/$(cm_last_released_sdk_version).txt
122
+
123
+update-cm-prebuilts-latest-public-api: $(FRAMEWORK_CM_PLATFORM_API_FILE) | $(ACP)
124
+	@echo -e ${CL_GRN}"Publishing cm_current.txt as latest API release"${CL_RST}
125
+	$(hide) $(ACP) $(FRAMEWORK_CM_PLATFORM_API_FILE) $(current_sdk_release_text_file)
126
+	@echo -e ${CL_GRN}"Publishing cm_current.txt as latest system API release"${CL_RST}
127
+	$(hide) $(ACP) $(FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE) $(current_system_api_release_text_file)
128
+
129
+endif

+ 16
- 0
build/core/clear_vars.mk View File

@@ -0,0 +1,16 @@
1
+#
2
+#CM-specific variable clears
3
+#
4
+LOCAL_IGNORE_SUBDIR :=
5
+
6
+LOCAL_MAVEN_GROUP :=
7
+LOCAL_MAVEN_ARTIFACT :=
8
+LOCAL_MAVEN_VERSION :=
9
+LOCAL_MAVEN_CLASSIFIER :=
10
+LOCAL_MAVEN_PACKAGING :=
11
+LOCAL_MAVEN_REPO :=
12
+LOCAL_MAVEN_POM :=
13
+LOCAL_MAVEN_TARGET_MODULE :=
14
+LOCAL_MAVEN_REPO_ID :=
15
+LOCAL_MAVEN_SOURCES :=
16
+LOCAL_MAVEN_JAVADOC :=

+ 27
- 0
build/core/config.mk View File

@@ -0,0 +1,27 @@
1
+# Copyright (C) 2015 The CyanogenMod Project
2
+#
3
+# Licensed under the Apache License, Version 2.0 (the "License");
4
+# you may not use this file except in compliance with the License.
5
+# You may obtain a copy of the License at
6
+#
7
+#      http://www.apache.org/licenses/LICENSE-2.0
8
+#
9
+# Unless required by applicable law or agreed to in writing, software
10
+# distributed under the License is distributed on an "AS IS" BASIS,
11
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+# See the License for the specific language governing permissions and
13
+# limitations under the License.
14
+
15
+CM_SRC_API_DIR := $(TOPDIR)prebuilts/cmsdk/api
16
+CM_SRC_SYSTEM_API_DIR := $(TOPDIR)prebuilts/cmsdk/system-api
17
+INTERNAL_CM_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_public_api.txt
18
+INTERNAL_CM_PLATFORM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_removed.txt
19
+INTERNAL_CM_PLATFORM_SYSTEM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_system-api.txt
20
+INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/cm_system-removed.txt
21
+FRAMEWORK_CM_PLATFORM_API_FILE := $(TOPDIR)vendor/cmsdk/api/cm_current.txt
22
+FRAMEWORK_CM_PLATFORM_REMOVED_API_FILE := $(TOPDIR)vendor/cmsdk/api/cm_removed.txt
23
+FRAMEWORK_CM_PLATFORM_SYSTEM_API_FILE := $(TOPDIR)vendor/cmsdk/system-api/cm_system-current.txt
24
+FRAMEWORK_CM_PLATFORM_SYSTEM_REMOVED_API_FILE := $(TOPDIR)vendor/cmsdk/system-api/cm_system-removed.txt
25
+
26
+BUILD_MAVEN_PREBUILT := $(TOP)/vendor/aokp/build/core/maven_artifact.mk
27
+PUBLISH_MAVEN_PREBUILT := $(TOP)/vendor/aokp/build/core/maven_artifact_publish.mk

+ 6
- 0
build/core/definitions.mk View File

@@ -0,0 +1,6 @@
1
+#
2
+# CM-specific macros
3
+#
4
+define uniq
5
+$(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
6
+endef

+ 69
- 0
build/core/maven_artifact.mk View File

@@ -0,0 +1,69 @@
1
+# Copyright (C) 2015 The CyanogenMod Project
2
+#
3
+# Licensed under the Apache License, Version 2.0 (the "License");
4
+# you may not use this file except in compliance with the License.
5
+# You may obtain a copy of the License at
6
+#
7
+#      http://www.apache.org/licenses/LICENSE-2.0
8
+#
9
+# Unless required by applicable law or agreed to in writing, software
10
+# distributed under the License is distributed on an "AS IS" BASIS,
11
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+# See the License for the specific language governing permissions and
13
+# limitations under the License.
14
+
15
+ifeq ($(strip $(LOCAL_MAVEN_GROUP)),)
16
+  $(error LOCAL_MAVEN_GROUP not defined.)
17
+endif
18
+ifeq ($(strip $(LOCAL_MAVEN_ARTIFACT)),)
19
+  $(error LOCAL_MAVEN_ARTIFACT not defined.)
20
+endif
21
+ifeq ($(strip $(LOCAL_MAVEN_VERSION)),)
22
+  $(error LOCAL_MAVEN_VERSION not defined.)
23
+endif
24
+ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
25
+  $(error LOCAL_MAVEN_REPO not defined.)
26
+endif
27
+ifeq ($(strip $(LOCAL_MAVEN_PACKAGING)),)
28
+  LOCAL_MAVEN_PACKAGING := jar
29
+endif
30
+
31
+artifact_filename := $(LOCAL_MAVEN_GROUP).$(LOCAL_MAVEN_ARTIFACT)-$(LOCAL_MAVEN_VERSION)$(if $(LOCAL_MAVEN_CLASSIFIER),-$(LOCAL_MAVEN_CLASSIFIER)).$(LOCAL_MAVEN_PACKAGING)
32
+
33
+LOCAL_PREBUILT_MODULE_FILE := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),,COMMON)/$(artifact_filename)
34
+
35
+$(LOCAL_PREBUILT_MODULE_FILE): repo := $(LOCAL_MAVEN_REPO)
36
+$(LOCAL_PREBUILT_MODULE_FILE): group := $(LOCAL_MAVEN_GROUP)
37
+$(LOCAL_PREBUILT_MODULE_FILE): artifact := $(LOCAL_MAVEN_ARTIFACT)
38
+$(LOCAL_PREBUILT_MODULE_FILE): version := $(LOCAL_MAVEN_VERSION)
39
+$(LOCAL_PREBUILT_MODULE_FILE): packaging := $(LOCAL_MAVEN_PACKAGING)
40
+$(LOCAL_PREBUILT_MODULE_FILE): classifier := $(LOCAL_MAVEN_CLASSIFIER)
41
+$(LOCAL_PREBUILT_MODULE_FILE):
42
+	$(hide) mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.10:get \
43
+				   org.apache.maven.plugins:maven-dependency-plugin:2.10:copy \
44
+		-DremoteRepositories=central::::$(repo) \
45
+		-Dartifact=$(group):$(artifact):$(version):$(packaging)$(if $(classifier),:$(classifier)) \
46
+		-Dmdep.prependGroupId=true \
47
+		-Dmdep.overWriteSnapshots=true \
48
+		-Dmdep.overWriteReleases=true \
49
+		-Dtransitive=false \
50
+		-DoutputDirectory=$(dir $@)
51
+	@echo -e ${CL_GRN}"Download:"${CL_RST}" $@"
52
+
53
+ifneq ($(filter-out disabled, $(LOCAL_JACK_ENABLED)),)
54
+ifneq ($(LOCAL_MAVEN_PACKAGING),apk)
55
+# This is required to be defined before the LOCAL_MODULES target below gets defined, it's a NOOP registered again in
56
+# BUILD_PREBUILT.  This is done because BUILD_PREBUILT doesn't actually handle generating the .jack files properly and
57
+# only generates a target but doesn't set the LOCAL_MODULE dependent on it.
58
+$(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON):
59
+
60
+# This adds another step required for LOCAL_MODULE to be completed -- generating the jack file, it just so happens
61
+# to be built when doing a brunch, but not when doing an mmm, so this makes it work with both
62
+$(LOCAL_MODULE): $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON)/classes.jack
63
+endif # LOCAL_MAVEN_PACKING is not apk
64
+endif # LOCAL_JACK_ENABLED is full or partial
65
+
66
+include $(BUILD_PREBUILT)
67
+
68
+# the "fetchprebuilts" target will go through and pre-download all of the maven dependencies in the tree
69
+fetchprebuilts: $(LOCAL_PREBUILT_MODULE_FILE)

+ 54
- 0
build/core/maven_artifact_publish.mk View File

@@ -0,0 +1,54 @@
1
+# Copyright (C) 2015 The CyanogenMod Project
2
+#
3
+# Licensed under the Apache License, Version 2.0 (the "License");
4
+# you may not use this file except in compliance with the License.
5
+# You may obtain a copy of the License at
6
+#
7
+#      http://www.apache.org/licenses/LICENSE-2.0
8
+#
9
+# Unless required by applicable law or agreed to in writing, software
10
+# distributed under the License is distributed on an "AS IS" BASIS,
11
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+# See the License for the specific language governing permissions and
13
+# limitations under the License.
14
+
15
+full_target := $(call doc-timestamp-for,$(LOCAL_MODULE))
16
+
17
+ifeq ($(strip $(LOCAL_MAVEN_POM)),)
18
+  $(warning LOCAL_MAVEN_POM not defined.)
19
+endif
20
+ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
21
+  $(warning LOCAL_MAVEN_REPO not defined.)
22
+endif
23
+ifeq ($(strip $(LOCAL_MAVEN_REPO_ID)),)
24
+  $(warning LOCAL_MAVEN_REPO_ID not defined.)
25
+endif
26
+
27
+$(full_target): pomfile := $(LOCAL_MAVEN_POM)
28
+$(full_target): repo := $(LOCAL_MAVEN_REPO)
29
+ifdef LOCAL_MAVEN_TARGET_MODULE
30
+$(full_target): path_to_file := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MAVEN_TARGET_MODULE),,COMMON)/javalib.jar
31
+endif
32
+$(full_target): repoId := $(LOCAL_MAVEN_REPO_ID)
33
+$(full_target): classifier := $(LOCAL_MAVEN_CLASSIFIER)
34
+$(full_target): sources := $(LOCAL_MAVEN_SOURCES)
35
+$(full_target): javadoc := $(LOCAL_MAVEN_JAVADOC)
36
+$(full_target): artifact_path := $(LOCAL_MAVEN_ARTIFACT_PATH)
37
+$(full_target): artifact_path ?= $(basename $(path_to_file))
38
+
39
+ifdef LOCAL_MAVEN_TARGET_MODULE
40
+$(full_target): $(LOCAL_MAVEN_TARGET_MODULE) $(path_to_file) $(artifact_path) $(ACP)
41
+	@echo -e ${CL_GRN}"Renaming generated sdk javalib jar"${CL_RST}
42
+	$(hide) $(ACP) $(path_to_file) $(artifact_path)
43
+	@echo -e ${CL_GRN}"Publishing to Maven"${CL_RST}
44
+	$(hide) mvn -e -X gpg:sign-and-deploy-file \
45
+		    -DpomFile=$(pomfile) \
46
+			-Durl=$(repo) \
47
+			-Dfile=$(artifact_path) \
48
+			-DrepositoryId=$(repoId) \
49
+			-Dclassifier=$(classifier) \
50
+			-Dsources=$(sources) \
51
+			-Djavadoc=$(javadoc)
52
+	@echo -e ${CL_GRN}"Publishing:"${CL_RST}" $@"
53
+endif
54
+$(LOCAL_MODULE): $(full_target)

+ 2768
- 0
build/tools/droiddoc/templates-cmsdk/assets/android-developer-docs.css
File diff suppressed because it is too large
View File


BIN
build/tools/droiddoc/templates-cmsdk/assets/cid_smart.png View File


+ 7440
- 0
build/tools/droiddoc/templates-cmsdk/assets/css/default.css
File diff suppressed because it is too large
View File


+ 208
- 0
build/tools/droiddoc/templates-cmsdk/assets/css/fullscreen.css View File

@@ -0,0 +1,208 @@
1
+
2
+/* =============================================================================
3
+   Columns
4
+   ========================================================================== */
5
+/* Applied to body to debug layout alignments
6
+.grid {
7
+  width:100%;
8
+  height:100%;
9
+  background:url(../images/grid.png) center repeat-y;
10
+  top:0px;
11
+  margin:auto;
12
+  position:absolute;
13
+}   
14
+*/
15
+
16
+@media screen, projection, print {
17
+.full {
18
+	padding: 2.5em 0;
19
+	border-top: solid 1px #ddd;
20
+	border-bottom: solid 1px #ddd;
21
+	background: #f7f7f7;	
22
+}
23
+.wrap {
24
+	margin: 0 auto;
25
+	width: 100%;
26
+	min-width:600px;
27
+	clear: both;
28
+}
29
+.cols {
30
+    height: 1%;
31
+    margin: 0 -1.533742331288343558282%;
32
+    width: 103.06748466257669%}
33
+*+html .cols {
34
+    margin-bottom: 20px;
35
+}
36
+.cols:after {
37
+    clear: both;
38
+    content: ' ';
39
+    display: block;
40
+    height: 0;
41
+    visibility: hidden;
42
+}
43
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
44
+.col-13, .col-14, .col-15, .col-16 {
45
+    float: left;
46
+    margin: 0 1.063829787234% 20px 1.063829787234%;
47
+}
48
+* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
49
+.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12, * html
50
+.col-13, * html .col-14, * html .col-15, * html .col-16  {
51
+    margin: 0;
52
+    margin: 0 1.063829787234% 20px 1.063829787234%;
53
+}
54
+[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
55
+[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
56
+[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
57
+    float: right;
58
+}
59
+.col-1 {
60
+    width: 4.16666666666667%;
61
+}
62
+.col-2 {
63
+    width: 10.4166666666667%;
64
+}
65
+.col-3 {
66
+    width: 16.6666666666667%;
67
+}
68
+.col-4 {
69
+    width: 22.9166666666667%;
70
+}
71
+.col-5 {
72
+    width: 29.1666666666667%;
73
+}
74
+.col-6 {
75
+    width: 35.4166666666667%;
76
+}
77
+.col-7 {
78
+    width: 41.6666666666667%;
79
+}
80
+.col-8 {
81
+    width: 47.9166666666667%;
82
+}
83
+.col-9 {
84
+    width: 55.3333333333333%;
85
+}
86
+.col-10 {
87
+    width: 60.4166666666667%;
88
+}
89
+.col-11 {
90
+    width: 66.6666666666667%;
91
+}
92
+.col-12 {
93
+    width: 72.9166666666667%;
94
+}
95
+.col-13 {
96
+    width: 79.1666666666667%;
97
+}
98
+.col-14 {
99
+    width: 85.4166666666667%;
100
+}
101
+.col-15 {
102
+    width: 91.6666666666667%;
103
+}
104
+.col-16 {
105
+    width: 97.9166666666667%;
106
+}
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+#header .col-1,
115
+#nav-x .col-1 { width: 40px }
116
+#header .col-2,
117
+#nav-x .col-2 { width: 100px }
118
+#header .col-3,
119
+#nav-x .col-3 { width: 160px }
120
+#header .col-4,
121
+#nav-x .col-4 { width: 220px }
122
+#header .col-5,
123
+#nav-x .col-5 { width: 280px }
124
+#header .col-6,
125
+#nav-x .col-6 { width: 340px }
126
+#header .col-7,
127
+#nav-x .col-7 { width: 400px }
128
+#header .col-8,
129
+#nav-x .col-8 { width: 460px }
130
+#header .col-9,
131
+#nav-x .col-9 { width: 520px }
132
+#header .col-10,
133
+#nav-x .col-10 { width: 580px }
134
+#header .col-11,
135
+#nav-x .col-11 { width: 640px }
136
+#header .col-12,
137
+#nav-x .col-12 { width: 700px }
138
+#header .col-13,
139
+#nav-x .col-13 { width: 760px }
140
+#header .col-14,
141
+#nav-x .col-14 { width: 820px }
142
+#header .col-15,
143
+#nav-x .col-15 { width: 880px }
144
+#header .col-16,
145
+#nav-x .col-16 { width: 940px }
146
+
147
+
148
+
149
+body {
150
+  padding:0 20px;
151
+}
152
+#header,
153
+#searchResults,
154
+#nav-x {
155
+  margin:0;
156
+}
157
+#body-content {
158
+  margin:0;
159
+}
160
+#body-content > .col-12 {
161
+  width:77.9804965%;
162
+  margin:0 0 0 0.97%; /* this percentage chosen to make IE9 happy */
163
+}
164
+#side-nav {
165
+  width: 19.9804965%;
166
+  margin:0 1.063829787234% 0 0;
167
+}
168
+
169
+#header .wrap {
170
+  max-width: 100%;
171
+}
172
+
173
+#header-wrapper #nav-x div.wrap,
174
+#searchResults.wrap {
175
+    max-width:100%;
176
+}
177
+
178
+.nav-x {
179
+  margin:-2px 0 0 0;
180
+}
181
+
182
+#devdoc-nav.fixed,
183
+#devdoc-nav.fixed a.totop {
184
+  left:20px; /* !important ... for IE i think */
185
+}
186
+
187
+#sticky-header {
188
+  padding: 0 20px;
189
+}
190
+
191
+#sticky-header > div {
192
+  width: 100%;
193
+}
194
+
195
+.sticky-menu {
196
+  width:100%;
197
+  left:-20px;
198
+}
199
+
200
+.col-right {
201
+  margin-right:0px;
202
+}
203
+
204
+@media screen and (max-width:772px) {
205
+.col-5, .col-6, .col-7 {
206
+    clear: both;
207
+    width: 97.0238096%}
208
+}

+ 14
- 0
build/tools/droiddoc/templates-cmsdk/assets/customizations.css View File

@@ -0,0 +1,14 @@
1
+#masthead-title {
2
+    color: #373332;
3
+    text-decoration: none;
4
+    font-weight: bold;
5
+    margin-left: 5px;
6
+}
7
+
8
+#headerLeft a {
9
+    text-decoration: none;
10
+}
11
+
12
+#header {
13
+    border-bottom: 4px solid rgb(1, 125, 187);
14
+}

+ 188
- 0
build/tools/droiddoc/templates-cmsdk/assets/design/design.js View File

@@ -0,0 +1,188 @@
1
+$(document).ready(function() {
2
+  // prep nav expandos
3
+  var pagePath = document.location.pathname;
4
+  if (pagePath.indexOf(SITE_ROOT) == 0) {
5
+    pagePath = pagePath.substr(SITE_ROOT.length);
6
+    if (pagePath == '' || pagePath.charAt(pagePath.length - 1) == '/') {
7
+      pagePath += 'index.html';
8
+    }
9
+  }
10
+
11
+  if (SITE_ROOT.match(/\.\.\//) || SITE_ROOT == '') {
12
+    // If running locally, SITE_ROOT will be a relative path, so account for that by
13
+    // finding the relative URL to this page. This will allow us to find links on the page
14
+    // leading back to this page.
15
+    var pathParts = pagePath.split('/');
16
+    var relativePagePathParts = [];
17
+    var upDirs = (SITE_ROOT.match(/(\.\.\/)+/) || [''])[0].length / 3;
18
+    for (var i = 0; i < upDirs; i++) {
19
+      relativePagePathParts.push('..');
20
+    }
21
+    for (var i = 0; i < upDirs; i++) {
22
+      relativePagePathParts.push(pathParts[pathParts.length - (upDirs - i) - 1]);
23
+    }
24
+    relativePagePathParts.push(pathParts[pathParts.length - 1]);
25
+    pagePath = relativePagePathParts.join('/');
26
+  } else {
27
+    // Otherwise the page path should be an absolute URL.
28
+    pagePath = SITE_ROOT + pagePath;
29
+  }
30
+
31
+  // select current page in sidenav and set up prev/next links if they exist
32
+  var $selNavLink = $('.nav-y').find('a[href="' + pagePath + '"]');
33
+  if ($selNavLink.length) {
34
+    $selListItem = $selNavLink.closest('li');
35
+
36
+    $selListItem.addClass('selected');
37
+    $selListItem.closest('li>ul').addClass('expanded');
38
+
39
+    // set up prev links
40
+    var $prevLink = [];
41
+    var $prevListItem = $selListItem.prev('li');
42
+    if ($prevListItem.length) {
43
+      if ($prevListItem.hasClass('nav-section')) {
44
+        // jump to last topic of previous section
45
+        $prevLink = $prevListItem.find('a:last');
46
+      } else {
47
+        // jump to previous topic in this section
48
+        $prevLink = $prevListItem.find('a:eq(0)');
49
+      }
50
+    } else {
51
+      // jump to this section's index page (if it exists)
52
+      $prevLink = $selListItem.parents('li').find('a');
53
+    }
54
+
55
+    if ($prevLink.length) {
56
+      var prevHref = $prevLink.attr('href');
57
+      if (prevHref == SITE_ROOT + 'index.html') {
58
+        // Don't show Previous when it leads to the homepage
59
+        $('.prev-page-link').hide();
60
+      } else {
61
+        $('.prev-page-link').attr('href', prevHref).show();
62
+      }
63
+    } else {
64
+      $('.prev-page-link').hide();
65
+    }
66
+
67
+    // set up next links
68
+    var $nextLink = [];
69
+    if ($selListItem.hasClass('nav-section')) {
70
+      // we're on an index page, jump to the first topic
71
+      $nextLink = $selListItem.find('ul').find('a:eq(0)')
72
+    } else {
73
+      // jump to the next topic in this section (if it exists)
74
+      $nextLink = $selListItem.next('li').find('a:eq(0)');
75
+      if (!$nextLink.length) {
76
+        // no more topics in this section, jump to the first topic in the next section
77
+        $nextLink = $selListItem.parents('li').next('li.nav-section').find('a:eq(0)');
78
+      }
79
+    }
80
+    if ($nextLink.length) {
81
+      $('.next-page-link').attr('href', $nextLink.attr('href')).show();
82
+    } else {
83
+      $('.next-page-link').hide();
84
+    }
85
+  }
86
+
87
+  // Set up expand/collapse behavior
88
+  $('.nav-y li').has('ul').click(function() {
89
+    if ($(this).hasClass('expanded')) {
90
+      return;
91
+    }
92
+
93
+    // hide other
94
+    var $old = $('.nav-y li.expanded');
95
+    if ($old.length) {
96
+      var $oldUl = $old.children('ul');
97
+      $oldUl.css('height', $oldUl.height() + 'px');
98
+      window.setTimeout(function() {
99
+        $oldUl
100
+            .addClass('animate-height')
101
+            .css('height', '');
102
+      }, 0);
103
+      $old.removeClass('expanded');
104
+    }
105
+
106
+    // show me
107
+    $(this).addClass('expanded');
108
+    var $ul = $(this).children('ul');
109
+    var expandedHeight = $ul.height();
110
+    $ul
111
+        .removeClass('animate-height')
112
+        .css('height', 0);
113
+    window.setTimeout(function() {
114
+      $ul
115
+          .addClass('animate-height')
116
+          .css('height', expandedHeight + 'px');
117
+    }, 0);
118
+  });
119
+
120
+  // Stop expand/collapse behavior when clicking on nav section links (since we're navigating away
121
+  // from the page)
122
+  $('.nav-y li').has('ul').find('a:eq(0)').click(function(evt) {
123
+    window.location.href = $(this).attr('href');
124
+    return false;
125
+  });
126
+
127
+  // Set up play-on-hover <video> tags.
128
+  $('video.play-on-hover').bind('click', function(){
129
+    $(this).get(0).load(); // in case the video isn't seekable
130
+    $(this).get(0).play();
131
+  });
132
+
133
+  // Set up tooltips
134
+  var TOOLTIP_MARGIN = 10;
135
+  $('acronym').each(function() {
136
+    var $target = $(this);
137
+    var $tooltip = $('<div>')
138
+        .addClass('tooltip-box')
139
+        .text($target.attr('title'))
140
+        .hide()
141
+        .appendTo('body');
142
+    $target.removeAttr('title');
143
+
144
+    $target.hover(function() {
145
+      // in
146
+      var targetRect = $target.offset();
147
+      targetRect.width = $target.width();
148
+      targetRect.height = $target.height();
149
+
150
+      $tooltip.css({
151
+        left: targetRect.left,
152
+        top: targetRect.top + targetRect.height + TOOLTIP_MARGIN
153
+      });
154
+      $tooltip.addClass('below');
155
+      $tooltip.show();
156
+    }, function() {
157
+      // out
158
+      $tooltip.hide();
159
+    });
160
+  });
161
+
162
+  // Set up <h2> deeplinks
163
+  $('h2').click(function() {
164
+    var id = $(this).attr('id');
165
+    if (id) {
166
+      document.location.hash = id;
167
+    }
168
+  });
169
+
170
+  // Set up fixed navbar
171
+  var navBarIsFixed = false;
172
+  $(window).scroll(function() {
173
+    var scrollTop = $(window).scrollTop();
174
+    var navBarShouldBeFixed = (scrollTop > (100 - 40));
175
+    if (navBarIsFixed != navBarShouldBeFixed) {
176
+      if (navBarShouldBeFixed) {
177
+        $('#nav')
178
+            .addClass('fixed')
179
+            .prependTo('#page-container');
180
+      } else {
181
+        $('#nav')
182
+            .removeClass('fixed')
183
+            .prependTo('#nav-container');
184
+      }
185
+      navBarIsFixed = navBarShouldBeFixed;
186
+    }
187
+  });
188
+});

+ 4339
- 0
build/tools/droiddoc/templates-cmsdk/assets/docs.js
File diff suppressed because it is too large
View File


BIN
build/tools/droiddoc/templates-cmsdk/assets/favicon.ico View File


BIN
build/tools/droiddoc/templates-cmsdk/assets/fullscreen.png View File


BIN
build/tools/droiddoc/templates-cmsdk/assets/images/fullscreen.png View File


+ 679
- 0
build/tools/droiddoc/templates-cmsdk/class.cs View File

@@ -0,0 +1,679 @@
1
+<?cs include:"doctype.cs" ?>
2
+<?cs include:"macros.cs" ?>
3
+<?cs include:"macros_override.cs" ?>
4
+<html<?cs if:devsite ?> devsite<?cs /if ?>>
5
+<?cs include:"head_tag.cs" ?>
6
+<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
7
+  <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
8
+    if:reference ?> reference<?cs
9
+    /if ?><?cs
10
+  elif:design ?>design<?cs
11
+  elif:distribute ?>distribute<?cs
12
+  /if ?>" itemscope itemtype="http://schema.org/Article">
13
+  <div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
14
+  <a name="top"></a>
15
+<?cs include:"header.cs" ?>
16
+
17
+<div class="col-12"  id="doc-col">
18
+
19
+<div id="api-info-block">
20
+
21
+<?cs # are there inherited members ?>
22
+<?cs each:cl=class.inherited ?>
23
+  <?cs if:subcount(cl.methods) ?>
24
+   <?cs set:inhmethods = #1 ?>
25
+  <?cs /if ?>
26
+  <?cs if:subcount(cl.constants) ?>
27
+   <?cs set:inhconstants = #1 ?>
28
+  <?cs /if ?>
29
+  <?cs if:subcount(cl.fields) ?>
30
+   <?cs set:inhfields = #1 ?>
31
+  <?cs /if ?>
32
+  <?cs if:subcount(cl.attrs) ?>
33
+   <?cs set:inhattrs = #1 ?>
34
+  <?cs /if ?>
35
+<?cs /each ?>
36
+
37
+<div class="sum-details-links">
38
+<?cs if:inhattrs || inhconstants || inhfields || inhmethods || (!class.subclasses.hidden &&
39
+     (subcount(class.subclasses.direct) || subcount(class.subclasses.indirect))) ?>
40
+Summary:
41
+<?cs if:subcount(class.inners) ?>
42
+  <a href="#nestedclasses">Nested Classes</a>
43
+  <?cs set:linkcount = #1 ?>
44
+<?cs /if ?>
45
+<?cs if:subcount(class.attrs) ?>
46
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lattrs">XML Attrs</a>
47
+  <?cs set:linkcount = #1 ?>
48
+<?cs /if ?>
49
+<?cs if:inhattrs ?>
50
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
51
+  <?cs set:linkcount = #1 ?>
52
+<?cs /if ?>
53
+<?cs if:subcount(class.enumConstants) ?>
54
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#enumconstants">Enums</a>
55
+  <?cs set:linkcount = #1 ?>
56
+<?cs /if ?>
57
+<?cs if:subcount(class.constants) ?>
58
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#constants">Constants</a>
59
+  <?cs set:linkcount = #1 ?>
60
+<?cs /if ?>
61
+<?cs if:inhconstants ?>
62
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
63
+  <?cs set:linkcount = #1 ?>
64
+<?cs /if ?>
65
+<?cs if:subcount(class.fields) ?>
66
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lfields">Fields</a>
67
+  <?cs set:linkcount = #1 ?>
68
+<?cs /if ?>
69
+<?cs if:inhfields ?>
70
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhfields">Inherited Fields</a>
71
+  <?cs set:linkcount = #1 ?>
72
+<?cs /if ?>
73
+<?cs if:subcount(class.ctors.public) ?>
74
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubctors">Ctors</a>
75
+  <?cs set:linkcount = #1 ?>
76
+<?cs /if ?>
77
+<?cs if:subcount(class.ctors.protected) ?>
78
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#proctors">Protected Ctors</a>
79
+  <?cs set:linkcount = #1 ?>
80
+<?cs /if ?>
81
+<?cs if:subcount(class.methods.public) ?>
82
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubmethods">Methods</a>
83
+  <?cs set:linkcount = #1 ?>
84
+<?cs /if ?>
85
+<?cs if:subcount(class.methods.protected) ?>
86
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#promethods">Protected Methods</a>
87
+  <?cs set:linkcount = #1 ?>
88
+<?cs /if ?>
89
+<?cs if:inhmethods ?>
90
+  <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
91
+<?cs /if ?>
92
+&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
93
+<?cs /if ?>
94
+</div><!-- end sum-details-links -->
95
+<div class="api-level">
96
+  <?cs call:since_tags(class) ?><?cs
97
+  if:class.deprecatedsince
98
+    ?><br>Deprecated since <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels"
99
+        >API level <?cs var:class.deprecatedsince ?></a><?cs
100
+  /if ?>
101
+  <?cs call:federated_refs(class) ?>
102
+</div>
103
+</div><!-- end api-info-block -->
104
+
105
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
106
+<!-- ======== START OF CLASS DATA ======== -->
107
+
108
+<div id="jd-header">
109
+    <?cs var:class.scope ?>
110
+    <?cs var:class.static ?> 
111
+    <?cs var:class.final ?> 
112
+    <?cs var:class.abstract ?>
113
+    <?cs var:class.kind ?>
114
+<h1 itemprop="name"><?cs var:class.name ?></h1>
115
+
116
+<?cs set:colspan = subcount(class.inheritance) ?>
117
+<?cs each:supr = class.inheritance ?>
118
+  <?cs if:colspan == 2 ?>
119
+    extends <?cs call:type_link(supr.short_class) ?><br/>
120
+  <?cs /if ?>
121
+  <?cs if:last(supr) && subcount(supr.interfaces) ?>
122
+      implements 
123
+      <?cs each:t=supr.interfaces ?>
124
+        <?cs call:type_link(t) ?> 
125
+      <?cs /each ?>
126
+  <?cs /if ?>
127
+  <?cs set:colspan = colspan-1 ?>
128
+<?cs /each ?>
129
+<?cs call:show_annotations_list(class) ?>
130
+
131
+</div><!-- end header -->
132
+
133
+<div id="naMessage"></div>
134
+
135
+<div id="jd-content" class="api apilevel-<?cs var:class.since ?>">
136
+<table class="jd-inheritance-table">
137
+<?cs set:colspan = subcount(class.inheritance) ?>
138
+<?cs each:supr = class.inheritance ?>
139
+    <tr>
140
+        <?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
141
+            <td class="jd-inheritance-space">&nbsp;<?cs if:(subcount(class.inheritance)-colspan) == i ?>&nbsp;&nbsp;&#x21b3;<?cs /if ?></td>
142
+        <?cs /loop ?> 	
143
+        <td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
144
+            if:colspan == 1
145
+                ?><?cs call:class_name(class.qualifiedType) ?><?cs 
146
+            else 
147
+                ?><?cs call:type_link(supr.class) ?><?cs
148
+            /if ?></td>
149
+    </tr>
150
+    <?cs set:colspan = colspan-1 ?>
151
+<?cs /each ?>
152
+</table>
153
+
154
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
155
+
156
+<?cs if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
157
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
158
+<?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
159
+<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
160
+</td></tr></table>
161
+<?cs /if ?>
162
+
163
+<?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
164
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
165
+<?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
166
+<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
167
+</td></tr></table>
168
+<?cs /if ?>
169
+
170
+<div class="jd-descr">
171
+<?cs call:deprecated_warning(class) ?>
172
+<?cs if:subcount(class.descr) ?>
173
+<h2>Class Overview</h2>
174
+<p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p>
175
+<?cs /if ?>
176
+
177
+<?cs call:see_also_tags(class.seeAlso) ?>
178
+
179
+</div><!-- jd-descr -->
180
+
181
+
182
+<?cs # summary macros ?>
183
+
184
+<?cs def:write_method_summary(methods, included) ?>
185
+<?cs set:count = #1 ?>
186
+<?cs each:method = methods ?>
187
+	 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
188
+    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:method.since ?>" >
189
+        <td class="jd-typecol"><nobr>
190
+            <?cs var:method.abstract ?>
191
+            <?cs var:method.synchronized ?>
192
+            <?cs var:method.final ?>
193
+            <?cs var:method.static ?>
194
+            <?cs call:type_link(method.generic) ?>
195
+            <?cs call:type_link(method.returnType) ?></nobr>
196
+        </td>
197
+        <td class="jd-linkcol" width="100%"><nobr>
198
+        <span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
199
+        <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
200
+        <div class="jd-descrdiv">
201
+          <?cs call:short_descr(method) ?>
202
+          <?cs call:show_annotations_list(method) ?>
203
+        </div>
204
+  <?cs /if ?>
205
+  </td></tr>
206
+<?cs set:count = count + #1 ?>
207
+<?cs /each ?>
208
+<?cs /def ?>
209
+
210
+<?cs def:write_field_summary(fields, included) ?>
211
+<?cs set:count = #1 ?>
212
+    <?cs each:field=fields ?>
213
+      <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
214
+          <td class="jd-typecol"><nobr>
215
+          <?cs var:field.scope ?>
216
+          <?cs var:field.static ?>
217
+          <?cs var:field.final ?>
218
+          <?cs call:type_link(field.type) ?></nobr></td>
219
+          <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
220
+          <td class="jd-descrcol" width="100%">
221
+            <?cs call:short_descr(field) ?>
222
+            <?cs call:show_annotations_list(field) ?>
223
+          </td>
224
+      </tr>
225
+      <?cs set:count = count + #1 ?>
226
+    <?cs /each ?>
227
+<?cs /def ?>
228
+
229
+<?cs def:write_constant_summary(fields, included) ?>
230
+<?cs set:count = #1 ?>
231
+    <?cs each:field=fields ?>
232
+    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
233
+        <td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
234
+        <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
235
+        <td class="jd-descrcol" width="100%">
236
+          <?cs call:short_descr(field) ?>
237
+          <?cs call:show_annotations_list(field) ?>
238
+        </td>
239
+    </tr>
240
+    <?cs set:count = count + #1 ?>
241
+    <?cs /each ?>
242
+<?cs /def ?>
243
+
244
+<?cs def:write_attr_summary(attrs, included) ?>
245
+<?cs set:count = #1 ?>
246
+    <tr>
247
+        <td><nobr><em>Attribute Name</em></nobr></td>
248
+        <td><nobr><em>Related Method</em></nobr></td>
249
+        <td><nobr><em>Description</em></nobr></td>
250
+    </tr>
251
+    <?cs each:attr=attrs ?>
252
+    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:attr.since ?>" >
253
+        <td class="jd-linkcol"><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if ?><?cs var:attr.name ?><?cs if:included ?></a><?cs /if ?></td>
254
+        <td class="jd-linkcol"><?cs each:m=attr.methods ?>
255
+            <?cs call:cond_link(m.name, toroot, m.href, included) ?>
256
+            <?cs /each ?>
257
+        </td>
258
+        <td class="jd-descrcol" width="100%">
259
+          <?cs call:short_descr(attr) ?>&nbsp;
260
+          <?cs call:show_annotations_list(attr) ?>
261
+        </td>
262
+    </tr>
263
+    <?cs set:count = count + #1 ?>
264
+    <?cs /each ?>
265
+<?cs /def ?>
266
+
267
+<?cs def:write_inners_summary(classes) ?>
268
+<?cs set:count = #1 ?>
269
+  <?cs each:cl=class.inners ?>
270
+    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
271
+      <td class="jd-typecol"><nobr>
272
+        <?cs var:cl.scope ?>
273
+        <?cs var:cl.static ?> 
274
+        <?cs var:cl.final ?> 
275
+        <?cs var:cl.abstract ?>
276
+        <?cs var:cl.kind ?></nobr></td>
277
+      <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
278
+      <td class="jd-descrcol" width="100%">
279
+        <?cs call:short_descr(cl) ?>&nbsp;
280
+        <?cs call:show_annotations_list(cl) ?>
281
+      </td>
282
+    </tr>
283
+    <?cs set:count = count + #1 ?>
284
+    <?cs /each ?>
285
+<?cs /def ?>
286
+
287
+<?cs # end macros ?>
288
+
289
+<div class="jd-descr">
290
+<?cs # make sure there's a summary view to display ?>
291
+<?cs if:subcount(class.inners)
292
+     || subcount(class.attrs)
293
+     || inhattrs
294
+     || subcount(class.enumConstants)
295
+     || subcount(class.constants)
296
+     || inhconstants
297
+     || subcount(class.fields)
298
+     || inhfields
299
+     || subcount(class.ctors.public)
300
+     || subcount(class.ctors.protected)
301
+     || subcount(class.methods.public)
302
+     || subcount(class.methods.protected)
303
+     || inhmethods ?>
304
+<h2>Summary</h2>
305
+
306
+<?cs if:subcount(class.inners) ?>
307
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
308
+<!-- ======== NESTED CLASS SUMMARY ======== -->
309
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
310
+<?cs call:write_inners_summary(class.inners) ?>
311
+<?cs /if ?>
312
+
313
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
314
+<?cs if:subcount(class.attrs) ?>
315
+<!-- =========== FIELD SUMMARY =========== -->
316
+<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
317
+<?cs call:write_attr_summary(class.attrs, 1) ?>
318
+<?cs /if ?>
319
+
320
+<?cs # if there are inherited attrs, write the table ?>
321
+<?cs if:inhattrs ?>
322
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
323
+<!-- =========== FIELD SUMMARY =========== -->
324
+<table id="inhattrs" class="jd-sumtable"><tr><th>
325
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
326
+  <div style="clear:left;">Inherited XML Attributes</div></th></tr>
327
+<?cs each:cl=class.inherited ?>
328
+<?cs if:subcount(cl.attrs) ?>
329
+<tr class="api apilevel-<?cs var:cl.since ?>" >
330
+<td colspan="12">
331
+<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
332
+<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
333
+<div id="inherited-attrs-<?cs var:cl.qualified ?>">
334
+  <div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
335
+        class="jd-inheritedlinks">
336
+  </div>
337
+  <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
338
+    <table class="jd-sumtable-expando">
339
+    <?cs call:write_attr_summary(cl.attrs, cl.included) ?></table>
340
+  </div>
341
+</div>
342
+</td></tr>
343
+<?cs /if ?>
344
+<?cs /each ?>
345
+</table>
346
+<?cs /if ?>
347
+
348
+<?cs if:subcount(class.enumConstants) ?>
349
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
350
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
351
+<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
352
+<?cs set:count = #1 ?>
353
+    <?cs each:field=class.enumConstants ?>
354
+    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
355
+        <td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
356
+        <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?>&nbsp;</td>
357
+        <td class="jd-descrcol" width="100%">
358
+          <?cs call:short_descr(field) ?>&nbsp;
359
+          <?cs call:show_annotations_list(field) ?>
360
+        </td>
361
+    </tr>
362
+    <?cs set:count = count + #1 ?>
363
+    <?cs /each ?>
364
+<?cs /if ?>
365
+
366
+<?cs if:subcount(class.constants) ?>
367
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
368
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
369
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
370
+<?cs call:write_constant_summary(class.constants, 1) ?>
371
+</table>
372
+<?cs /if ?>
373
+
374
+<?cs # if there are inherited constants, write the table ?>
375
+<?cs if:inhconstants ?>
376
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
377
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
378
+<table id="inhconstants" class="jd-sumtable"><tr><th>
379
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
380
+  <div style="clear:left;">Inherited Constants</div></th></tr>
381
+<?cs each:cl=class.inherited ?>
382
+<?cs if:subcount(cl.constants) ?>
383
+<tr class="api apilevel-<?cs var:cl.since ?>" >
384
+<td colspan="12">
385
+<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
386
+<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
387
+<div id="inherited-constants-<?cs var:cl.qualified ?>">
388
+  <div id="inherited-constants-<?cs var:cl.qualified ?>-list"
389
+        class="jd-inheritedlinks">
390
+  </div>
391
+  <div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
392
+    <table class="jd-sumtable-expando">
393
+    <?cs call:write_constant_summary(cl.constants, cl.included) ?></table>
394
+  </div>
395
+</div>
396
+</td></tr>
397
+<?cs /if ?>
398
+<?cs /each ?>
399
+</table>
400
+<?cs /if ?>
401
+
402
+<?cs if:subcount(class.fields) ?>
403
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
404
+<!-- =========== FIELD SUMMARY =========== -->
405
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
406
+<?cs call:write_field_summary(class.fields, 1) ?>
407
+</table>
408
+<?cs /if ?>
409
+
410
+<?cs # if there are inherited fields, write the table ?>
411
+<?cs if:inhfields ?>
412
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
413
+<!-- =========== FIELD SUMMARY =========== -->
414
+<table id="inhfields" class="jd-sumtable"><tr><th>
415
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
416
+  <div style="clear:left;">Inherited Fields</div></th></tr>
417
+<?cs each:cl=class.inherited ?>
418
+<?cs if:subcount(cl.fields) ?>
419
+<tr class="api apilevel-<?cs var:cl.since ?>" >
420
+<td colspan="12">
421
+<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
422
+<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
423
+<div id="inherited-fields-<?cs var:cl.qualified ?>">
424
+  <div id="inherited-fields-<?cs var:cl.qualified ?>-list"
425
+        class="jd-inheritedlinks">
426
+  </div>
427
+  <div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
428
+    <table class="jd-sumtable-expando">
429
+    <?cs call:write_field_summary(cl.fields, cl.included) ?></table>
430
+  </div>
431
+</div>
432
+</td></tr>
433
+<?cs /if ?>
434
+<?cs /each ?>
435
+</table>
436
+<?cs /if ?>
437
+
438
+<?cs if:subcount(class.ctors.public) ?>
439
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
440
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
441
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
442
+<?cs call:write_method_summary(class.ctors.public, 1) ?>
443
+</table>
444
+<?cs /if ?>
445
+
446
+<?cs if:subcount(class.ctors.protected) ?>
447
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
448
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
449
+<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
450
+<?cs call:write_method_summary(class.ctors.protected, 1) ?>
451
+</table>
452
+<?cs /if ?>
453
+
454
+<?cs if:subcount(class.methods.public) ?>
455
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
456
+<!-- ========== METHOD SUMMARY =========== -->
457
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
458
+<?cs call:write_method_summary(class.methods.public, 1) ?>
459
+</table>
460
+<?cs /if ?>
461
+
462
+<?cs if:subcount(class.methods.protected) ?>
463
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
464
+<!-- ========== METHOD SUMMARY =========== -->
465
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
466
+<?cs call:write_method_summary(class.methods.protected, 1) ?>
467
+</table>
468
+<?cs /if ?>
469
+
470
+<?cs # if there are inherited methods, write the table ?>
471
+<?cs if:inhmethods ?>
472
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
473
+<!-- ========== METHOD SUMMARY =========== -->
474
+<table id="inhmethods" class="jd-sumtable"><tr><th>
475
+  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
476
+  <div style="clear:left;">Inherited Methods</div></th></tr>
477
+<?cs each:cl=class.inherited ?>
478
+<?cs if:subcount(cl.methods) ?>
479
+<tr class="api apilevel-<?cs var:cl.since ?>" >
480
+<td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
481
+From <?cs var:cl.kind ?>
482
+<?cs if:cl.included ?>
483
+  <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
484
+<?cs elif:cl.federated ?>
485
+  <a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
486
+<?cs else ?>
487
+  <?cs var:cl.qualified ?>
488
+<?cs /if ?>
489
+<div id="inherited-methods-<?cs var:cl.qualified ?>">
490
+  <div id="inherited-methods-<?cs var:cl.qualified ?>-list"
491
+        class="jd-inheritedlinks">
492
+  </div>
493
+  <div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
494
+    <table class="jd-sumtable-expando">
495
+    <?cs call:write_method_summary(cl.methods, cl.included) ?></table>
496
+  </div>
497
+</div>
498
+</td></tr>
499
+<?cs /if ?>
500
+<?cs /each ?>
501
+</table>
502
+<?cs /if ?>
503
+<?cs /if ?>
504
+</div><!-- jd-descr (summary) -->
505
+
506
+<!-- Details -->
507
+
508
+<?cs def:write_field_details(fields) ?>
509
+<?cs each:field=fields ?>
510
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
511
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
512
+<A NAME="<?cs var:field.anchor ?>"></A>
513
+<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
514
+<div class="jd-details api apilevel-<?cs var:field.since ?>"> 
515
+    <h4 class="jd-details-title">
516
+      <span class="normal">
517
+        <?cs var:field.scope ?> 
518
+        <?cs var:field.static ?> 
519
+        <?cs var:field.final ?> 
520
+        <?cs call:type_link(field.type) ?>
521
+      </span>
522
+        <?cs var:field.name ?>
523
+    </h4>
524
+      <div class="api-level">
525
+        <?cs call:since_tags(field) ?>
526
+        <?cs call:federated_refs(field) ?>
527
+      </div>
528
+    <div class="jd-details-descr">
529
+      <?cs call:show_annotations_list(field) ?>
530
+      <?cs call:description(field) ?>
531
+    <?cs if:subcount(field.constantValue) ?>
532
+        <div class="jd-tagdata">
533
+        <span class="jd-tagtitle">Constant Value: </span>
534
+        <span>
535
+            <?cs if:field.constantValue.isString ?>
536
+                <?cs var:field.constantValue.str ?>
537
+            <?cs else ?>
538
+                <?cs var:field.constantValue.dec ?>
539
+                (<?cs var:field.constantValue.hex ?>)
540
+            <?cs /if ?>
541
+        </span>
542
+        </div>
543
+    <?cs /if ?>
544
+    </div>
545
+</div>
546
+<?cs /each ?>
547
+<?cs /def ?>
548
+
549
+<?cs def:write_method_details(methods) ?>
550
+<?cs each:method=methods ?>
551
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
552
+<A NAME="<?cs var:method.anchor ?>"></A>
553
+<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
554
+<div class="jd-details api apilevel-<?cs var:method.since ?>"> 
555
+    <h4 class="jd-details-title">
556
+      <span class="normal">
557
+        <?cs var:method.scope ?> 
558
+        <?cs var:method.static ?> 
559
+        <?cs var:method.final ?> 
560
+        <?cs var:method.abstract ?> 
561
+        <?cs var:method.synchronized ?> 
562
+        <?cs call:type_link(method.returnType) ?>
563
+      </span>
564
+      <span class="sympad"><?cs var:method.name ?></span>
565
+      <span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
566
+    </h4>
567
+      <div class="api-level">
568
+        <div><?cs call:since_tags(method) ?></div>
569
+        <?cs call:federated_refs(method) ?>
570
+      </div>
571
+    <div class="jd-details-descr">
572
+      <?cs call:show_annotations_list(method) ?>
573
+      <?cs call:description(method) ?>
574
+    </div>
575
+</div>
576
+<?cs /each ?>
577
+<?cs /def ?>
578
+
579
+<?cs def:write_attr_details(attrs) ?>
580
+<?cs each:attr=attrs ?>
581
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
582
+<A NAME="<?cs var:attr.anchor ?>"></A>
583
+<div class="jd-details"> 
584
+    <h4 class="jd-details-title"><?cs var:attr.name ?>
585
+    </h4>
586
+    <div class="jd-details-descr">
587
+        <?cs call:show_annotations_list(attr) ?>
588
+        <?cs call:description(attr) ?>
589
+
590
+        <div class="jd-tagdata">
591
+            <h5 class="jd-tagtitle">Related Methods</h5>
592
+            <ul class="nolist">
593
+            <?cs each:m=attr.methods ?>
594
+                <li><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></li>
595
+            <?cs /each ?>
596
+            </ul>
597
+        </div>
598
+    </div>
599
+</div>
600
+<?cs /each ?>
601
+<?cs /def ?>
602
+
603
+
604
+<!-- XML Attributes -->
605
+<?cs if:subcount(class.attrs) ?>
606
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
607
+<!-- ========= FIELD DETAIL ======== -->
608
+<h2>XML Attributes</h2>
609
+<?cs call:write_attr_details(class.attrs) ?>
610
+<?cs /if ?>
611
+
612
+<!-- Enum Values -->
613
+<?cs if:subcount(class.enumConstants) ?>
614
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
615
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
616
+<h2>Enum Values</h2>
617
+<?cs call:write_field_details(class.enumConstants) ?>
618
+<?cs /if ?>
619
+
620
+<!-- Constants -->
621
+<?cs if:subcount(class.constants) ?>
622
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
623
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
624
+<h2>Constants</h2>
625
+<?cs call:write_field_details(class.constants) ?>
626
+<?cs /if ?>
627
+
628
+<!-- Fields -->
629
+<?cs if:subcount(class.fields) ?>
630
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
631
+<!-- ========= FIELD DETAIL ======== -->
632
+<h2>Fields</h2>
633
+<?cs call:write_field_details(class.fields) ?>
634
+<?cs /if ?>
635
+
636
+<!-- Public ctors -->
637
+<?cs if:subcount(class.ctors.public) ?>
638
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
639
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
640
+<h2>Public Constructors</h2>
641
+<?cs call:write_method_details(class.ctors.public) ?>
642
+<?cs /if ?>
643
+
644
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
645
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
646
+<!-- Protected ctors -->
647
+<?cs if:subcount(class.ctors.protected) ?>
648
+<h2>Protected Constructors</h2>
649
+<?cs call:write_method_details(class.ctors.protected) ?>
650
+<?cs /if ?>
651
+
652
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
653
+<!-- ========= METHOD DETAIL ======== -->
654
+<!-- Public methdos -->
655
+<?cs if:subcount(class.methods.public) ?>
656
+<h2>Public Methods</h2>
657
+<?cs call:write_method_details(class.methods.public) ?>
658
+<?cs /if ?>
659
+
660
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
661
+<!-- ========= METHOD DETAIL ======== -->
662
+<?cs if:subcount(class.methods.protected) ?>
663
+<h2>Protected Methods</h2>
664
+<?cs call:write_method_details(class.methods.protected) ?>
665
+<?cs /if ?>
666
+
667
+<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
668
+<!-- ========= END OF CLASS DATA ========= -->
669
+<A NAME="navbar_top"></A>
670
+
671
+<?cs include:"footer.cs" ?>
672
+</div> <!-- jd-content -->
673
+
674
+</div><!-- end doc-content -->
675
+
676
+<?cs include:"trailer.cs" ?>
677
+
678
+</body>
679
+</html>

+ 53
- 0
build/tools/droiddoc/templates-cmsdk/classes.cs View File

@@ -0,0 +1,53 @@
1
+<?cs include:"doctype.cs" ?>
2
+<?cs include:"macros.cs" ?>
3
+<?cs include:"macros_override.cs" ?>
4
+<html<?cs if:devsite ?> devsite<?cs /if ?>>
5
+<?cs include:"head_tag.cs" ?>
6
+<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
7
+  <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
8
+    if:reference ?> reference<?cs
9
+    /if ?><?cs
10
+  elif:design ?>design<?cs
11
+  elif:distribute ?>distribute<?cs
12
+  /if ?>" itemscope itemtype="http://schema.org/Article">
13
+  <a name="top"></a>
14
+<?cs include:"header.cs" ?>
15
+
16
+<div class="col-12" id="doc-col">
17
+
18
+<div id="jd-header">
19
+<h1><?cs var:page.title ?></h1>
20
+</div>
21
+
22
+<div id="jd-content">
23
+<p>These are the Android API classes. See all <a href="packages.html">API packages</a>.</p>
24
+<div class="jd-letterlist"><?cs each:letter=docs.classes ?>
25
+    <a href="#letter_<?cs name:letter ?>"><?cs name:letter ?></a>&nbsp;&nbsp;<?cs /each?>
26
+</div>
27
+
28
+<?cs each:letter=docs.classes ?>
29
+<?cs set:count = #1 ?>
30
+<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
31
+<table class="jd-sumtable">
32
+    <?cs set:cur_row = #0 ?>
33
+    <?cs each:cl = letter ?>
34
+        <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
35
+            <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
36
+            <td class="jd-descrcol" width="100%">
37
+              <?cs call:short_descr(cl) ?>&nbsp;
38
+              <?cs call:show_annotations_list(cl) ?>
39
+            </td>
40
+        </tr>
41
+    <?cs set:count = count + #1 ?>
42
+    <?cs /each ?>
43
+</table>
44
+<?cs /each ?>
45
+
46
+<?cs include:"footer.cs" ?>
47
+</div><!-- end jd-content -->
48
+</div><!-- end doc-content -->
49
+
50
+<?cs include:"trailer.cs" ?>
51
+
52
+</body>
53
+</html>

+ 10
- 0
build/tools/droiddoc/templates-cmsdk/components/masthead.cs View File

@@ -0,0 +1,10 @@
1
+<?cs def:custom_masthead() ?>
2
+  <div id="header">
3
+      <div id="headerLeft">
4
+          <a href="<?cs var:toroot ?>index.html" tabindex="-1"><img
5
+              src="<?cs var:toroot ?>assets/cid_smart.png" alt="CID" width="30" height="30"/>
6
+          <span id="masthead-title">CyanogenMod Platform SDK</span></a>
7
+      </div>
8
+  </div><!-- header --><?cs 
9
+/def ?>
10
+

+ 516
- 0
build/tools/droiddoc/templates-cmsdk/customizations.cs View File

@@ -0,0 +1,516 @@
1
+<?cs 
2
+def:fullpage() ?>
3
+  <div id="body-content">
4
+<?cs /def ?>
5
+<?cs 
6
+def:sdk_nav() ?>
7
+  <div class="wrap clearfix" id="body-content">
8
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
9
+      <div id="devdoc-nav" class="scroll-pane">
10
+
11
+<?cs 
12
+        include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
13
+
14
+
15
+      </div>
16
+    </div> <!-- end side-nav -->
17
+<?cs /def ?><?cs
18
+
19
+def:no_nav() ?>
20
+  <div class="wrap clearfix" id="body-content">
21
+<?cs /def ?><?cs
22
+
23
+def:tools_nav() ?>
24
+  <div class="wrap clearfix" id="body-content">
25
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
26
+      <div id="devdoc-nav" class="scroll-pane">
27
+<?cs 
28
+        include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
29
+        
30
+        
31
+      </div>
32
+    </div> <!-- end side-nav -->
33
+    <script>
34
+      $(document).ready(function() {
35
+        scrollIntoView("devdoc-nav");
36
+        });
37
+    </script>
38
+<?cs /def ?>
39
+<?cs
40
+def:training_nav() ?>
41
+  <div class="wrap clearfix" id="body-content">
42
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
43
+      <div id="devdoc-nav" class="scroll-pane">
44
+
45
+
46
+<?cs 
47
+        include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
48
+        
49
+
50
+      </div>
51
+    </div> <!-- end side-nav -->
52
+    <script>
53
+      $(document).ready(function() {
54
+        scrollIntoView("devdoc-nav");
55
+        });
56
+    </script>
57
+<?cs /def ?><?cs
58
+
59
+def:googleplay_nav() ?>
60
+  <div class="wrap clearfix" id="body-content">
61
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
62
+      <div id="devdoc-nav" class="scroll-pane">
63
+<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
64
+      </div>
65
+    </div> <!-- end side-nav -->
66
+    <script>
67
+      $(document).ready(function() {
68
+        scrollIntoView("devdoc-nav");
69
+        });
70
+    </script>
71
+<?cs /def ?><?cs
72
+
73
+def:essentials_nav() ?>
74
+  <div class="wrap clearfix" id="body-content">
75
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
76
+      <div id="devdoc-nav" class="scroll-pane">
77
+<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
78
+      </div>
79
+    </div> <!-- end side-nav -->
80
+    <script>
81
+      $(document).ready(function() {
82
+        scrollIntoView("devdoc-nav");
83
+        });
84
+    </script>
85
+<?cs /def ?><?cs
86
+
87
+def:users_nav() ?>
88
+  <div class="wrap clearfix" id="body-content">
89
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
90
+      <div id="devdoc-nav" class="scroll-pane">
91
+<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
92
+      </div>
93
+    </div> <!-- end side-nav -->
94
+    <script>
95
+      $(document).ready(function() {
96
+        scrollIntoView("devdoc-nav");
97
+        });
98
+    </script>
99
+<?cs /def ?><?cs
100
+
101
+def:engage_nav() ?>
102
+  <div class="wrap clearfix" id="body-content">
103
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
104
+      <div id="devdoc-nav" class="scroll-pane">
105
+<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
106
+      </div>
107
+    </div> <!-- end side-nav -->
108
+    <script>
109
+      $(document).ready(function() {
110
+        scrollIntoView("devdoc-nav");
111
+        });
112
+    </script>
113
+<?cs /def ?><?cs
114
+
115
+def:analyze_nav() ?>
116
+  <div class="wrap clearfix" id="body-content">
117
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
118
+      <div id="devdoc-nav" class="scroll-pane">
119
+<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
120
+      </div>
121
+    </div> <!-- end side-nav -->
122
+    <script>
123
+      $(document).ready(function() {
124
+        scrollIntoView("devdoc-nav");
125
+        });
126
+    </script>
127
+<?cs /def ?><?cs
128
+
129
+def:monetize_nav() ?>
130
+  <div class="wrap clearfix" id="body-content">
131
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
132
+      <div id="devdoc-nav" class="scroll-pane">
133
+<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
134
+      </div>
135
+    </div> <!-- end side-nav -->
136
+    <script>
137
+      $(document).ready(function() {
138
+        scrollIntoView("devdoc-nav");
139
+        });
140
+    </script>
141
+<?cs /def ?><?cs
142
+
143
+def:disttools_nav() ?>
144
+  <div class="wrap clearfix" id="body-content">
145
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
146
+      <div id="devdoc-nav" class="scroll-pane">
147
+<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
148
+      </div>
149
+    </div> <!-- end side-nav -->
150
+    <script>
151
+      $(document).ready(function() {
152
+        scrollIntoView("devdoc-nav");
153
+        });
154
+    </script>
155
+<?cs /def ?><?cs
156
+
157
+def:stories_nav() ?>
158
+  <div class="wrap clearfix" id="body-content">
159
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
160
+      <div id="devdoc-nav" class="scroll-pane">
161
+<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
162
+      </div>
163
+    </div> <!-- end side-nav -->
164
+    <script>
165
+      $(document).ready(function() {
166
+        scrollIntoView("devdoc-nav");
167
+        });
168
+    </script>
169
+<?cs /def ?><?cs
170
+
171
+def:guide_nav() ?>
172
+  <div class="wrap clearfix" id="body-content">
173
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
174
+      <div id="devdoc-nav" class="scroll-pane">
175
+
176
+<?cs 
177
+        include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
178
+        
179
+
180
+      </div>
181
+    </div> <!-- end side-nav -->
182
+    <script>
183
+      $(document).ready(function() {
184
+        scrollIntoView("devdoc-nav");
185
+        });
186
+    </script>
187
+<?cs /def ?>
188
+<?cs
189
+def:design_nav() ?>
190
+  <div class="wrap clearfix" id="body-content">
191
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
192
+      <div id="devdoc-nav" class="scroll-pane">
193
+
194
+
195
+<?cs
196
+        include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
197
+       
198
+
199
+      </div>
200
+    </div> <!-- end side-nav -->
201
+    <script>
202
+      $(document).ready(function() {
203
+        scrollIntoView("devdoc-nav");
204
+        });
205
+    </script>
206
+<?cs /def ?>
207
+<?cs
208
+def:distribute_nav() ?>
209
+  <div class="wrap clearfix" id="body-content">
210
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
211
+      <div id="devdoc-nav" class="scroll-pane">
212
+
213
+<?cs
214
+        include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
215
+        
216
+
217
+      </div>
218
+    </div> <!-- end side-nav -->
219
+    <script>
220
+      $(document).ready(function() {
221
+        scrollIntoView("devdoc-nav");
222
+        });
223
+    </script>
224
+<?cs /def ?>
225
+
226
+<?cs
227
+def:samples_nav() ?>
228
+  <div class="wrap clearfix" id="body-content">
229
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
230
+      <div id="devdoc-nav" class="scroll-pane">
231
+
232
+<?cs
233
+        include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
234
+
235
+      </div>
236
+
237
+    </div> <!-- end side-nav -->
238
+    <script>
239
+      $(document).ready(function() {
240
+        scrollIntoView("devdoc-nav");
241
+        });
242
+    </script>
243
+<?cs /def ?>
244
+
245
+<?cs
246
+def:google_nav() ?>
247
+  <div class="wrap clearfix" id="body-content">
248
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
249
+      <div id="devdoc-nav" class="scroll-pane">
250
+
251
+<?cs
252
+        include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
253
+        
254
+
255
+      </div>
256
+      <script type="text/javascript">
257
+       showGoogleRefTree();
258
+    
259
+      </script>
260
+    </div> <!-- end side-nav -->
261
+    <script>
262
+      $(document).ready(function() {
263
+        scrollIntoView("devdoc-nav");
264
+        });
265
+    </script>
266
+<?cs /def ?>
267
+
268
+<?cs
269
+def:about_nav() ?>
270
+  <div class="wrap clearfix" id="body-content">
271
+    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
272
+      <div id="devdoc-nav" class="scroll-pane">
273
+
274
+<?cs
275
+        include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
276
+        
277
+
278
+      </div>
279
+    </div> <!-- end side-nav -->
280
+    <script>
281
+      $(document).ready(function() {
282
+        scrollIntoView("devdoc-nav");
283
+        });
284
+    </script>
285
+<?cs /def ?>
286
+
287
+
288
+<?cs
289
+def:wear_nav() ?>
290
+  <div class="wrap clearfix" id="body-content">
291
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
292
+      <div id="devdoc-nav" class="scroll-pane">
293
+
294
+<?cs
295
+        include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
296
+
297
+
298
+      </div>
299
+    </div> <!-- end side-nav -->
300
+    <script>
301
+      $(document).ready(function() {
302
+        scrollIntoView("devdoc-nav");
303
+        });
304
+    </script>
305
+<?cs /def ?>
306
+
307
+<?cs
308
+def:preview_nav() ?>
309
+  <div class="wrap clearfix" id="body-content">
310
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
311
+      <div id="devdoc-nav" class="scroll-pane">
312
+        <?cs
313
+          include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
314
+      </div>
315
+    </div> <!-- end side-nav -->
316
+    <script>
317
+      $(document).ready(function() {
318
+        scrollIntoView("devdoc-nav");
319
+        });
320
+    </script>
321
+<?cs /def ?>
322
+
323
+<?cs # The default side navigation for the reference docs ?><?cs 
324
+def:default_left_nav() ?>
325
+<?cs if:reference.gcm || reference.gms ?>
326
+  <?cs call:google_nav() ?>
327
+<?cs else ?>
328
+  <div class="wrap clearfix" id="body-content">
329
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
330
+      <div id="devdoc-nav">
331
+      <div id="api-nav-header">
332
+        <div id="api-level-toggle">
333
+          <label for="apiLevelCheckbox" class="disabled"
334
+            title="Select your target API level to dim unavailable APIs">API level: </label>
335
+          <div class="select-wrapper">
336
+            <select id="apiLevelSelector">
337
+              <!-- option elements added by buildApiLevelSelector() -->
338
+            </select>
339
+          </div>
340
+        </div><!-- end toggle -->
341
+        <div id="api-nav-title">CyanogenMod APIs</div>
342
+        </div><!-- end nav header -->
343
+      <script>
344
+        var SINCE_DATA = [ <?cs 
345
+          each:since = since ?>'<?cs 
346
+            var:since.name ?>'<?cs 
347
+            if:!last(since) ?>, <?cs /if ?><?cs
348
+          /each 
349
+        ?> ];
350
+        buildApiLevelSelector();
351
+      </script>
352
+                  
353
+      <div id="swapper">
354
+        <div id="nav-panels">
355
+          <div id="resize-packages-nav">
356
+            <div id="packages-nav" class="scroll-pane">
357
+
358
+              <ul>
359
+                <?cs call:package_link_list(docs.packages) ?>
360
+              </ul><br/>
361
+
362
+            </div> <!-- end packages-nav -->
363
+          </div> <!-- end resize-packages -->
364
+          <div id="classes-nav" class="scroll-pane">