/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.iu;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
/**
*
* @author sihai
*
*/
public class UploadsDatabaseHelper extends SQLiteOpenHelper {
private static UploadsDatabaseHelper sInstance;
private Context mContext;
private UploadsDatabaseHelper(Context context) {
super(context.getApplicationContext(), "iu.upload.db", null, 7);
mContext = context;
}
public static synchronized UploadsDatabaseHelper getInstance(Context context) {
UploadsDatabaseHelper uploadsdatabasehelper;
if(sInstance == null)
sInstance = new UploadsDatabaseHelper(context);
uploadsdatabasehelper = sInstance;
return uploadsdatabasehelper;
}
public final synchronized SQLiteDatabase getReadableDatabase() {
try {
return super.getReadableDatabase();
} catch (Throwable throwable) {
mContext.deleteDatabase("iu.upload.db");
return super.getReadableDatabase();
}
}
public final synchronized SQLiteDatabase getWritableDatabase() {
try {
return super.getWritableDatabase();
} catch (Throwable throwable) {
mContext.deleteDatabase("iu.upload.db");
return super.getWritableDatabase();
}
}
public final void onCreate(SQLiteDatabase sqlitedatabase) {
UploadTaskEntry.SCHEMA.createTables(sqlitedatabase);
MediaRecordEntry.SCHEMA.createTables(sqlitedatabase);
}
public final void onUpgrade(SQLiteDatabase sqlitedatabase, int i, int j) {
if(j == 4)
InstantUploadProvider.disableInstantShare(mContext);
UploadTaskEntry.SCHEMA.dropTables(sqlitedatabase);
MediaRecordEntry.SCHEMA.dropTables(sqlitedatabase);
if(i < 6)
try
{
sqlitedatabase.execSQL("DROP TABLE media_map");
sqlitedatabase.execSQL("DROP TABLE upload_records");
}
catch(SQLiteException sqliteexception) { }
NewMediaTracker.clearPreferences(mContext);
onCreate(sqlitedatabase);
}
public final void reset() {
SQLiteDatabase sqlitedatabase = getWritableDatabase();
sqlitedatabase.delete(UploadTaskEntry.SCHEMA.getTableName(), null, null);
sqlitedatabase.delete(MediaRecordEntry.SCHEMA.getTableName(), null, null);
NewMediaTracker.clearPreferences(mContext);
}
}