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

Commit 3c6f68dc authored by Evan Chen's avatar Evan Chen Committed by Android (Google) Code Review
Browse files

Merge "Make sure sendresult after association was created"

parents 6630ba0e 4e537040
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -28,4 +28,6 @@ oneway interface ICompanionDeviceDiscoveryService {
        in String callingPackage,
        in IFindDeviceCallback findCallback,
        in AndroidFuture<String> serviceCallback);

    void onAssociationCreated();
}
+7 −1
Original line number Diff line number Diff line
@@ -254,8 +254,14 @@ public class CompanionDeviceActivity extends Activity {
        Log.i(LOG_TAG, "onDeviceConfirmed(selectedDevice = " + selectedDevice + ")");
        getService().onDeviceSelected(
                getCallingPackage(), getDeviceMacAddress(selectedDevice.device));
    }

    void setResultAndFinish() {
        Log.i(LOG_TAG, "setResultAndFinish(selectedDevice = "
                + getService().mSelectedDevice.device + ")");
        setResult(RESULT_OK,
                new Intent().putExtra(CompanionDeviceManager.EXTRA_DEVICE, selectedDevice.device));
                new Intent().putExtra(
                        CompanionDeviceManager.EXTRA_DEVICE, getService().mSelectedDevice.device));
        finish();
    }

+10 −0
Original line number Diff line number Diff line
@@ -116,6 +116,11 @@ public class CompanionDeviceDiscoveryService extends Service {
                    CompanionDeviceDiscoveryService::startDiscovery,
                    CompanionDeviceDiscoveryService.this, request));
        }

        @Override
        public void onAssociationCreated() {
            Handler.getMain().post(CompanionDeviceDiscoveryService.this::onAssociationCreated);
        }
    };

    private ScanCallback mBLEScanCallback;
@@ -221,6 +226,11 @@ public class CompanionDeviceDiscoveryService extends Service {
                SCAN_TIMEOUT);
    }

    @MainThread
    private void onAssociationCreated() {
        mActivity.setResultAndFinish();
    }

    private boolean shouldScan(List<? extends DeviceFilter> mediumSpecificFilters) {
        return !isEmpty(mediumSpecificFilters) || isEmpty(mFilters);
    }
+3 −0
Original line number Diff line number Diff line
@@ -154,6 +154,9 @@ class AssociationRequestsProcessor {
                    if (err == null) {
                        mService.createAssociationInternal(
                                userId, deviceAddress, callingPackage, deviceProfile);
                        mServiceConnectors.forUser(userId).post(service -> {
                            service.onAssociationCreated();
                        });
                    } else {
                        Slog.e(TAG, "Failed to discover device(s)", err);
                        callback.onFailure("No devices found: " + err.getMessage());