MineFragment.java 10.1 KB
package com.cnlive.goldenline.ui.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.cnlive.goldenline.R;
import com.cnlive.goldenline.api.UserAPI;
import com.cnlive.goldenline.dao.History;
import com.cnlive.goldenline.model.User;
import com.cnlive.goldenline.model.mine.SyncUserRequestBean;
import com.cnlive.goldenline.ui.activity.CollectActivity;
import com.cnlive.goldenline.ui.activity.HistoryActivity;
import com.cnlive.goldenline.ui.activity.HistoryMvvmActivity;
import com.cnlive.goldenline.ui.activity.ImprovePersonInfoActivity;
import com.cnlive.goldenline.ui.activity.MyCouponActivity;
import com.cnlive.goldenline.ui.activity.MyMessageActivity;
import com.cnlive.goldenline.ui.activity.MyTicketActivity;
import com.cnlive.goldenline.ui.activity.RegisterActivity;
import com.cnlive.goldenline.ui.activity.SettingActivity;
import com.cnlive.goldenline.ui.activity.WalletActivity;
import com.cnlive.goldenline.ui.activity.WebViewActivity;
import com.cnlive.goldenline.ui.base.BaseFragment;
import com.cnlive.goldenline.ui.base.GoldenlineCall;
import com.cnlive.goldenline.ui.widget.CropCircleTransformation;
import com.cnlive.goldenline.util.LogUtils;
import com.cnlive.goldenline.util.RestAdapterUtils;
import com.cnlive.goldenline.util.ToastUtil;
import com.cnlive.goldenline.util.UserService;
import com.cnlive.libs.user.UserUtil;
import com.cnlive.libs.user.model.DataEntity;
import com.cnlive.libs.user.model.UserData;

import butterknife.BindView;
import jp.wasabeef.glide.transformations.BlurTransformation;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;

/**
 * FileName:com.cnlive.goldenline.ui.fragment.MineFragment.java
 * Created on 2017/2/17
 * Version V1.0
 * 我的 fm
 */
public class MineFragment extends BaseFragment {

    /**
     * 钱包
     */
    @BindView(R.id.tv_button_wallet)
    protected TextView tv_button_wallet;
    /**
     * 我的票
     */
    @BindView(R.id.tv_button_ticket)
    protected TextView tv_button_ticket;
    /**
     * 我的票
     */
    @BindView(R.id.tv_button_msg)
    protected TextView tv_button_msg;


    @BindView(R.id.tv_button_coupon)
    protected TextView tv_button_coupon;
    @BindView(R.id.tv_button_mineplayer)
    protected TextView tv_button_mineplayer;
    @BindView(R.id.tv_button_minehistory)
    protected TextView tv_button_minehistory;
    @BindView(R.id.tv_button_minecollect)
    protected TextView tv_button_minecollect;
    @BindView(R.id.tv_button_minetp)
    protected TextView tv_button_minetp;
    @BindView(R.id.tv_button_minehelp)
    protected TextView tv_button_minehelp;
    @BindView(R.id.tv_button_minekf)
    protected TextView tv_button_minekf;
    @BindView(R.id.tv_button_minequestion)
    protected TextView tv_button_minequestion;
    @BindView(R.id.tv_button_minesetting)
    protected TextView tv_button_minesetting;

    @BindView(R.id.tc_mine_name)
    protected TextView tc_mine_name;

    @BindView(R.id.ima_mine_head)
    protected ImageView ima_mine_head;
    @BindView(R.id.head_bg)
    protected ImageView head_bg;
    @BindView(R.id.ima_mine_more)
    protected ImageView ima_mine_more;
    @BindView(R.id.ima_mineshowbg)
    protected ImageView ima_mineshowbg;

    private UserService service;
    /**
     * 常见问题
     */
    String url = "http://app.shineup.com.cn/goldenline/html/anxiaoxiao-test/problem/index.html";
    /**
     * 是否登录
     */
    private boolean isLogin;

    @Override
    protected void setupView() {
        super.setupView();

        service = new UserService(getActivity());
        tv_button_wallet.setOnClickListener(this);
        tv_button_msg.setOnClickListener(this);
        tv_button_ticket.setOnClickListener(this);
        tv_button_mineplayer.setOnClickListener(this);
        tv_button_minehistory.setOnClickListener(this);
        tv_button_minecollect.setOnClickListener(this);
        tv_button_minetp.setOnClickListener(this);
        tv_button_minehelp.setOnClickListener(this);
//        tv_button_minekf.setOnClickListener(this);
//        tv_button_minequestion.setOnClickListener(this);
        tv_button_minesetting.setOnClickListener(this);
        ima_mine_head.setOnClickListener(this);
        ima_mine_more.setOnClickListener(this);
        tv_button_coupon.setOnClickListener(this);

    }

    @Override
    protected int getLayoutRes() {
        return R.layout.fragment_mine;
    }

    @Override
    public void onResume() {
        super.onResume();
        User userInfo = service.getUserInfo();
        isLogin = service.isAutoLogin();
        if (isLogin) {
            setShowViewData(userInfo);
            UserUtil.queryUserInfo(userInfo.getUid(), userInfo.getUid(), new GoldenlineCall() {
                @Override
                protected void dowork(int what, String extra, Object obj) {
                    UserData userData = (UserData) obj;
                    doNetWork(userData.getData());
                }
            });
        }else{
            tc_mine_name.setText("请登录");
            ima_mine_head.setImageResource(0);
            head_bg.setImageResource(0);
        }
    }

    /**
     * 登陆完成后调用此方法同步用户其他信息
     */
    public void doNetWork(final DataEntity data) {
        final UserAPI userApi = RestAdapterUtils.getRestAPI(UserAPI.class);
        SyncUserRequestBean request = new SyncUserRequestBean(getAttchActivity());
        request.setEmail(data.getEmail());
        request.setExtInfo(data.getExtInfo());
        request.setFaceUrl(data.getFaceUrl());
        request.setGender(data.getGender().equals("m") ? 1 : (data.getGender().equals("f") ? 2 : 0));
        request.sethUid(data.gethUid());
        request.setLocation(data.getLocation());
        request.setMobile(data.getMobile());
        request.setNickName(data.getNickName());
        request.setUid(data.getUid());
        userApi.syncUserById(request, new Callback<User>() {
            @Override
            public void success(User user, Response response) {
                if (null != user && user.getErrorCode().equals("0")) {
                    service.setUserInfo(user, "");
                    setShowViewData(user);
                }else{
                    ToastUtil.showToast(getString(R.string.login_error));
                }
            }

            @Override
            public void failure(RetrofitError error) {
            }
        });
    }

    /**
     * 开启登录页面
     */
    private void skipAct(Class<?> clazz) {
        if (isLogin) {
            Intent intent = new Intent(getActivity(), clazz);
            getActivity().startActivity(intent);

        } else {
            RegisterActivity.start(getActivity());
        }
    }

    @Override
    public void onClick(View v) {
        super.onClick(v);
        switch (v.getId()) {
            case R.id.ima_mine_more://
            case R.id.ima_mine_head://完善个人资料
                skipAct(ImprovePersonInfoActivity.class);
                break;
            case R.id.tv_button_msg://我的消息
                skipAct(MyMessageActivity.class);
                break;
            case R.id.tv_button_wallet://我得钱包
                skipAct(WalletActivity.class);
                break;
            case R.id.tv_button_ticket://我的票
                skipAct(MyTicketActivity.class);
                break;
            case R.id.tv_button_coupon://我的优惠券
                //1 显示tab
                if (checkLogin()) {
                    MyCouponActivity.start(getActivity());
                }
                break;
            case R.id.tv_button_mineplayer://我要开播(暂时隐藏)
                LogUtils.LOGE("我要开播");

                break;
            case R.id.tv_button_minehistory://历史记录
//                HistoryActivity.startActivity(getActivity());

                Intent intent4= new Intent(getActivity(), HistoryMvvmActivity.class);

                startActivity(intent4);
                break;

            case R.id.tv_button_minecollect://我的收藏
                skipAct(CollectActivity.class);
                break;
            case R.id.tv_button_minetp://投屏助手
                LogUtils.LOGE("投屏助手");
                RegisterActivity.start(getActivity());
                break;
            case R.id.tv_button_minehelp://帮助与反馈
                Intent intent = new Intent();
                Bundle bundle = new Bundle();
                bundle.putString("url", url.toString());
                bundle.putInt("actvity_key", 2);
                intent.putExtra("url", bundle);
                intent.setClass(getActivity(), WebViewActivity.class);
                startActivity(intent);
                LogUtils.LOGE("帮助与反馈");
                break;
            case R.id.tv_button_minekf://联系客服
                LogUtils.LOGE("联系客服");
//                showContactService();
                break;
            case R.id.tv_button_minequestion://常见问题
                LogUtils.LOGE("常见问题");
                break;
            case R.id.tv_button_minesetting://设置
                LogUtils.LOGE("设置");
                SettingActivity.startActivity(getActivity());
                break;

            default:
                break;
        }
    }

    private boolean checkLogin(){
        if (isLogin) {
            return true;
        } else {
            RegisterActivity.start(getActivity());
            return false;
        }
    }

    /**
     * 展示数据
     *
     * @param user
     */
    private void setShowViewData(User user) {
        //radius 1-25 值越大模糊度越高
        Glide.with(getActivity()).load(user.getAvatar()).bitmapTransform(new BlurTransformation(getActivity(),22)).into(head_bg);
        Glide.with(getActivity()).load(user.getAvatar()).bitmapTransform(new CropCircleTransformation(getActivity())).into(ima_mine_head);
        tc_mine_name.setText(TextUtils.isEmpty(user.getNickname()) ? user.getMobile() : user.getNickname());
    }
}