2017-07-22 01:01:50 +02:00
|
|
|
package org.jivesoftware.smackx.jft.internal;
|
|
|
|
|
2017-07-27 16:43:09 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import org.jivesoftware.smackx.jft.controller.JingleFileTransferController;
|
2017-07-22 01:01:50 +02:00
|
|
|
import org.jivesoftware.smackx.jft.element.JingleFileTransferElement;
|
2017-07-27 16:43:09 +02:00
|
|
|
import org.jivesoftware.smackx.jft.listener.ProgressListener;
|
|
|
|
import org.jivesoftware.smackx.jingle.components.JingleDescription;
|
2017-07-22 01:01:50 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by vanitas on 22.07.17.
|
|
|
|
*/
|
2017-07-27 16:43:09 +02:00
|
|
|
public abstract class AbstractJingleFileTransfer extends JingleDescription<JingleFileTransferElement> implements JingleFileTransferController {
|
2017-07-22 01:01:50 +02:00
|
|
|
|
|
|
|
public static final String NAMESPACE_V5 = "urn:xmpp:jingle:apps:file-transfer:5";
|
|
|
|
public static final String NAMESPACE = NAMESPACE_V5;
|
|
|
|
|
2017-07-27 15:58:11 +02:00
|
|
|
public abstract boolean isOffer();
|
|
|
|
public abstract boolean isRequest();
|
|
|
|
|
2017-07-27 16:43:09 +02:00
|
|
|
protected State state;
|
|
|
|
|
|
|
|
protected final List<ProgressListener> progressListeners = Collections.synchronizedList(new ArrayList<ProgressListener>());
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void addProgressListener(ProgressListener listener) {
|
|
|
|
progressListeners.add(listener);
|
|
|
|
//TODO: Notify new listener?
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void removeProgressListener(ProgressListener listener) {
|
|
|
|
progressListeners.remove(listener);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void notifyProgressListeners(float progress) {
|
|
|
|
for (ProgressListener p : progressListeners) {
|
|
|
|
p.progress(progress);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public State getState() {
|
|
|
|
return state;
|
|
|
|
}
|
2017-07-22 01:01:50 +02:00
|
|
|
}
|