/** * */ 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.UserEditInfoRequestParam; import com.photoshare.service.users.UserGetInfoResponseBean; import com.photoshare.service.users.UserInfo; import com.photoshare.tabHost.R; /** * @author Aron * */ public class PersonalProfileFragment extends BaseFragment { public static PersonalProfileFragment newInstance(int fragmentViewId) { PersonalProfileFragment pp = new PersonalProfileFragment(); pp.setFragmentViewId(fragmentViewId); return pp; } private UserInfoEditView mUserInfoEditView; private String leftBtnText = ""; private String rightBtnText = ""; private String titlebarText = ""; private int leftBtnVisibility = View.VISIBLE; private int rightBtnVisibility = View.GONE; @Override public void onActivityCreated(Bundle savedInstanceState) { if (savedInstanceState != null) { if (savedInstanceState.containsKey(UserInfo.KEY_USER_INFO)) { UserInfo info = savedInstanceState .getParcelable(UserInfo.KEY_USER_INFO); user.setUserInfo(info); } } super.onActivityCreated(savedInstanceState); initViews(); } /** * */ private void initViews() { leftBtnText = getPreferencesText(); titlebarText = getProfileText(); rightBtnText = getSubmitText(); initTitleBar(leftBtnText, rightBtnText, titlebarText, leftBtnVisibility, rightBtnVisibility); mUserInfoEditView = new UserInfoEditView(user.getUserInfo(), getActivity().findViewById(R.id.personalProfileId)); mUserInfoEditView.registerListener(listener); mUserInfoEditView.applyView(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.personal_profile_layout, container, false); } @Override public void onSaveInstanceState(Bundle outState) { if (outState != null) { outState.putParcelable(UserInfo.KEY_USER_INFO, user.getUserInfo()); } super.onSaveInstanceState(outState); } private void AsyncSubmitUserInfo(UserInfo info) throws NetworkException { UserEditInfoRequestParam param = new UserEditInfoRequestParam(info); AbstractRequestListener<UserGetInfoResponseBean> listener = new AbstractRequestListener<UserGetInfoResponseBean>() { @Override public void onComplete(final UserGetInfoResponseBean bean) { if (bean != null) { user.setUserInfo(bean.getUserInfo()); user.setLogging(true); } getActivity().runOnUiThread(new Runnable() { public void run() { } }); } @Override public void onNetworkError(final NetworkError networkError) { mExceptionHandler .obtainMessage(NetworkError.ERROR_EDIT_PROFILE) .sendToTarget(); getActivity().runOnUiThread(new Runnable() { public void run() { } }); } @Override public void onFault(Throwable fault) { mExceptionHandler.obtainMessage(NetworkError.ERROR_NETWORK) .sendToTarget(); getActivity().runOnUiThread(new Runnable() { public void run() { } }); } }; async.getEditUserInfo(param, listener); } private UserInfoEditView.OnAsyncClickListener listener = new UserInfoEditView.OnAsyncClickListener() { public void AsyncSubmit(UserInfo info) { try { AsyncSubmitUserInfo(info); } catch (NetworkException e) { AsyncSignIn(); } } }; private String getProfileText() { return getString(R.string.profile); } private String getPreferencesText() { return getString(R.string.preferences); } private String getSubmitText() { return getString(R.string.submit); } /* * (non-Javadoc) * * @see com.photoshare.fragments.BaseFragment#OnRightBtnClicked() */ @Override protected void onRightBtnClicked() { try { AsyncSubmitUserInfo(user.getUserInfo()); } catch (NetworkException e) { AsyncSignIn(); } } /* * (non-Javadoc) * * @see com.photoshare.fragments.BaseFragment#OnLeftBtnClicked() */ @Override protected void onLeftBtnClicked() { backward(null); } @Override protected void onLoginSuccess() { // TODO Auto-generated method stub } }