From 127d53e85ac5e468d7e9a5e225f799439f617c93 Mon Sep 17 00:00:00 2001 From: Ankit Tiwari <55471438+ankittiwari101@users.noreply.github.com> Date: Sat, 23 Oct 2021 00:41:51 +0530 Subject: [PATCH] Save Size of code (#508) --- .../java/protect/card_locker/DBHelper.java | 43 +++++++++++++++---- .../protect/card_locker/ImportURIHelper.java | 2 +- .../java/protect/card_locker/LoyaltyCard.java | 9 +++- .../card_locker/LoyaltyCardEditActivity.java | 4 +- .../card_locker/LoyaltyCardViewActivity.java | 11 ++++- .../protect/card_locker/DatabaseTest.java | 4 ++ 6 files changed, 58 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java index a784fcea9..505f3be52 100644 --- a/app/src/main/java/protect/card_locker/DBHelper.java +++ b/app/src/main/java/protect/card_locker/DBHelper.java @@ -8,6 +8,7 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.text.TextUtils; +import android.util.Log; import java.io.FileNotFoundException; import java.math.BigDecimal; @@ -21,7 +22,7 @@ public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "Catima.db"; public static final int ORIGINAL_DATABASE_VERSION = 1; - public static final int DATABASE_VERSION = 13; + public static final int DATABASE_VERSION = 14; public static class LoyaltyCardDbGroups { @@ -46,6 +47,7 @@ public class DBHelper extends SQLiteOpenHelper public static final String BARCODE_TYPE = "barcodetype"; public static final String STAR_STATUS = "starstatus"; public static final String LAST_USED = "lastused"; + public static final String ZOOM_LEVEL = "zoomlevel"; } public static class LoyaltyCardDbIdsGroups @@ -105,7 +107,8 @@ public class DBHelper extends SQLiteOpenHelper LoyaltyCardDbIds.BARCODE_ID + " TEXT," + LoyaltyCardDbIds.BARCODE_TYPE + " TEXT," + LoyaltyCardDbIds.STAR_STATUS + " INTEGER DEFAULT '0'," + - LoyaltyCardDbIds.LAST_USED + " INTEGER DEFAULT '0')"); + LoyaltyCardDbIds.LAST_USED + " INTEGER DEFAULT '0', "+ + LoyaltyCardDbIds.ZOOM_LEVEL + " INTEGER DEFAULT '100' )"); // create associative table for cards in groups db.execSQL("CREATE TABLE " + LoyaltyCardDbIdsGroups.TABLE + "(" + @@ -119,6 +122,7 @@ public class DBHelper extends SQLiteOpenHelper "tokenize=unicode61);"); } + @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { @@ -290,8 +294,10 @@ public class DBHelper extends SQLiteOpenHelper cursor.moveToFirst(); while (cursor.moveToNext()) { - LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor); - insertFTS(db, loyaltyCard.id, loyaltyCard.store, loyaltyCard.note); + int id = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ID)); + String store = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)); + String note = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)); + insertFTS(db, id, store, note); } } @@ -302,16 +308,25 @@ public class DBHelper extends SQLiteOpenHelper Cursor cursor = db.rawQuery("SELECT * FROM " + LoyaltyCardDbIds.TABLE + ";", null, null); if (cursor.moveToFirst()) { - LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor); - insertFTS(db, loyaltyCard.id, loyaltyCard.store, loyaltyCard.note); + int id = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ID)); + String store = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)); + String note = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)); + insertFTS(db, id, store, note); while (cursor.moveToNext()) { - loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor); - insertFTS(db, loyaltyCard.id, loyaltyCard.store, loyaltyCard.note); + id = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ID)); + store = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)); + note = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)); + insertFTS(db, id, store, note); } } cursor.close(); } + + if(oldVersion < 14 && newVersion >= 14){ + db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE + + " ADD COLUMN " + LoyaltyCardDbIds.ZOOM_LEVEL + " INTEGER DEFAULT '100' "); + } } private ContentValues generateFTSContentValues(final int id, final String store, final String note) { @@ -508,6 +523,18 @@ public class DBHelper extends SQLiteOpenHelper return (rowsUpdated == 1); } + public boolean updateLoyaltyCardZoomLevel(int loyaltyCardId, int zoomLevel){ + SQLiteDatabase db = getWritableDatabase(); + ContentValues contentValues = new ContentValues(); + contentValues.put(LoyaltyCardDbIds.ZOOM_LEVEL,zoomLevel); + Log.d("updateLoyaltyCardZLevel","Card Id = "+loyaltyCardId+" Zoom level= "+zoomLevel); + int rowsUpdated = db.update(LoyaltyCardDbIds.TABLE,contentValues, + whereAttrs(LoyaltyCardDbIds.ID), + withArgs(loyaltyCardId)); + Log.d("updateLoyaltyCardZLevel","Rows changed = "+rowsUpdated); + return (rowsUpdated == 1); + } + public LoyaltyCard getLoyaltyCard(final int id) { SQLiteDatabase db = getReadableDatabase(); diff --git a/app/src/main/java/protect/card_locker/ImportURIHelper.java b/app/src/main/java/protect/card_locker/ImportURIHelper.java index ffe4c21a8..812d5665c 100644 --- a/app/src/main/java/protect/card_locker/ImportURIHelper.java +++ b/app/src/main/java/protect/card_locker/ImportURIHelper.java @@ -122,7 +122,7 @@ public class ImportURIHelper { headerColor = Integer.parseInt(unparsedHeaderColor); } - return new LoyaltyCard(-1, store, note, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, 0, Utils.getUnixTime()); + return new LoyaltyCard(-1, store, note, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, 0, Utils.getUnixTime(),100); } catch (NullPointerException | NumberFormatException | UnsupportedEncodingException ex) { throw new InvalidObjectException("Not a valid import URI"); } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCard.java b/app/src/main/java/protect/card_locker/LoyaltyCard.java index 165db351f..1ec44fa6d 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCard.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCard.java @@ -30,11 +30,12 @@ public class LoyaltyCard implements Parcelable { public final int starStatus; public final long lastUsed; + public int zoomLevel; public LoyaltyCard(final int id, final String store, final String note, final Date expiry, final BigDecimal balance, final Currency balanceType, final String cardId, @Nullable final String barcodeId, @Nullable final CatimaBarcode barcodeType, - @Nullable final Integer headerColor, final int starStatus, final long lastUsed) + @Nullable final Integer headerColor, final int starStatus, final long lastUsed,final int zoomLevel) { this.id = id; this.store = store; @@ -48,6 +49,7 @@ public class LoyaltyCard implements Parcelable { this.headerColor = headerColor; this.starStatus = starStatus; this.lastUsed = lastUsed; + this.zoomLevel = zoomLevel; } protected LoyaltyCard(Parcel in) { @@ -66,6 +68,7 @@ public class LoyaltyCard implements Parcelable { headerColor = tmpHeaderColor != -1 ? tmpHeaderColor : null; starStatus = in.readInt(); lastUsed = in.readLong(); + zoomLevel = in.readInt(); } @Override @@ -82,6 +85,7 @@ public class LoyaltyCard implements Parcelable { parcel.writeInt(headerColor != null ? headerColor : -1); parcel.writeInt(starStatus); parcel.writeLong(lastUsed); + parcel.writeInt(zoomLevel); } public static LoyaltyCard toLoyaltyCard(Cursor cursor) @@ -95,6 +99,7 @@ public class LoyaltyCard implements Parcelable { String barcodeId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_ID)); int starred = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS)); long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.LAST_USED)); + int zoomLevel = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ZOOM_LEVEL)); int barcodeTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE); int balanceTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE); @@ -125,7 +130,7 @@ public class LoyaltyCard implements Parcelable { headerColor = cursor.getInt(headerColorColumn); } - return new LoyaltyCard(id, store, note, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starred, lastUsed); + return new LoyaltyCard(id, store, note, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starred, lastUsed,zoomLevel); } @Override diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index e2dd4553c..9775e83fd 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -156,7 +156,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { (CatimaBarcode) (fieldName == LoyaltyCardField.barcodeType ? value : loyaltyCard.barcodeType), (Integer) (fieldName == LoyaltyCardField.headerColor ? value : loyaltyCard.headerColor), (int) (fieldName == LoyaltyCardField.starStatus ? value : loyaltyCard.starStatus), - Utils.getUnixTime() + Utils.getUnixTime(),100 ); } @@ -551,7 +551,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { setTitle(R.string.addCardTitle); } else { // New card, use default values - tempLoyaltyCard = new LoyaltyCard(-1, "", "", null, new BigDecimal("0"), null, "", null, null, null, 0, Utils.getUnixTime()); + tempLoyaltyCard = new LoyaltyCard(-1, "", "", null, new BigDecimal("0"), null, "", null, null, null, 0, Utils.getUnixTime(),100); setTitle(R.string.addCardTitle); } } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index fa02b5ade..ed6f4ca86 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -260,11 +260,14 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements Log.d(TAG, "Max is " + barcodeScaler.getMax()); float scale = (float) progress / (float) barcodeScaler.getMax(); Log.d(TAG, "Scaling to " + scale); + if(isFullscreen){ + loyaltyCard.zoomLevel = progress; + } if (imageTypes.get(mainImageIndex) == ImageType.BARCODE) { redrawBarcodeAfterResize(); } - if (loyaltyCard != null && format != null && format.isSquare()) { + if (format != null && format.isSquare()) { centerGuideline.setGuidelinePercent(0.75f * scale); } else { centerGuideline.setGuidelinePercent(0.5f * scale); @@ -789,6 +792,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements * by machines which offer no space to insert the complete device. */ private void setFullscreen(boolean enabled) { + isFullscreen = enabled; ActionBar actionBar = getSupportActionBar(); if (enabled && !imageTypes.isEmpty()) { @@ -796,6 +800,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements drawMainImage(mainImageIndex, true); + barcodeScaler.setProgress(loyaltyCard.zoomLevel); + // Hide maximize and show minimize button and scaler maximizeButton.setVisibility(View.GONE); minimizeButton.setVisibility(View.VISIBLE); @@ -830,6 +836,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements } else { Log.d(TAG, "Move out of fullscreen"); + db.updateLoyaltyCardZoomLevel(loyaltyCardId,loyaltyCard.zoomLevel); // Reset center guideline barcodeScaler.setProgress(100); @@ -866,6 +873,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements ); } - isFullscreen = enabled; + Log.d("setFullScreen","Is full screen enabled? "+enabled+" Zoom Level = "+barcodeScaler.getProgress()); } } diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java index 49e77c480..67d32ed33 100644 --- a/app/src/test/java/protect/card_locker/DatabaseTest.java +++ b/app/src/test/java/protect/card_locker/DatabaseTest.java @@ -503,6 +503,8 @@ public class DatabaseTest assertEquals(BarcodeFormat.UPC_A, card.barcodeType.format()); assertEquals(null, card.headerColor); assertEquals(0, card.starStatus); + assertEquals(0,card.lastUsed); + assertEquals(100,card.zoomLevel); // Determine that the entries are queryable and the fields are correct LoyaltyCard card2 = db.getLoyaltyCard(newCardId2); @@ -516,6 +518,8 @@ public class DatabaseTest assertEquals(null, card2.barcodeType); // Empty string should've become null assertEquals(null, card2.headerColor); assertEquals(0, card2.starStatus); + assertEquals(0,card2.lastUsed); + assertEquals(100,card2.zoomLevel); database.close(); }