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
This commit is contained in:
George Chang
2019-12-30 14:53:16 +08:00
committed by Alisher Alikhodjaev
parent 046d939399
commit 3eb265ae00
2 changed files with 9 additions and 6 deletions

View File

@@ -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;
}
/**

View File

@@ -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 " +