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

Commit 33fd905c authored by Andrii Kulian's avatar Andrii Kulian Committed by android-build-merger
Browse files

Merge "Don't require post-execution state for onActivityResult" into pi-dev

am: 5007c67a

Change-Id: I6ea56c0e6e68afd354426194bd0d4536129abe86
parents 4f16f016 5007c67a
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -759,6 +759,7 @@ public class Activity extends ContextThemeWrapper
    private static final int LOG_AM_ON_STOP_CALLED = 30049;
    private static final int LOG_AM_ON_RESTART_CALLED = 30058;
    private static final int LOG_AM_ON_DESTROY_CALLED = 30060;
    private static final int LOG_AM_ON_ACTIVITY_RESULT_CALLED = 30062;

    private static class ManagedDialog {
        Dialog mDialog;
@@ -7438,8 +7439,8 @@ public class Activity extends ContextThemeWrapper
        }
    }

    void dispatchActivityResult(String who, int requestCode,
        int resultCode, Intent data) {
    void dispatchActivityResult(String who, int requestCode, int resultCode, Intent data,
            String reason) {
        if (false) Log.v(
            TAG, "Dispatching result: who=" + who + ", reqCode=" + requestCode
            + ", resCode=" + resultCode + ", data=" + data);
@@ -7475,6 +7476,7 @@ public class Activity extends ContextThemeWrapper
                frag.onActivityResult(requestCode, resultCode, data);
            }
        }
        writeEventLog(LOG_AM_ON_ACTIVITY_RESULT_CALLED, reason);
    }

    /**
+4 −4
Original line number Diff line number Diff line
@@ -16,11 +16,11 @@

package android.app;

import java.util.HashMap;

import android.content.Intent;
import android.os.Bundle;

import java.util.HashMap;

/**
 * A screen that contains and runs multiple embedded activities.
 *
@@ -109,7 +109,7 @@ public class ActivityGroup extends Activity {

    @Override
    void dispatchActivityResult(String who, int requestCode, int resultCode,
            Intent data) {
            Intent data, String reason) {
        if (who != null) {
            Activity act = mLocalActivityManager.getActivity(who);
            /*
@@ -123,7 +123,7 @@ public class ActivityGroup extends Activity {
                return;
            }
        }
        super.dispatchActivityResult(who, requestCode, resultCode, data);
        super.dispatchActivityResult(who, requestCode, resultCode, data, reason);
    }
}

+6 −6
Original line number Diff line number Diff line
@@ -3730,7 +3730,7 @@ public final class ActivityThread extends ClientTransactionHandler {
                r.pendingIntents = null;
            }
            if (r.pendingResults != null) {
                deliverResults(r, r.pendingResults);
                deliverResults(r, r.pendingResults, reason);
                r.pendingResults = null;
            }
            r.activity.performResume(r.startsNotResumed, reason);
@@ -4299,7 +4299,7 @@ public final class ActivityThread extends ClientTransactionHandler {
        WindowManagerGlobal.getInstance().reportNewConfiguration(mConfiguration);
    }

    private void deliverResults(ActivityClientRecord r, List<ResultInfo> results) {
    private void deliverResults(ActivityClientRecord r, List<ResultInfo> results, String reason) {
        final int N = results.size();
        for (int i=0; i<N; i++) {
            ResultInfo ri = results.get(i);
@@ -4311,7 +4311,7 @@ public final class ActivityThread extends ClientTransactionHandler {
                if (DEBUG_RESULTS) Slog.v(TAG,
                        "Delivering result to activity " + r + " : " + ri);
                r.activity.dispatchActivityResult(ri.mResultWho,
                        ri.mRequestCode, ri.mResultCode, ri.mData);
                        ri.mRequestCode, ri.mResultCode, ri.mData, reason);
            } catch (Exception e) {
                if (!mInstrumentation.onException(r.activity, e)) {
                    throw new RuntimeException(
@@ -4324,7 +4324,7 @@ public final class ActivityThread extends ClientTransactionHandler {
    }

    @Override
    public void handleSendResult(IBinder token, List<ResultInfo> results) {
    public void handleSendResult(IBinder token, List<ResultInfo> results, String reason) {
        ActivityClientRecord r = mActivities.get(token);
        if (DEBUG_RESULTS) Slog.v(TAG, "Handling send result to " + r);
        if (r != null) {
@@ -4359,9 +4359,9 @@ public final class ActivityThread extends ClientTransactionHandler {
                }
            }
            checkAndBlockForNetworkAccess();
            deliverResults(r, results);
            deliverResults(r, results, reason);
            if (resumed) {
                r.activity.performResume(false, "handleSendResult");
                r.activity.performResume(false, reason);
                r.activity.mTemporaryPause = false;
            }
        }
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ public abstract class ClientTransactionHandler {
            Configuration overrideConfig, int displayId);

    /** Deliver result from another activity. */
    public abstract void handleSendResult(IBinder token, List<ResultInfo> results);
    public abstract void handleSendResult(IBinder token, List<ResultInfo> results, String reason);

    /** Deliver multi-window mode change notification. */
    public abstract void handleMultiWindowModeChanged(IBinder token, boolean isInMultiWindowMode,
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.app.servertransaction;

import static android.app.servertransaction.ActivityLifecycleItem.ON_RESUME;
import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;

import android.app.ClientTransactionHandler;
@@ -37,16 +36,17 @@ public class ActivityResultItem extends ClientTransactionItem {

    private List<ResultInfo> mResultInfoList;

    /* TODO(b/78294732)
    @Override
    public int getPostExecutionState() {
        return ON_RESUME;
    }
    }*/

    @Override
    public void execute(ClientTransactionHandler client, IBinder token,
            PendingTransactionActions pendingActions) {
        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityDeliverResult");
        client.handleSendResult(token, mResultInfoList);
        client.handleSendResult(token, mResultInfoList, "ACTIVITY_RESULT");
        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
    }

Loading