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

Commit 280d332b authored by Chong Zhang's avatar Chong Zhang
Browse files

Construct ActivityOptions near top level

This saves some duplicate constructions of the ActivityOptions
object from Bundle.

Bug: 23755120
Change-Id: Ie8be54a2e4e84a6a1f3c51e4f2966f7fb0bf1c28
parent c0d1bab7
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -1763,7 +1763,7 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            } else {
                bundle = data.readBundle();
            }
            final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle);
            final ActivityOptions options = ActivityOptions.fromBundle(bundle);
            boolean converted = convertToTranslucent(token, options);
            reply.writeNoException();
            reply.writeInt(converted ? 1 : 0);
@@ -2504,7 +2504,7 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            } else {
                bundle = data.readBundle();
            }
            final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle);
            final ActivityOptions options = ActivityOptions.fromBundle(bundle);
            startInPlaceAnimationOnFrontMostApplication(options);
            reply.writeNoException();
            return true;
@@ -4922,8 +4922,7 @@ class ActivityManagerProxy implements IActivityManager
        data.writeStrongBinder(token);
        mRemote.transact(GET_ACTIVITY_OPTIONS_TRANSACTION, data, reply, 0);
        reply.readException();
        Bundle bundle = reply.readBundle();
        ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle);
        ActivityOptions options = ActivityOptions.fromBundle(reply.readBundle());
        data.recycle();
        reply.recycle();
        return options;
+7 −2
Original line number Diff line number Diff line
@@ -884,9 +884,14 @@ public class ActivityOptions {
    public AppTransitionAnimationSpec[] getAnimSpecs() { return mAnimSpecs; }

    /** @hide */
    public static void abort(Bundle options) {
    public static ActivityOptions fromBundle(Bundle bOptions) {
        return bOptions != null ? new ActivityOptions(bOptions) : null;
    }

    /** @hide */
    public static void abort(ActivityOptions options) {
        if (options != null) {
            (new ActivityOptions(options)).abort();
            options.abort();
        }
    }

+48 −45

File changed.

Preview size limit exceeded, changes collapsed.

+2 −11
Original line number Diff line number Diff line
@@ -494,7 +494,7 @@ final class ActivityRecord {
            ActivityRecord _resultTo, String _resultWho, int _reqCode,
            boolean _componentSpecified, boolean _rootVoiceInteraction,
            ActivityStackSupervisor supervisor,
            ActivityContainer container, Bundle options) {
            ActivityContainer container, ActivityOptions options) {
        service = _service;
        appToken = new Token(this, service);
        info = aInfo;
@@ -527,7 +527,7 @@ final class ActivityRecord {
        mStackSupervisor = supervisor;
        mInitialActivityContainer = container;
        if (options != null) {
            pendingOptions = new ActivityOptions(options);
            pendingOptions = options;
            mLaunchTaskBehind = pendingOptions.getLaunchTaskBehind();
            PendingIntent usageReport = pendingOptions.getUsageTimeReport();
            if (usageReport != null) {
@@ -799,15 +799,6 @@ final class ActivityRecord {
        }
    }

    void updateOptionsLocked(Bundle options) {
        if (options != null) {
            if (pendingOptions != null) {
                pendingOptions.abort();
            }
            pendingOptions = new ActivityOptions(options);
        }
    }

    void updateOptionsLocked(ActivityOptions options) {
        if (options != null) {
            if (pendingOptions != null) {
+6 −6
Original line number Diff line number Diff line
@@ -1702,7 +1702,7 @@ final class ActivityStack {
        return resumeTopActivityLocked(prev, null);
    }

    final boolean resumeTopActivityLocked(ActivityRecord prev, Bundle options) {
    final boolean resumeTopActivityLocked(ActivityRecord prev, ActivityOptions options) {
        if (mStackSupervisor.inResumeTopActivity) {
            // Don't even start recursing.
            return false;
@@ -1723,7 +1723,7 @@ final class ActivityStack {
        return result;
    }

    private boolean resumeTopActivityInnerLocked(ActivityRecord prev, Bundle options) {
    private boolean resumeTopActivityInnerLocked(ActivityRecord prev, ActivityOptions options) {
        if (DEBUG_LOCKSCREEN) mService.logLockScreen("");

        if (!mService.mBooting && !mService.mBooted) {
@@ -2257,7 +2257,7 @@ final class ActivityStack {
    }

    final void startActivityLocked(ActivityRecord r, boolean newTask,
            boolean doResume, boolean keepCurTransition, Bundle options) {
            boolean doResume, boolean keepCurTransition, ActivityOptions options) {
        TaskRecord rTask = r.task;
        final int taskId = rTask.taskId;
        // mLaunchTaskBehind tasks get placed at the back of the task stack.
@@ -2359,7 +2359,7 @@ final class ActivityStack {
                    resetTaskIfNeededLocked(r, r);
                    doShow = topRunningNonDelayedActivityLocked(null) == r;
                }
            } else if (options != null && new ActivityOptions(options).getAnimationType()
            } else if (options != null && options.getAnimationType()
                    == ActivityOptions.ANIM_SCENE_TRANSITION) {
                doShow = false;
            }
@@ -3795,7 +3795,7 @@ final class ActivityStack {
        return hasVisibleActivities;
    }

    final void updateTransitLocked(int transit, Bundle options) {
    final void updateTransitLocked(int transit, ActivityOptions options) {
        if (options != null) {
            ActivityRecord r = topRunningActivityLocked();
            if (r != null && r.state != ActivityState.RESUMED) {
@@ -3835,7 +3835,7 @@ final class ActivityStack {
        }
    }

    final void moveTaskToFrontLocked(TaskRecord tr, boolean noAnimation, Bundle options,
    final void moveTaskToFrontLocked(TaskRecord tr, boolean noAnimation, ActivityOptions options,
            AppTimeTracker timeTracker, String reason) {
        if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "moveTaskToFront: " + tr);

Loading