diff --git a/app/src/main/java/us/spotco/malwarescanner/Database.java b/app/src/main/java/us/spotco/malwarescanner/Database.java index 629bc86..b0ff6dc 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Database.java +++ b/app/src/main/java/us/spotco/malwarescanner/Database.java @@ -50,6 +50,7 @@ class Database { public static BloomFilter signaturesMD5 = null; public static BloomFilter signaturesSHA1 = null; public static BloomFilter signaturesSHA256 = null; + public static long signaturesCount = 0; private static final DateFormat dateFormat = DateFormat.getDateInstance(); @@ -64,7 +65,10 @@ class Database { } public static boolean isDatabaseLoaded() { - return areDatabasesAvailable() && !isDatabaseLoading(); + return areDatabasesAvailable() && !isDatabaseLoading() + && signaturesMD5 != null && signaturesMD5.approximateElementCount() > 0 + && signaturesSHA1 != null && signaturesSHA1.approximateElementCount() > 0 + && signaturesSHA256 != null && signaturesSHA256.approximateElementCount() > 0; } public static boolean isDatabaseLoading() { @@ -122,14 +126,17 @@ class Database { case "hypatia-md5-bloom.bin": Log.d("Hypatia", "Processing md5"); signaturesMD5 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); + signaturesCount += signaturesMD5.approximateElementCount(); break; case "hypatia-sha1-bloom.bin": Log.d("Hypatia", "Processing sha1"); signaturesSHA1 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); + signaturesCount += signaturesSHA1.approximateElementCount(); break; case "hypatia-sha256-bloom.bin": Log.d("Hypatia", "Processing sha256"); signaturesSHA256 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); + signaturesCount += signaturesSHA256.approximateElementCount(); break; } databaseLoading.close(); diff --git a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java index cf4245d..47d54dc 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java +++ b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java @@ -184,7 +184,7 @@ class MalwareScanner extends AsyncTask, Object, String> { } } if (Database.isDatabaseLoaded()) { - publishProgress("\t" + context.getString(R.string.main_database_loaded, "?") + "\n", true); + publishProgress("\t" + context.getString(R.string.main_database_loaded, String.valueOf(Database.signaturesCount)) + "\n", true); //Perform a self-test if (Database.selfTest()) {