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

Commit d370ecda authored by Patrick Williams's avatar Patrick Williams Committed by Android (Google) Code Review
Browse files

Merge "Fix reading null LaunchCookie from parcel" into main

parents a08e7682 49cf0473
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1974,8 +1974,8 @@ public class ActivityOptions extends ComponentOptions {
            binder = new Binder(descriptor);
        }

        private LaunchCookie(Parcel in) {
            this.binder = in.readStrongBinder();
        private LaunchCookie(IBinder binder) {
            this.binder = binder;
        }

        /** @hide */
@@ -1996,7 +1996,11 @@ public class ActivityOptions extends ComponentOptions {

        /** @hide */
        public static LaunchCookie readFromParcel(@NonNull Parcel in) {
            return new LaunchCookie(in);
            IBinder binder = in.readStrongBinder();
            if (binder == null) {
                return null;
            }
            return new LaunchCookie(binder);
        }

        /** @hide */
@@ -2017,7 +2021,7 @@ public class ActivityOptions extends ComponentOptions {

                    @Override
                    public LaunchCookie createFromParcel(Parcel source) {
                        return new LaunchCookie(source);
                        return LaunchCookie.readFromParcel(source);
                    }

                    @Override
+50 −0
Original line number Diff line number Diff line
/*
 * Copyright 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.app;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import android.app.ActivityOptions.LaunchCookie;
import android.os.Parcel;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

@RunWith(JUnit4.class)
public class LaunchCookieTest {

    @Test
    public void parcelNonNullLaunchCookie() {
        LaunchCookie launchCookie = new LaunchCookie();
        Parcel parcel = Parcel.obtain();
        LaunchCookie.writeToParcel(launchCookie, parcel);
        parcel.setDataPosition(0);
        LaunchCookie unparceledLaunchCookie = LaunchCookie.readFromParcel(parcel);
        assertEquals(launchCookie, unparceledLaunchCookie);
    }

    @Test
    public void parcelNullLaunchCookie() {
        Parcel parcel = Parcel.obtain();
        LaunchCookie.writeToParcel(/*launchCookie*/null, parcel);
        LaunchCookie unparceledLaunchCookie = LaunchCookie.readFromParcel(parcel);
        assertNull(unparceledLaunchCookie);
    }

}