diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 9ea819ea8e16..9f04166ea4c0 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -46,6 +46,7 @@ import static android.content.Intent.FLAG_ACTIVITY_REORDER_TO_FRONT;  import static android.content.Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED;  import static android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS;  import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP; +import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;  import static android.content.pm.ActivityInfo.DOCUMENT_LAUNCH_ALWAYS;  import static android.content.pm.ActivityInfo.LAUNCH_MULTIPLE;  import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_INSTANCE; @@ -1457,6 +1458,14 @@ class ActivityStarter {                  // This task was started because of movement of the activity based on affinity...                  // Now that we are actually launching it, we can assign the base intent.                  reusedActivity.getTaskRecord().setIntent(mStartActivity); +            } else { +                final boolean taskOnHome = +                        (mStartActivity.intent.getFlags() & FLAG_ACTIVITY_TASK_ON_HOME) != 0; +                if (taskOnHome) { +                    reusedActivity.getTaskRecord().intent.addFlags(FLAG_ACTIVITY_TASK_ON_HOME); +                } else { +                    reusedActivity.getTaskRecord().intent.removeFlags(FLAG_ACTIVITY_TASK_ON_HOME); +                }              }              // This code path leads to delivering a new intent, we want to make sure we schedule it  |