From 1b6d4163ff60828aa6e5043ad29d2167801caac7 Mon Sep 17 00:00:00 2001 From: haijiang <181069201@qq.com> Date: Wed, 18 Apr 2018 17:24:20 +0800 Subject: [PATCH] 修复bug,加入重连,铃声选择,小时数据 --- app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 145 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java b/app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java index 26fa55f..34c2be0 100644 --- a/app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java +++ b/app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java @@ -1,15 +1,22 @@ package com.moral.yunfushao.activity; +import android.app.AlertDialog; import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.annotation.IdRes; +import android.text.TextUtils; +import android.view.LayoutInflater; import android.view.View; +import android.view.Window; +import android.widget.Button; import android.widget.ImageView; import android.widget.RadioGroup; import android.widget.TextView; import com.lzy.okgo.cache.CacheMode; import com.moral.andbrickslib.utils.FastJsonTools; +import com.moral.andbrickslib.utils.NumberUtils; import com.moral.andbrickslib.utils.TimeUtil; import com.moral.yunfushao.MainApp; import com.moral.yunfushao.R; @@ -17,13 +24,19 @@ import com.moral.yunfushao.common.API; import com.moral.yunfushao.httputils.HttpCallBack; import com.moral.yunfushao.httputils.HttpUtils; +import com.moral.yunfushao.imageload.ImageLoader; import com.moral.yunfushao.model.UserData; + +import org.json.JSONException; +import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import lecho.lib.hellocharts.formatter.AxisValueFormatter; import lecho.lib.hellocharts.formatter.LineChartValueFormatter; +import lecho.lib.hellocharts.formatter.SimpleAxisValueFormatter; import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter; import lecho.lib.hellocharts.gesture.ContainerScrollType; import lecho.lib.hellocharts.gesture.ZoomType; @@ -50,9 +63,9 @@ private List<AxisValue> mAxisXValues = new ArrayList<>(); private RadioGroup rg_time; - private TextView tv_starttime,tv_endtime,tv_value; + private TextView tv_starttime,tv_endtime,tv_value,tv_status; private ImageView iv_pre,iv_next; - private int type=0; + private int type=2; @Override protected void getBundleExtras(Bundle extras) { @@ -66,7 +79,7 @@ @Override protected void initViews() { initTopBar(); - tv_title.setText("������������"); + tv_title.setText("������������"); chartView = findView(R.id.chart); initLineChart(); @@ -74,6 +87,7 @@ tv_starttime = findView(R.id.tv_starttime); tv_endtime = findView(R.id.tv_endtime); tv_value = findView(R.id.tv_value); + tv_status = findView(R.id.tv_status); iv_pre = findView(R.id.iv_pre); iv_next = findView(R.id.iv_next); rg_time.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @@ -86,7 +100,7 @@ data.setAxisXBottom(axisX); //x ������������ chartView.setLineChartData(data); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),-1)); - tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-7)); + tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-6)); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); break; case R.id.rb_month: @@ -98,11 +112,20 @@ tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-28)); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); break; + case R.id.rb_day: + type = 2; + axisX.setName("���������������������"); //������������ + data.setAxisXBottom(axisX); //x ������������ + chartView.setLineChartData(data); + tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),-1)); + tv_starttime.setText(tv_endtime.getText().toString()); + getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); + break; } } }); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),-1)); - tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-7)); + tv_starttime.setText(tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); } @@ -115,6 +138,7 @@ @Override protected void initData() { reshowChart(dataList); + getAd(); } @Override @@ -126,10 +150,13 @@ case R.id.iv_pre: if(type==0){ tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); - tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-7)); + tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-6)); }else if(type == 1){ tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-28)); + }else if(type == 2){ + tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); + tv_starttime.setText(tv_endtime.getText().toString()); } getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); break; @@ -139,10 +166,13 @@ } if(type==0){ tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); - tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),7)); + tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),6)); }else if(type == 1){ tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),28)); + }else if(type == 2){ + tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); + tv_endtime.setText(tv_starttime.getText().toString()); } getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); break; @@ -178,26 +208,28 @@ //��������� axisX = new Axis(); //X��� axisX.setHasTiltedLabels(true); //X���������������������������������������������true��������������� - axisX.setName("���������������������"); //������������ + axisX.setName("���������������������"); //������������ axisX.setTextSize(8);//������������������ - axisX.setTextColor(getResources().getColor(R.color.red_txt)); + axisX.setTextColor(getResources().getColor(R.color.blue_txt)); // axisX.setMaxLabelChars(7); //������������X���������������������������������������X���������������������7<=x<=mAxisXValues.length axisX.setValues(mAxisXValues); //������X������������������ axisX.setHasLines(true); //x ������������ - axisX.setLineColor(getResources().getColor(R.color.red_txt)); + axisX.setLineColor(getResources().getColor(R.color.blue_txt)); axisX.setHasSeparationLine(true); data.setAxisXBottom(axisX); //x ������������ //data.setAxisXTop(axisX); //x ������������ // Y���������������������������������������Y���������(���������������������������Y������������������������������) - axisY = Axis.generateAxisFromRange(0,100, (float) 0.01); //Y��� + axisY = Axis.generateAxisFromRange((float)0.0,(float)4.0, (float) 0.25); //Y��� axisY.setAutoGenerated(false); + AxisValueFormatter yvalue = new SimpleAxisValueFormatter(1); + axisY.setFormatter(yvalue); axisY.setHasLines(true); axisY.setHasSeparationLine(true); axisY.setName("������");//y��������� axisY.setTextSize(10);//������������������ - axisY.setTextColor(getResources().getColor(R.color.red_txt)); - axisY.setLineColor(getResources().getColor(R.color.red_txt)); + axisY.setTextColor(getResources().getColor(R.color.blue_txt)); + axisY.setLineColor(getResources().getColor(R.color.blue_txt)); data.setAxisYLeft(axisY); //Y������������������ //������������������������������������������������������ @@ -212,8 +244,8 @@ */ // chartView.setCurrentViewport(initViewPort(0,7)); final Viewport v = new Viewport(chartView.getMaximumViewport()); - v.bottom = 0; - v.top = 100; + v.bottom = (float) 0.0; + v.top = (float) 4.0; // // You have to set max and current viewports separately. chartView.setMaximumViewport(v); // // I changing current viewport with animation in this case. @@ -237,8 +269,14 @@ mPointValues.clear(); mAxisXValues.clear(); for (int i=0;i<dataList.size();i++){ - mPointValues.add(new PointValue(i,dataList.get(i).getDay_avg())); - mAxisXValues.add(new AxisValue(i).setLabel(dataList.get(i).getDate().substring(5,10))); + if(type == 2){ + mPointValues.add(new PointValue(i,dataList.get(i).getHour_avg())); + mAxisXValues.add(new AxisValue(i).setLabel((dataList.get(i).getTime_level()-1)*3+"���")); + }else{ + mPointValues.add(new PointValue(i,dataList.get(i).getDay_avg())); + mAxisXValues.add(new AxisValue(i).setLabel(dataList.get(i).getDate().substring(5,10))); + } + // mAxisXValues.add(new AxisValue(i).setLabel(i+"")); } @@ -250,8 +288,8 @@ data.setLines(lines); chartView.setLineChartData(data); final Viewport v = new Viewport(chartView.getMaximumViewport()); - v.bottom = 0; - v.top = 100; + v.bottom = (float) 0.0; + v.top = (float) 4.0; //// // You have to set max and current viewports separately. chartView.setMaximumViewport(v); // // I changing current viewport with animation in this case. @@ -273,13 +311,21 @@ if(progressDialog.isShowing()){ progressDialog.dismiss(); } - ArrayList<UserData> temp = (ArrayList<UserData>) FastJsonTools.getArrayJson(res,UserData.class); - dataList.clear(); + try { + JSONObject jsonObject = new JSONObject(res); + String data = jsonObject.optString("data"); + ArrayList<UserData> temp = (ArrayList<UserData>) FastJsonTools.getArrayJson(data,UserData.class); + dataList.clear(); - dataList.addAll(resetData(temp)); + dataList.addAll(resetData(temp)); - //������ - reshowChart(dataList); + //������ + reshowChart(dataList); + tv_value.setText(NumberUtils.getBigDecimalValue(jsonObject.optDouble("avg"),3)+"uSv"); + tv_status.setText(jsonObject.optString("status")); + } catch (JSONException e) { + e.printStackTrace(); + } } @Override @@ -298,7 +344,6 @@ //������ reshowChart(dataList); - tv_value.setText(0+"uSv"); } }); @@ -321,6 +366,13 @@ data.setDay_avg(0); newList.add(data); } + }else if(type == 2){//��� + for (int i=0;i<8;i++){ + UserData data = new UserData(); + data.setTime_level(i+1); + data.setHour_avg(0); + newList.add(data); + } } //������������ float totalValues = 0; @@ -328,15 +380,79 @@ for (UserData data : tempList){ totalValues+= data.getDay_avg(); for(UserData data1 : newList){ - if(data.getDate().equals(data1.getDate())){ - data1.setDay_avg(data.getDay_avg()); + if(type == 2){ + if(data.getTime_level() == data1.getTime_level()){ + data1.setHour_avg(data.getHour_avg()); + } + }else{ + if(data.getDate().equals(data1.getDate())){ + data1.setDay_avg(data.getDay_avg()); + } } + } } - tv_value.setText(totalValues/tempList.size()+"uSv"); +// tv_value.setText(totalValues/tempList.size()+"uSv"); }else{ - tv_value.setText(0+"uSv"); +// tv_value.setText(0+"uSv"); } return newList; } + + private AlertDialog adDialog; + private View adView; + private TextView tv_content,tv_name; + private ImageView iv_logo; + private Button bt_cancel,bt_ok; + private void showAd(String content,String logo,String name){ + adView = LayoutInflater.from(this).inflate(R.layout.dialog_ad_layout,null); + tv_content = (TextView) adView.findViewById(R.id.tv_content); + tv_name = (TextView) adView.findViewById(R.id.tv_name); + bt_cancel = (Button) adView.findViewById(R.id.bt_cancel); + bt_ok = (Button) adView.findViewById(R.id.bt_ok); + iv_logo = (ImageView) adView.findViewById(R.id.iv_logo); + tv_content.setText(content); + tv_name.setText(name); + ImageLoader.setCircleImageView(this,logo,iv_logo,R.mipmap.circle); + bt_cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + adDialog.dismiss(); + } + }); + adDialog = new AlertDialog.Builder(this).setView(adView).create(); + Window window=adDialog.getWindow(); + window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + adDialog.show(); + } + + + private void getAd(){ + HttpUtils.doPost(API.GETAD, null, CacheMode.DEFAULT, false, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + if(TextUtils.isEmpty(res)){ + return; + } + try { + JSONObject json = new JSONObject(res); + showAd(json.optString("content"),json.optString("logo"),json.optString("name")); + } catch (JSONException e) { + e.printStackTrace(); + } + + + } + + @Override + public void showLoadingDialog() { + + } + + @Override + public void onFail(int errno, String s) { + + } + }); + } } -- Gitblit v1.8.0