diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java index f3cb5535f..9b7b42f07 100644 --- a/app/src/main/java/protect/card_locker/DBHelper.java +++ b/app/src/main/java/protect/card_locker/DBHelper.java @@ -175,5 +175,29 @@ public class DBHelper extends SQLiteOpenHelper return numItems; } + + public int getFilteredLoyaltyCardCount(String filter) + { + String actualFilter = String.format("%%%s%%", filter); + String[] selectionArgs = { actualFilter, actualFilter }; + + SQLiteDatabase db = getReadableDatabase(); + Cursor data = db.rawQuery("SELECT Count(*) FROM " + LoyaltyCardDbIds.TABLE + + " WHERE " + LoyaltyCardDbIds.STORE + " LIKE ? " + + " OR " + LoyaltyCardDbIds.NOTE + " LIKE ? " + , selectionArgs, null); + + int numItems = 0; + + if(data.getCount() == 1) + { + data.moveToFirst(); + numItems = data.getInt(0); + } + + data.close(); + + return numItems; + } } diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index 2f16ad93c..9913370d2 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -87,6 +87,7 @@ public class MainActivity extends AppCompatActivity final EditText filter = findViewById(R.id.menu_filter); final ListView cardList = findViewById(R.id.list); final TextView helpText = findViewById(R.id.helpText); + final TextView noMatchingCardsText = findViewById(R.id.noMatchingCardsText); final DBHelper db = new DBHelper(this); if(db.getLoyaltyCardCount() > 0) @@ -94,12 +95,21 @@ public class MainActivity extends AppCompatActivity filter.setVisibility(View.VISIBLE); cardList.setVisibility(View.VISIBLE); helpText.setVisibility(View.GONE); + if(db.getFilteredLoyaltyCardCount(filterText) > 0) + { + noMatchingCardsText.setVisibility(View.GONE); + } + else + { + noMatchingCardsText.setVisibility(View.VISIBLE); + } } else { filter.setVisibility(View.GONE); cardList.setVisibility(View.GONE); helpText.setVisibility(View.VISIBLE); + noMatchingCardsText.setVisibility(View.GONE); } Cursor cardCursor = db.getLoyaltyCardCursor(filterText); diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index 56b5d76d1..71eea4380 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -17,6 +17,14 @@ android:text="@string/noGiftCards" android:visibility="gone"/> + + Type to search You don\'t have any loyalty cards at the moment. Click the "+" (plus) button up top to get started.\n\nLoyalty Card Locker lets you carry your loyalty cards on your phone, so they are always within reach. + No loyalty cards match the search filter. Please try some different terms. Store Note