/** * */ package com.photoshare.service.likes.view; import java.util.ArrayList; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.photoshare.common.AbstractRequestListener; import com.photoshare.exception.NetworkError; import com.photoshare.exception.NetworkException; import com.photoshare.fragments.BaseFragment; import com.photoshare.service.likes.LikeBean; import com.photoshare.service.likes.LikeGetInfoRequestParam; import com.photoshare.service.likes.LikeGetInfoResponseBean; import com.photoshare.service.photos.PhotoBean; import com.photoshare.service.users.UserInfo; import com.photoshare.tabHost.R; import com.photoshare.utils.Utils; import com.photoshare.view.AppTitleBarView; /** * @author Aron * */ public class LikesFragment extends BaseFragment { private LikesView likesView; private PhotoBean photo; private ArrayList<LikeBean> beans; private String leftBtnText = ""; private String rightBtnText = ""; private String titlebarText = ""; private int leftBtnVisibility = View.VISIBLE; private int rightBtnVisibility = View.GONE; public static LikesFragment newInstance(int fragmentViewId) { LikesFragment lf = new LikesFragment(); lf.setFragmentViewId(fragmentViewId); return lf; } private String getLikesFragment() { return getString(R.string.flikeFragment); } public PhotoBean getPhoto() { return photo; } private void initViews() { try { titlebarText = getLikeTitleText(); initTitleBar(leftBtnText, rightBtnText, titlebarText, leftBtnVisibility, rightBtnVisibility); if (beans != null) { likesView = new LikesView(getActivity(), getActivity() .findViewById(R.id.likeListLayoutId), beans, async); likesView.registerCallback(mCallback); likesView.applyView(); } else { AsyncGetLikeInfo(); } } catch (NetworkException e) { } } @Override public void onActivityCreated(Bundle savedInstanceState) { leftBtnText = getBackText(); if (savedInstanceState != null) { if (savedInstanceState.containsKey(LikeBean.KEY_LIKES)) { beans = savedInstanceState .getParcelableArrayList(LikeBean.KEY_LIKES); } if (savedInstanceState.containsKey(AppTitleBarView.LEFT_BTN_TEXT)) { leftBtnText = savedInstanceState .getString(AppTitleBarView.LEFT_BTN_TEXT); } } super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); if (bundle != null) { if (bundle.containsKey(PhotoBean.KEY_PHOTO)) { photo = bundle.getParcelable(PhotoBean.KEY_PHOTO); } if (bundle.containsKey(AppTitleBarView.LEFT_BTN_TEXT)) { leftBtnText = bundle.getString(AppTitleBarView.LEFT_BTN_TEXT); } } initViews(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.likes_layout, container, false); } private String getLikeTitleText() { return getString(R.string.like); } private String getBackText() { return getString(R.string.back); } @Override public void onSaveInstanceState(Bundle outState) { if (outState != null) { outState.putParcelableArrayList(LikeBean.KEY_LIKES, beans); outState.putString(AppTitleBarView.LEFT_BTN_TEXT, leftBtnText); } super.onSaveInstanceState(outState); } private void AsyncGetLikeInfo() throws NetworkException { Utils.logger("LikeFragment: " + photo.getPid()); LikeGetInfoRequestParam param = new LikeGetInfoRequestParam( photo.getPid()); AbstractRequestListener<LikeGetInfoResponseBean> listener = new AbstractRequestListener<LikeGetInfoResponseBean>() { @Override public void onNetworkError(NetworkError networkError) { getActivity().runOnUiThread(new Runnable() { public void run() { mExceptionHandler.obtainMessage( NetworkError.ERROR_REFRESH_DATA).sendToTarget(); } }); } @Override public void onFault(Throwable fault) { getActivity().runOnUiThread(new Runnable() { public void run() { mExceptionHandler.obtainMessage( NetworkError.ERROR_NETWORK).sendToTarget(); } }); } @Override public void onComplete(LikeGetInfoResponseBean bean) { if (bean != null) { beans = bean.getLikesBean(); } getActivity().runOnUiThread(new Runnable() { public void run() { initViews(); } }); } }; async.getLikesInfo(param, listener); } private LikesView.ICallback mCallback = new LikesView.ICallback() { public void OnLikeNameClick(UserInfo info) { forward(getUserHomeFragment(), info.params()); } public void OnUserHeadLoaded(final ImageView image, final Drawable drawable, String url) { getActivity().runOnUiThread(new Runnable() { public void run() { image.setImageDrawable(drawable); } }); } public void OnImageDefault(final ImageView image) { getActivity().runOnUiThread(new Runnable() { public void run() { image.setImageResource(R.drawable.icon); } }); } }; private String getUserHomeFragment() { return getString(R.string.fuserHomeFragment); } /* * (non-Javadoc) * * @see com.photoshare.fragments.BaseFragment#OnRightBtnClicked() */ @Override protected void onRightBtnClicked() { } /* * (non-Javadoc) * * @see com.photoshare.fragments.BaseFragment#OnLeftBtnClicked() */ @Override protected void onLeftBtnClicked() { backward(null); } @Override protected void onLoginSuccess() { // TODO Auto-generated method stub } }