CARVIEW |
Select Language
HTTP/2 200
date: Sun, 27 Jul 2025 09:15:20 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-repository-download: git clone https://github.com/dotnet/android.git
etag: W/"4abe0d22e7db44dc664dcd821c9dbc73"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=BEjwSG%2FauLgTv8quw3C9QojcdAOHI8WHZjpoiCfREqnBBK0S0tcQU1q%2FsW%2Ft4W3lImzZ8ZK9JSDO%2BJpdZarm67zddlU3N5JenSDtIvuSEt2NY2n8z7%2Fycc0xJImbyeQgNFebubth26VpBbnwwcisu1QepZKm4U67T%2FnvJn9OHpf6UTmuLyW4KHnZYyRNkRuXQytwdj56%2Fm0Q7%2BLhFl%2FL%2Bjxm1IL8CqxIEbmUDbY4h1MQfo6AOlVUn3LQytJQFPneGiPHBvkC1zgvYS8dOpFyqg%3D%3D--n9jdG49BZR7snYHz--amoXczvllMfwOFSuo4mFpA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.2089975486.1753607720; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 09:15:20 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 09:15:20 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A460:93466:3497EB:47B843:6885EE28
[Xamarin.Android.Build.Tasks] Add ConvertCustomView Task (#2129) · dotnet/android@1886e6f · GitHub
Copy file name to clipboard
Copy file name to clipboardExpand all lines: src/Xamarin.Android.Build.Tasks/Tasks/ConvertResourcesCases.cs
Copy file name to clipboardExpand all lines: src/Xamarin.Android.Build.Tasks/Tasks/CopyAndConvertResources.cs
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 555
Commit 1886e6f
[Xamarin.Android.Build.Tasks] Add ConvertCustomView Task (#2129)
Fixes: #2100
Currently the `<ConvertResourcesCases/>` task is called twice on ALL
resources referenced by the project. This is terribly inefficient,
but unfortunately is required: the first pass is done before the
`Compile` target, and fixes up the casing for things like
drawables/etc. so that they're ready to be processed by `aapt`.
The second pass is done after `<GenerateJavaStubs/>`, which happens
*after* the `Compile` target. This is to replace any custom view
references with the correct `{md5}.View` style references, as we
replace the normal readable namespace with an md5 hash.
The problem was that `<ConvertResourcesCases/>` is doing a TON of
work it doesn't really need to do the second time around. For example
checking if it needs to lower case names of items. The second pass
really only needs to worry about custom views. In addition to that
it was also re-scanning ALL the files again.
This commit introduces a new `<ConvertCustomView/>` task. The sole
purpose of this task is to fix up the layout files which contain
custom views. It does nothing else. To make this even quicker we
modify `<ConvertResourcesCases/>` to emit a mapping file,
`customview-map.txt`. This file contains entries like:
MonoDroid.Example.MyLayout;/fullpath/to/file.xml
android.support.v7.widget.ActionBarOverlayLayout;/fullpath/to/some/other/file.xml
This allows us to know which files contain ANY layout.
This information in conjunction with the `acw_map.txt` file will
allow us to do a targeted update: we go through the `acw_map.txt`
values and fix up those files where we have entires in
`customview-map.txt`.
This reduces the amount of time spent processing files quite a bit.
For a Blank Xamarin Forms app from a clean build.
2639 ms ConvertResourcesCases 1 calls
3 ms ConvertCustomView 1 calls
Normally the `ConvertResourcesCases` would be called twice and would
take a total of 5-6 seconds.1 parent a677c17 commit 1886e6fCopy full SHA for 1886e6f
File tree
Expand file treeCollapse file tree
9 files changed
+353
-99
lines changedFilter options
- src/Xamarin.Android.Build.Tasks
- Tasks
- Tests/Xamarin.Android.Build.Tests
- Utilities
Expand file treeCollapse file tree
9 files changed
+353
-99
lines changedsrc/Xamarin.Android.Build.Tasks/Tasks/ConvertCustomView.cs
Copy file name to clipboard+145Lines changed: 145 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + |
src/Xamarin.Android.Build.Tasks/Tasks/ConvertResourcesCases.cs
Copy file name to clipboardExpand all lines: src/Xamarin.Android.Build.Tasks/Tasks/ConvertResourcesCases.cs+35-32Lines changed: 35 additions & 32 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
| 22 | + | |
| 23 | + | |
| 24 | + | |
22 | 25 |
| |
23 | 26 |
| |
24 | 27 |
| |
25 | 28 |
| |
26 | 29 |
| |
| 30 | + | |
27 | 31 |
| |
28 | 32 |
| |
29 | 33 |
| |
30 |
| - | |
31 |
| - | |
32 |
| - | |
33 |
| - | |
34 |
| - | |
35 |
| - | |
36 | 34 |
| |
37 | 35 |
| |
38 | 36 |
| |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
39 | 41 |
| |
40 | 42 |
| |
41 | 43 |
| |
| 44 | + | |
| 45 | + | |
| 46 | + | |
42 | 47 |
| |
43 | 48 |
| |
44 | 49 |
| |
| |||
80 | 85 |
| |
81 | 86 |
| |
82 | 87 |
| |
83 |
| - | |
84 |
| - | |
85 |
| - | |
| 88 | + | |
86 | 89 |
| |
87 |
| - | |
88 |
| - | |
89 |
| - | |
90 |
| - | |
91 |
| - | |
92 |
| - | |
93 |
| - | |
94 |
| - | |
95 |
| - | |
96 |
| - | |
97 |
| - | |
98 |
| - | |
99 |
| - | |
100 |
| - | |
101 |
| - | |
102 |
| - | |
103 |
| - | |
104 |
| - | |
105 |
| - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
106 | 102 |
| |
107 |
| - | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
108 | 111 |
| |
109 | 112 |
| |
110 | 113 |
| |
| |||
115 | 118 |
| |
116 | 119 |
| |
117 | 120 |
| |
118 |
| - | |
| 121 | + | |
| 122 | + | |
119 | 123 |
| |
120 |
| - | |
121 | 124 |
| |
122 |
| - | |
| 125 | + | |
123 | 126 |
| |
124 | 127 |
| |
125 | 128 |
| |
|
src/Xamarin.Android.Build.Tasks/Tasks/CopyAndConvertResources.cs
Copy file name to clipboardExpand all lines: src/Xamarin.Android.Build.Tasks/Tasks/CopyAndConvertResources.cs+41-4Lines changed: 41 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 | 1 |
| |
| 2 | + | |
2 | 3 |
| |
3 | 4 |
| |
4 | 5 |
| |
| |||
23 | 24 |
| |
24 | 25 |
| |
25 | 26 |
| |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
26 | 34 |
| |
27 | 35 |
| |
28 | 36 |
| |
29 | 37 |
| |
| 38 | + | |
30 | 39 |
| |
31 | 40 |
| |
32 | 41 |
| |
| |||
39 | 48 |
| |
40 | 49 |
| |
41 | 50 |
| |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
42 | 55 |
| |
43 | 56 |
| |
44 | 57 |
| |
| |||
85 | 98 |
| |
86 | 99 |
| |
87 | 100 |
| |
88 |
| - | |
89 |
| - | |
| 101 | + | |
| 102 | + | |
90 | 103 |
| |
91 |
| - | |
92 |
| - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
93 | 127 |
| |
94 | 128 |
| |
95 | 129 |
| |
| |||
102 | 136 |
| |
103 | 137 |
| |
104 | 138 |
| |
| 139 | + | |
| 140 | + | |
| 141 | + | |
105 | 142 |
| |
106 | 143 |
| |
107 | 144 |
| |
|
You can’t perform that action at this time.
0 commit comments