diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 72a7b0a819..04255595f5 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -14,8 +14,10 @@ import com.gh.common.util.RunningUtils; import com.gh.common.util.ShareUtils; import com.gh.common.util.StringUtils; import com.gh.download.DownloadManager; +import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBShowDialog; +import com.gh.gamecenter.eventbus.EBSkip; import com.lightgame.download.FileUtils; import com.lightgame.utils.AppManager; import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; @@ -135,7 +137,12 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity { String model = device.getString("model"); DialogUtils.showAlertDialog(this, "你的账号已在另外一台设备登录" , StringUtils.buildString("(", manufacturer, "-", model, ")") - , "知道了", null, null, null); + , "知道了", null, new DialogUtils.ConfirmListener() { + @Override + public void onConfirm() { + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 2)); + } + }, null); } catch (JSONException e) { e.printStackTrace(); } diff --git a/app/src/main/java/com/gh/common/util/ConcernUtils.kt b/app/src/main/java/com/gh/common/util/ConcernUtils.kt index 5f048b42da..2a73b16e96 100644 --- a/app/src/main/java/com/gh/common/util/ConcernUtils.kt +++ b/app/src/main/java/com/gh/common/util/ConcernUtils.kt @@ -25,23 +25,43 @@ import java.util.* */ object ConcernUtils { - fun postConcernGameId(context: Context, gameId: String) { + fun postConcernGameId(context: Context, gameId: String, listener: onConcernListener) { val params = JSONArray() params.put(gameId) val body = RequestBody.create(MediaType.parse("application/json"), params.toString()) RetrofitManager.getApi() .postConcern(LoginUtils.getToken(context), body) .subscribeOn(Schedulers.io()) - .observeOn(Schedulers.io()) - .subscribe(Response()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response(){ + override fun onResponse(response: ResponseBody?) { + super.onResponse(response) + listener.onSuccess() + } + + override fun onFailure(e: HttpException?) { + super.onFailure(e) + listener.onError() + } + }) } - fun deleteConcernData(context: Context, gameId: String) { + fun deleteConcernData(context: Context, gameId: String, listener: onConcernListener) { RetrofitManager.getApi() .deleteConcern(LoginUtils.getToken(context), gameId) .subscribeOn(Schedulers.io()) - .observeOn(Schedulers.io()) - .subscribe(Response()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response(){ + override fun onResponse(response: ResponseBody?) { + super.onResponse(response) + listener.onSuccess() + } + + override fun onFailure(e: HttpException?) { + super.onFailure(e) + listener.onError() + } + }) } fun updateConcernData(context: Context, data: JSONArray) { @@ -127,5 +147,10 @@ object ConcernUtils { }) } + interface onConcernListener { + fun onSuccess() + fun onError() + } + } diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index d7691cf4a7..7a46c32592 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -14,7 +14,6 @@ import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.BaseActivity; @@ -511,28 +510,40 @@ public class GameDetailActivity extends BaseActivity { CheckLoginUtils.checkLogin(GameDetailActivity.this, new CheckLoginUtils.OnLoggenInListener() { @Override public void onLoggedIn() { + mGameConcern.setEnabled(false); if ("关注".equals(mGameConcern.getText().toString())) { - - Map kv = new HashMap<>(); - kv.put("状态", "关注"); - DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv); - - Map kv2 = new HashMap<>(); - kv2.put("点击", "关注"); - DataUtils.onEvent(GameDetailActivity.this, "插件数据", mGameEntity.getName(), kv2); - - DataCollectionUtils.uploadConcern(GameDetailActivity.this, mGameEntity.getName(), mGameEntity.getId(), "关注"); - - mConcernManager.addByEntity(mGameEntity); - mGameConcern.setText("取消关注"); - mGameConcern.setBackgroundResource(R.drawable.border_red_bg); - mGameConcern.setTextColor(Color.parseColor("#ff4147")); - - Toast.makeText(GameDetailActivity.this, "关注成功", Toast.LENGTH_SHORT).show(); - // 添加关注 - ConcernUtils.INSTANCE.postConcernGameId(GameDetailActivity.this, mGameEntity.getId()); + ConcernUtils.INSTANCE.postConcernGameId(GameDetailActivity.this, mGameEntity.getId() + , new ConcernUtils.onConcernListener() { + @Override + public void onSuccess() { + Map kv = new HashMap<>(); + kv.put("状态", "关注"); + DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv); + + Map kv2 = new HashMap<>(); + kv2.put("点击", "关注"); + DataUtils.onEvent(GameDetailActivity.this, "插件数据", mGameEntity.getName(), kv2); + + DataCollectionUtils.uploadConcern(GameDetailActivity.this, mGameEntity.getName(), mGameEntity.getId(), "关注"); + + mConcernManager.addByEntity(mGameEntity); + mGameConcern.setText("取消关注"); + mGameConcern.setBackgroundResource(R.drawable.border_red_bg); + mGameConcern.setTextColor(Color.parseColor("#ff4147")); + + toast("关注成功"); + mGameConcern.setEnabled(true); + } + + @Override + public void onError() { + mGameConcern.setEnabled(true); + toast("关注失败"); + } + }); } else { + mGameConcern.setEnabled(true); Map kv2 = new HashMap<>(); kv2.put("点击", "取消关注"); DataUtils.onEvent(GameDetailActivity.this, "插件数据", mGameEntity.getName(), kv2); @@ -540,20 +551,29 @@ public class GameDetailActivity extends BaseActivity { DialogUtils.showCancelDialog(GameDetailActivity.this, new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - Map kv = new HashMap<>(); - kv.put("状态", "取消关注"); - DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv); - - DataCollectionUtils.uploadConcern(GameDetailActivity.this, - mGameEntity.getName(), mGameEntity.getId(), "取消关注"); - - mConcernManager.deleteConcern(mGameEntity.getId()); - mGameConcern.setText("关注"); - mGameConcern.setBackgroundResource(R.drawable.textview_concern_red_style); - mGameConcern.setTextColor(0xffffffff); - // 取消关注 - ConcernUtils.INSTANCE.deleteConcernData(GameDetailActivity.this, mGameEntity.getId()); + ConcernUtils.INSTANCE.deleteConcernData(GameDetailActivity.this, mGameEntity.getId() + , new ConcernUtils.onConcernListener() { + @Override + public void onSuccess() { + Map kv = new HashMap<>(); + kv.put("状态", "取消关注"); + DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv); + + DataCollectionUtils.uploadConcern(GameDetailActivity.this, + mGameEntity.getName(), mGameEntity.getId(), "取消关注"); + + mConcernManager.deleteConcern(mGameEntity.getId()); + mGameConcern.setText("关注"); + mGameConcern.setBackgroundResource(R.drawable.textview_concern_red_style); + mGameConcern.setTextColor(0xffffffff); + } + + @Override + public void onError() { + toast("取消关注失败"); + } + }); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 04f49c7dc2..4041ab1ed6 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -449,10 +449,10 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt for (String s : mAdapter.getFileList()) { path = getCacheDir() + File.separator + System.currentTimeMillis() + index + ".jpg"; if (BitmapUtils.savePicture(path, s)) { - subscriber.onNext(FileUtils.uploadFile(Config.API_HOST + "support/upload/img?type=suggestion", path, null)); + subscriber.onNext(FileUtils.uploadFile(Config.API_HOST + "support/upload/img?type=suggestion", path, LoginUtils.getToken(SuggestionActivity.this))); index++; } else { - subscriber.onNext(FileUtils.uploadFile(Config.API_HOST + "support/upload/img?type=suggestion", s, null)); + subscriber.onNext(FileUtils.uploadFile(Config.API_HOST + "support/upload/img?type=suggestion", s, LoginUtils.getToken(SuggestionActivity.this))); } } subscriber.onCompleted(); diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index cc22ed84c0..496b4616e3 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -325,7 +325,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { } } - private void initGameDetailTopViewHolder(GameDetailTopViewHolder viewHolder) { + private void initGameDetailTopViewHolder(final GameDetailTopViewHolder viewHolder) { ImageUtils.Companion.display(viewHolder.gamedetailThumb, mGameEntity.getIcon()); viewHolder.gamedetailName.setText(mGameEntity.getName()); if (mGameEntity.getApk() != null && mGameEntity.getApk().size() != 0) { @@ -357,28 +357,41 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { @Override public void onLoggedIn() { String str = concern.getText().toString(); + viewHolder.gamedetailConcern.setEnabled(false); if ("关注".equals(str)) { - - Map kv = new HashMap<>(); - kv.put("状态", "关注"); - DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); - - Map kv2 = new HashMap<>(); - kv2.put("点击", "关注"); - DataUtils.onEvent(mContext, "插件数据", mGameEntity.getName(), kv2); - - DataCollectionUtils.uploadConcern(mContext, mGameEntity.getName(), mGameEntity.getId(), "关注"); - - mConcernManager.addByEntity(mGameEntity); - concern.setText("取消关注"); - concern.setBackgroundResource(R.drawable.border_red_bg); - concern.setTextColor(Color.parseColor("#ff4147")); - - Toast.makeText(mContext, "关注成功", Toast.LENGTH_SHORT).show(); - // 添加关注 - ConcernUtils.INSTANCE.postConcernGameId(mContext, mGameEntity.getId()); + ConcernUtils.INSTANCE.postConcernGameId(mContext, mGameEntity.getId() + , new ConcernUtils.onConcernListener() { + @Override + public void onSuccess() { + Map kv = new HashMap<>(); + kv.put("状态", "关注"); + DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); + + Map kv2 = new HashMap<>(); + kv2.put("点击", "关注"); + DataUtils.onEvent(mContext, "插件数据", mGameEntity.getName(), kv2); + + DataCollectionUtils.uploadConcern(mContext, mGameEntity.getName(), mGameEntity.getId(), "关注"); + + mConcernManager.addByEntity(mGameEntity); + concern.setText("取消关注"); + concern.setBackgroundResource(R.drawable.border_red_bg); + concern.setTextColor(Color.parseColor("#ff4147")); + + Toast.makeText(mContext, "关注成功", Toast.LENGTH_SHORT).show(); + viewHolder.gamedetailConcern.setEnabled(true); + } + + @Override + public void onError() { + Toast.makeText(mContext, "关注失败", Toast.LENGTH_SHORT).show(); + viewHolder.gamedetailConcern.setEnabled(true); + } + }); } else { + viewHolder.gamedetailConcern.setEnabled(true); + Map kv = new HashMap<>(); kv.put("状态", "取消关注"); DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); @@ -390,20 +403,29 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { DialogUtils.showCancelDialog(mContext, new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - Map kv = new HashMap<>(); - kv.put("状态", "取消关注"); - DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); - - DataCollectionUtils.uploadConcern(mContext, - mGameEntity.getName(), mGameEntity.getId(), "取消关注"); - - mConcernManager.deleteConcern(mGameEntity.getId()); - concern.setText("关注"); - concern.setBackgroundResource(R.drawable.textview_concern_red_style); - concern.setTextColor(Color.WHITE); - //取消关注 - ConcernUtils.INSTANCE.deleteConcernData(mContext, mGameEntity.getId()); + ConcernUtils.INSTANCE.deleteConcernData(mContext, mGameEntity.getId() + , new ConcernUtils.onConcernListener() { + @Override + public void onSuccess() { + Map kv = new HashMap<>(); + kv.put("状态", "取消关注"); + DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); + + DataCollectionUtils.uploadConcern(mContext, + mGameEntity.getName(), mGameEntity.getId(), "取消关注"); + + mConcernManager.deleteConcern(mGameEntity.getId()); + concern.setText("关注"); + concern.setBackgroundResource(R.drawable.textview_concern_red_style); + concern.setTextColor(Color.WHITE); + } + + @Override + public void onError() { + Toast.makeText(mContext, "取消关注失败", Toast.LENGTH_SHORT).show(); + } + }); } }); }