package com.gzsll.hupu.ui.userprofile; import android.app.Fragment; import android.app.FragmentManager; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.support.design.widget.AppBarLayout; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.TabLayout; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.widget.ImageView; import android.widget.TextView; import com.afollestad.materialdialogs.MaterialDialog; import com.facebook.drawee.view.SimpleDraweeView; import com.gzsll.hupu.R; import com.gzsll.hupu.bean.UserResult; import com.gzsll.hupu.ui.BaseSwipeBackActivity; import com.gzsll.hupu.ui.browser.BrowserFragment; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by sll on 2016/3/11. * 个人中心 */ public class UserProfileActivity extends BaseSwipeBackActivity implements UserProfileContract.View, SwipeRefreshLayout.OnRefreshListener { @BindView(R.id.ivCover) ImageView ivCover; @BindView(R.id.ivPhoto) SimpleDraweeView ivPhoto; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.tabs) TabLayout tabs; @BindView(R.id.toolbarLayout) CollapsingToolbarLayout toolbarLayout; @BindView(R.id.appbar) AppBarLayout appbar; @BindView(R.id.viewPager) ViewPager viewPager; @BindView(R.id.maincontent) CoordinatorLayout maincontent; @BindView(R.id.ivGender) ImageView ivGender; @BindView(R.id.tvRegisterTime) TextView tvRegisterTime; public static void startActivity(Context mContext, String uid) { Intent intent = new Intent(mContext, UserProfileActivity.class); intent.putExtra("uid", uid); mContext.startActivity(intent); } @Inject UserProfilePresenter mPresenter; private MaterialDialog mDialog; @Override public int initContentView() { return R.layout.activity_profile; } @Override public void initInjector() { String uid = getIntent().getStringExtra("uid"); DaggerUserProfileComponent.builder() .applicationComponent(getApplicationComponent()) .activityModule(getActivityModule()) .userProfileModule(new UserProfileModule(uid)) .build() .inject(this); } @Override public void initUiAndListener() { ButterKnife.bind(this); mPresenter.attachView(this); initToolBar(toolbar); toolbarLayout.setTitleEnabled(false); mDialog = new MaterialDialog.Builder(this).title("提示") .content("正在加载") .cancelable(false) .progress(true, 0) .build(); mPresenter.receiveUserInfo(); } @Override protected boolean isApplyStatusBarTranslucency() { return true; } @Override protected boolean isApplyStatusBarColor() { return false; } @Override public void renderUserData(UserResult userResult) { if (userResult != null) { setupViewPager(userResult); if (!TextUtils.isEmpty(userResult.header)) { ivPhoto.setImageURI(Uri.parse(userResult.header)); } ivGender.setImageResource( userResult.gender == 0 ? R.drawable.list_male : R.drawable.list_female); tvRegisterTime.setText(userResult.reg_time_str); setTitle(userResult.nickname); } } private void setupViewPager(UserResult userResult) { MyAdapter adapter = new MyAdapter(getFragmentManager()); adapter.addFragment(BrowserFragment.newInstance(userResult.bbs_msg_url, ""), String.format("发帖(%s)", userResult.bbs_msg_count)); adapter.addFragment(BrowserFragment.newInstance(userResult.bbs_post_url, ""), String.format("回帖(%s)", userResult.bbs_post_count)); viewPager.setAdapter(adapter); tabs.setupWithViewPager(viewPager); } public static class MyAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragments = new ArrayList<>(); private final List<String> mFragmentTitles = new ArrayList<>(); public MyAdapter(FragmentManager fm) { super(fm); } public void addFragment(Fragment fragment, String title) { mFragments.add(fragment); mFragmentTitles.add(title); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitles.get(position); } } @Override public void showLoading() { if (!mDialog.isShowing() && !isFinishing()) { mDialog.show(); } } @Override public void hideLoading() { if (mDialog.isShowing() && !isFinishing()) { mDialog.dismiss(); } } @Override public void showError() { } @Override protected void onDestroy() { super.onDestroy(); mPresenter.detachView(); } @Override public void onRefresh() { } }