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

Commit 058188f7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add additional faciliator identifying information" into udc-dev am: 35f07168

parents 4450b33a 35f07168
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -88,6 +88,8 @@ message Telecom {
    string name = 1;
    // Unique identifier for this facilitator, such as a package name.
    string identifier = 2;
    // Extended identifier for this facilitator.
    string extended_identifier = 3;
  }

  enum Control {
+2 −1
Original line number Diff line number Diff line
@@ -175,7 +175,8 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
                        : handle.getComponentName().getShortClassName(),
                        phoneAccount != null ? phoneAccount.getExtras().getString(
                                CrossDeviceSyncController.EXTRA_CALL_FACILITATOR_ID)
                                : handle.getComponentName().getPackageName());
                                : handle.getComponentName().getPackageName(),
                        handle.getComponentName().flattenToString());
        call.setFacilitator(callFacilitator);
        call.setDirection(android.companion.Telecom.Call.OUTGOING);
        call.setCallerId(connectionRequest.getAddress().getSchemeSpecificPart());
+18 −2
Original line number Diff line number Diff line
@@ -75,13 +75,15 @@ class CallMetadataSyncData {
    public static class CallFacilitator {
        private String mName;
        private String mIdentifier;
        private String mExtendedIdentifier;
        private boolean mIsTel;

        CallFacilitator() {}

        CallFacilitator(String name, String identifier) {
        CallFacilitator(String name, String identifier, String extendedIdentifier) {
            mName = name;
            mIdentifier = identifier;
            mExtendedIdentifier = extendedIdentifier;
        }

        public String getName() {
@@ -92,6 +94,10 @@ class CallMetadataSyncData {
            return mIdentifier;
        }

        public String getExtendedIdentifier() {
            return mExtendedIdentifier;
        }

        public boolean isTel() {
            return mIsTel;
        }
@@ -104,6 +110,10 @@ class CallMetadataSyncData {
            mIdentifier = identifier;
        }

        public void setExtendedIdentifier(String extendedIdentifier) {
            mExtendedIdentifier = extendedIdentifier;
        }

        public void setIsTel(boolean isTel) {
            mIsTel = isTel;
        }
@@ -170,6 +180,8 @@ class CallMetadataSyncData {
                "com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_NAME";
        private static final String EXTRA_FACILITATOR_ID =
                "com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_ID";
        private static final String EXTRA_FACILITATOR_EXT_ID =
                "com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_EXT_ID";
        private static final String EXTRA_STATUS =
                "com.android.server.companion.datatransfer.contextsync.extra.STATUS";
        private static final String EXTRA_DIRECTION =
@@ -192,7 +204,10 @@ class CallMetadataSyncData {
                call.setAppIcon(bundle.getByteArray(EXTRA_APP_ICON));
                final String facilitatorName = bundle.getString(EXTRA_FACILITATOR_NAME);
                final String facilitatorIdentifier = bundle.getString(EXTRA_FACILITATOR_ID);
                call.setFacilitator(new CallFacilitator(facilitatorName, facilitatorIdentifier));
                final String facilitatorExtendedIdentifier =
                        bundle.getString(EXTRA_FACILITATOR_EXT_ID);
                call.setFacilitator(new CallFacilitator(facilitatorName, facilitatorIdentifier,
                        facilitatorExtendedIdentifier));
                call.setStatus(bundle.getInt(EXTRA_STATUS));
                call.setDirection(bundle.getInt(EXTRA_DIRECTION));
                call.setControls(new HashSet<>(bundle.getIntegerArrayList(EXTRA_CONTROLS)));
@@ -207,6 +222,7 @@ class CallMetadataSyncData {
            bundle.putByteArray(EXTRA_APP_ICON, mAppIcon);
            bundle.putString(EXTRA_FACILITATOR_NAME, mFacilitator.getName());
            bundle.putString(EXTRA_FACILITATOR_ID, mFacilitator.getIdentifier());
            bundle.putString(EXTRA_FACILITATOR_EXT_ID, mFacilitator.getExtendedIdentifier());
            bundle.putInt(EXTRA_STATUS, mStatus);
            bundle.putInt(EXTRA_DIRECTION, mDirection);
            bundle.putIntegerArrayList(EXTRA_CONTROLS, new ArrayList<>(mControls));
+7 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ public class CrossDeviceCall {
    private final int mUserId;
    @VisibleForTesting boolean mIsEnterprise;
    private final String mCallingAppPackageName;
    private final String mSerializedPhoneAccountHandle;
    private String mCallingAppName;
    private byte[] mCallingAppIcon;
    private String mCallerDisplayName;
@@ -89,6 +90,8 @@ public class CrossDeviceCall {
                .equals(handle.getComponentName());
        mCallingAppPackageName = handle != null
                ? callDetails.getAccountHandle().getComponentName().getPackageName() : "";
        mSerializedPhoneAccountHandle = handle != null
                ? handle.getId() + SEPARATOR + handle.getComponentName().flattenToString() : "";
        mIsEnterprise = (callDetails.getCallProperties() & Call.Details.PROPERTY_ENTERPRISE_CALL)
                == Call.Details.PROPERTY_ENTERPRISE_CALL;
        final PackageManager packageManager = context.getPackageManager();
@@ -247,6 +250,10 @@ public class CrossDeviceCall {
        return mCallingAppPackageName;
    }

    public String getSerializedPhoneAccountHandle() {
        return mSerializedPhoneAccountHandle;
    }

    /**
     * Get a human-readable "caller id" to display as the origin of the call.
     *
+9 −1
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ public class CrossDeviceSyncController {
                    mCallFacilitators.add(
                            new CallMetadataSyncData.CallFacilitator(
                                    defaultOutgoingTelAccount.getLabel().toString(),
                                    FACILITATOR_ID_SYSTEM));
                                    FACILITATOR_ID_SYSTEM, FACILITATOR_ID_SYSTEM));
                }
            }
        }
@@ -574,6 +574,10 @@ public class CrossDeviceSyncController {
                case (int) Telecom.CallFacilitator.IDENTIFIER:
                    facilitator.setIdentifier(pis.readString(Telecom.CallFacilitator.IDENTIFIER));
                    break;
                case (int) Telecom.CallFacilitator.EXTENDED_IDENTIFIER:
                    facilitator.setExtendedIdentifier(
                            pis.readString(Telecom.CallFacilitator.EXTENDED_IDENTIFIER));
                    break;
                default:
                    Slog.e(TAG, "Unhandled field in Facilitator:"
                            + ProtoUtils.currentFieldToString(pis));
@@ -649,6 +653,8 @@ public class CrossDeviceSyncController {
            final long facilitatorToken = pos.start(Telecom.Call.Origin.FACILITATOR);
            pos.write(Telecom.CallFacilitator.NAME, call.getCallingAppName());
            pos.write(Telecom.CallFacilitator.IDENTIFIER, call.getCallingAppPackageName());
            pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
                    call.getSerializedPhoneAccountHandle());
            pos.end(facilitatorToken);
            pos.end(originToken);
            pos.write(Telecom.Call.STATUS, call.getStatus());
@@ -662,6 +668,8 @@ public class CrossDeviceSyncController {
            final long facilitatorsToken = pos.start(Telecom.FACILITATORS);
            pos.write(Telecom.CallFacilitator.NAME, facilitator.getName());
            pos.write(Telecom.CallFacilitator.IDENTIFIER, facilitator.getIdentifier());
            pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
                    facilitator.getExtendedIdentifier());
            pos.end(facilitatorsToken);
        }
        pos.end(telecomToken);
Loading