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

Commit 3eb265ae authored by George Chang's avatar George Chang Committed by Alisher Alikhodjaev
Browse files

Throw IOException on multiple connects.

Only one TagTechnology can be connected at a time.
Other calls to connect() will return IOException.

Bug: 144398423
Test: check error on multiple connects
Change-Id: I19a5f33c7f0d3e7592fe7791c1e04ddc2c9d6125
parent 046d9393
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -455,12 +455,12 @@ public final class Tag implements Parcelable {
     *
     * @hide
     */
    public synchronized void setConnectedTechnology(int technology) {
        if (mConnectedTechnology == -1) {
            mConnectedTechnology = technology;
        } else {
            throw new IllegalStateException("Close other technology first!");
    public synchronized boolean setConnectedTechnology(int technology) {
        if (mConnectedTechnology != -1) {
            return false;
        }
        mConnectedTechnology = technology;
        return true;
    }

    /**
+4 −1
Original line number Diff line number Diff line
@@ -75,7 +75,10 @@ abstract class BasicTagTechnology implements TagTechnology {

            if (errorCode == ErrorCodes.SUCCESS) {
                // Store this in the tag object
                mTag.setConnectedTechnology(mSelectedTechnology);
                if (!mTag.setConnectedTechnology(mSelectedTechnology)) {
                    Log.e(TAG, "Close other technology first!");
                    throw new IOException("Only one TagTechnology can be connected at a time.");
                }
                mIsConnected = true;
            } else if (errorCode == ErrorCodes.ERROR_NOT_SUPPORTED) {
                throw new UnsupportedOperationException("Connecting to " +