/**
* $id$
* Copyright 2011-2012 Renren Inc. All rights reserved.
*/
package com.renren.api.connect.android.view;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.util.Log;
import com.renren.api.connect.android.Util;
import com.renren.api.connect.android.exception.RenrenAuthError;
/**
* @author 李勇(yong.li@opi-corp.com) 2010-7-19
*/
public class ConnectButtonListenerHelper implements ConnectButtonListener {
private List<ConnectButtonListener> listeners = new ArrayList<ConnectButtonListener>();
public void addConnectButtonListener(ConnectButtonListener connectButtonListener) {
this.listeners.add(connectButtonListener);
}
public boolean removeConnectButtonListener(ConnectButtonListener connectButtonListener) {
return this.listeners.remove(connectButtonListener);
}
@Override
public void onException(Exception error) {
for (ConnectButtonListener listener : listeners) {
listener.onException(error);
}
}
@Override
public void onLogined(Bundle values) {
for (ConnectButtonListener listener : listeners) {
listener.onLogined(values);
}
}
@Override
public void onLogouted() {
for (ConnectButtonListener listener : listeners) {
listener.onLogouted();
}
}
@Override
public void onRenrenAuthError(RenrenAuthError renrenAuthError) {
for (ConnectButtonListener listener : listeners) {
listener.onRenrenAuthError(renrenAuthError);
}
}
@Override
public void onCancelAuth(Bundle values) {
for (ConnectButtonListener listener : listeners) {
listener.onCancelAuth(values);
}
}
@Override
public void onCancelLogin() {
for (ConnectButtonListener listener : listeners) {
listener.onCancelLogin();
}
}
/**
* 该类可以当作ConnectButtonListener接口的适配器来用;
* 继承该类可以只实现ConnectButtonListener接口中你感兴趣的方法。
*
* @author yong.li@opi-corp.com
*
*/
public static class DefaultConnectButtonListener implements ConnectButtonListener {
@Override
public void onLogined(Bundle values) {
Log.i(Util.LOG_TAG, "onLogined called.");
}
@Override
public void onLogouted() {
Log.i(Util.LOG_TAG, "onLogouted called.");
}
@Override
public void onException(Exception error) {
Log.e(Util.LOG_TAG, error.getMessage(), error);
}
@Override
public void onCancelAuth(Bundle values) {
Log.w(Util.LOG_TAG, "cancel auth.");
}
@Override
public void onCancelLogin() {
Log.w(Util.LOG_TAG, "cancel login.");
}
@Override
public void onRenrenAuthError(RenrenAuthError renrenAuthError) {
Log.e(Util.LOG_TAG, renrenAuthError.getMessage(), renrenAuthError);
}
}
}