关注操作成功时才改变按钮状态

This commit is contained in:
kehaoyuan
2017-08-29 11:52:04 +08:00
parent 0ae36ed7a7
commit 98983ff4eb
5 changed files with 149 additions and 75 deletions

View File

@ -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();
}

View File

@ -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<ResponseBody>())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Response<ResponseBody>(){
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<ResponseBody>())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Response<ResponseBody>(){
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()
}
}

View File

@ -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<String, Object> kv = new HashMap<>();
kv.put("状态", "关注");
DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv);
Map<String, Object> 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<String, Object> kv = new HashMap<>();
kv.put("状态", "关注");
DataUtils.onEvent(GameDetailActivity.this, "游戏关注", mGameEntity.getName(), kv);
Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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("取消关注失败");
}
});
}
});
}

View File

@ -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();

View File

@ -325,7 +325,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
}
}
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<ViewHolder> {
@Override
public void onLoggedIn() {
String str = concern.getText().toString();
viewHolder.gamedetailConcern.setEnabled(false);
if ("关注".equals(str)) {
Map<String, Object> kv = new HashMap<>();
kv.put("状态", "关注");
DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv);
Map<String, Object> 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<String, Object> kv = new HashMap<>();
kv.put("状态", "关注");
DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv);
Map<String, Object> 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<String, Object> kv = new HashMap<>();
kv.put("状态", "取消关注");
DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv);
@ -390,20 +403,29 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
DialogUtils.showCancelDialog(mContext, new DialogUtils.ConfirmListener() {
@Override
public void onConfirm() {
Map<String, Object> 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<String, Object> 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();
}
});
}
});
}