/**
*
*/
package com.photoshare.service.users.views;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.photoshare.common.AbstractRequestListener;
import com.photoshare.exception.NetworkError;
import com.photoshare.exception.NetworkException;
import com.photoshare.fragments.BaseFragment;
import com.photoshare.service.users.UserGetInfoRequestParam;
import com.photoshare.service.users.UserGetInfoResponseBean;
import com.photoshare.service.users.UserInfo;
import com.photoshare.tabHost.R;
/**
* @author Aron
*
*/
public class UserProfileFragment extends BaseFragment {
private UserInfoView userInfoView;
private UserInfo userInfo;
private String leftBtnText = "";
private String rightBtnText = "";
private String titlebarText = "";
private int leftBtnVisibility = View.VISIBLE;
private int rightBtnVisibility = View.GONE;
public static UserProfileFragment newInstance(int fragmentViewId) {
UserProfileFragment up = new UserProfileFragment();
up.setFragmentViewId(fragmentViewId);
return up;
}
public UserInfo getUserInfo() {
return userInfo;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
if (savedInstanceState != null) {
if (savedInstanceState.containsKey(UserInfo.KEY_USER_INFO)) {
userInfo = savedInstanceState
.getParcelable(UserInfo.KEY_USER_INFO);
}
}
super.onActivityCreated(savedInstanceState);
Bundle bundle = getArguments();
if (bundle != null) {
if (bundle.containsKey(UserInfo.KEY_USER_INFO)) {
userInfo = bundle.getParcelable(UserInfo.KEY_USER_INFO);
}
}
leftBtnText = getHomeText();
titlebarText = getProfileText();
initTitleBar(leftBtnText, rightBtnText, titlebarText,
leftBtnVisibility, rightBtnVisibility);
try {
AsyncGetUserInfo();
} catch (NetworkException e) {
AsyncSignIn();
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
if (outState != null) {
outState.putParcelable(UserInfo.KEY_USER_INFO, userInfo);
}
super.onSaveInstanceState(outState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.user_profile_layout, container, false);
}
private String getProfileText() {
return getString(R.string.profile);
}
private String getHomeText() {
return getString(R.string.home);
}
private void AsyncGetUserInfo() throws NetworkException {
UserGetInfoRequestParam param = new UserGetInfoRequestParam(
userInfo.getUid());
AbstractRequestListener<UserGetInfoResponseBean> listener = new AbstractRequestListener<UserGetInfoResponseBean>() {
@Override
public void onNetworkError(NetworkError networkError) {
mExceptionHandler
.obtainMessage(NetworkError.ERROR_REFRESH_DATA)
.sendToTarget();
}
@Override
public void onFault(Throwable fault) {
mExceptionHandler.obtainMessage(NetworkError.ERROR_NETWORK)
.sendToTarget();
}
@Override
public void onComplete(final UserGetInfoResponseBean bean) {
userInfo = bean.getUserInfo();
getActivity().runOnUiThread(new Runnable() {
public void run() {
userInfoView = new UserInfoView(getActivity(),
getActivity()
.findViewById(R.id.userProfileView),
userInfo);
userInfoView.applyView();
}
});
}
};
async.getUsersInfo(param, listener);
}
/*
* (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);
}
private String getUserHomeFragment() {
return getString(R.string.fuserHomeFragment);
}
@Override
protected void onLoginSuccess() {
// TODO Auto-generated method stub
}
}