Renames FileTransferRequestListener to FileTransferListener and add to it notifications for fileTransferCreated, which are triggered when a FileTransfer is actually created (on sendFile or incomingRequest.accept()).

cusax-fix
Yana Stamcheva 17 years ago
parent 03aed0e2d6
commit ac007c99fb

@ -42,7 +42,7 @@ public class ContactListPane
extends SCScrollPane
implements MessageListener,
TypingNotificationsListener,
FileTransferRequestListener,
FileTransferListener,
ContactListListener,
PluginComponentListener
{
@ -571,10 +571,10 @@ else if (typingState == OperationSetTypingNotifications.STATE_UNKNOWN)
* When a request has been received we show it to the user through the
* chat session renderer.
*
* @see FileTransferRequestListener#incomingRequestReceived(
* @see FileTransferListener#incomingRequestReceived(
* FileTransferRequestEvent)
*/
public void incomingRequestReceived(FileTransferRequestEvent event)
public void fileTransferRequestReceived(FileTransferRequestEvent event)
{
IncomingFileTransferRequest request = event.getRequest();
@ -613,9 +613,15 @@ public void run()
NotificationManager.INCOMING_FILE,
title,
request.getFileName());
}
/**
* Nothing to do here, because we already know when a file transfer is
* created.
*/
public void fileTransferCreated(FileTransfer fileTransfer)
{}
/**
* Send a proactive notification according to the proactive timer.
* The notification is fired only if another notification hasn't been

@ -36,6 +36,8 @@ public class IncomingFileTransferRequestJabberImpl
*/
private final FileTransferRequest fileTransferRequest;
private final OperationSetFileTransferJabberImpl fileTransferOpSet;
private Contact sender;
/**
@ -43,12 +45,15 @@ public class IncomingFileTransferRequestJabberImpl
* given <tt>fileTransferRequest</tt>, coming from the Jabber protocol.
*
* @param jabberProvider the protocol provider
* @param fileTransferOpSet file transfer operation set
* @param fileTransferRequest the request coming from the Jabber protocol
*/
public IncomingFileTransferRequestJabberImpl(
ProtocolProviderServiceJabberImpl jabberProvider,
OperationSetFileTransferJabberImpl fileTransferOpSet,
FileTransferRequest fileTransferRequest)
{
this.fileTransferOpSet = fileTransferOpSet;
this.fileTransferRequest = fileTransferRequest;
String fromUserID
@ -118,12 +123,13 @@ public FileTransfer acceptFile(File file)
incomingTransfer
= new IncomingFileTransferJabberImpl(jabberTransfer);
fileTransferOpSet.fireFileTransferCreated(incomingTransfer);
jabberTransfer.recieveFile(file);
new OperationSetFileTransferJabberImpl
.FileTransferProgressThread(
jabberTransfer, incomingTransfer, getFileSize()).start();
}
catch (XMPPException e)
{

@ -13,6 +13,7 @@
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.FileTransfer;
import net.java.sip.communicator.service.protocol.event.*;
import net.java.sip.communicator.service.protocol.event.FileTransferListener;
import net.java.sip.communicator.util.*;
import org.jivesoftware.smack.*;
@ -53,10 +54,10 @@ public class OperationSetFileTransferJabberImpl
private JabberFileTransferListener jabberFileTransferListener;
/**
* A list of listeners registered for message events.
* A list of listeners registered for file transfer events.
*/
private Vector<FileTransferRequestListener> fileTransferListeners
= new Vector<FileTransferRequestListener>();
private Vector<FileTransferListener> fileTransferListeners
= new Vector<FileTransferListener>();
/**
* Constructor
@ -103,8 +104,14 @@ public FileTransfer sendFile( Contact toContact,
outgoingTransfer
= new OutgoingFileTransferJabberImpl(transfer);
// Notify all interested listeners that a file transfer has been
// created.
fireFileTransferCreated(outgoingTransfer);
// Send the file through the Jabber file transfer.
transfer.sendFile(file, "Sending file.");
// Start the status and progress thread.
new FileTransferProgressThread(
transfer, outgoingTransfer).start();
}
@ -146,7 +153,7 @@ public FileTransfer sendFile( Contact toContact,
* @param listener the <tt>FileTransferRequestListener</tt> to add
*/
public void addFileTransferRequestListener(
FileTransferRequestListener listener)
FileTransferListener listener)
{
synchronized(fileTransferListeners)
{
@ -165,7 +172,7 @@ public void addFileTransferRequestListener(
* @param listener the <tt>FileTransferRequestListener</tt> to remove
*/
public void removeFileTransferRequestListener(
FileTransferRequestListener listener)
FileTransferListener listener)
{
synchronized(fileTransferListeners)
{
@ -242,7 +249,7 @@ else if (evt.getNewState() == RegistrationState.UNREGISTERED)
* Listener for Jabber incoming file transfer requests.
*/
private class JabberFileTransferListener
implements FileTransferListener
implements org.jivesoftware.smackx.filetransfer.FileTransferListener
{
/**
* Function called when a jabber file transfer request arrive.
@ -254,7 +261,9 @@ public void fileTransferRequest(FileTransferRequest request)
// Create a global incoming file transfer request.
IncomingFileTransferRequest incomingFileTransferRequest
= new IncomingFileTransferRequestJabberImpl(
jabberProvider, request);
jabberProvider,
OperationSetFileTransferJabberImpl.this,
request);
// Create an event associated to this global request.
FileTransferRequestEvent fileTransferRequestEvent
@ -274,18 +283,41 @@ public void fileTransferRequest(FileTransferRequest request)
*/
private void fireFileTransferRequest(FileTransferRequestEvent event)
{
Iterator<FileTransferRequestListener> listeners = null;
Iterator<FileTransferListener> listeners = null;
synchronized (fileTransferListeners)
{
listeners = new ArrayList<FileTransferListener>
(fileTransferListeners).iterator();
}
while (listeners.hasNext())
{
FileTransferListener listener = listeners.next();
listener.fileTransferRequestReceived(event);
}
}
/**
* Delivers the file transfer to all registered listeners.
*
* @param fileTransfer the <tt>FileTransfer</tt> that we'd like delivered to
* all registered file transfer listeners.
*/
void fireFileTransferCreated(FileTransfer fileTransfer)
{
Iterator<FileTransferListener> listeners = null;
synchronized (fileTransferListeners)
{
listeners = new ArrayList<FileTransferRequestListener>
listeners = new ArrayList<FileTransferListener>
(fileTransferListeners).iterator();
}
while (listeners.hasNext())
{
FileTransferRequestListener listener = listeners.next();
FileTransferListener listener = listeners.next();
listener.incomingRequestReceived(event);
listener.fileTransferCreated(fileTransfer);
}
}

@ -32,8 +32,8 @@ public class OperationSetFileTransferSSHImpl
/**
* Currently registered message listeners.
*/
private Vector<FileTransferRequestListener> fileTransferListeners
= new Vector<FileTransferRequestListener>();
private Vector<FileTransferListener> fileTransferListeners
= new Vector<FileTransferListener>();
/**
* The protocol provider that created us.
@ -55,7 +55,7 @@ public OperationSetFileTransferSSHImpl(
* @param listener the <tt>FileListener</tt> to register.
*/
public void addFileTransferRequestListener(
FileTransferRequestListener listener)
FileTransferListener listener)
{
synchronized (fileTransferListeners)
{
@ -65,7 +65,7 @@ public void addFileTransferRequestListener(
}
public void removeFileTransferRequestListener(
FileTransferRequestListener listener)
FileTransferListener listener)
{
synchronized (fileTransferListeners)
{

@ -72,7 +72,7 @@ public FileTransfer sendFile( Contact toContact,
* @param listener the <tt>FileTransferRequestListener</tt> to add
*/
public void addFileTransferRequestListener(
FileTransferRequestListener listener);
FileTransferListener listener);
/**
* Removes the given <tt>FileTransferRequestListener</tt> that listens for
@ -82,5 +82,5 @@ public void addFileTransferRequestListener(
* @param listener the <tt>FileTransferRequestListener</tt> to remove
*/
public void removeFileTransferRequestListener(
FileTransferRequestListener listener);
FileTransferListener listener);
}

@ -8,6 +8,8 @@
import java.util.*;
import net.java.sip.communicator.service.protocol.*;
/**
* A listener that would gather events notifying of incoming file transfer
* requests.
@ -15,7 +17,7 @@
* @author Emil Ivov
* @author Yana Stamcheva
*/
public interface FileTransferRequestListener
public interface FileTransferListener
extends EventListener
{
/**
@ -24,5 +26,12 @@ public interface FileTransferRequestListener
* @param event the <tt>FileTransferRequestEvent</tt> containing the newly
* received request and other details.
*/
public void incomingRequestReceived(FileTransferRequestEvent event);
public void fileTransferRequestReceived(FileTransferRequestEvent event);
/**
* Called when an incoming or outgoing <tt>FileTransfer</tt> has been
* created.
* @param fileTransfer the file transfer object that has been created
*/
public void fileTransferCreated(FileTransfer fileTransfer);
}
Loading…
Cancel
Save