package com.wenming.weiswift.ui.login.fragment.profile;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.wenming.weiswift.R;
import com.wenming.weiswift.api.UsersAPI;
import com.wenming.weiswift.entity.User;
import com.wenming.weiswift.mvp.presenter.ProfileFragmentPresent;
import com.wenming.weiswift.mvp.presenter.imp.ProfileFragmentPresentImp;
import com.wenming.weiswift.mvp.view.ProfileFragmentView;
import com.wenming.weiswift.ui.common.NewFeature;
import com.wenming.weiswift.ui.common.login.AccessTokenKeeper;
import com.wenming.weiswift.ui.login.fragment.home.userdetail.UserActivity;
import com.wenming.weiswift.ui.login.fragment.profile.favorites.FavoritiesActivity;
import com.wenming.weiswift.ui.login.fragment.profile.followers.FollowerActivity;
import com.wenming.weiswift.ui.login.fragment.profile.friends.FriendsActivity;
import com.wenming.weiswift.ui.login.fragment.profile.myphoto.MyPhotoActivity;
import com.wenming.weiswift.ui.login.fragment.profile.myweibo.MyWeiBoActivity;
import com.wenming.weiswift.ui.login.fragment.profile.setting.SettingActivity;
import com.wenming.weiswift.widget.mdprogressbar.CircleProgressBar;
/**
* Created by wenmingvs on 15/12/26.
*/
public class ProfileFragment extends Fragment implements ProfileFragmentView {
private Activity mActivity;
private View mView;
private TextView mSettings;
private Context mContext;
private UsersAPI mUsersAPI;
private ImageView mProfile_myimg;
private TextView mProfile_mydescribe;
private TextView mProfile_myname;
private TextView mStatuses_count;
private TextView mFriends_count;
private TextView mFollowers_count;
private DisplayImageOptions options;
private LinearLayout mMyWeiBo_Layout;
private LinearLayout mFollowers_Layout;
private LinearLayout mFriends_Layout;
private RelativeLayout mFavorities_Layout;
private RelativeLayout mMyPhoto_Layout;
private ProfileFragmentPresent mProfileFragmentPresent;
private CircleProgressBar mProgressBar;
private ScrollView mScrollView;
private RelativeLayout mMyprofile_layout;
private User mUser;
public ProfileFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = getActivity();
mContext = getContext();
mProfileFragmentPresent = new ProfileFragmentPresentImp(this);
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.avator_default)
.showImageForEmptyUri(R.drawable.avator_default)
.showImageOnFail(R.drawable.avator_default)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.displayer(new CircleBitmapDisplayer(14671839, 1))
.build();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.profilefragment_layout, null);
mScrollView = (ScrollView) mView.findViewById(R.id.scrollview);
mProfile_myimg = (ImageView) mView.findViewById(R.id.profile_myimg);
mProfile_myname = (TextView) mView.findViewById(R.id.profile_myname);
mProfile_mydescribe = (TextView) mView.findViewById(R.id.profile_mydescribe);
mStatuses_count = (TextView) mView.findViewById(R.id.profile_statuses_count);
mFollowers_count = (TextView) mView.findViewById(R.id.profile_followers_count);
mFriends_count = (TextView) mView.findViewById(R.id.profile_friends_count);
mMyWeiBo_Layout = (LinearLayout) mView.findViewById(R.id.yyweibo_layout);
mFollowers_Layout = (LinearLayout) mView.findViewById(R.id.followers_layout);
mFriends_Layout = (LinearLayout) mView.findViewById(R.id.friends_layout);
mFavorities_Layout = (RelativeLayout) mView.findViewById(R.id.favorities_layout);
mMyPhoto_Layout = (RelativeLayout) mView.findViewById(R.id.myphoto_layout);
mSettings = (TextView) mView.findViewById(R.id.setting);
mProgressBar = (CircleProgressBar) mView.findViewById(R.id.progressbar);
mMyprofile_layout = (RelativeLayout) mView.findViewById(R.id.myprofile_layout);
mProgressBar.setColorSchemeResources(android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light);
refreshUserDetail(mContext, true);
setUpListener();
return mView;
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mProfile_myname == null || mProfile_myname.getText() == null || mProfile_myname.getText().length() == 0) {
refreshUserDetail(mContext, false);
}
}
}
public void refreshUserDetail(Context context, boolean loadicon) {
mProfileFragmentPresent.refreshUserDetail(Long.parseLong(AccessTokenKeeper.readAccessToken(context).getUid()), context, loadicon);
}
public boolean haveAlreadyRefresh() {
if (mProfile_myname == null || mProfile_myname.getText().length() == 0) {
return false;
} else {
return true;
}
}
private void setUpListener() {
mMyWeiBo_Layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, MyWeiBoActivity.class);
startActivityForResult(intent, 0x1);
}
});
mFriends_Layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, FriendsActivity.class);
startActivity(intent);
}
});
mFollowers_Layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, FollowerActivity.class);
startActivity(intent);
}
});
mSettings.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), SettingActivity.class));
}
});
mMyPhoto_Layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, MyPhotoActivity.class);
intent.putExtra("screeenName", mUser.screen_name);
startActivity(intent);
}
});
mFavorities_Layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mActivity, FavoritiesActivity.class);
startActivity(intent);
}
});
mMyprofile_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, UserActivity.class);
intent.putExtra("screenName", mUser.screen_name);
mContext.startActivity(intent);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (NewFeature.refresh_profileLayout == true) {
refreshUserDetail(mContext, false);
NewFeature.refresh_profileLayout = false;
}
}
@Override
public void setUserDetail(User user) {
if (user != null) {
mUser = user;
ImageLoader.getInstance().displayImage(user.avatar_hd, mProfile_myimg, options);
mProfile_myname.setText(user.name);
mProfile_mydescribe.setText("简介:" + user.description);
mStatuses_count.setText(user.statuses_count + "");
mFriends_count.setText(user.friends_count + "");
mFollowers_count.setText(user.followers_count + "");
}
}
@Override
public void showScrollView() {
mScrollView.setVisibility(View.VISIBLE);
}
@Override
public void hideScrollView() {
mScrollView.setVisibility(View.GONE);
}
@Override
public void showProgressDialog() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
public void hideProgressDialog() {
mProgressBar.setVisibility(View.GONE);
}
}