summaryrefslogtreecommitdiffstats
path: root/libs/androidfw
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-05-05 09:49:03 -0700
committerAlan Viverette <alanv@google.com>2015-05-05 09:49:03 -0700
commitc1d527926e1c82828e42bdc0c7abf50f6decc0a7 (patch)
tree48cfc47946a00d3c2126aa62fbf8e47e89e3dbf9 /libs/androidfw
parent5551aca2b8ec9fe7ab5ffda8dad82ee104556962 (diff)
downloadframeworks_base-c1d527926e1c82828e42bdc0c7abf50f6decc0a7.zip
frameworks_base-c1d527926e1c82828e42bdc0c7abf50f6decc0a7.tar.gz
frameworks_base-c1d527926e1c82828e42bdc0c7abf50f6decc0a7.tar.bz2
Add API for obtaining changing configurations bitmask from Theme
Required to know when to reload the system context's theme in response to configuration changes, and thus needed to support the DayNight theme. Bug: 20267825 Change-Id: I7df5e28b7a6d8b611ea030032544cf4800788514
Diffstat (limited to 'libs/androidfw')
-rw-r--r--libs/androidfw/ResourceTypes.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 04ebe70..19a5beb 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -3147,6 +3147,7 @@ struct ResTable::bag_set
ResTable::Theme::Theme(const ResTable& table)
: mTable(table)
+ , mTypeSpecFlags(0)
{
memset(mPackages, 0, sizeof(mPackages));
}
@@ -3205,6 +3206,8 @@ status_t ResTable::Theme::applyStyle(uint32_t resID, bool force)
return N;
}
+ mTypeSpecFlags |= bagTypeSpecFlags;
+
uint32_t curPackage = 0xffffffff;
ssize_t curPackageIndex = 0;
package_info* curPI = NULL;
@@ -3323,6 +3326,8 @@ status_t ResTable::Theme::setTo(const Theme& other)
}
}
+ mTypeSpecFlags = other.mTypeSpecFlags;
+
if (kDebugTableTheme) {
ALOGI("Final theme:");
dumpToLog();
@@ -3417,6 +3422,11 @@ ssize_t ResTable::Theme::resolveAttributeReference(Res_value* inOutValue,
inoutTypeSpecFlags, inoutConfig);
}
+uint32_t ResTable::Theme::getChangingConfigurations() const
+{
+ return mTypeSpecFlags;
+}
+
void ResTable::Theme::dumpToLog() const
{
ALOGI("Theme %p:\n", this);