mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2026-01-07 14:38:04 -05:00
152 lines
5.3 KiB
Java
152 lines
5.3 KiB
Java
package protect.card_locker;
|
|
|
|
|
|
import android.content.ContentValues;
|
|
import android.content.Context;
|
|
import android.database.Cursor;
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
import android.database.sqlite.SQLiteOpenHelper;
|
|
|
|
public class DBHelper extends SQLiteOpenHelper
|
|
{
|
|
public static final String DATABASE_NAME = "LoyaltyCards.db";
|
|
public static final int ORIGINAL_DATABASE_VERSION = 1;
|
|
public static final int DATABASE_VERSION = 2;
|
|
|
|
static class LoyaltyCardDbIds
|
|
{
|
|
public static final String TABLE = "cards";
|
|
public static final String ID = "_id";
|
|
public static final String STORE = "store";
|
|
public static final String NOTE = "note";
|
|
public static final String CARD_ID = "cardid";
|
|
public static final String BARCODE_TYPE = "barcodetype";
|
|
}
|
|
|
|
public DBHelper(Context context)
|
|
{
|
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(SQLiteDatabase db)
|
|
{
|
|
// create table for gift cards
|
|
db.execSQL("create table " + LoyaltyCardDbIds.TABLE + "(" +
|
|
LoyaltyCardDbIds.ID + " INTEGER primary key autoincrement," +
|
|
LoyaltyCardDbIds.STORE + " TEXT not null," +
|
|
LoyaltyCardDbIds.NOTE + " TEXT not null," +
|
|
LoyaltyCardDbIds.CARD_ID + " TEXT not null," +
|
|
LoyaltyCardDbIds.BARCODE_TYPE + " TEXT not null)");
|
|
}
|
|
|
|
@Override
|
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
|
|
{
|
|
// Upgrade from version 1 to version 2
|
|
if(oldVersion < 2 && newVersion >= 2)
|
|
{
|
|
db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE
|
|
+ " ADD COLUMN " + LoyaltyCardDbIds.NOTE + " TEXT not null default ''");
|
|
}
|
|
}
|
|
|
|
public boolean insertLoyaltyCard(final String store, final String note, final String cardId,
|
|
final String barcodeType)
|
|
{
|
|
SQLiteDatabase db = getWritableDatabase();
|
|
ContentValues contentValues = new ContentValues();
|
|
contentValues.put(LoyaltyCardDbIds.STORE, store);
|
|
contentValues.put(LoyaltyCardDbIds.NOTE, note);
|
|
contentValues.put(LoyaltyCardDbIds.CARD_ID, cardId);
|
|
contentValues.put(LoyaltyCardDbIds.BARCODE_TYPE, barcodeType);
|
|
final long newId = db.insert(LoyaltyCardDbIds.TABLE, null, contentValues);
|
|
return (newId != -1);
|
|
}
|
|
|
|
public boolean insertLoyaltyCard(final SQLiteDatabase db, final int id,
|
|
final String store, final String note, final String cardId,
|
|
final String barcodeType)
|
|
{
|
|
ContentValues contentValues = new ContentValues();
|
|
contentValues.put(LoyaltyCardDbIds.ID, id);
|
|
contentValues.put(LoyaltyCardDbIds.STORE, store);
|
|
contentValues.put(LoyaltyCardDbIds.NOTE, note);
|
|
contentValues.put(LoyaltyCardDbIds.CARD_ID, cardId);
|
|
contentValues.put(LoyaltyCardDbIds.BARCODE_TYPE, barcodeType);
|
|
final long newId = db.insert(LoyaltyCardDbIds.TABLE, null, contentValues);
|
|
return (newId != -1);
|
|
}
|
|
|
|
|
|
public boolean updateLoyaltyCard(final int id, final String store, final String note,
|
|
final String cardId, final String barcodeType)
|
|
{
|
|
SQLiteDatabase db = getWritableDatabase();
|
|
ContentValues contentValues = new ContentValues();
|
|
contentValues.put(LoyaltyCardDbIds.STORE, store);
|
|
contentValues.put(LoyaltyCardDbIds.NOTE, note);
|
|
contentValues.put(LoyaltyCardDbIds.CARD_ID, cardId);
|
|
contentValues.put(LoyaltyCardDbIds.BARCODE_TYPE, barcodeType);
|
|
int rowsUpdated = db.update(LoyaltyCardDbIds.TABLE, contentValues,
|
|
LoyaltyCardDbIds.ID + "=?",
|
|
new String[]{Integer.toString(id)});
|
|
return (rowsUpdated == 1);
|
|
}
|
|
|
|
public LoyaltyCard getLoyaltyCard(final int id)
|
|
{
|
|
SQLiteDatabase db = getReadableDatabase();
|
|
Cursor data = db.rawQuery("select * from " + LoyaltyCardDbIds.TABLE +
|
|
" where " + LoyaltyCardDbIds.ID + "=?", new String[]{String.format("%d", id)});
|
|
|
|
LoyaltyCard card = null;
|
|
|
|
if(data.getCount() == 1)
|
|
{
|
|
data.moveToFirst();
|
|
card = LoyaltyCard.toLoyaltyCard(data);
|
|
}
|
|
|
|
data.close();
|
|
|
|
return card;
|
|
}
|
|
|
|
public boolean deleteLoyaltyCard (final int id)
|
|
{
|
|
SQLiteDatabase db = getWritableDatabase();
|
|
int rowsDeleted = db.delete(LoyaltyCardDbIds.TABLE,
|
|
LoyaltyCardDbIds.ID + " = ? ",
|
|
new String[]{String.format("%d", id)});
|
|
return (rowsDeleted == 1);
|
|
}
|
|
|
|
public Cursor getLoyaltyCardCursor()
|
|
{
|
|
SQLiteDatabase db = getReadableDatabase();
|
|
Cursor res = db.rawQuery("select * from " + LoyaltyCardDbIds.TABLE +
|
|
" ORDER BY " + LoyaltyCardDbIds.STORE, null);
|
|
return res;
|
|
}
|
|
|
|
public int getLoyaltyCardCount()
|
|
{
|
|
SQLiteDatabase db = getReadableDatabase();
|
|
Cursor data = db.rawQuery("SELECT Count(*) FROM " + LoyaltyCardDbIds.TABLE, null);
|
|
|
|
int numItems = 0;
|
|
|
|
if(data.getCount() == 1)
|
|
{
|
|
data.moveToFirst();
|
|
numItems = data.getInt(0);
|
|
}
|
|
|
|
data.close();
|
|
|
|
return numItems;
|
|
}
|
|
}
|
|
|