/** * */ package com.photoshare.service; import java.util.concurrent.Executor; import android.os.Bundle; import android.util.Log; import com.photoshare.common.AbstractRequestListener; import com.photoshare.exception.NetworkError; import com.photoshare.exception.NetworkException; import com.photoshare.service.findfriends.FindFriendsRequestParam; import com.photoshare.service.findfriends.FindFriendsResponseBean; import com.photoshare.utils.User; import com.photoshare.utils.Utils; /** * @author Aron * */ public class FindFriendHelper { private User user; public FindFriendHelper(User user) { this.user = user; } public FindFriendsResponseBean getFriendsInfo(FindFriendsRequestParam param) throws NetworkException, Throwable { Bundle parameters = param.getParams(); FindFriendsResponseBean responseBean = null; try { String response = user.request(param.getAction(), parameters); if (response != null) { Utils.checkResponse(response); } else { Utils.logger("null response"); throw new NetworkException( NetworkError.ERROR_CODE_UNKNOWN_ERROR, "null response", "null response"); } responseBean = new FindFriendsResponseBean(response); } catch (RuntimeException e) { Log.e("runtimeException", e.getMessage()); throw new Throwable(e); } return responseBean; } public void asyncGetFriendsInfo(Executor pool, final FindFriendsRequestParam param, final AbstractRequestListener<FindFriendsResponseBean> listener) { pool.execute(new Runnable() { public void run() { try { FindFriendsResponseBean bean = getFriendsInfo(param); if (listener != null) { listener.onComplete(bean); } } catch (NetworkException e) { Utils.logger("network exception " + e.getMessage()); if (listener != null) { listener.onNetworkError(new NetworkError(e.getMessage())); e.printStackTrace(); } } catch (Throwable e) { Utils.logger("on fault " + e.getMessage()); if (listener != null) { listener.onFault(e); } } } }); } }