/**
* DelegateMegaRequestListener.java
* Delegation pattern for MegaRequestListener
*
* (c) 2013-2014 by Mega Limited, Auckland, New Zealand
*
* This file is part of the MEGA SDK - Client Access Engine.
*
* Applications using the MEGA API must present a valid application key
* and comply with the the rules set forth in the Terms of Service.
*
* The MEGA SDK is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright Simplified (2-clause) BSD License.
*
* You should have received a copy of the license along with this
* program.
*/
package nz.mega.sdk;
class DelegateMegaRequestListener extends MegaRequestListener {
MegaApiJava megaApi;
MegaRequestListenerInterface listener;
DelegateMegaRequestListener(MegaApiJava megaApi, MegaRequestListenerInterface listener)
{
this.megaApi = megaApi;
this.listener = listener;
}
MegaRequestListenerInterface getUserListener()
{
return listener;
}
@Override
public void onRequestStart(MegaApi api, MegaRequest request)
{
if(listener != null)
{
final MegaRequest megaRequest = request.copy();
megaApi.runCallback(new Runnable()
{
public void run()
{
listener.onRequestStart(megaApi, megaRequest);
}
});
}
}
@Override
public void onRequestUpdate(MegaApi api, MegaRequest request)
{
if(listener != null)
{
final MegaRequest megaRequest = request.copy();
megaApi.runCallback(new Runnable()
{
public void run()
{
listener.onRequestUpdate(megaApi, megaRequest);
}
});
}
}
@Override
public void onRequestFinish(MegaApi api, MegaRequest request, MegaError e)
{
if(listener != null)
{
final MegaRequest megaRequest = request.copy();
final MegaError megaError = e.copy();
megaApi.runCallback(new Runnable()
{
public void run()
{
listener.onRequestFinish(megaApi, megaRequest, megaError);
}
});
}
megaApi.privateFreeRequestListener(this);
}
@Override
public void onRequestTemporaryError(MegaApi api, MegaRequest request, MegaError e)
{
if(listener != null)
{
final MegaRequest megaRequest = request.copy();
final MegaError megaError = e.copy();
megaApi.runCallback(new Runnable()
{
public void run()
{
listener.onRequestTemporaryError(megaApi, megaRequest, megaError);
}
});
}
}
}