summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/Activity.java2
-rw-r--r--core/java/android/app/ActivityManager.java21
2 files changed, 22 insertions, 1 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 2376a95526aa..53e5cc8940ef 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -5866,7 +5866,7 @@ public class Activity extends ContextThemeWrapper
*/
public void setTaskDescription(ActivityManager.TaskDescription taskDescription) {
if (mTaskDescription != taskDescription) {
- mTaskDescription.copyFrom(taskDescription);
+ mTaskDescription.copyFromPreserveHiddenFields(taskDescription);
// Scale the icon down to something reasonable if it is provided
if (taskDescription.getIconFilename() == null && taskDescription.getIcon() != null) {
final int size = ActivityManager.getLauncherLargeIconSizeInner(this);
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index aede1bb67f80..e3c8e4402e74 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -1222,6 +1222,27 @@ public class ActivityManager {
mNavigationBarColor = other.mNavigationBarColor;
}
+ /**
+ * Copies this the values from another TaskDescription, but preserves the hidden fields
+ * if they weren't set on {@code other}
+ * @hide
+ */
+ public void copyFromPreserveHiddenFields(TaskDescription other) {
+ mLabel = other.mLabel;
+ mIcon = other.mIcon;
+ mIconFilename = other.mIconFilename;
+ mColorPrimary = other.mColorPrimary;
+ if (other.mColorBackground != 0) {
+ mColorBackground = other.mColorBackground;
+ }
+ if (other.mStatusBarColor != 0) {
+ mStatusBarColor = other.mStatusBarColor;
+ }
+ if (other.mNavigationBarColor != 0) {
+ mNavigationBarColor = other.mNavigationBarColor;
+ }
+ }
+
private TaskDescription(Parcel source) {
readFromParcel(source);
}