Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f12fca4b authored by Craig Mautner's avatar Craig Mautner Committed by Android (Google) Code Review
Browse files

Merge "Use new doccentric flags and attributes in Sharing"

parents 7359b0b8 41db4a77
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -276,6 +276,8 @@ public class ShareActionProvider extends ActionProvider {
     * @see Intent#ACTION_SEND_MULTIPLE
     */
    public void setShareIntent(Intent shareIntent) {
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
                        Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
        ActivityChooserModel dataModel = ActivityChooserModel.get(mContext,
            mShareHistoryFileName);
        dataModel.setIntent(shareIntent);
@@ -292,7 +294,8 @@ public class ShareActionProvider extends ActionProvider {
            final int itemId = item.getItemId();
            Intent launchIntent = dataModel.chooseActivity(itemId);
            if (launchIntent != null) {
                launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
                        Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
                mContext.startActivity(launchIntent);
            }
            return true;
@@ -308,7 +311,7 @@ public class ShareActionProvider extends ActionProvider {
            return;
        }
        if (mOnChooseActivityListener == null) {
            mOnChooseActivityListener = new ShareAcitivityChooserModelPolicy();
            mOnChooseActivityListener = new ShareActivityChooserModelPolicy();
        }
        ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mShareHistoryFileName);
        dataModel.setOnChooseActivityListener(mOnChooseActivityListener);
@@ -317,7 +320,7 @@ public class ShareActionProvider extends ActionProvider {
    /**
     * Policy that delegates to the {@link OnShareTargetSelectedListener}, if such.
     */
    private class ShareAcitivityChooserModelPolicy implements OnChooseActivityListener {
    private class ShareActivityChooserModelPolicy implements OnChooseActivityListener {
        @Override
        public boolean onChooseActivity(ActivityChooserModel host, Intent intent) {
            if (mOnShareTargetSelectedListener != null) {
+1 −2
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.server.am;

import android.os.Trace;
import com.android.internal.R.styleable;
import com.android.internal.app.ResolverActivity;
import com.android.server.AttributeCache;
import com.android.server.am.ActivityStack.ActivityState;
@@ -480,7 +479,7 @@ final class ActivityRecord {
    void setTask(TaskRecord newTask, ThumbnailHolder newThumbHolder, boolean isRoot) {
        if (task != null && task.removeActivity(this)) {
            if (task != newTask) {
                task.stack.removeTask(task, false);
                task.stack.removeTask(task);
            } else {
                Slog.d(TAG, "!!! REMOVE THIS LOG !!! setTask: nearly removed stack=" +
                        (newTask == null ? null : newTask.stack));
+15 −11
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ import static com.android.server.am.ActivityStackSupervisor.DEBUG_SAVED_STATE;
import static com.android.server.am.ActivityStackSupervisor.DEBUG_STATES;
import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;

import static com.android.server.am.ActivityStackSupervisor.ActivityContainer.CONTAINER_STATE_HAS_SURFACE;

import android.service.voice.IVoiceInteractionSession;
import com.android.internal.app.IVoiceInteractor;
import com.android.internal.os.BatteryStatsImpl;
@@ -2841,7 +2839,7 @@ final class ActivityStack {
            if (mStackSupervisor.isFrontStack(this) && task == topTask() && task.mOnTopOfHome) {
                mStackSupervisor.moveHomeToTop();
            }
            removeTask(task, false);
            removeTask(task);
        }
        cleanUpActivityServicesLocked(r);
        r.removeUriPermissionsLocked();
@@ -3717,7 +3715,7 @@ final class ActivityStack {
        return starting;
    }

    void removeTask(TaskRecord task, boolean moving) {
    void removeTask(TaskRecord task) {
        mStackSupervisor.endLockTaskModeIfTaskEnding(task);
        mWindowManager.removeTask(task.taskId);
        final ActivityRecord r = mResumedActivity;
@@ -3731,15 +3729,21 @@ final class ActivityStack {
            mTaskHistory.get(taskNdx + 1).mOnTopOfHome = true;
        }
        mTaskHistory.remove(task);
        if (!moving && task.voiceSession != null) {
            // This task was a voice interaction, so it should not remain on the
            // recent tasks list.

        if (task.mActivities.isEmpty()) {
            final boolean isVoiceSession = task.voiceSession != null;
            if (isVoiceSession) {
                try {
                    task.voiceSession.taskFinished(task.intent, task.taskId);
                } catch (RemoteException e) {
                }
            }
            if (task.autoRemoveFromRecents() || isVoiceSession) {
                // Task creator asked to remove this when done, or this task was a voice
                // interaction, so it should not remain on the recent tasks list.
                mService.mRecentTasks.remove(task);
            }
        }

        if (mTaskHistory.isEmpty()) {
            if (DEBUG_STACK) Slog.i(TAG, "removeTask: moving to back stack=" + this);
+12 −1
Original line number Diff line number Diff line
@@ -1471,6 +1471,17 @@ public final class ActivityStackSupervisor implements DisplayListener {
            }
        }

        switch (r.info.documentLaunchMode) {
            case ActivityInfo.DOCUMENT_LAUNCH_NONE:
                break;
            case ActivityInfo.DOCUMENT_LAUNCH_ALWAYS:
                intent.addFlags(
                        Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                break;
            case ActivityInfo.DOCUMENT_LAUNCH_INTO_EXISTING:
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
                break;
        }
        final boolean newDocument = intent.isDocument();
        if (sourceRecord == null) {
            // This activity is not being started from another...  in this
@@ -2237,7 +2248,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
            Slog.w(TAG, "moveTaskToStack: no stack for id=" + stackId);
            return;
        }
        task.stack.removeTask(task, true);
        task.stack.removeTask(task);
        stack.addTask(task, toTop, true);
        mWindowManager.addTask(taskId, stackId, toTop);
        resumeTopActivitiesLocked();
+8 −0
Original line number Diff line number Diff line
@@ -139,6 +139,9 @@ final class TaskRecord extends ThumbnailHolder {

        userId = UserHandle.getUserId(info.applicationInfo.uid);
        creatorUid = info.applicationInfo.uid;
        if ((info.flags & ActivityInfo.FLAG_AUTO_REMOVE_FROM_RECENTS) != 0) {
            intent.addFlags(Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS);
        }
    }

    void disposeThumbnail() {
@@ -246,6 +249,11 @@ final class TaskRecord extends ThumbnailHolder {
        return mActivities.size() == 0;
    }

    boolean autoRemoveFromRecents() {
        return intent != null &&
                (intent.getFlags() & Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS) != 0;
    }

    /**
     * Completely remove all activities associated with an existing
     * task starting at a specified index.