// 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.galaxy.meetup.client.android.content;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.galaxy.meetup.client.android.network.http.HttpTransactionMetrics;
import com.galaxy.meetup.client.util.EsLog;
// Referenced classes of package com.google.android.apps.plus.content:
// EsDatabaseHelper, EsProvider, EsAccount
public final class EsNetworkData {
private static interface StatsQuery {
public static final String PROJECTION[] = { "network_duration", "process_duration", "sent", "recv", "req_count" };
}
private static interface TransactionIdsQuery {
public static final String PROJECTION[] = { "_id" };
}
static void cleanupData() {
}
public static void clearTransactionData(Context context, EsAccount esaccount) {
SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase();
sqlitedatabase.beginTransaction();
sqlitedatabase.delete("network_data_transactions", null, null);
sqlitedatabase.setTransactionSuccessful();
sqlitedatabase.endTransaction();
context.getContentResolver().notifyChange(
EsProvider.appendAccountParameter(EsProvider.NETWORK_DATA_TRANSACTIONS_URI, esaccount), null);
sqlitedatabase.endTransaction();
}
private static void deleteOldTransactions(SQLiteDatabase sqlitedatabase) {
long l;
l = EsDatabaseHelper.getRowsCount(sqlitedatabase, "network_data_transactions", null, null);
if (EsLog.isLoggable("EsNetworkData", 3))
Log.d("EsNetworkData", (new StringBuilder("deleteOldTransactions count: ")).append(l).toString());
Cursor cursor;
StringBuffer stringbuffer;
cursor = sqlitedatabase.query("network_data_transactions", TransactionIdsQuery.PROJECTION, null, null, null,
null, "time ASC", Long.toString(l - 100L));
stringbuffer = new StringBuffer(256);
stringbuffer.append("_id IN(");
while (cursor.moveToNext()) {
stringbuffer.append('\'');
stringbuffer.append(cursor.getString(0));
stringbuffer.append('\'');
stringbuffer.append(',');
}
stringbuffer.append(')');
sqlitedatabase.delete("network_data_transactions", stringbuffer.toString(), null);
cursor.close();
}
public static void insertData(Context context, EsAccount esaccount, HttpTransactionMetrics httptransactionmetrics, Exception exception) {
if (EsLog.ENABLE_DOGFOOD_FEATURES)
if (httptransactionmetrics == null) {
Log.w("EsNetworkData", "Please use HttpTransactionMetrics for network traffic tracking",
new Throwable());
} else {
SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount)
.getWritableDatabase();
sqlitedatabase.beginTransaction();
ContentValues contentvalues = new ContentValues();
if (exception == null) {
httptransactionmetrics.log("EsNetworkData", " + ");
contentvalues.put("name", httptransactionmetrics.getName());
contentvalues.put("time", Long.valueOf(System.currentTimeMillis()));
contentvalues.put("network_duration", Long.valueOf(httptransactionmetrics.getDuration()));
contentvalues.put("process_duration", Long.valueOf(httptransactionmetrics.getProcessingDuration()));
contentvalues.put("sent", Long.valueOf(httptransactionmetrics.getSentBytes()));
contentvalues.put("recv", Long.valueOf(httptransactionmetrics.getReceivedBytes()));
contentvalues.put("req_count", Long.valueOf(httptransactionmetrics.getRequestCount()));
sqlitedatabase.insert("network_data_transactions", "_id", contentvalues);
deleteOldTransactions(sqlitedatabase);
} else {
if (exception.getMessage() == null) {
contentvalues.put("exception", exception.getClass().getSimpleName());
} else {
contentvalues.put(
"exception",
(new StringBuilder()).append(exception.getClass().getSimpleName()).append("[")
.append(exception.getMessage()).append("]").toString());
}
httptransactionmetrics
.log("EsNetworkData", (new StringBuilder(" + ")).append(exception).toString());
String as[] = { httptransactionmetrics.getName() };
Object obj = mSyncLock;
Cursor cursor = sqlitedatabase.query("network_data_stats", StatsQuery.PROJECTION, "name=?", as,
null, null, null);
if (cursor != null && cursor.moveToFirst()) {
ContentValues contentvalues1 = new ContentValues();
contentvalues1.put("last", Long.valueOf(System.currentTimeMillis()));
contentvalues1.put("network_duration",
Long.valueOf(httptransactionmetrics.getDuration() + cursor.getLong(0)));
contentvalues1.put("process_duration",
Long.valueOf(httptransactionmetrics.getProcessingDuration() + cursor.getLong(1)));
contentvalues1.put("sent",
Long.valueOf(httptransactionmetrics.getSentBytes() + cursor.getLong(2)));
contentvalues1.put("recv",
Long.valueOf(httptransactionmetrics.getReceivedBytes() + cursor.getLong(3)));
contentvalues1.put("req_count",
Long.valueOf(cursor.getLong(4) + httptransactionmetrics.getRequestCount()));
sqlitedatabase.update("network_data_stats", contentvalues1, "name=?", as);
contentvalues1.put("name", httptransactionmetrics.getName());
contentvalues1.put("first", Long.valueOf(System.currentTimeMillis()));
contentvalues1.put("last", Long.valueOf(System.currentTimeMillis()));
contentvalues1.put("network_duration", Long.valueOf(httptransactionmetrics.getDuration()));
contentvalues1.put("process_duration",
Long.valueOf(httptransactionmetrics.getProcessingDuration()));
contentvalues1.put("sent", Long.valueOf(httptransactionmetrics.getSentBytes()));
contentvalues1.put("recv", Long.valueOf(httptransactionmetrics.getReceivedBytes()));
contentvalues1.put("req_count", Integer.valueOf(1));
sqlitedatabase.insert("network_data_stats", "_id", contentvalues1);
cursor.close();
} else {
context.getContentResolver().notifyChange(
EsProvider.appendAccountParameter(EsProvider.NETWORK_DATA_TRANSACTIONS_URI, esaccount),
null);
context.getContentResolver().notifyChange(
EsProvider.appendAccountParameter(EsProvider.NETWORK_DATA_STATS_URI, esaccount), null);
Log.w("EsNetworkData", (new StringBuilder("Cannot insert network data for operation: "))
.append(httptransactionmetrics.getName()).toString());
}
sqlitedatabase.setTransactionSuccessful();
sqlitedatabase.endTransaction();
}
if (esaccount == null)
Log.w("EsNetworkData", "Account not specified");
}
}
public static void resetStatsData(Context context, EsAccount esaccount) {
SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase();
sqlitedatabase.beginTransaction();
sqlitedatabase.delete("network_data_stats", null, null);
sqlitedatabase.setTransactionSuccessful();
sqlitedatabase.endTransaction();
context.getContentResolver().notifyChange(
EsProvider.appendAccountParameter(EsProvider.NETWORK_DATA_STATS_URI, esaccount), null);
}
private static final Object mSyncLock = new Object();
}