/** * $id$ * Copyright 2011-2012 Renren Inc. All rights reserved. */ package com.renren.api.connect.android; import java.util.ArrayList; import java.util.List; import android.util.Log; import com.renren.api.connect.android.exception.RenrenError; /** * AsyncRenren的方法只能接受一个RequestListener; * 通过RequestListenerHelper可以在AsyncRenren方法中加入多个监听器;提供RequestListener缺省实现。 * * @author 李勇(yong.li@opi-corp.com) 2010-7-15 */ public class RequestListenerHelper implements RequestListener { private List<RequestListener> listeners = new ArrayList<RequestListener>(); public void addRequestListener(RequestListener dialogListener) { this.listeners.add(dialogListener); } public boolean removeRequestListener(RequestListener requestListener) { return this.listeners.remove(requestListener); } @Override public void onComplete(String response) { for (RequestListener listener : listeners) { listener.onComplete(response); } } @Override public void onRenrenError(RenrenError renrenError) { for (RequestListener listener : listeners) { listener.onRenrenError(renrenError); } } @Override public void onFault(Throwable fault) { for (RequestListener listener : listeners) { listener.onFault(fault); } } /** * 该类可以当作RequestListener接口的适配器来用;继承该类可以只实现RequestListener接口中你感兴趣的方法。 * * @author 李勇(yong.li@opi-corp.com) 2010-7-16 * */ public static class DefaultRequestListener implements RequestListener { @Override public void onComplete(String response) { Log.i(Util.LOG_TAG, "DefaultRequestListener.onComplete response:" + response); } @Override public void onRenrenError(RenrenError renrenError) { Log.w(Util.LOG_TAG, "DefaultRequestListener.onRenrenError renrenError:" + renrenError); } @Override public void onFault(Throwable fault) { Log .w(Util.LOG_TAG, "DefaultRequestListener.onFault fault:" + fault); } } }