/** * DelegateMegaListener.java * Delegation pattern for MegaListener * * (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; import java.util.ArrayList; class DelegateMegaListener extends MegaListener { MegaApiJava megaApi; MegaListenerInterface listener; DelegateMegaListener(MegaApiJava megaApi, MegaListenerInterface listener) { this.megaApi = megaApi; this.listener = listener; } MegaListenerInterface 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 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); } }); } } @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); } }); } } @Override public void onTransferStart(MegaApi api, MegaTransfer transfer) { if(listener != null) { final MegaTransfer megaTransfer = transfer.copy(); megaApi.runCallback(new Runnable() { public void run() { listener.onTransferStart(megaApi, megaTransfer); } }); } } @Override public void onTransferFinish(MegaApi api, MegaTransfer transfer, MegaError e) { if(listener != null) { final MegaTransfer megaTransfer = transfer.copy(); final MegaError megaError = e.copy(); megaApi.runCallback(new Runnable() { public void run() { listener.onTransferFinish(megaApi, megaTransfer, megaError); } }); } } @Override public void onTransferUpdate(MegaApi api, MegaTransfer transfer) { if(listener != null) { final MegaTransfer megaTransfer = transfer.copy(); megaApi.runCallback(new Runnable() { public void run() { listener.onTransferUpdate(megaApi, megaTransfer); } }); } } @Override public void onTransferTemporaryError(MegaApi api, MegaTransfer transfer, MegaError e) { if(listener != null) { final MegaTransfer megaTransfer = transfer.copy(); final MegaError megaError = e.copy(); megaApi.runCallback(new Runnable() { public void run() { listener.onTransferTemporaryError(megaApi, megaTransfer, megaError); } }); } } @Override public void onUsersUpdate(MegaApi api, MegaUserList userList) { if(listener != null) { final ArrayList<MegaUser> users = MegaApiJava.userListToArray(userList); megaApi.runCallback(new Runnable() { public void run() { listener.onUsersUpdate(megaApi, users); } }); } } @Override public void onNodesUpdate(MegaApi api, MegaNodeList nodeList) { if(listener != null) { final ArrayList<MegaNode> nodes = MegaApiJava.nodeListToArray(nodeList); megaApi.runCallback(new Runnable() { public void run() { listener.onNodesUpdate(megaApi, nodes); } }); } } @Override public void onReloadNeeded(MegaApi api) { if(listener != null) { megaApi.runCallback(new Runnable() { public void run() { listener.onReloadNeeded(megaApi); } }); } } }