package com.openvehicles.OVMS;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import android.content.Context;
import android.util.Log;
public class GPRSUtilization implements Serializable {
public static final transient int FLAG_APP_RX = 4;
public static final transient int FLAG_APP_TX = 8;
public static final transient int FLAG_CAR_RX = 1;
public static final transient int FLAG_CAR_TX = 2;
private static final long serialVersionUID = 3347602214911458385L;
public Date LastDataRefresh = null;
public ArrayList<GPRSUtilizationData> Utilizations;
private transient Context mContext;
private final String settingsFileName = "OVMSSavedGPRSUtilization.obj";
public GPRSUtilization(Context paramContext) {
this.mContext = paramContext;
try {
Log.d("OVMS",
"Loading saved GPRS utilizations from internal storage file: OVMSSavedGPRSUtilization.obj");
ObjectInputStream localObjectInputStream = new ObjectInputStream(
paramContext.openFileInput("OVMSSavedGPRSUtilization.obj"));
this.Utilizations = ((ArrayList) localObjectInputStream
.readObject());
localObjectInputStream.close();
Object[] arrayOfObject = new Object[1];
arrayOfObject[0] = Integer.valueOf(this.Utilizations.size());
Log.d("OVMS", String.format("Loaded %s saved utilizations.",
arrayOfObject));
return;
} catch (Exception localException) {
while (true) {
Log.d("ERR", localException.getMessage());
Log.d("OVMS", "Initializing with utilization data.");
this.Utilizations = new ArrayList();
Save();
}
}
}
public void AddData(GPRSUtilizationData paramGPRSUtilizationData) {
this.Utilizations.add(paramGPRSUtilizationData);
}
public void AddData(Date paramDate, long paramLong1, long paramLong2,
long paramLong3, long paramLong4) {
AddData(new GPRSUtilizationData(paramDate, paramLong1, paramLong2,
paramLong3, paramLong4));
}
public void Clear() {
this.Utilizations = new ArrayList();
}
public long GetUtilizationBytes(Date paramDate, int paramInt) {
long l = 0L;
for (int i = 0;; i++) {
if (i >= this.Utilizations.size())
return l;
GPRSUtilizationData localGPRSUtilizationData = (GPRSUtilizationData) this.Utilizations
.get(i);
if ((localGPRSUtilizationData.DataDate.after(paramDate))
|| (localGPRSUtilizationData.DataDate.equals(paramDate))) {
if ((paramInt & 0x1) == 1)
l += localGPRSUtilizationData.Car_rx;
if ((paramInt & 0x2) == 2)
l += localGPRSUtilizationData.Car_tx;
if ((paramInt & 0x4) == 4)
l += localGPRSUtilizationData.App_rx;
if ((paramInt & 0x8) == 8)
l += localGPRSUtilizationData.App_tx;
}
}
}
public void Save() {
try {
Log.d("OVMS", "Saving GPRS utilizations data to interal storage...");
if (this.mContext == null) {
Log.d("OVMS", "Context == null. Saving aborted.");
} else {
ObjectOutputStream localObjectOutputStream = new ObjectOutputStream(
this.mContext.openFileOutput(
"OVMSSavedGPRSUtilization.obj", 0));
localObjectOutputStream.writeObject(this.Utilizations);
localObjectOutputStream.close();
Object[] arrayOfObject = new Object[1];
arrayOfObject[0] = Integer.valueOf(this.Utilizations.size());
Log.d("OVMS", String.format("Saved %s records.", arrayOfObject));
}
} catch (Exception localException) {
localException.printStackTrace();
Log.d("ERR", localException.getMessage());
}
}
public void Save(Context paramContext) {
this.mContext = paramContext;
Save();
}
}