It turns out this was not a problem in the resource code at all. Rather,
the system process has a cache of pre-loaded attributes it uses to avoid
continually reloading things as it needs them. Well it turns out this
cache wasn't flushed after a package was uninstalled or a configuration
changed, so you could re-install an app where you change its style resources
so its theme now points to one that is inconsistent in the cache.
This is mostly a problem for developers, where they continually install
new versions of an app where resources have changed. This could possibly
show up when updating an app on a normal phone, although the problem would
eventually correct itself since this cache uses weak references.
Anyway, the cache is now reworked to be flushed appropriately.
This change also includes an update to aapt to be able to dump the
contents of bags in resources.
* changes:
Add in TTS engine interface the methods to query the availability for a language, to set the synthesis audio format, to query the current language, country and variant setting.
* changes:
We might try to close the Vorbis file twice under certain circumstances. This fix nulls the mFile member so we don't try to close it twice. Bug 1904783.
* changes:
Add new EXTRA_POST_DATA extra key for use in VIEW intents to Browser. In a followup change, Grace will need to remove EXTRA_APPEND_LOCATION as we are replacing that with this.
* changes:
Better (and less) logging from backup.
Add an extra null terminator. String8::unlockBuffer is supposed to be doing this, but it's not and I can't figure out why. This makes BackupHelperDispatcher able to read the keys correctly.
* changes:
Pipe all the camera callbacks to Java to facilitate the addition of new features. This will make it easy to add things like zoom callbacks without modifying the entire camera stack. Bug 1837832.
Applications can now declare that they support small, normal, or
large screens. Resource selection can also be done based on these
sizes. By default, pre-Donut apps are false for small and large,
and Donut or later apps are assumed to support all sizes. In either
case they can use <supports-screens> in their manifest to declare
what they actually support.
* changes:
Use the same interface in the TTS engine interface for setLanguage and loadLanguage. Adding function to check the support level for a language in TTS engine interface.
* changes:
In the native layer for the TTS service, delete the data allocated for the callback after the signal for the end of the synthesis has been received.
* changes:
Add caching of the speech rate and language in android.speech.tts.TextToSpeech so the speech params can be passed along in calls for text synthesis.
* changes:
Invoke getSystem.updateConfiguration when binding an application to update config changes in Resources.mSystem Since Resources is preloaded in the zygote, system resources in Resources need to be updated with config changes every time an application is started
* Changes
+ Add PptpProfile.java, PptpService.java.
+ Add L2tpIpsecPskProfile.java
+ Add PPTP and L2TP_IPSEC_PSK entries in VpnType.java.
+ Add the secret option to L2tpProfile.java and have L2tpIpsecProfile
extend it.
+ Add MtpdHelper to send common PPP options.
+ Add getGatewayIp() to VpnService().
+ Revise VpnService.reallyGetHostIp().
Patch Set 6, 7, 8:
+ Add L2TP secret flag in L2tpProfile.
Patch Set 9:
+ Add description to VpnType.
Patch Set 11:
+ Pass ipparam to mtpd.
Patch Set 12:
+ Add L2TP secret support
+ Fix string constants