Use set-like behaviour for BaseDataSource listeners.

This prevents problems caused by unintended double-registration of the same
transfer listener.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=210078454
This commit is contained in:
tonihei 2018-08-24 03:43:50 -07:00 committed by Oliver Woodman
parent 38f2f352f9
commit 335fa13063

View file

@ -47,9 +47,11 @@ public abstract class BaseDataSource implements DataSource {
@Override @Override
public final void addTransferListener(TransferListener transferListener) { public final void addTransferListener(TransferListener transferListener) {
if (!listeners.contains(transferListener)) {
listeners.add(transferListener); listeners.add(transferListener);
listenerCount++; listenerCount++;
} }
}
/** /**
* Notifies listeners that data transfer for the specified {@link DataSpec} is being initialized. * Notifies listeners that data transfer for the specified {@link DataSpec} is being initialized.