Skip to content

Commit 3082edb

Browse files
committed
[Mono.Android] abstract-ify inconsistent android.webkit API.
As part of discussion at #1078 (comment) , we decided to make changes to those inconsistent methods that used to be virtual and then became abstract, to become abstract even in old API level. It is done at metadata fixup level.
1 parent 01be8ac commit 3082edb

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/Mono.Android/metadata

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
<metadata>
2+
3+
<!-- FIXME: these members used to be `virtual` and then became `abstract`.
4+
They result in API breakage (reported as inter-api-level mismatch).
5+
This is ancient Google's fault. To deal with the situation nicely,
6+
we are marking them just as `abstract` even at the old API Level, so
7+
that app developers don't get trapped due to missing members at run time.
8+
-->
9+
<attr path="/api/package[@name='android.webkit']/class[@name='CookieManager' or @name='WebBackForwardList' or @name='WebHistoryItem' or @name='WebIconDatabase' or @name='WebViewDatabase']/method[@static='false']" name="abstract">true</attr>
10+
<attr path="/api/package[@name='android.webkit']/class[@name='WebSettings']/method[@static='false' and @name!='setTextSize']" name="abstract">true</attr>
11+
<attr path="/api/package[@name='android.webkit']/class[@name='CookieManager' or @name='WebBackForwardList' or @name='WebHistoryItem' or @name='WebIconDatabase' or @name='WebViewDatabase' or @name='WebSettings']" name="abstract">true</attr>
12+
<attr path="/api/package[@name='android.webkit']/class[@name='CookieManager' or @name='WebBackForwardList' or @name='WebHistoryItem' or @name='WebIconDatabase' or @name='WebViewDatabase' or @name='WebSettings']" name="static">false</attr>
13+
<attr path="/api/package[@name='android.webkit']/class[@name='CookieManager' or @name='WebBackForwardList' or @name='WebHistoryItem' or @name='WebIconDatabase' or @name='WebViewDatabase' or @name='WebSettings']" name="final">false</attr>
14+
215
<!-- Manifest.permission has its last name part all in lowercase and
316
regarded as obfuscated, so avoid that by explicitly marking not. -->
417
<attr path="/api/package[@name='android']/class[@name='Manifest.permission']" name="obfuscated">false</attr>

0 commit comments

Comments
 (0)