package yuku.easybilling; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class BillingDbHelper extends SQLiteOpenHelper { public static final String TAG = BillingDbHelper.class.getSimpleName(); public BillingDbHelper(Context context) { super(context, "BillingDb", null, getVersionCode(context)); //$NON-NLS-1$ } @Override public void onOpen(SQLiteDatabase db) { // }; @Override public void onCreate(SQLiteDatabase db) { Log.d(TAG, "@@onCreate"); //$NON-NLS-1$ try { createTables(db); createIndexes(db); } catch (SQLException e) { Log.e(TAG, "onCreate db failed!", e); //$NON-NLS-1$ throw e; } } public void createTables(SQLiteDatabase db) { db.execSQL("create table if not exists Inventory ( " + "_id integer primary key autoincrement, " + //$NON-NLS-1$ "productId text, " + "amount integer" + ")"); db.execSQL("create table if not exists Orders ( " + "_id integer primary key autoincrement, " + //$NON-NLS-1$ "orderId text, " + "purchaseState integer " + ")"); db.execSQL("create table if not exists Changes ( " + "_id integer primary key autoincrement, " + //$NON-NLS-1$ "orderId text, " + "packageName text," + "productId text," + "purchaseTime integer," + "purchaseState integer," + "developerPayload text" + ")"); } public void createIndexes(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } public static int getVersionCode(Context context) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); return packageInfo.versionCode; } catch (NameNotFoundException e) { throw new RuntimeException("NameNotFoundException when querying own package. Should not happen", e); } } }