consumer) {
+ consumer.accept(ControlAction.RESPONSE_OK);
+ Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .putExtra("id", controlIdToCardId(controlId));
+ startActivity(openIntent);
+
+ closePowerScreenOnAndroid11();
+ }
+
+ @SuppressLint({"MissingPermission", "deprecation"})
+ private void closePowerScreenOnAndroid11() {
+ // Android 12 will auto-close the power screen, but earlier versions won't
+ // Lint complains about this but on Android 11 the permission is not needed
+ // On Android 12, we don't need it, and Google will probably get angry if we ask for it
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
+ sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ }
+ }
+
+ /**
+ * A no-op subscription.
+ *
+ * Flow.Subscriptions are made to last during time and receive periodic updates.
+ * Our app does not require sending periodic updates of loyalty cards, so we are just ignoring anything in the subscription
+ * Also, our db is quick enough to respond that the Publisher is immediately sending and completing data.
+ * This facility is overkill, but if we don't call onSubscribe the service won't work
+ */
+ private static class NoOpSubscription implements Flow.Subscription {
+ @Override
+ public void request(long l) {
+ }
+
+ @Override
+ public void cancel() {
+ }
+ }
+}
diff --git a/app/src/main/java/protect/card_locker/CatimaCaptureManager.java b/app/src/main/java/protect/card_locker/CatimaCaptureManager.java
index bff294749..7507d8090 100644
--- a/app/src/main/java/protect/card_locker/CatimaCaptureManager.java
+++ b/app/src/main/java/protect/card_locker/CatimaCaptureManager.java
@@ -1,24 +1,25 @@
package protect.card_locker;
import android.app.Activity;
+import android.content.Context;
import android.widget.Toast;
import com.journeyapps.barcodescanner.CaptureManager;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
public class CatimaCaptureManager extends CaptureManager {
- private Activity activity;
+ private final Context mContext;
public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView) {
super(activity, barcodeView);
- this.activity = activity;
+ mContext = activity.getApplicationContext();
}
@Override
protected void displayFrameworkBugMessageAndExit(String message) {
// We don't want to exit, as we also have a enter from card image and add manually button here
// So we show a toast instead
- Toast.makeText(activity, message, Toast.LENGTH_LONG).show();
+ Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
}
}
diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java
index 6b9aa515d..a8fee8220 100644
--- a/app/src/main/java/protect/card_locker/DBHelper.java
+++ b/app/src/main/java/protect/card_locker/DBHelper.java
@@ -71,12 +71,8 @@ public class DBHelper extends SQLiteOpenHelper {
Descending
}
- private Context mContext;
-
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
-
- mContext = context;
}
@Override
@@ -583,7 +579,7 @@ public class DBHelper extends SQLiteOpenHelper {
}
}
- public boolean deleteLoyaltyCard(final int id) {
+ public boolean deleteLoyaltyCard(Context context, final int id) {
SQLiteDatabase db = getWritableDatabase();
// Delete card
int rowsDeleted = db.delete(LoyaltyCardDbIds.TABLE,
@@ -603,7 +599,7 @@ public class DBHelper extends SQLiteOpenHelper {
// Also wipe card images associated with this card
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
try {
- Utils.saveCardImage(mContext, null, id, imageLocationType);
+ Utils.saveCardImage(context, null, id, imageLocationType);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
diff --git a/app/src/main/java/protect/card_locker/GroupCursorAdapter.java b/app/src/main/java/protect/card_locker/GroupCursorAdapter.java
index 05cc1d9f6..306027b0e 100644
--- a/app/src/main/java/protect/card_locker/GroupCursorAdapter.java
+++ b/app/src/main/java/protect/card_locker/GroupCursorAdapter.java
@@ -14,7 +14,6 @@ import protect.card_locker.preferences.Settings;
class GroupCursorAdapter extends BaseCursorAdapter {
Settings mSettings;
- private Cursor mCursor;
private final Context mContext;
private final GroupCursorAdapter.GroupAdapterListener mListener;
DBHelper mDb;
@@ -27,13 +26,7 @@ class GroupCursorAdapter extends BaseCursorAdapter {
private int mCurrentSelectedIndex = -1;
- private Cursor mCursor;
Settings mSettings;
boolean mDarkModeEnabled;
private final Context mContext;
@@ -44,20 +43,14 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter mMainRequestLauncher;
private ActivityResultLauncher mBarcodeScannerLauncher;
private ActionMode.Callback mCurrentActionModeCallback = new ActionMode.Callback() {
@@ -143,7 +142,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) {
Log.e(TAG, "Deleting card: " + loyaltyCard.id);
- db.deleteLoyaltyCard(loyaltyCard.id);
+ db.deleteLoyaltyCard(MainActivity.this, loyaltyCard.id);
ShortcutHelper.removeShortcut(MainActivity.this, loyaltyCard.id);
}
@@ -267,16 +266,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
*/
- mMainRequestLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
- // We're coming back from another view so clear the search
- // We only do this now to prevent a flash of all entries right after picking one
- mFilter = "";
- if (mMenu != null) {
- MenuItem searchItem = mMenu.findItem(R.id.action_search);
- searchItem.collapseActionView();
- }
- });
-
mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
Intent intent = result.getData();
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this);
@@ -305,12 +294,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mCurrentActionMode.finish();
}
- if (mMenu != null) {
- SearchView searchView = (SearchView) mMenu.findItem(R.id.action_search).getActionView();
-
- if (!searchView.isIconified()) {
- mFilter = searchView.getQuery().toString();
- }
+ if (mSearchView != null && !mSearchView.isIconified()) {
+ mFilter = mSearchView.getQuery().toString();
}
// Start of active tab logic
@@ -361,13 +346,9 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
@Override
public void onBackPressed() {
- if (mMenu != null) {
- SearchView searchView = (SearchView) mMenu.findItem(R.id.action_search).getActionView();
-
- if (!searchView.isIconified()) {
- searchView.setIconified(true);
- return;
- }
+ if (!mSearchView.isIconified()) {
+ mSearchView.setIconified(true);
+ return;
}
super.onBackPressed();
@@ -444,22 +425,20 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
@Override
public boolean onCreateOptionsMenu(Menu inputMenu) {
- this.mMenu = inputMenu;
-
getMenuInflater().inflate(R.menu.main_menu, inputMenu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) {
- SearchView searchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView();
- searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
- searchView.setSubmitButtonEnabled(false);
+ mSearchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView();
+ mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
+ mSearchView.setSubmitButtonEnabled(false);
- searchView.setOnCloseListener(() -> {
+ mSearchView.setOnCloseListener(() -> {
invalidateOptionsMenu();
return false;
});
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
@@ -543,25 +522,25 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
if (id == R.id.action_manage_groups) {
Intent i = new Intent(getApplicationContext(), ManageGroupsActivity.class);
- mMainRequestLauncher.launch(i);
+ startActivity(i);
return true;
}
if (id == R.id.action_import_export) {
Intent i = new Intent(getApplicationContext(), ImportExportActivity.class);
- mMainRequestLauncher.launch(i);
+ startActivity(i);
return true;
}
if (id == R.id.action_settings) {
Intent i = new Intent(getApplicationContext(), SettingsActivity.class);
- mMainRequestLauncher.launch(i);
+ startActivity(i);
return true;
}
if (id == R.id.action_about) {
Intent i = new Intent(getApplicationContext(), AboutActivity.class);
- mMainRequestLauncher.launch(i);
+ startActivity(i);
return true;
}
@@ -703,8 +682,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
if (mAdapter.getSelectedItemCount() > 0) {
enableActionMode(inputPosition);
} else {
- Cursor selected = mAdapter.getCursor();
- selected.moveToPosition(inputPosition);
// FIXME
//
// There is a really nasty edge case that can happen when someone taps a card but right
@@ -715,7 +692,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
// click is being processed. Sadly, I have not yet found a way to make that possible.
LoyaltyCard loyaltyCard;
try {
- loyaltyCard = LoyaltyCard.toLoyaltyCard(selected);
+ loyaltyCard = mAdapter.getCard(inputPosition);
} catch (CursorIndexOutOfBoundsException e) {
Log.w(TAG, "Prevented crash from tap + swipe on ID " + inputPosition + ": " + e);
return;
@@ -729,7 +706,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
ShortcutHelper.updateShortcuts(MainActivity.this, loyaltyCard);
- mMainRequestLauncher.launch(i);
+ startActivity(i);
}
}
}
diff --git a/app/src/main/java/protect/card_locker/ManageGroupActivity.java b/app/src/main/java/protect/card_locker/ManageGroupActivity.java
index 8e0df0883..19482bce0 100644
--- a/app/src/main/java/protect/card_locker/ManageGroupActivity.java
+++ b/app/src/main/java/protect/card_locker/ManageGroupActivity.java
@@ -165,7 +165,7 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana
private void updateLoyaltyCardList() {
mAdapter.swapCursor(mDB.getLoyaltyCardCursor());
- if (mAdapter.getCountFromCursor() == 0) {
+ if (mAdapter.getItemCount() == 0) {
mCardList.setVisibility(View.GONE);
mHelpText.setVisibility(View.VISIBLE);
} else {
diff --git a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java
index cef4fb8d1..bf37effb5 100644
--- a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java
+++ b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java
@@ -105,8 +105,4 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter {
public HashMap exportInGroupState() {
return new HashMap<>(mInGroupOverlay);
}
-
- public int getCountFromCursor() {
- return super.getCursor().getCount();
- }
}
diff --git a/app/src/main/java/protect/card_locker/preferences/Settings.java b/app/src/main/java/protect/card_locker/preferences/Settings.java
index 977271ffc..1583382be 100644
--- a/app/src/main/java/protect/card_locker/preferences/Settings.java
+++ b/app/src/main/java/protect/card_locker/preferences/Settings.java
@@ -13,32 +13,32 @@ import protect.card_locker.R;
import protect.card_locker.Utils;
public class Settings {
- private Context context;
- private SharedPreferences settings;
+ private final Context mContext;
+ private SharedPreferences mSettings;
public Settings(Context context) {
- this.context = context;
- this.settings = PreferenceManager.getDefaultSharedPreferences(context);
+ mContext = context.getApplicationContext();
+ mSettings = PreferenceManager.getDefaultSharedPreferences(context);
}
private String getResString(@StringRes int resId) {
- return context.getString(resId);
+ return mContext.getString(resId);
}
private int getResInt(@IntegerRes int resId) {
- return context.getResources().getInteger(resId);
+ return mContext.getResources().getInteger(resId);
}
private String getString(@StringRes int keyId, String defaultValue) {
- return settings.getString(getResString(keyId), defaultValue);
+ return mSettings.getString(getResString(keyId), defaultValue);
}
private int getInt(@StringRes int keyId, @IntegerRes int defaultId) {
- return settings.getInt(getResString(keyId), getResInt(defaultId));
+ return mSettings.getInt(getResString(keyId), getResInt(defaultId));
}
private boolean getBoolean(@StringRes int keyId, boolean defaultValue) {
- return settings.getBoolean(getResString(keyId), defaultValue);
+ return mSettings.getBoolean(getResString(keyId), defaultValue);
}
public Locale getLocale() {
diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java
index d75038d10..cb5271f55 100644
--- a/app/src/test/java/protect/card_locker/DatabaseTest.java
+++ b/app/src/test/java/protect/card_locker/DatabaseTest.java
@@ -29,25 +29,26 @@ import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
@Config(sdk = 23)
public class DatabaseTest {
- private DBHelper db;
+ private DBHelper mDb;
+ private Activity mActivity;
private static final Integer DEFAULT_HEADER_COLOR = Color.BLACK;
@Before
public void setUp() {
- Activity activity = Robolectric.setupActivity(MainActivity.class);
- db = TestHelpers.getEmptyDb(activity);
+ mActivity = Robolectric.setupActivity(MainActivity.class);
+ mDb = TestHelpers.getEmptyDb(mActivity);
}
@Test
public void addRemoveOneGiftCard() {
- assertEquals(0, db.getLoyaltyCardCount());
- long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
+ assertEquals(0, mDb.getLoyaltyCardCount());
+ long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- LoyaltyCard loyaltyCard = db.getLoyaltyCard(1);
+ LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1);
assertNotNull(loyaltyCard);
assertEquals("store", loyaltyCard.store);
assertEquals("note", loyaltyCard.note);
@@ -60,24 +61,24 @@ public class DatabaseTest {
assertEquals(DEFAULT_HEADER_COLOR, loyaltyCard.headerColor);
assertEquals(0, loyaltyCard.starStatus);
- result = db.deleteLoyaltyCard(1);
+ result = mDb.deleteLoyaltyCard(mActivity, 1);
assertTrue(result);
- assertEquals(0, db.getLoyaltyCardCount());
- assertNull(db.getLoyaltyCard(1));
+ assertEquals(0, mDb.getLoyaltyCardCount());
+ assertNull(mDb.getLoyaltyCard(1));
}
@Test
public void updateGiftCard() {
- long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
+ long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId1", null, CatimaBarcode.fromBarcode(BarcodeFormat.AZTEC), DEFAULT_HEADER_COLOR);
+ result = mDb.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId1", null, CatimaBarcode.fromBarcode(BarcodeFormat.AZTEC), DEFAULT_HEADER_COLOR);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- LoyaltyCard loyaltyCard = db.getLoyaltyCard(1);
+ LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1);
assertNotNull(loyaltyCard);
assertEquals("store1", loyaltyCard.store);
assertEquals("note1", loyaltyCard.note);
@@ -93,16 +94,16 @@ public class DatabaseTest {
@Test
public void updateGiftCardOnlyStar() {
- long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
+ long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- result = db.updateLoyaltyCardStarStatus(1, 1);
+ result = mDb.updateLoyaltyCardStarStatus(1, 1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- LoyaltyCard loyaltyCard = db.getLoyaltyCard(1);
+ LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1);
assertNotNull(loyaltyCard);
assertEquals("store", loyaltyCard.store);
assertEquals("note", loyaltyCard.note);
@@ -118,22 +119,22 @@ public class DatabaseTest {
@Test
public void updateMissingGiftCard() {
- assertEquals(0, db.getLoyaltyCardCount());
+ assertEquals(0, mDb.getLoyaltyCardCount());
- boolean result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("0"), null, "cardId1",
+ boolean result = mDb.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("0"), null, "cardId1",
null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR);
assertEquals(false, result);
- assertEquals(0, db.getLoyaltyCardCount());
+ assertEquals(0, mDb.getLoyaltyCardCount());
}
@Test
public void emptyGiftCardValues() {
- long id = db.insertLoyaltyCard("", "", null, new BigDecimal("0"), null, "", null, null, null, 0, null);
+ long id = mDb.insertLoyaltyCard("", "", null, new BigDecimal("0"), null, "", null, null, null, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
- LoyaltyCard loyaltyCard = db.getLoyaltyCard(1);
+ LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1);
assertNotNull(loyaltyCard);
assertEquals("", loyaltyCard.store);
assertEquals("", loyaltyCard.note);
@@ -154,15 +155,15 @@ public class DatabaseTest {
// Add the gift cards in reverse order, to ensure
// that they are sorted
for (int index = CARDS_TO_ADD - 1; index >= 0; index--) {
- long id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
+ long id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 0, null);
boolean result = (id != -1);
assertTrue(result);
}
- assertEquals(CARDS_TO_ADD, db.getLoyaltyCardCount());
+ assertEquals(CARDS_TO_ADD, mDb.getLoyaltyCardCount());
- Cursor cursor = db.getLoyaltyCardCursor();
+ Cursor cursor = mDb.getLoyaltyCardCursor();
assertNotNull(cursor);
assertEquals(CARDS_TO_ADD, cursor.getCount());
@@ -198,19 +199,19 @@ public class DatabaseTest {
// that they are sorted
for (int index = CARDS_TO_ADD - 1; index >= 0; index--) {
if (index == CARDS_TO_ADD - 1) {
- id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
+ id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 1, null);
} else {
- id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
+ id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index,
null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 0, null);
}
boolean result = (id != -1);
assertTrue(result);
}
- assertEquals(CARDS_TO_ADD, db.getLoyaltyCardCount());
+ assertEquals(CARDS_TO_ADD, mDb.getLoyaltyCardCount());
- Cursor cursor = db.getLoyaltyCardCursor();
+ Cursor cursor = mDb.getLoyaltyCardCursor();
assertNotNull(cursor);
assertEquals(CARDS_TO_ADD, cursor.getCount());
@@ -279,130 +280,130 @@ public class DatabaseTest {
@Test
public void addRemoveOneGroup() {
- assertEquals(0, db.getGroupCount());
- long id = db.insertGroup("group one");
+ assertEquals(0, mDb.getGroupCount());
+ long id = mDb.insertGroup("group one");
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
- Group group = db.getGroup("group one");
+ Group group = mDb.getGroup("group one");
assertNotNull(group);
assertEquals("group one", group._id);
- result = db.deleteGroup("group one");
+ result = mDb.deleteGroup("group one");
assertTrue(result);
- assertEquals(0, db.getGroupCount());
- assertNull(db.getGroup("group one"));
+ assertEquals(0, mDb.getGroupCount());
+ assertNull(mDb.getGroup("group one"));
}
@Test
public void updateGroup() {
// Create card
- assertEquals(0, db.getLoyaltyCardCount());
- long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
+ assertEquals(0, mDb.getLoyaltyCardCount());
+ long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
// Create group
- long groupId = db.insertGroup("group one");
+ long groupId = mDb.insertGroup("group one");
result = (groupId != -1);
assertTrue(result);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
// Add card to group
- Group group = db.getGroup("group one");
+ Group group = mDb.getGroup("group one");
List groupList1 = new ArrayList<>();
groupList1.add(group);
- db.setLoyaltyCardGroups(1, groupList1);
+ mDb.setLoyaltyCardGroups(1, groupList1);
// Ensure the card has one group and the group has one card
- List cardGroups = db.getLoyaltyCardGroups((int) id);
+ List cardGroups = mDb.getLoyaltyCardGroups((int) id);
assertEquals(1, cardGroups.size());
assertEquals("group one", cardGroups.get(0)._id);
- assertEquals(1, db.getGroupCardCount("group one"));
+ assertEquals(1, mDb.getGroupCardCount("group one"));
// Rename group
- result = db.updateGroup("group one", "group one renamed");
+ result = mDb.updateGroup("group one", "group one renamed");
assertTrue(result);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
// Group one no longer exists
- group = db.getGroup("group one");
+ group = mDb.getGroup("group one");
assertNull(group);
// But group one renamed does
- Group group2 = db.getGroup("group one renamed");
+ Group group2 = mDb.getGroup("group one renamed");
assertNotNull(group2);
assertEquals("group one renamed", group2._id);
// And card is in "group one renamed"
// Ensure the card has one group and the group has one card
- cardGroups = db.getLoyaltyCardGroups((int) id);
+ cardGroups = mDb.getLoyaltyCardGroups((int) id);
assertEquals(1, cardGroups.size());
assertEquals("group one renamed", cardGroups.get(0)._id);
- assertEquals(1, db.getGroupCardCount("group one renamed"));
+ assertEquals(1, mDb.getGroupCardCount("group one renamed"));
}
@Test
public void updateMissingGroup() {
- assertEquals(0, db.getGroupCount());
+ assertEquals(0, mDb.getGroupCount());
- boolean result = db.updateGroup("group one", "new name");
+ boolean result = mDb.updateGroup("group one", "new name");
assertEquals(false, result);
- assertEquals(0, db.getGroupCount());
+ assertEquals(0, mDb.getGroupCount());
}
@Test
public void emptyGroupValues() {
- long id = db.insertGroup("");
+ long id = mDb.insertGroup("");
boolean result = (id != -1);
assertFalse(result);
- assertEquals(0, db.getLoyaltyCardCount());
+ assertEquals(0, mDb.getLoyaltyCardCount());
}
@Test
public void duplicateGroupName() {
- assertEquals(0, db.getGroupCount());
- long id = db.insertGroup("group one");
+ assertEquals(0, mDb.getGroupCount());
+ long id = mDb.insertGroup("group one");
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
- Group group = db.getGroup("group one");
+ Group group = mDb.getGroup("group one");
assertNotNull(group);
assertEquals("group one", group._id);
// Should fail on duplicate
- long id2 = db.insertGroup("group one");
+ long id2 = mDb.insertGroup("group one");
boolean result2 = (id2 != -1);
assertFalse(result2);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
}
@Test
public void updateGroupDuplicate() {
- long id = db.insertGroup("group one");
+ long id = mDb.insertGroup("group one");
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getGroupCount());
+ assertEquals(1, mDb.getGroupCount());
- long id2 = db.insertGroup("group two");
+ long id2 = mDb.insertGroup("group two");
boolean result2 = (id2 != -1);
assertTrue(result2);
- assertEquals(2, db.getGroupCount());
+ assertEquals(2, mDb.getGroupCount());
// Should fail when trying to rename group two to one
- boolean result3 = db.updateGroup("group two", "group one");
+ boolean result3 = mDb.updateGroup("group two", "group one");
assertFalse(result3);
- assertEquals(2, db.getGroupCount());
+ assertEquals(2, mDb.getGroupCount());
// Rename failed so both should still be the same
- Group group = db.getGroup("group one");
+ Group group = mDb.getGroup("group one");
assertNotNull(group);
assertEquals("group one", group._id);
- Group group2 = db.getGroup("group two");
+ Group group2 = mDb.getGroup("group two");
assertNotNull(group2);
assertEquals("group two", group2._id);
}
@@ -410,52 +411,52 @@ public class DatabaseTest {
@Test
public void cardAddAndRemoveGroups() {
// Create card
- assertEquals(0, db.getLoyaltyCardCount());
- long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
+ assertEquals(0, mDb.getLoyaltyCardCount());
+ long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null);
boolean result = (id != -1);
assertTrue(result);
- assertEquals(1, db.getLoyaltyCardCount());
+ assertEquals(1, mDb.getLoyaltyCardCount());
// Create two groups to only one card
- assertEquals(0, db.getGroupCount());
- long gid = db.insertGroup("one");
+ assertEquals(0, mDb.getGroupCount());
+ long gid = mDb.insertGroup("one");
boolean gresult = (gid != -1);
assertTrue(gresult);
- long gid2 = db.insertGroup("two");
+ long gid2 = mDb.insertGroup("two");
boolean gresult2 = (gid2 != -1);
assertTrue(gresult2);
- assertEquals(2, db.getGroupCount());
+ assertEquals(2, mDb.getGroupCount());
- Group group1 = db.getGroup("one");
+ Group group1 = mDb.getGroup("one");
// Card has no groups by default
- List cardGroups = db.getLoyaltyCardGroups(1);
+ List cardGroups = mDb.getLoyaltyCardGroups(1);
assertEquals(0, cardGroups.size());
// Add one groups to card
List groupList1 = new ArrayList<>();
groupList1.add(group1);
- db.setLoyaltyCardGroups(1, groupList1);
+ mDb.setLoyaltyCardGroups(1, groupList1);
- List cardGroups1 = db.getLoyaltyCardGroups(1);
+ List cardGroups1 = mDb.getLoyaltyCardGroups(1);
assertEquals(1, cardGroups1.size());
assertEquals(cardGroups1.get(0)._id, group1._id);
- assertEquals(1, db.getGroupCardCount("one"));
- assertEquals(0, db.getGroupCardCount("two"));
+ assertEquals(1, mDb.getGroupCardCount("one"));
+ assertEquals(0, mDb.getGroupCardCount("two"));
// Remove groups
- db.setLoyaltyCardGroups(1, new ArrayList());
- List cardGroups2 = db.getLoyaltyCardGroups(1);
+ mDb.setLoyaltyCardGroups(1, new ArrayList());
+ List cardGroups2 = mDb.getLoyaltyCardGroups(1);
assertEquals(0, cardGroups2.size());
- assertEquals(0, db.getGroupCardCount("one"));
- assertEquals(0, db.getGroupCardCount("two"));
+ assertEquals(0, mDb.getGroupCardCount("one"));
+ assertEquals(0, mDb.getGroupCardCount("two"));
}
@Test
public void databaseUpgradeFromVersion1() {
- SQLiteDatabase database = db.getWritableDatabase();
+ SQLiteDatabase database = mDb.getWritableDatabase();
// Setup the database as it appeared in revision 1
setupDatabaseVersion1(database);
@@ -465,10 +466,10 @@ public class DatabaseTest {
int newCardId2 = insertCardVersion1(database, "store", "cardId", "");
// Upgrade database
- db.onUpgrade(database, DBHelper.ORIGINAL_DATABASE_VERSION, DBHelper.DATABASE_VERSION);
+ mDb.onUpgrade(database, DBHelper.ORIGINAL_DATABASE_VERSION, DBHelper.DATABASE_VERSION);
// Determine that the entries are queryable and the fields are correct
- LoyaltyCard card = db.getLoyaltyCard(newCardId);
+ LoyaltyCard card = mDb.getLoyaltyCard(newCardId);
assertEquals("store", card.store);
assertEquals("", card.note);
assertEquals(null, card.expiry);
@@ -483,7 +484,7 @@ public class DatabaseTest {
assertEquals(100, card.zoomLevel);
// Determine that the entries are queryable and the fields are correct
- LoyaltyCard card2 = db.getLoyaltyCard(newCardId2);
+ LoyaltyCard card2 = mDb.getLoyaltyCard(newCardId2);
assertEquals("store", card2.store);
assertEquals("", card2.note);
assertEquals(null, card2.expiry);