/**
* galaxy inc.
* meetup client for android
*/
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.util.EsLog;
/**
*
* @author sihai
*
*/
public class EsDeepLinkInstallsData {
private static final String PROJECTION[] = {
"package_name", "name", "source_name", "embed_deep_link", "launch_source"
};
static void cleanupData(SQLiteDatabase sqlitedatabase)
{
int i = sqlitedatabase.delete("deep_link_installs", null, null);
if(EsLog.isLoggable("DeepLinking", 3))
Log.d("DeepLinking", (new StringBuilder("cleanupData deleted deep link installs: ")).append(i).toString());
}
public static DeepLinkInstall getByPackageName(Context context, EsAccount esaccount, String s)
{
Cursor cursor = null;
try {
cursor = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase().query("deep_link_installs_view", PROJECTION, "package_name=?", new String[] {
s
}, null, null, null, null);
if(null == cursor) {
boolean flag = EsLog.isLoggable("DeepLinking", 5);
if(flag)
{
Log.w("DeepLinking", (new StringBuilder("no deep link install data found for ")).append(s).toString());
}
return null;
} else {
if(cursor.moveToFirst()) {
return DeepLinkInstall.newInstance(cursor);
}
}
return null;
} finally {
if(null != cursor) {
cursor.close();
}
}
}
public static void insert(Context context, EsAccount esaccount, String s, String s1, String s2, String s3)
{
SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase();
ContentValues contentvalues = new ContentValues();
contentvalues.put("timestamp", Long.valueOf(System.currentTimeMillis()));
contentvalues.put("package_name", s);
contentvalues.put("launch_source", s3);
contentvalues.put("activity_id", s1);
contentvalues.put("author_id", s2);
if(sqlitedatabase.replace("deep_link_installs", null, contentvalues) <= 0L && EsLog.isLoggable("DeepLinking", 5))
Log.w("DeepLinking", (new StringBuilder("failed to add deep link install data for ")).append(s).toString());
}
public static void removeByPackageName(Context context, EsAccount esaccount, String s)
{
SQLiteDatabase sqlitedatabase;
sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase();
try {
sqlitedatabase.beginTransaction();
if(sqlitedatabase.delete("deep_link_installs", "package_name=?", new String[] {s}) <= 0 && EsLog.isLoggable("DeepLinking", 5))
Log.w("DeepLinking", (new StringBuilder("failed to delete deep link install data for ")).append(s).toString());
sqlitedatabase.setTransactionSuccessful();
} finally {
sqlitedatabase.endTransaction();
}
}
public static void removeStaleEntries(Context context, EsAccount esaccount) {
if(null == esaccount) {
return;
}
SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(context, esaccount).getWritableDatabase();
try {
sqlitedatabase.beginTransaction();
long l = System.currentTimeMillis() - 0x36ee80L;
String as[] = new String[1];
as[0] = Long.toString(l);
int i = sqlitedatabase.delete("deep_link_installs", "timestamp<?", as);
if(i > 0 && EsLog.isLoggable("DeepLinking", 3))
Log.d("DeepLinking", (new StringBuilder()).append(i).append(" stale deep link install row(s) deleted").toString());
sqlitedatabase.setTransactionSuccessful();
} finally {
sqlitedatabase.endTransaction();
}
}
public static final class DeepLinkInstall {
public final String authorName;
public final String creationSource;
public final String data;
public final String launchSource;
public final String packageName;
private DeepLinkInstall(String s, String s1, String s2, String s3, String s4)
{
authorName = s;
creationSource = s1;
packageName = s2;
launchSource = s3;
data = s4;
}
public final String toString()
{
Object aobj[] = new Object[5];
aobj[0] = authorName;
aobj[1] = creationSource;
aobj[2] = packageName;
aobj[3] = launchSource;
aobj[4] = data;
return String.format("DeepLinkInstall: authorName=%s, appName=%s, packageName=%s, launchSource=%s, data=%s", aobj);
}
static DeepLinkInstall newInstance(Cursor cursor)
{
String s = "";
byte abyte0[] = cursor.getBlob(cursor.getColumnIndex("embed_deep_link"));
if(abyte0 != null)
s = DbEmbedDeepLink.deserialize(abyte0).getDeepLinkId();
return new DeepLinkInstall(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("source_name")), cursor.getString(cursor.getColumnIndex("package_name")), cursor.getString(cursor.getColumnIndex("launch_source")), s);
}
}
}