// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) package com.openvehicles.OVMS; import android.app.Activity; import android.os.*; import android.util.Log; import android.view.View; import android.widget.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import org.achartengine.ChartFactory; import org.achartengine.model.CategorySeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; // Referenced classes of package com.openvehicles.OVMS: // CarData, GPRSUtilization, GPRSUtilizationData, OVMSActivity public class Tab_SubTabDataUtilizations extends Activity { public Tab_SubTabDataUtilizations() { lastRefresh = null; lastVehicleID = ""; chart = null; handler = new Handler() { public void handleMessage(Message message) { refreshChart(); _L1: return; Exception exception; exception; exception.printStackTrace(); if(data.Data_GPRSUtilization != null) data.Data_GPRSUtilization.Clear(); Toast.makeText(Tab_SubTabDataUtilizations.this, "Tap refresh button to update data", 0).show(); goto _L1 } final Tab_SubTabDataUtilizations this$0; { this$0 = Tab_SubTabDataUtilizations.this; super(); } } ; } private void refreshChart() { if(data.Data_GPRSUtilization != null) goto _L2; else goto _L1 _L1: return; _L2: SimpleDateFormat simpledateformat; SimpleDateFormat simpledateformat1; Date date; simpledateformat = new SimpleDateFormat("MMM dd"); simpledateformat.setTimeZone(TimeZone.getDefault()); simpledateformat1 = new SimpleDateFormat("yyyy-MM-dd"); date = null; Date date5 = simpledateformat1.parse(simpledateformat1.format(new Date())); date = date5; _L3: Date date2; long l; long l1; long l2; int i; Calendar calendar = Calendar.getInstance(); calendar.add(2, -1); Date date1 = ((GPRSUtilizationData)data.Data_GPRSUtilization.Utilizations.get(-1 + data.Data_GPRSUtilization.Utilizations.size())).DataDate; date2 = ((GPRSUtilizationData)data.Data_GPRSUtilization.Utilizations.get(0)).DataDate; StringBuilder stringbuilder = (new StringBuilder("Summing data from: ")).append(date1.toLocaleString()).append(" to ").append(date2.toLocaleString()).append(" flags "); data.Data_GPRSUtilization; data.Data_GPRSUtilization; Log.d("CHART", stringbuilder.append(3).toString()); GPRSUtilization gprsutilization = data.Data_GPRSUtilization; data.Data_GPRSUtilization; data.Data_GPRSUtilization; l = gprsutilization.GetUtilizationBytes(date1, 3); GPRSUtilization gprsutilization1 = data.Data_GPRSUtilization; Date date3 = calendar.getTime(); data.Data_GPRSUtilization; data.Data_GPRSUtilization; l1 = gprsutilization1.GetUtilizationBytes(date3, 3); GPRSUtilization gprsutilization2 = data.Data_GPRSUtilization; data.Data_GPRSUtilization; data.Data_GPRSUtilization; l2 = gprsutilization2.GetUtilizationBytes(date, 3); i = 1 + (int)((date.getTime() - date1.getTime()) / 0x5265c00L); Log.d("CHART", (new StringBuilder("Total Bars: ")).append(i).toString()); if(i != 0) break MISSING_BLOCK_LABEL_381; Toast.makeText(this, "No data to plot", 0).show(); goto _L1 ParseException parseexception; parseexception; parseexception.printStackTrace(); goto _L3 long l3; String as[]; ArrayList arraylist; int j; int k; l3 = 0L; as = new String[2]; as[0] = "CAR TX"; as[1] = "CAR RX"; arraylist = new ArrayList(); arraylist.add(new double[i]); arraylist.add(new double[i]); j = i - 1; Log.d("CHART", (new StringBuilder("today: ")).append(date.toGMTString()).append(" data start: ").append(date2.toGMTString()).toString()); if(date2.before(date)) { int j2 = (int)((date2.getTime() - date.getTime()) / 0x5265c00L); Log.d("CHART", (new StringBuilder("initial skip: ")).append(j2).toString()); j += j2; } k = 0; _L6: int i1 = data.Data_GPRSUtilization.Utilizations.size(); if(k < i1) goto _L5; else goto _L4 _L4: XYMultipleSeriesRenderer xymultipleseriesrenderer; Calendar calendar1; int i2; int ai[] = new int[2]; ai[0] = -256; ai[1] = 0xff00ffff; xymultipleseriesrenderer = buildBarRenderer(ai); calendar1 = Calendar.getInstance(); calendar1.add(5, -1); i2 = i - 1; _L7: if(i2 > 0) break MISSING_BLOCK_LABEL_1317; setChartSettings(xymultipleseriesrenderer, "GPRS Data Utilization", "Date", "KB", 0.0D, i, 0.0D, 1.1000000000000001D * (double)l3, 0xff888888, -1); xymultipleseriesrenderer.getSeriesRendererAt(1).setDisplayChartValues(false); xymultipleseriesrenderer.getSeriesRendererAt(1).setGradientEnabled(true); xymultipleseriesrenderer.getSeriesRendererAt(1).setGradientStart(0.0D, -1); xymultipleseriesrenderer.getSeriesRendererAt(1).setGradientStop(5D, 0xff00ffff); xymultipleseriesrenderer.getSeriesRendererAt(1).setChartValuesTextSize(13F); xymultipleseriesrenderer.getSeriesRendererAt(0).setDisplayChartValues(true); xymultipleseriesrenderer.getSeriesRendererAt(0).setGradientEnabled(true); xymultipleseriesrenderer.getSeriesRendererAt(0).setGradientStart(0.0D, -1); xymultipleseriesrenderer.getSeriesRendererAt(0).setGradientStop(10D, -256); xymultipleseriesrenderer.getSeriesRendererAt(0).setChartValuesTextSize(13F); xymultipleseriesrenderer.setXLabels(0); xymultipleseriesrenderer.setYLabels(10); xymultipleseriesrenderer.setXLabelsAlign(android.graphics.Paint.Align.LEFT); xymultipleseriesrenderer.setYLabelsAlign(android.graphics.Paint.Align.LEFT); xymultipleseriesrenderer.setPanEnabled(true, false); xymultipleseriesrenderer.setZoomEnabled(false, false); xymultipleseriesrenderer.setBarSpacing(1.0D); LinearLayout linearlayout = (LinearLayout)findViewById(0x7f090015); if(chart != null) linearlayout.removeView(chart); chart = ChartFactory.getBarChartView(this, buildBarDataset(as, arraylist), xymultipleseriesrenderer, org.achartengine.chart.BarChart.Type.STACKED); linearlayout.addView(chart); TextView textview = (TextView)findViewById(0x7f090014); long l5 = (long)Math.ceil((double)l2 / 1024D); Object aobj[] = new Object[1]; aobj[0] = Long.valueOf(l5); textview.setText(String.format("%s KB", aobj)); TextView textview1 = (TextView)findViewById(0x7f090013); GPRSUtilizationData gprsutilizationdata; long l4; int j1; Date date4; int k1; TextView textview2; if(l1 > 0x100000L) { Object aobj4[] = new Object[1]; aobj4[0] = Long.valueOf((long)Math.ceil((double)l1 / 1024D / 1024D)); textview1.setText(String.format("%s MB", aobj4)); } else { Object aobj1[] = new Object[1]; aobj1[0] = Long.valueOf((long)Math.ceil((double)l1 / 1024D)); textview1.setText(String.format("%s KB", aobj1)); } textview2 = (TextView)findViewById(0x7f090012); if(l > 0x100000L) { Object aobj3[] = new Object[1]; aobj3[0] = Long.valueOf((long)Math.ceil((double)l / 1024D / 1024D)); textview2.setText(String.format("%s MB", aobj3)); } else { Object aobj2[] = new Object[1]; aobj2[0] = Long.valueOf((long)Math.ceil((double)l / 1024D)); textview2.setText(String.format("%s KB", aobj2)); } goto _L1 _L5: gprsutilizationdata = (GPRSUtilizationData)data.Data_GPRSUtilization.Utilizations.get(k); if(j < 0) { Log.d("CHART", "Ignoring a rendering error"); j = 0; } ((double[])arraylist.get(0))[j] = Math.ceil((double)(gprsutilizationdata.Car_tx + gprsutilizationdata.Car_rx) / 1024D); ((double[])arraylist.get(1))[j] = Math.ceil((double)gprsutilizationdata.Car_rx / 1024D); l4 = (long)Math.ceil((double)(gprsutilizationdata.Car_rx + gprsutilizationdata.Car_tx) / 1024D); if(l4 > l3) l3 = l4; j1 = -1 + data.Data_GPRSUtilization.Utilizations.size(); if(k < j1) { date4 = ((GPRSUtilizationData)data.Data_GPRSUtilization.Utilizations.get(k + 1)).DataDate; k1 = (int)((date4.getTime() - gprsutilizationdata.DataDate.getTime()) / 0x5265c00L); if(k1 < -1) Log.d("CHART", (new StringBuilder("curr: ")).append(gprsutilizationdata.DataDate.toGMTString()).append(" next: ").append(date4.toGMTString()).append(" skip: ").append(k1).toString()); j += k1; } k++; goto _L6 if(i2 % 7 == (i - 1) % 7) xymultipleseriesrenderer.addXTextLabel(i2, simpledateformat.format(calendar1.getTime())); calendar1.add(5, -1); i2--; goto _L7 } private void requestData() { Toast.makeText(this, "Requesting Data...", 1).show(); data.Data_GPRSUtilization.Clear(); mOVMSActivity.SendServerCommand("C30"); } public void Refresh(CarData cardata, boolean flag) { data = cardata; if(data.Data_GPRSUtilization == null || !lastVehicleID.equals(data.VehicleID) || data.Data_GPRSUtilization.LastDataRefresh != null && !data.Data_GPRSUtilization.LastDataRefresh.equals(lastRefresh)) { lastVehicleID = data.VehicleID; lastRefresh = data.Data_GPRSUtilization.LastDataRefresh; handler.sendEmptyMessage(0); } } protected XYMultipleSeriesDataset buildBarDataset(String as[], List list) { XYMultipleSeriesDataset xymultipleseriesdataset; int i; int j; xymultipleseriesdataset = new XYMultipleSeriesDataset(); i = as.length; j = 0; _L2: if(j >= i) return xymultipleseriesdataset; CategorySeries categoryseries = new CategorySeries(as[j]); double ad[] = (double[])list.get(j); int k = ad.length; int l = 0; do { label0: { if(l < k) break label0; xymultipleseriesdataset.addSeries(categoryseries.toXYSeries()); j++; } if(true) continue; categoryseries.add(ad[l]); l++; } while(true); if(true) goto _L2; else goto _L1 _L1: } protected XYMultipleSeriesRenderer buildBarRenderer(int ai[]) { XYMultipleSeriesRenderer xymultipleseriesrenderer = new XYMultipleSeriesRenderer(); xymultipleseriesrenderer.setAxisTitleTextSize(16F); xymultipleseriesrenderer.setChartTitleTextSize(20F); xymultipleseriesrenderer.setLabelsTextSize(15F); xymultipleseriesrenderer.setLegendTextSize(15F); int i = ai.length; int j = 0; do { if(j >= i) return xymultipleseriesrenderer; SimpleSeriesRenderer simpleseriesrenderer = new SimpleSeriesRenderer(); simpleseriesrenderer.setColor(ai[j]); xymultipleseriesrenderer.addSeriesRenderer(simpleseriesrenderer); j++; } while(true); } public void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(0x7f030007); mOVMSActivity = (OVMSActivity)getParent().getParent(); if(mOVMSActivity == null) mOVMSActivity = (OVMSActivity)getParent(); if(mOVMSActivity == null) Toast.makeText(this, "Unexpected Layout Error - controls on this page may not work", 1).show(); else ((ImageButton)findViewById(0x7f090011)).setOnClickListener(new android.view.View.OnClickListener() { public void onClick(View view) { requestData(); } final Tab_SubTabDataUtilizations this$0; { this$0 = Tab_SubTabDataUtilizations.this; super(); } } ); } protected void setChartSettings(XYMultipleSeriesRenderer xymultipleseriesrenderer, String s, String s1, String s2, double d, double d1, double d2, double d3, int i, int j) { xymultipleseriesrenderer.setChartTitle(s); xymultipleseriesrenderer.setXTitle(s1); xymultipleseriesrenderer.setYTitle(s2); xymultipleseriesrenderer.setXAxisMin(d); xymultipleseriesrenderer.setXAxisMax(d1); xymultipleseriesrenderer.setYAxisMin(d2); xymultipleseriesrenderer.setYAxisMax(d3); xymultipleseriesrenderer.setAxesColor(i); xymultipleseriesrenderer.setLabelsColor(j); } View chart; private CarData data; private Handler handler; private boolean isLoggedIn; private Date lastRefresh; private String lastVehicleID; private OVMSActivity mOVMSActivity; }