|
package com.electric.chargingpile.activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.DuiHuanAdapter;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.util.BarColorUtil;
import com.electric.chargingpile.util.DES3;
import com.electric.chargingpile.util.JsonUtils;
import com.electric.chargingpile.util.OkHttpUtil;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.umeng.analytics.MobclickAgent;
import com.zhy.autolayout.AutoLayoutActivity;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import org.json.JSONArray;
import org.json.JSONObject;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.onekeyshare.OnekeyShare;
import okhttp3.Call;
public class ChargingCoinsActivity extends AutoLayoutActivity implements View.OnClickListener {
private static final String TAG = "ChargingCoinsActivity";
private ImageView iv_back;
ListView listview;
private String integral, integral2;
private TextView tv_chongdianbi, tv_shop, tv_guize;
private LinearLayout ll_list;
private LinearLayout rl_list;
private DuiHuanAdapter duiHuanAdapter;
ArrayList<JSONObject> datas = new ArrayList<JSONObject>();
private Handler handler = new Handler() {
// 主线程通过这个方法处理消息
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
try {
// JSONObject jsonObj = new JSONObject(msg.obj.toString());
String json = (String) msg.obj;
Log.e("json===", json);
String data = JsonUtils.getKeyResult(json, "data");
Log.e("data===", data);
String rtnCode = JsonUtils.getKeyResult(msg.obj.toString(), "rtnCode");
Log.e("rtnCode===", rtnCode);
//
// String decode_data = DES3.decode(json);
// Log.e("decode_data",decode_data);
JSONArray jsonArray = new JSONArray(data);
datas.clear();
for (int j = 0; j < jsonArray.length(); j++) {
JSONObject jsonObject4 = (JSONObject) jsonArray
.opt(j);
datas.add(jsonObject4);
}
Log.d("11111", datas.size() + "");
System.out.print("1111:" + datas.size());
if (datas.size() == 0) {
// listview.setVisibility(View.GONE);
rl_list.setVisibility(View.GONE);
ll_list.setVisibility(View.GONE);
// ll_kong.setVisibility(View.VISIBLE);
} else {
rl_list.setVisibility(View.VISIBLE);
ll_list.setVisibility(View.VISIBLE);
}
duiHuanAdapter = new DuiHuanAdapter(datas);
listview.setAdapter(duiHuanAdapter);
} catch (Exception e) {
e.printStackTrace();
}
break;
case 2:
try {
JSONObject jsonObj = new JSONObject(msg.obj.toString());
//兑换用的积分
integral2 = jsonObj.getString("integral2");
//判断等级的积分
integral = jsonObj.getString("integral");
// Log.e("!!!",integral);
int dengjiden = Integer.parseInt(integral);
// Log.e("!!!",dengjiden+"");
// if (dengjiden<100 && dengjiden>0){
// iv_rank.setImageResource(R.drawable.dengji1);
// }else if (dengjiden >= 100 &&dengjiden<200){
// iv_rank.setImageResource(R.drawable.dengji2);
// }else if (dengjiden >= 200 &&dengjiden<400){
// iv_rank.setImageResource(R.drawable.dengji3);
// }else if (dengjiden >= 400 &&dengjiden<700){
// iv_rank.setImageResource(R.drawable.dengji4);
// }else if (dengjiden >= 700 &&dengjiden<1000){
// iv_rank.setImageResource(R.drawable.dengji5);
// }else if (dengjiden >= 1000){
// iv_rank.setImageResource(R.drawable.dengji6);
// }
// show_userPoints.setText("充电币:" + integral2);
tv_chongdianbi.setText(integral2);
return;
} catch (Exception e) {
e.printStackTrace();
}
break;
case 3:
Toast.makeText(getApplication(), "服务器处理错误", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_charging_coins);
BarColorUtil.initStatusBarColor(ChargingCoinsActivity.this);
initViews();
// getIntegration();
}
private void initViews() {
iv_back = (ImageView) findViewById(R.id.iv_back);
iv_back.setOnClickListener(this);
tv_chongdianbi = (TextView) findViewById(R.id.tv_chongdianbi);
listview = (ListView) this.findViewById(R.id.listview);
tv_shop = (TextView) findViewById(R.id.tv_shop);
tv_shop.setOnClickListener(this);
ll_list = (LinearLayout) findViewById(R.id.ll_jilu);
rl_list = (LinearLayout) findViewById(R.id.rl_list);
tv_guize = (TextView) findViewById(R.id.tv_guize);
tv_guize.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
finish();
break;
case R.id.tv_shop:
goShop();
break;
case R.id.tv_guize:
Intent intent = new Intent(getApplication(), IntegralDescriptionActivity.class);
intent.putExtra("url", "http://evcharge.cc/cdz/coin-rule.html");
startActivity(intent);
break;
default:
break;
}
}
private void getData() {
new Thread(new Runnable() {
@Override
public void run() {
getitem("222222222222");
}
}).start();
}
private void getitem(String sms) {
long appTime1 = System.currentTimeMillis() / 1000;
Log.i("appTime(long)---", appTime1 + "");
long updatetime = appTime1 - MainMapActivity.cha - 3;
Log.i("updatetime(long)---", updatetime + "");
Log.i("cha---", MainMapActivity.cha + "");
String token = String.valueOf(updatetime);
String encode_token = null;
try {
encode_token = DES3.encode(token);
} catch (Exception e) {
e.printStackTrace();
}
String replace = URLEncoder.encode(encode_token);
String url = MainApplication.url + "/zhannew/basic/web/index.php/mall/record_v2?userid=" + MainApplication.userId + "&token=" + replace;
Log.e("url", url);
Request request = new Request.Builder().url(url).build();
Response response = null;
try {
if (request == null) {
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
return;
}
response = OkHttpUtil.execute(request);
if (response.code() == 200) {
String json = "";
try {
json = response.body().string();
Message msg = new Message();
msg.obj = json;
msg.what = 1;
handler.sendMessage(msg);
Log.e("url", json);
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
@Override
protected void onResume() {
super.onResume();
getUserIntegral();
getData();
}
private void getUserIntegral() {
String replace = null;
try {
long appTime1 = System.currentTimeMillis() / 1000;
long updatetime = appTime1 - MainMapActivity.cha - 3;
String token = String.valueOf(updatetime);
String encode_token = DES3.encode(token);
replace = URLEncoder.encode(encode_token);
} catch (Exception e) {
e.printStackTrace();
}
String url = MainApplication.url + "/zhannew/basic/web/index.php/member/get-score?id=" + MainApplication.userId +
"&phone=" + MainApplication.userPhone + "&password=" + MainApplication.userPassword + "&token=" + replace;
OkHttpUtils.get().url(url).build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
}
@Override
public void onResponse(String response) {
// Log.e(TAG, "onResponse: "+response );
String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
if (null != rtnCode && rtnCode.equals("01")) {
String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg");
String count_score = JsonUtils.getKeyResult(rtnMsg, "count_score");
String money = JsonUtils.getKeyResult(rtnMsg, "money");
String hongbao1 = JsonUtils.getKeyResult(rtnMsg, "hongbao");
if (null != count_score && !count_score.equals("")) {
tv_chongdianbi.setText(count_score);
}
}
}
});
}
private void goShop() {
long appTime11 = System.currentTimeMillis() / 1000;
Log.i("appTime(long)---", appTime11 + "");
long updatetime1 = appTime11 - MainMapActivity.cha - 5;
Log.i("updatetime(long)---", updatetime1 + "");
Log.i("cha---", MainMapActivity.cha + "");
String token1 = String.valueOf(updatetime1);
String encode_token = null;
try {
encode_token = DES3.encode(token1);
} catch (Exception e) {
e.printStackTrace();
}
String replace = URLEncoder.encode(encode_token);
// startActivity(new Intent(getApplication(), ShopActivity.class));
Intent intent11 = new Intent();
intent11.setClass(ChargingCoinsActivity.this, CreditActivity.class);
intent11.putExtra("navColor", "#fcfcfc"); //配置导航条的背景颜色,请用#ffffff长格式。
intent11.putExtra("titleColor", "#222222"); //配置导航条标题的颜色,请用#ffffff长格式。
MainApplication.goods_type = "shop";
if (!MainApplication.isLogin()) {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
} else {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?user_id=" + MainApplication.userId + "&token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
}
startActivity(intent11);
CreditActivity.creditsListener = new CreditActivity.CreditsListener() {
/**
* 当点击分享按钮被点击
* @param shareUrl 分享的地址
* @param shareThumbnail 分享的缩略图
* @param shareTitle 分享的标题
* @param shareSubtitle 分享的副标题
*/
public void onShareClick(WebView webView, String shareUrl, String shareThumbnail, String shareTitle, String shareSubtitle) {
//当分享按钮被点击时,会调用此处代码。在这里处理分享的业务逻辑。
// new AlertDialog.Builder(webView.getContext())
// .setTitle("分享信息")
// .setItems(new String[] {"标题:"+shareTitle,"副标题:"+shareSubtitle,"缩略图地址:"+shareThumbnail,"链接:"+shareUrl}, null)
// .setNegativeButton("确定", null)
// .show();
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(shareTitle);
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl(shareUrl);
// text是分享文本,所有平台都需要这个字段
oks.setText("");
// oks.setText("最准最全的找桩神器\n地址:" + zhan.getZhan_address());
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
// oks.setImagePath();//确保SDcard下面存在此张图片
oks.setImageUrl(shareThumbnail);
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(shareUrl);
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl(shareUrl);
// 启动分享GUI
oks.show(getApplication());
oks.setCallback(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
// shareGetPoints();
// new Thread(new Runnable() {
// @Override
// public void run() {
Toast.makeText(getApplication(), "分享成功", Toast.LENGTH_SHORT).show();
if (MainApplication.isLogin()) {
// shareGetPoints();
}
Log.e("onComplete", "分享成功");
// }
// }).start();
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
}
@Override
public void onCancel(Platform platform, int i) {
}
});
}
/**
* 当点击“请先登录”按钮唤起登录时,会调用此处代码。
* 用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
* @param webView 用于登录成功后返回到当前的webview刷新登录状态。
* @param currentUrl 当前页面的url
*/
public void onLoginClick(WebView webView, final String currentUrl) {
//当未登录的用户点击去登录时,会调用此处代码。
//用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
//为了用户登录后能回到未登录前的页面(currentUrl)。
//当用户登录成功后,需要重新请求一次服务端,带上currentUrl。
//用该方法中的webview变量加载请求链接。
//服务端收到请求后在生成免登录url时,将currentUrl放入redirect参数,通知客户端302跳转到新生成的免登录URL。
new AlertDialog.Builder(webView.getContext())
.setTitle("跳转登录")
.setMessage("跳转到登录页面?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainApplication.current_url = currentUrl;
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
})
.setNegativeButton("否", null)
.show();
}
/**
* 当点击“复制”按钮时,触发该方法,回调获取到券码code
* @param webView webview对象。
* @param code 复制的券码
*/
public void onCopyCode(WebView webView, String code) {
//当未登录的用户点击去登录时,会调用此处代码。
new AlertDialog.Builder(webView.getContext())
.setTitle("复制券码")
.setMessage("已复制,券码为:" + code)
.setPositiveButton("是", null)
.setNegativeButton("否", null)
.show();
}
/**
* 积分商城返回首页刷新积分时,触发该方法。
*/
public void onLocalRefresh(WebView mWebView, String credits) {
//String credits为积分商城返回的最新积分,不保证准确。
//触发更新本地积分,这里建议用ajax向自己服务器请求积分值,比较准确。
// Toast.makeText(getApplicationContext(), "触发本地刷新积分:"+credits,Toast.LENGTH_SHORT).show();
}
};
MobclickAgent.onEvent(getApplicationContext(), "0022");
}
}
|