diff --git a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java index 64db38fb10..92cf4c634c 100644 --- a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java +++ b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import com.gh.gamecenter.LoginActivity; +import com.gh.gamecenter.entity.UserInfoEntity; /** * Created by khy on 28/06/17. @@ -12,8 +13,8 @@ import com.gh.gamecenter.LoginActivity; public class CheckLoginUtils { public static void checkLogin(final Context context, OnLoggenInListener listener) { - String token = ""; - if (token == null) { + UserInfoEntity userInfo = LoginUtils.getUserInfo(context); + if (userInfo == null) { DialogUtils.showWarningDialog(context, "登录提示", "需要登录才能使用该功能喔!", "取消", "快速登录", new DialogUtils.ConfirmListener() { @Override diff --git a/app/src/main/java/com/gh/common/util/LoginUtils.java b/app/src/main/java/com/gh/common/util/LoginUtils.java index 19b3ae161f..1f7fe447d7 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -86,8 +86,9 @@ public class LoginUtils { // 登录前,做好body判断 - public static void login(final Context context, RequestBody body, final LoginTag loginTag, + public static void login(final Context context, final JSONObject content, final LoginTag loginTag, final onLoginCallBackListener listener) { + RequestBody body = RequestBody.create(MediaType.parse("application/json"), content.toString()); Observable observable; @@ -118,7 +119,16 @@ public class LoginUtils { response.setLoginType(loginToken.getLoginType()); } } else { - response.setLoginType(loginTag.name()); + if (loginTag.equals(LoginTag.phone)) { + try { + response.setLoginType(content.getString("mobile")); + } catch (JSONException e) { + e.printStackTrace(); + } + } else { + response.setLoginType(loginTag.name()); + } + } saveLoginToken(context, response); getUserData(context, response.getAccessToken().getValue(), listener); @@ -171,10 +181,28 @@ public class LoginUtils { } catch (Exception e1) { e1.printStackTrace(); } + + cleanUserData(context); } }); } + // 注销登录 + public static void logout(Context context) { + cleanUserData(context); + + LoginResponseEntity loginToken = getLoginToken(context); + if (loginToken == null || loginToken.getAccessToken() == null) return; + + RetrofitManager + .getUsersea() + .logout(loginToken.getAccessToken().getValue()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response(){}); + } + + // 清除本地用户相关信息 public static void cleanUserData(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor edit = sp.edit(); @@ -184,7 +212,7 @@ public class LoginUtils { GetLoginDataUtils.getInstance(context).QQLogout(); } - + // 检查本地是否有缓存token,有则马上登录 public static void checkLogin(Context context, onLoginCallBackListener listener) { LoginResponseEntity loginToken = getLoginToken(context); @@ -200,9 +228,7 @@ public class LoginUtils { if (refreshExpire != null && refreshExpire > Utils.getTime(context)) { Map params = new HashMap<>(); params.put("refresh_token", refreshToken.getValue()); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), - new JSONObject(params).toString()); - login(context, body, LoginTag.refresh, listener); // TODO 刷新accessToken + login(context, new JSONObject(params), LoginTag.refresh, listener); // TODO 刷新accessToken } else { // TODO 重新登录 cleanUserData(context); @@ -211,6 +237,7 @@ public class LoginUtils { } } + // 获取用户信息 public static void getUserData(final Context context, String token, final onLoginCallBackListener listener) { RetrofitManager .getUsersea() @@ -232,6 +259,7 @@ public class LoginUtils { }); } + // 获取本地缓存用户信息 public static UserInfoEntity getUserInfo(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); String loginData = sp.getString("user_info", null); @@ -244,6 +272,7 @@ public class LoginUtils { } + // 在本地缓存用户信息 public static void saveUserInfo(Context context, UserInfoEntity entity) { if (entity != null) { String s = new Gson().toJson(entity); @@ -254,7 +283,7 @@ public class LoginUtils { } } - + //获取本地缓存用户token public static LoginResponseEntity getLoginToken(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); String loginData = sp.getString("login_token", null); @@ -266,6 +295,7 @@ public class LoginUtils { return null; } + // 在本地缓存用户token public static void saveLoginToken(Context context, LoginResponseEntity entity) { if (entity != null) { String s = new Gson().toJson(entity); @@ -276,6 +306,7 @@ public class LoginUtils { } } + //更改用户信息 public static void changeUserInfo(final onChangeUserInfoListener listener, final Context context, String content, String editType) { final UserInfoEntity entity = getUserInfo(context); if (entity == null) { @@ -295,6 +326,9 @@ public class LoginUtils { case "area": entity.setRegion(content); break; + case "userIcon": + entity.setIcon(content); + break; default: return; } @@ -332,14 +366,17 @@ public class LoginUtils { }); } + // 更改用户信息回调 public interface onChangeUserInfoListener { void onChange(); } + // 获取验证码回调 public interface onCaptchaCallBackListener { void onCaptcha(String serviceId); } + // 登录回调 public interface onLoginCallBackListener { void onLogin(UserInfoEntity entity, LoginTag loginTag); } diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index f195dcb3ba..e8a1e071f5 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -13,6 +13,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.AppController; import com.gh.base.BaseActivity; import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.ApkActiveUtils; @@ -135,9 +136,9 @@ public class LibaoDetailActivity extends BaseActivity implements LibaoDetailAdap @NonNull public static Intent getIntent(Context context, LibaoEntity libaoEntity, String entrance) { + AppController.put(LibaoDetailActivity.class.getSimpleName(), libaoEntity); Intent intent = new Intent(context, LibaoDetailActivity.class); intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(LibaoDetailActivity.class.getSimpleName(), libaoEntity); return intent; } @@ -153,18 +154,14 @@ public class LibaoDetailActivity extends BaseActivity implements LibaoDetailAdap @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putParcelable(LibaoDetailActivity.class.getSimpleName(), mAdapter.getLibaoEntity()); + AppController.put(LibaoDetailActivity.class.getSimpleName(), mAdapter.getLibaoEntity()); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initTitle("礼包详情"); - if (savedInstanceState != null) { - mLibaoEntity = savedInstanceState.getParcelable(LibaoDetailActivity.class.getSimpleName()); - } else { - mLibaoEntity = getIntent().getParcelableExtra(LibaoDetailActivity.class.getSimpleName()); - } + mLibaoEntity = (LibaoEntity) AppController.get(LibaoDetailActivity.class.getSimpleName(), true); mName = "礼包详情"; mIsScroll = true; diff --git a/app/src/main/java/com/gh/gamecenter/LoginActivity.java b/app/src/main/java/com/gh/gamecenter/LoginActivity.java index 8e9c9f0c71..335ad267fd 100644 --- a/app/src/main/java/com/gh/gamecenter/LoginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LoginActivity.java @@ -27,9 +27,13 @@ import com.gh.common.util.GetLoginDataUtils; import com.gh.common.util.LoginUtils; import com.gh.common.util.PatternUtils; import com.gh.gamecenter.entity.UserInfoEntity; +import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.personal.PersonalFragment; import com.lightgame.utils.Util_System_Keyboard; +import com.lightgame.utils.Utils; import com.tencent.connect.common.Constants; +import org.greenrobot.eventbus.EventBus; import org.json.JSONObject; import java.util.HashMap; @@ -37,11 +41,6 @@ import java.util.Map; import butterknife.BindView; import butterknife.OnClick; -import okhttp3.MediaType; -import okhttp3.RequestBody; - -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_CODE; -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; /** * Created by khy on 19/06/17. @@ -199,8 +198,8 @@ public class LoginActivity extends BaseActivity implements GetLoginDataUtils.OnL // 登录成功返回 @Override public void OnLoginData(JSONObject content, LoginUtils.LoginTag loginTag) { - RequestBody body = RequestBody.create(MediaType.parse("application/json"), content.toString()); - LoginUtils.login(this, body, loginTag, this); + + LoginUtils.login(this, content, loginTag, this); } // 登录 @@ -222,10 +221,8 @@ public class LoginActivity extends BaseActivity implements GetLoginDataUtils.OnL params.put("mobile", phoneNum); params.put("code", code); params.put("service_id", mServiceId); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), - new JSONObject(params).toString()); - LoginUtils.login(LoginActivity.this, body, LoginUtils.LoginTag.phone, LoginActivity.this); + LoginUtils.login(LoginActivity.this, new JSONObject(params), LoginUtils.LoginTag.phone, LoginActivity.this); } private void changeUserLogin(boolean isOldUser) { @@ -271,9 +268,8 @@ public class LoginActivity extends BaseActivity implements GetLoginDataUtils.OnL @Override public void onLogin(UserInfoEntity entity, LoginUtils.LoginTag loginTag) { // 登录成功 - Intent intent = new Intent(); - intent.putExtra("loginStatus", LOGIN_TAG); - setResult(LOGIN_CODE, intent); + Utils.log("======登录成功" + entity.getIcon() + "==" + entity.getName()); + EventBus.getDefault().post(new EBReuse(PersonalFragment.LOGIN_TAG)); finish(); } diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 91fd2b30d9..93bcbb37d2 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -87,7 +87,9 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, @BindView(R.id.news_detail_ll_coment) RelativeLayout mDetailCommentLl; @BindView(R.id.news_detail_share) - ImageView iv_share; + ImageView mNewsShare; + @BindView(R.id.news_detail_collection) + ImageView mNewsCllection; private NewsDetailAdapter adapter; @@ -239,7 +241,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, adapter.setTitle(title); adapter.getNewsDetail(); - iv_share.setVisibility(View.VISIBLE); + mNewsShare.setVisibility(View.VISIBLE); } else { getNewsDigest(newsId); } @@ -270,7 +272,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, mDetailCommentLl.setOnClickListener(this); // 防抖处理 - RxView.clicks(iv_share) + RxView.clicks(mNewsShare) .throttleFirst(1, TimeUnit.SECONDS) .subscribe(new Action1() { @Override @@ -400,7 +402,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, adapter.setTitle(response.getTitle()); adapter.getNewsDetail(); - iv_share.setVisibility(View.VISIBLE); + mNewsShare.setVisibility(View.VISIBLE); } @Override @@ -498,6 +500,8 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, startActivity(intent); } }); + } else if (v == mNewsCllection) { + // TODO 收藏 } } diff --git a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java index 9e2cad6cf6..43669bd3f3 100644 --- a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java @@ -14,6 +14,7 @@ import android.view.View; import android.widget.TextView; import com.gh.base.BaseActivity; +import com.gh.common.util.LoginUtils; import com.gh.common.util.RandomUtils; import com.gh.common.util.UserIconUtils; import com.lightgame.utils.Utils; @@ -30,7 +31,7 @@ import butterknife.OnClick; /** * Created by khy on 2017/2/10. */ -public class SelectUserIconActivity extends BaseActivity { +public class SelectUserIconActivity extends BaseActivity implements LoginUtils.onChangeUserInfoListener { @BindView(R.id.skip_media_store) TextView mSkipMediaStore; @@ -74,10 +75,11 @@ public class SelectUserIconActivity extends BaseActivity { startActivityForResult(intent, 0x124); } else if (data != null && requestCode == 0x124) { String url = data.getExtras().getString("url"); - Intent intent = new Intent(); - intent.putExtra("url", url); - setResult(0x125, intent); - finish(); +// Intent intent = new Intent(); +// intent.putExtra("url", url); +// setResult(0x125, intent); +// finish(); + LoginUtils.changeUserInfo(this, this, url, "userIcon"); } } @@ -139,7 +141,7 @@ public class SelectUserIconActivity extends BaseActivity { } } Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - startActivityForResult(intent, 0x123); + startActivityForResult(intent, 0x131); break; } } @@ -166,10 +168,16 @@ public class SelectUserIconActivity extends BaseActivity { sp.edit().putBoolean("changeDefaultIcon", true).apply(); - Intent intent = new Intent(); - intent.putExtra("url", iconUrl); - setResult(0x125, intent); - finish(); +// Intent intent = new Intent(); +// intent.putExtra("url", iconUrl); +// setResult(0x125, intent); +// finish(); + LoginUtils.changeUserInfo(this, this, iconUrl, "userIcon"); } + @Override + public void onChange() { + setResult(0x131); + finish(); + } } diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 7e7eaf34b3..8c54a44eed 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -23,9 +23,11 @@ import com.gh.base.BaseActivity; import com.gh.common.util.DialogUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.LoginUtils; +import com.gh.common.util.StringUtils; import com.gh.gamecenter.entity.LoginResponseEntity; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBSkip; +import com.gh.gamecenter.personal.PersonalFragment; import com.kyleduo.switchbutton.SwitchButton; import com.lightgame.download.FileUtils; @@ -43,14 +45,12 @@ import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import static com.gh.gamecenter.R.id.setting_rl_about; -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_CODE; -import static com.gh.gamecenter.personal.PersonalFragment.LOGOUT_TAG; import static java.lang.Thread.sleep; /** * 游戏设置页面 * - * @author 吕方 + * @ 吕方 * @since 0814 */ public class SettingActivity extends BaseActivity implements OnClickListener { @@ -119,12 +119,32 @@ public class SettingActivity extends BaseActivity implements OnClickListener { } fontTextSize(checkSizeIndex); + initLoginStatus(); + } + + private void initLoginStatus() { LoginResponseEntity loginToken = LoginUtils.getLoginToken(this); - if (loginToken != null) { - String loginType = loginToken.getLoginType(); - if (!TextUtils.isEmpty(loginType)) { - mSettingLoginType.setText(loginType); + if (loginToken != null && !TextUtils.isEmpty(loginToken.getLoginType())) { + String loginType = loginToken.getLoginType().trim(); + switch (loginType) { + case "qq": + loginType = "QQ"; + break; + case "wechat": + loginType = "微信"; + break; + case "weibo": + loginType = "新浪微博"; + break; + default: + if (loginType.length() == 11) { + String sub1 = loginType.substring(0, 3); + String sub2 = loginType.substring(9, 11); + loginType = StringUtils.buildString(sub1, "******", sub2); + } + break; } + mSettingLoginType.setText(loginType); mSettingLoginRl.setVisibility(View.VISIBLE); } else { mSettingLoginRl.setVisibility(View.GONE); @@ -245,10 +265,8 @@ public class SettingActivity extends BaseActivity implements OnClickListener { "确定退出", "取消", new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - LoginUtils.cleanUserData(SettingActivity.this); - Intent intent = new Intent(); - intent.putExtra("loginStatus", LOGOUT_TAG); - setResult(LOGIN_CODE, intent); + LoginUtils.logout(SettingActivity.this); + EventBus.getDefault().post(new EBReuse(PersonalFragment.LOGOUT_TAG)); finish(); } }, null); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index a65ac565a3..a8085d8793 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; import butterknife.BindView; +import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; @@ -39,7 +40,7 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2016/10/18. */ -public class WebActivity extends BaseActivity implements View.OnClickListener { +public class WebActivity extends BaseActivity { @BindView(R.id.news_webview) WebView webView; @@ -79,7 +80,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 刷新评论数 - if (resultCode == 1001 && progressBar.getVisibility() == View.VISIBLE && newsId != null) { + if (resultCode == 1001 && newsId != null && data != null && data.getExtras() != null) { webComment.setText("查看评论(" + data.getExtras().getInt("commentNum") + ")"); } else if (requestCode == com.tencent.connect.common.Constants.REQUEST_QQ_SHARE || requestCode == com.tencent.connect.common.Constants.REQUEST_QZONE_SHARE) { @@ -105,6 +106,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { } if (mIsTools) { + mToolBoxEntity = getIntent().getParcelableExtra("ToolBoxEntity"); mShareIv.setVisibility(View.VISIBLE); mCollectionIv.setVisibility(View.VISIBLE); } else { @@ -184,7 +186,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { getNewsCommentNum(); } - if (mShareIv != null) { + if (mShareIv != null && mToolBoxEntity != null) { RxView.clicks(mShareIv) .throttleFirst(1, TimeUnit.SECONDS) .subscribe(new Action1() { @@ -214,7 +216,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { }); } - @Override + @OnClick({R.id.web_comment, R.id.web_collection}) public void onClick(View v) { if (v == webComment) { Intent intent = new Intent(this, MessageDetailActivity.class); @@ -222,6 +224,8 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { intent.putExtra("commentNum", commentNum); intent.putExtra(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(光环浏览器)"); startActivityForResult(intent, 1001); + } else if (v == mCollectionIv) { + // TODO 收藏 } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java index 083817455a..7180e0adb7 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -4,6 +4,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.common.util.CheckLoginUtils; import com.lightgame.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; @@ -137,36 +138,42 @@ public class ConcernAdapter extends BaseRecyclerAdapter { holder.concern_item_concern.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - // 删除关注表中的数据,并更新界面 - DialogUtils.showCancelDialog(mContext, new DialogUtils.ConfirmListener() { + + CheckLoginUtils.checkLogin(mContext, new CheckLoginUtils.OnLoggenInListener() { @Override - public void onConfirm() { - ConcernInfo concernInfo = mConcernList.get(holder.getPosition()); - if (mConcernManager.findConcernById(concernInfo.getId()) != null) { - Map kv = new HashMap<>(); - kv.put("状态", "取消关注"); - DataUtils.onEvent(mContext, "游戏关注", concernInfo.getGameName(), kv); + public void onLoggedIn() { + // 删除关注表中的数据,并更新界面 + DialogUtils.showCancelDialog(mContext, new DialogUtils.ConfirmListener() { + @Override + public void onConfirm() { + ConcernInfo concernInfo = mConcernList.get(holder.getPosition()); + if (mConcernManager.findConcernById(concernInfo.getId()) != null) { + Map kv = new HashMap<>(); + kv.put("状态", "取消关注"); + DataUtils.onEvent(mContext, "游戏关注", concernInfo.getGameName(), kv); - DataCollectionUtils.uploadConcern(mContext, - concernInfo.getGameName(), concernInfo.getId(), "取消关注"); + DataCollectionUtils.uploadConcern(mContext, + concernInfo.getGameName(), concernInfo.getId(), "取消关注"); - mConcernList.remove(holder.getPosition()); - notifyItemRemoved(holder.getPosition()); + mConcernList.remove(holder.getPosition()); + notifyItemRemoved(holder.getPosition()); // notifyDataSetChanged(); - if (mConcernList.isEmpty()) { - mListener.loadEmpty(); - } + if (mConcernList.isEmpty()) { + mListener.loadEmpty(); + } - mConcernManager.deleteConcern(concernInfo.getId()); - if (mConcernGameList != null && mConcernGameList.size() > 0) { - mConcernGameList.remove(holder.getPosition()); - } + mConcernManager.deleteConcern(concernInfo.getId()); + if (mConcernGameList != null && mConcernGameList.size() > 0) { + mConcernGameList.remove(holder.getPosition()); + } - holder.concern_item_concern.setClickable(false); - holder.itemView.setClickable(false); - } else { - Toast.makeText(mContext, "取消失败,请稍后再试", Toast.LENGTH_SHORT).show(); - } + holder.concern_item_concern.setClickable(false); + holder.itemView.setClickable(false); + } else { + Toast.makeText(mContext, "取消失败,请稍后再试", Toast.LENGTH_SHORT).show(); + } + } + }); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java index 29cf60641c..26723bfc45 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -5,6 +5,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.common.util.CheckLoginUtils; import com.lightgame.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; @@ -142,30 +143,36 @@ public class ConcernRecommendAdapter extends BaseRecyclerAdapter kv = new HashMap<>(); - kv.put("状态", "关注"); - DataUtils.onEvent(mContext, "游戏关注", gameEntity.getName(), kv); + holder.concern_item_concern.setClickable(false); + holder.itemView.setClickable(false); - DataCollectionUtils.uploadConcern(mContext, - gameEntity.getName(), gameEntity.getId(), "关注"); + Map kv = new HashMap<>(); + kv.put("状态", "关注"); + DataUtils.onEvent(mContext, "游戏关注", gameEntity.getName(), kv); - mConcernManager.addByEntity(gameEntity); + DataCollectionUtils.uploadConcern(mContext, + gameEntity.getName(), gameEntity.getId(), "关注"); - if (mToast != null) { - mToast.cancel(); - } - mToast = Toast.makeText(mContext, "关注成功", Toast.LENGTH_SHORT); - mToast.show(); + mConcernManager.addByEntity(gameEntity); - mListener.loadEmpty(); + if (mToast != null) { + mToast.cancel(); + } + mToast = Toast.makeText(mContext, "关注成功", Toast.LENGTH_SHORT); + mToast.show(); + + mListener.loadEmpty(); + } + }); } }); holder.itemView.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 826d71dd94..34eb9d66f5 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -9,7 +9,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import com.gh.base.AppController; import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; @@ -193,6 +192,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { super.onFailure(e); if (e != null && e.code() == 409) { mIsRequestError = true; + mLoadKeyOver = true; loadData(mIsSearch, finalOffset); return; } @@ -365,11 +365,11 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { intent.putExtra(EntranceUtils.KEY_ENTRANCE, "工具箱列表"); mContext.startActivity(intent); } else { - AppController.put("ToolBoxEntity", toolBoxEntity); Intent intent = new Intent(mContext, WebActivity.class); intent.putExtra("url", toolBoxEntity.getUrl()); intent.putExtra("isTools", true); intent.putExtra("gameName", toolBoxEntity.getName()); + intent.putExtra("ToolBoxEntity", toolBoxEntity); mContext.startActivity(intent); } } diff --git a/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java index 8f6e08d320..3a0884edd6 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java @@ -7,7 +7,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.base.AppController; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.NewsDetailActivity; @@ -87,11 +86,11 @@ public class ToolsAdapter extends BaseRecyclerAdapter { intent.putExtra(EntranceUtils.KEY_ENTRANCE, "工具箱列表"); mContext.startActivity(intent); } else { - AppController.put("ToolBoxEntity", toolBoxEntity); Intent intent = new Intent(mContext, WebActivity.class); intent.putExtra("url", toolBoxEntity.getUrl()); intent.putExtra("isTools", true); intent.putExtra("gameName", toolBoxEntity.getName()); + intent.putExtra("ToolBoxEntity", toolBoxEntity); mContext.startActivity(intent); } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index 624616055a..7df3b5cd56 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -3,7 +3,6 @@ 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; @@ -30,6 +29,7 @@ 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.eventbus.EBReuse; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.config.CommonDebug; @@ -42,8 +42,6 @@ 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; @@ -118,16 +116,6 @@ public class PersonalFragment extends BaseFragment implements GetLoginDataUtils. } 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; - } } else if (requestCode == CHANGE_UDERINFO) { mUserInfoEntity = LoginUtils.getUserInfo(getContext()); changeLoginState(true); @@ -151,6 +139,21 @@ public class PersonalFragment extends BaseFragment implements GetLoginDataUtils. // 连接上网络事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBNetworkState busNetworkState) { + if (mUserInfoEntity == null) { + LoginUtils.checkLogin(getContext(), this); + } + } + + // 登录事件 + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBReuse reuse) { + if (reuse.getType().equals(LOGIN_TAG)) { // 登入 + mUserInfoEntity = LoginUtils.getUserInfo(getContext()); + changeLoginState(true); + } else if (reuse.getType().equals(LOGOUT_TAG)) { // 登出 + changeLoginState(false); + mUserInfoEntity = null; + } } @OnClick({R.id.personal_login_qq, R.id.personal_login_wechat, R.id.personal_login_weibo, R.id.personal_user_icon, @@ -159,12 +162,11 @@ public class PersonalFragment extends BaseFragment implements GetLoginDataUtils. public void onViewClicked(View view) { switch (view.getId()) { case R.id.personal_login_qq: - startActivity(CollectionActivity.getCollectionActivity(getContext())); -// if (mUserInfoEntity != null) { -// -// } else { -// GetLoginDataUtils.getInstance(getActivity()).QQLogin(this, getActivity()); -// } + if (mUserInfoEntity != null) { + startActivity(CollectionActivity.getCollectionActivity(getContext())); + } else { + GetLoginDataUtils.getInstance(getActivity()).QQLogin(this, getActivity()); + } break; case R.id.personal_login_wechat: if (mUserInfoEntity != null) { @@ -267,8 +269,7 @@ public class PersonalFragment extends BaseFragment implements GetLoginDataUtils. @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); + LoginUtils.login(getContext(), content, loginTag, this); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/UserseaService.java b/app/src/main/java/com/gh/gamecenter/retrofit/UserseaService.java index 1823d1edb9..adfd0ea742 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/UserseaService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/UserseaService.java @@ -52,8 +52,13 @@ public interface UserseaService { @POST("login/wechat") Observable refreshToken(@Body RequestBody body); - // 刷新accessToken + // 修改用户信息 @Headers({"Content-Type: application/json", "Accept: application/json"}) @POST("login/meta") Observable changeUserInfo(@Body RequestBody body); + + // 注销登录 + @Headers({"Content-Type: application/json", "Accept: application/json"}) + @POST("logout") + Observable logout(@Header("TOKEN") String token); } diff --git a/app/src/main/res/layout/activity_news_detail.xml b/app/src/main/res/layout/activity_news_detail.xml index 667444f7e9..0277158d43 100644 --- a/app/src/main/res/layout/activity_news_detail.xml +++ b/app/src/main/res/layout/activity_news_detail.xml @@ -43,10 +43,10 @@ android:layout_centerInParent = "true" android:layout_marginRight = "6dp" android:layout_toLeftOf = "@+id/news_detail_share" - android:paddingBottom = "11dp" + android:paddingBottom = "13dp" android:paddingLeft = "13dp" android:paddingRight = "13dp" - android:paddingTop = "11dp" + android:paddingTop = "13dp" android:src = "@drawable/detail_collection_unselect" /> diff --git a/app/src/main/res/layout/activity_web.xml b/app/src/main/res/layout/activity_web.xml index 325849c400..313cec02ab 100644 --- a/app/src/main/res/layout/activity_web.xml +++ b/app/src/main/res/layout/activity_web.xml @@ -43,10 +43,10 @@ android:layout_centerInParent = "true" android:layout_marginRight = "6dp" android:layout_toLeftOf = "@+id/web_share" - android:paddingBottom = "11dp" + android:paddingBottom = "13dp" android:paddingLeft = "13dp" android:paddingRight = "13dp" - android:paddingTop = "11dp" + android:paddingTop = "13dp" android:src = "@drawable/detail_collection_unselect" /> diff --git a/app/src/main/res/layout/reuse_actionbar.xml b/app/src/main/res/layout/reuse_actionbar.xml index 2c9554ab15..eae1d6b9c5 100644 --- a/app/src/main/res/layout/reuse_actionbar.xml +++ b/app/src/main/res/layout/reuse_actionbar.xml @@ -2,24 +2,9 @@ - - - - - - + android:textSize = "17sp" + android:layout_marginLeft="48dp" + android:layout_marginRight="48dp" + android:singleLine="true"/> + + + + + \ No newline at end of file