Files
assistant-android/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java
2017-07-18 15:43:02 +08:00

274 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.gh.gamecenter.personal;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.base.AppController;
import com.gh.base.fragment.BaseFragment;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.GetLoginDataUtils;
import com.gh.common.util.LoginUtils;
import com.gh.common.util.PackageUtils;
import com.gh.gamecenter.InstallActivity;
import com.gh.gamecenter.LibaoActivity;
import com.gh.gamecenter.LoginActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.SettingActivity;
import com.gh.gamecenter.ShareGhActivity;
import com.gh.gamecenter.SuggestSelectActivity;
import com.gh.gamecenter.UserInfoActivity;
import com.gh.gamecenter.entity.AppEntity;
import com.gh.gamecenter.entity.UserInfoEntity;
import com.gh.gamecenter.eventbus.EBNetworkState;
import com.gh.gamecenter.retrofit.Response;
import com.gh.gamecenter.retrofit.RetrofitManager;
import com.lightgame.config.CommonDebug;
import com.lightgame.utils.Utils;
import com.tencent.connect.common.Constants;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.json.JSONObject;
import butterknife.BindView;
import butterknife.OnClick;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* @author 温冠超
* 294299195@qq.com
* 2015-8-8 我的光环页面
*/
public class PersonalFragment extends BaseFragment implements GetLoginDataUtils.OnLoginDataListener,
LoginUtils.onLoginCallBackListener {
@BindView(R.id.personal_login_qq)
LinearLayout mLoginQq;
@BindView(R.id.personal_login_wechat)
LinearLayout mLoginWechat;
@BindView(R.id.personal_login_weibo)
LinearLayout mLoginWeibo;
@BindView(R.id.personal_user_icon)
SimpleDraweeView mUserIcon;
@BindView(R.id.user_name_hint)
ImageView mUserNameHint;
@BindView(R.id.personal_user_name)
TextView mUserName;
@BindView(R.id.login_qq_icon)
ImageView mLoginQqIcon;
@BindView(R.id.login_qq_tv)
TextView mLoginQqTv;
@BindView(R.id.login_wechat_icon)
ImageView mLoginWechatIcon;
@BindView(R.id.login_wechat_tv)
TextView mLoginWechatTv;
@BindView(R.id.login_weibo_icon)
ImageView mLoginWeiboIcon;
@BindView(R.id.login_weibo_tv)
TextView mLoginWeiboTv;
@BindView(R.id.personal_game)
RelativeLayout mPersonalGame;
@BindView(R.id.personal_libao)
RelativeLayout mPersonalLibao;
@BindView(R.id.personal_share)
RelativeLayout mPersonalShare;
@BindView(R.id.personal_suggestion)
RelativeLayout mPersonalSuggestion;
@BindView(R.id.personal_setting_update_hint)
TextView mPersonalSettingUpdateHint;
@BindView(R.id.personal_setting)
RelativeLayout mPersonalSetting;
@BindView(R.id.login_sign_hint)
View mLoginSignHint;
@BindView(R.id.login_message_hint)
View mLoginMessgeHint;
public final static int LOGIN_CODE = 0x300; // 登录相关的requestCode && resultCode
public final static String LOGIN_TAG = "login_tag"; //登入标识
public final static String LOGOUT_TAG = "logout_tag"; // 登出标识
private UserInfoEntity mUserInfoEntity;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (CommonDebug.IS_DEBUG) {
CommonDebug.logMethodWithParams(this, requestCode, resultCode, data);
}
if (requestCode == Constants.REQUEST_LOGIN) { // QQ Login callback
GetLoginDataUtils.getInstance(getContext()).onQQCallback(requestCode, resultCode, data);
} else if (requestCode == 32973) {
//TODO 32973是什么鬼
GetLoginDataUtils.getInstance(getContext()).onWeiboCallback(requestCode, resultCode, data);
} else if (requestCode == LOGIN_CODE && resultCode == LOGIN_CODE && data != null) {
String loginStatus = data.getStringExtra("loginStatus");
if (TextUtils.isEmpty(loginStatus)) return;
if (LOGIN_TAG.equals(loginStatus)) { // 登入
mUserInfoEntity = LoginUtils.getUserInfo(getContext());
changeLoginState(true);
} else if (LOGOUT_TAG.equals(loginStatus)) { // 登出
changeLoginState(false);
mUserInfoEntity = null;
}
}
}
@Override
protected int getLayoutId() {
return R.layout.fragment_personal;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkUpdate();
LoginUtils.checkLogin(getContext(), this);
}
// 连接上网络事件
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBNetworkState busNetworkState) {
}
@OnClick({R.id.personal_login_qq, R.id.personal_login_wechat, R.id.personal_login_weibo, R.id.personal_user_icon,
R.id.personal_user_name, R.id.personal_game, R.id.personal_libao, R.id.personal_share, R.id.personal_suggestion,
R.id.personal_setting})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.personal_login_qq:
if (mUserInfoEntity != null) {
toast("收藏");
} else {
GetLoginDataUtils.getInstance(getActivity()).QQLogin(this, getActivity());
}
break;
case R.id.personal_login_wechat:
if (mUserInfoEntity != null) {
toast("签到");
} else {
GetLoginDataUtils.getInstance(getActivity()).WCLogin(this);
}
break;
case R.id.personal_login_weibo:
if (mUserInfoEntity != null) {
toast("消息");
} else {
GetLoginDataUtils.getInstance(getActivity()).WeiBoLogin(this, getActivity());
}
break;
case R.id.personal_user_icon:
case R.id.personal_user_name:
if (mUserInfoEntity != null) {
getContext().startActivity(UserInfoActivity.getIntent(getContext()));
} else {
startActivityForResult(LoginActivity.getIntent(getContext()), LOGIN_CODE);
}
break;
case R.id.personal_game:
getContext().startActivity(InstallActivity.getIntent(getContext()));
break;
case R.id.personal_libao:
DataUtils.onEvent(getActivity(), "主页", "礼包图标");
DataCollectionUtils.uploadClick(getActivity(), "礼包图标", "我的光环");
Intent intent = LibaoActivity.getIntent(getContext(), "(我的光环:礼包[4-1])");
startActivity(intent);
DataCollectionUtils.uploadPosition(getActivity(), "我的光环", "1", "礼包");
break;
case R.id.personal_share:
getContext().startActivity(ShareGhActivity.getIntent(getContext()));
break;
case R.id.personal_suggestion:
getContext().startActivity(SuggestSelectActivity.getIntent(getActivity()));
break;
case R.id.personal_setting:
DataUtils.onEvent(getActivity(), "我的光环", "设置图标");
DataCollectionUtils.uploadClick(getActivity(), "设置图标", "我的光环");
startActivityForResult(SettingActivity.getIntent(getContext(), "(我的光环)"), LOGIN_CODE);
break;
}
}
private void changeLoginState(boolean isLogin) {
if (isLogin) {
if (mUserInfoEntity != null) {
mUserIcon.setImageURI(mUserInfoEntity.getIcon());
mUserName.setText(mUserInfoEntity.getName());
}
mLoginQqIcon.setImageResource(R.drawable.personal_collection_icon);
mLoginQqTv.setText("收藏");
mLoginWechatIcon.setImageResource(R.drawable.personal_sign_icon);
mLoginWechatTv.setText("签到");
mLoginWeiboIcon.setImageResource(R.drawable.personal_message_icon);
mLoginWeiboTv.setText("消息");
} else {
mLoginQqIcon.setImageResource(R.drawable.qq_login_icon);
mLoginQqTv.setText(getString(R.string.QQ));
mLoginWechatIcon.setImageResource(R.drawable.wechat_login_icon);
mLoginWechatTv.setText(getString(R.string.wechat));
mLoginWeiboIcon.setImageResource(R.drawable.weibo_login_icon);
mLoginWeiboTv.setText(getString(R.string.sina_weibo));
mLoginSignHint.setVisibility(View.GONE);
mLoginMessgeHint.setVisibility(View.GONE);
mUserIcon.setImageURI("");
mUserName.setText("手机登录");
}
}
private void checkUpdate() {
String channel = AppController.getInstance().getChannel();
RetrofitManager.
getApi().
getUpdate(PackageUtils.getVersionName(getContext()), channel)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<AppEntity>() {
@Override
public void onResponse(AppEntity response) {
super.onResponse(response);
float version = Float.valueOf(response.getVersion());
float currentVersion = Float.valueOf(PackageUtils.getVersionName(getContext()));
if (version > currentVersion) {
mPersonalSettingUpdateHint.setVisibility(View.VISIBLE);
} else {
mPersonalSettingUpdateHint.setVisibility(View.GONE);
}
}
});
}
// 登录成功返回
@Override
public void OnLoginData(JSONObject content, LoginUtils.LoginTag loginTag) {
Utils.log("======获取第三方登录信息成功" + content.toString() + "===" + loginTag.name());
RequestBody body = RequestBody.create(MediaType.parse("application/json"), content.toString());
LoginUtils.login(getContext(), body, loginTag, this);
}
@Override
public void onLogin(UserInfoEntity entity, LoginUtils.LoginTag loginTag) {
Utils.log("======登录成功" + entity.getIcon() + "==" + entity.getName());
mUserInfoEntity = entity;
changeLoginState(true);
}
}