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

Commit 38a7be67 authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Propagate callingPackage explicitly within CDM"

parents 63dc619b 2a7a5771
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ public final class AssociationRequest implements Parcelable {

    private final boolean mSingleDevice;
    private final List<DeviceFilter<?>> mDeviceFilters;
    private String mCallingPackage;

    private AssociationRequest(
            boolean singleDevice, @Nullable List<DeviceFilter<?>> deviceFilters) {
@@ -58,6 +59,7 @@ public final class AssociationRequest implements Parcelable {
        this(
            in.readByte() != 0,
            in.readParcelableList(new ArrayList<>(), AssociationRequest.class.getClassLoader()));
        setCallingPackage(in.readString());
    }

    /** @hide */
@@ -73,32 +75,45 @@ public final class AssociationRequest implements Parcelable {
        return mDeviceFilters;
    }

    /** @hide */
    public String getCallingPackage() {
        return mCallingPackage;
    }

    /** @hide */
    public void setCallingPackage(String pkg) {
        mCallingPackage = pkg;
    }

    @Override
    public boolean equals(@Nullable Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        AssociationRequest that = (AssociationRequest) o;
        return mSingleDevice == that.mSingleDevice &&
                Objects.equals(mDeviceFilters, that.mDeviceFilters);
        return mSingleDevice == that.mSingleDevice
                && Objects.equals(mDeviceFilters, that.mDeviceFilters)
                && Objects.equals(mCallingPackage, that.mCallingPackage);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mSingleDevice, mDeviceFilters);
        return Objects.hash(mSingleDevice, mDeviceFilters, mCallingPackage);
    }

    @Override
    public String toString() {
        return "AssociationRequest{" +
                "mSingleDevice=" + mSingleDevice +
                ", mDeviceFilters=" + mDeviceFilters +
                '}';
        return "AssociationRequest{"
                + "mSingleDevice=" + mSingleDevice
                + ", mDeviceFilters=" + mDeviceFilters
                + ", mCallingPackage=" + mCallingPackage
                + '}';
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeByte((byte) (mSingleDevice ? 1 : 0));
        dest.writeParcelableList(mDeviceFilters, flags);
        dest.writeString(mCallingPackage);
    }

    @Override
+7 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.companiondevicemanager;
import static android.companion.BluetoothDeviceFilterUtils.getDeviceMacAddress;
import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;

import static java.util.Objects.requireNonNull;

import android.app.Activity;
import android.companion.CompanionDeviceManager;
import android.content.Intent;
@@ -128,6 +130,11 @@ public class DeviceChooserActivity extends Activity {
        }
    }

    @Override
    public String getCallingPackage() {
        return requireNonNull(getService().mRequest.getCallingPackage());
    }

    @Override
    public void setTitle(CharSequence title) {
        final TextView titleView = findViewById(R.id.title);
+1 −0
Original line number Diff line number Diff line
@@ -309,6 +309,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
            mFindDeviceCallback = callback;
            mRequest = request;
            mCallingPackage = callingPackage;
            request.setCallingPackage(callingPackage);
            callback.asBinder().linkToDeath(CompanionDeviceManagerService.this /* recipient */, 0);

            final long callingIdentity = Binder.clearCallingIdentity();