Enhance URL regular expression to match legal one byte Unicode characters in
Internationalized Resource Identifiers as detailed in RFC 3987. Specifically
two byte Unicode characters are not included. Not all things in RFC 3987 is
implemented, this is just an enhancement for recognizing more common used one
byte Unicode characters.
This change helps Browser address bar identify more valid URL without scheme
typed in, such as 현금영수증.kr
make-iana-tld-pattern.py is modified to contain only Top Level Domain
regular expression generation. Other parts of WEB_URL pattern are in
solely in Patters.java for better consistency and maintenance.
The script is used to generate top level domains' regular expressions.
This is enhanced and used to regenerate the new top level domains.
new file: common/tools/make-iana-tld-pattern.py
This is to capture recently added top level domains.
modified: common/java/com/android/common/Patterns.java
modified: common/tests/src/com/android/common/PatternsTest.java
A new Base64 encoder/decoder class. Some benchmarks comparing the
decoder it to those from android.os.Base64Utils (a decode-only native
implementation not accessible to apps) and
org.apache.commons.codec.binary.Base64, all with the JIT enabled:
1k encoded data
APACHE avg: 811 us min: 244 us max: 13671 us
COMMON avg: 263 us min: 30 us max: 4730 us
NATIVE avg: 102 us min: 61 us max: 5493 us
10k encoded data
APACHE avg: 3624 us min: 2746 us max: 23895 us
COMMON avg: 979 us min: 518 us max: 7751 us
NATIVE avg: 817 us min: 762 us max: 3143 us
100k encoded data
APACHE avg: 33167 us min: 31829 us max: 140411 us
COMMON avg: 6047 us min: 5493 us max: 45227 us
NATIVE avg: 10109 us min: 10009 us max: 12451 us
Change-Id: Ic622e3a967a62d57d30bd25b80cbe4e0dd60e764
The LoggingEvents move will allow Gmail, Voice Search and other apps to
access the LoggingEvents needed. This file will replace
packages/inputmethods/LatinIMEsrc/com/android/inputmethod/voice/LoggingEvents.java
vendor/google/apps/VoiceSearch/apps/VoiceSearch/src/com/google/android/voicesearch/logging/LoggingEvents.java
In addition to moving the file, I have added 3 new fields:
TIMESTAMP, IME_TEXT_ACCEPTED, CALLING_APP_NAME. I needed to
create CALLING_APP_NAME b/c I can't re-use EXTRA_APP_NAME
because that is reserved for one of two values: voice
search or voice IME.
I added another file to android-common: UserHappinessSignals
This can be imported by different applications to broadcast
various user happiness metrics. It is currently used by Gmail's
CompseActivity.java to indicate that a user "accepted" the IME
text when they pressed the send button.
Change-Id: Ia859140facb7fb66a12706735d5132ba9eaa5ea0
Make NumberPicker public
Made setCurrent() more robust, as the value needs to be within the range
specified earlier. setCurrent() will now throw an exception
if the specified doesn't fall in the range
- Moved DomainNameChecker from android.net.http to android common, and renamed to DomainNameValidator.
- Added a simplified version of DNParser, which DomainNameValidator uses instead of X509Name in order to extract Subject Name from a certificate.
- Added unit tests for DomainNameChecker and DNParser.
There's a suspicious comment in DomainNameChecker saying something like "X509Certificate fails to parse a certificate when a subject alt name begins with '*'". I think we should fix it if it's really the case -- otherwise certificates with the wildcard wouldn't work. I'll see if it's true after submitting this patch.
In the process of making Mms unbundled, copy a few non-public-API
classes into the android-common library. The Mms app now uses this
library. The next step is to update the other apps that use these classes
and then delete the classes from their original location.
Have framework include the common source files directly when building,
then build common as a static library separately (depending on
framework, like everything else).
Goes with a companion change to build/core/pathmap.mk.
but can also be used by unbundled apps. Move android.text.util.Regex there as
a starting example, renamed to a more sensible (?) com.android.common.Patterns.
Set up a corresponding test package, and move RegexTest (to PatternsTest).
Update clients.