package com.znv.linkup.view.dialog; import android.app.Dialog; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.znv.linkup.GameActivity; import com.znv.linkup.R; import com.znv.linkup.WelcomeActivity; import com.znv.linkup.db.DbScore; import com.znv.linkup.db.LevelScore; import com.znv.linkup.rest.IUpload; import com.znv.linkup.rest.LevelInfo; import com.znv.linkup.rest.UserInfo; import com.znv.linkup.rest.UserScore; import com.znv.linkup.util.ShareUtil; import com.znv.linkup.util.StringUtil; import com.znv.linkup.view.LevelTop; import com.znv.linkup.view.LevelTop.LevelTopStatus; /** * 计时模式结果 * * @author yzb * */ public class TimeDialog extends Dialog implements IUpload { private GameActivity linkup = null; private ResultInfo resultInfo = null; private LevelTop levelTop = null; private ShareUtil shareHelper = null; public TimeDialog(final GameActivity linkup) { super(linkup, R.style.CustomDialogStyle); this.linkup = linkup; setContentView(R.layout.time_dialog); setCancelable(false); setCanceledOnTouchOutside(false); shareHelper = new ShareUtil(getContext()); TextView btnBack = (TextView) findViewById(R.id.btnBack); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { levelTop.cancelUrlImages(); cancel(); linkup.onBackPressed(); } }); TextView btnShare = (TextView) findViewById(R.id.btnshare); btnShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String msg = String.format(getContext().getString(R.string.share_time), linkup.getLevelCfg().getLevelName(), StringUtil.secondToString(resultInfo.getTime())); // 分享 if (levelTop.getTopStatus() == LevelTopStatus.TopInfo) { // 带截图分享 shareHelper.shareMsgView(msg, levelTop); } else { shareHelper.shareMessage(msg); } } }); TextView btnAgain = (TextView) findViewById(R.id.btnAgain); btnAgain.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { levelTop.cancelUrlImages(); cancel(); linkup.start(); } }); TextView btnNext = (TextView) findViewById(R.id.btnNext); btnNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { levelTop.cancelUrlImages(); cancel(); linkup.next(); } }); levelTop = (LevelTop) findViewById(R.id.time_top); levelTop.setUploadListener(this); } /** * 处理返回键 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { TextView btn = (TextView) findViewById(R.id.btnBack); btn.performClick(); return true; } return super.onKeyDown(keyCode, event); } /** * 显示游戏胜利对话框 * * @param resultInfo * 游戏结果 */ public void showDialog(ResultInfo resultInfo) { this.resultInfo = resultInfo; TextView tvTime = (TextView) findViewById(R.id.success_time); tvTime.setText(StringUtil.secondToString(resultInfo.getTime()) + getContext().getString(R.string.time_unit)); TextView tvRecord = (TextView) findViewById(R.id.time_record); tvRecord.setText(StringUtil.secondToString(linkup.getLevelCfg().getMinTime()) + getContext().getString(R.string.time_unit)); ImageView ivRecord = (ImageView) findViewById(R.id.level_champion); TextView tvDiamond = (TextView) findViewById(R.id.level_diamond_reward); tvDiamond.setText("+" + String.valueOf(resultInfo.getStars())); TextView tvCoin = (TextView) findViewById(R.id.level_coin_reward); tvCoin.setText("+" + String.valueOf(resultInfo.getScore() / 10)); ivRecord.setVisibility(View.INVISIBLE); if (resultInfo.isNewRecord()) { ivRecord.setVisibility(View.VISIBLE); } if (levelTop != null) { levelTop.reset(); } uploadTime(); show(); } /** * 上传时间 */ private void uploadTime() { // 判断是否已登录 if (!resultInfo.getUserId().equals("")) { LevelInfo timeInfo = new LevelInfo(); timeInfo.setUserId(resultInfo.getUserId()); timeInfo.setLevel(resultInfo.getLevel()); timeInfo.setDiamond(resultInfo.getStars()); timeInfo.setGold(resultInfo.getScore() / 10); // 增加奖励的钻石和金币 WelcomeActivity.userInfo.addDiamond(getContext(), timeInfo.getDiamond()); if (resultInfo.isNewRecord()) { timeInfo.setScore(resultInfo.getScore()); timeInfo.setTime(resultInfo.getTime()); WelcomeActivity.userInfo.addGold(getContext(), timeInfo.getGold()); UserScore.addGetResult(timeInfo, levelTop.netMsgHandler); } else { if (!resultInfo.isUpload()) { timeInfo.setScore(resultInfo.getMaxScore()); timeInfo.setTime(resultInfo.getMinTime()); WelcomeActivity.userInfo.addGold(getContext(), timeInfo.getGold()); UserScore.addGetResult(timeInfo, levelTop.netMsgHandler); } else { // 获取排行榜 UserScore.getLevelTops(resultInfo.getLevel(), levelTop.netMsgHandler); } } } else { // 没有登录则提示登录 } } @Override public void onLoginSuccess(Message msg) { UserInfo userInfo = WelcomeActivity.userInfo; if (userInfo != null) { resultInfo.setUserId(userInfo.getUserId()); uploadTime(); } } @Override public void onLevelResultAdd(Message msg) { // 更新是否已上传 linkup.getLevelCfg().setUpload(true); LevelScore ls = new LevelScore(resultInfo.getLevel()); ls.setIsUpload(1); DbScore.updateUpload(ls); // 获取排行榜 // UserScore.getLevelTops(resultInfo.getLevel(), levelTop.netMsgHandler); } }