Generally clean up the associated SSLCertificateSocketFactory API as well,
change AndroidHttpClient to use this new thing, and make the android-common
library build SDK-clean (woo hoo).
Bug: 2362543
Bug: 2357311
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
Base64OutputStream is a FilterOutputStream that can encode or decode
base-64 data (with any of the flags supported by the Base64 class --
crlf, padding vs not, line wrapping vs not, etc.)
We change Base64 to have package-private decodeInternal and
encodeInternal methods that save all their state in objects and can be
called multiple times to stream data. The existing functions for
in-memory encoding/decoding call the internal method once; the output
stream calls it multiple times.
Change-Id: Iac661d05329bc2e6b2863088efcedc974415ec44
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.