Show scan speed too

This commit is contained in:
Tad 2021-06-04 15:30:36 -04:00
parent 15b49f0d5b
commit 2d56574a1e
14 changed files with 27 additions and 14 deletions

2
.idea/compiler.xml generated
View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
<bytecodeTargetLevel target="11" />
</component>
</project>

2
.idea/misc.xml generated
View file

@ -45,7 +45,7 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View file

@ -3,6 +3,7 @@
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />

View file

@ -6,7 +6,7 @@ android {
applicationId "us.spotco.malwarescanner"
minSdkVersion 16
targetSdkVersion 29
versionCode 72
versionCode 73
versionName "2.20"
resConfigs "en", "de", "es", "fr", "it", "pt", "ru"
}

View file

@ -47,7 +47,7 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
private TextView logOutput = null;
private boolean userFacing = false;
private NotificationManager notificationManager = null;
private long scanTime = 0;
private long scanStartTime = 0;
private final HashMap<String, File> fileHashesMD5 = new HashMap<>();
private final HashMap<String, File> fileHashesSHA1 = new HashMap<>();
private final HashMap<String, File> fileHashesSHA256 = new HashMap<>();
@ -95,7 +95,7 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
@Override
protected final void onPreExecute() {
scanTime = SystemClock.elapsedRealtime();
scanStartTime = SystemClock.elapsedRealtime();
logResult(context.getString(R.string.main_starting_scan), true);
}
@ -137,12 +137,15 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
percentIncrement = 1;
}
String spinnerCur = " ~ ";
long totalBytesHashed = 0;
long hashStartTime = SystemClock.elapsedRealtime();
for (File file : filesToScan[0]) {
if (this.isCancelled()) { //Allow quicker cancels
//publishProgress("\t" + context.getString(R.string.main_cancelled_scan), true);
running = false;
return null;
}
totalBytesHashed += file.length();
getFileHashes(file);
fileScannedCount++;
if ((fileScannedCount % percentIncrement) == 0) {
@ -165,9 +168,16 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
fileHashesMD5.clear();
fileHashesSHA1.clear();
fileHashesSHA256.clear();
System.gc();
Utils.FILES_SCANNED += filesToScan[0].size();
publishProgress(context.getString(R.string.main_scanning_done, ((SystemClock.elapsedRealtime() - scanTime) / 1000) + "") + "\n\n\n\n", true);
if(userFacing || Utils.FILES_SCANNED % 40 == 0) {
System.gc(); //GC can be expensive, don't run it too often.
}
if(userFacing) {
long secondsSpent = ((SystemClock.elapsedRealtime() - scanStartTime) / 1000L);
long secondsSpentHasing = ((SystemClock.elapsedRealtime() - hashStartTime) / 1000L);
long MBS = totalBytesHashed / 1000 / 1000 / secondsSpentHasing;
publishProgress(context.getString(R.string.main_scanning_done, secondsSpent + "", MBS + "") + "\n\n\n\n", true);
}
} else {
publishProgress("\t" + context.getString(R.string.main_no_database_available), true);
running = false;

View file

@ -42,6 +42,6 @@
<string name="main_hashing_done">Hashes für alle Dateien generiert</string>
<string name="main_hash_scan_done">Alle %s Hashes wurden mit den Signatur-Datenbanken abgeglichen</string>
<string name="main_no_hashes_available">Keine %s Hash-Signaturen verfügbar</string>
<string name="main_scanning_done">Scan nach %s Sekunden abgeschlossen!</string>
<string name="main_scanning_done">Scan nach %s Sekunden abgeschlossen @ %sMB/s!</string>
<string name="main_files_scanned_count">%s Datei(en) gescannt</string>
</resources>

View file

@ -44,6 +44,6 @@
<string name="main_hashing_done">Hashes calculados para todos los archivos</string>
<string name="main_hash_scan_done">Comprobados todos los hashes de %s con las bases de datos de firmas</string>
<string name="main_no_hashes_available">No hay firmas %s hashes disponibles</string>
<string name="main_scanning_done">¡Escaneo completado en %s segundos!</string>
<string name="main_scanning_done">¡Escaneo completado en %s segundos @ %sMB/s!</string>
<string name="main_files_scanned_count">%s archivos escaneados</string>
</resources>

View file

@ -41,6 +41,6 @@
<string name="main_hashing_files">Hachage de fichiers...</string>
<string name="main_hashing_done">Hachages calculés pour tous les fichiers</string>
<string name="main_hash_scan_done">Vérification de tous les hachages %s par rapport aux bases de données de signatures</string>
<string name="main_scanning_done">Scan complété en %s secondes !</string>
<string name="main_scanning_done">Scan complété en %s secondes @ %sMB/s!</string>
<string name="main_files_scanned_count">%s fichiers scannés</string>
</resources>

View file

@ -43,6 +43,6 @@
<string name="main_hashing_done">Calcolando gli hash per tutti i file</string>
<string name="main_hash_scan_done">Confrontati tutti gli hash %s con il database delle firme</string>
<string name="main_no_hashes_available">Nessuna firma hash %s disponibile</string>
<string name="main_scanning_done">Scansione completata in %s secondi!</string>
<string name="main_scanning_done">Scansione completata in %s secondi @ %sMB/s!</string>
<string name="main_files_scanned_count">%s file scansionati</string>
</resources>

View file

@ -44,6 +44,6 @@
<string name="main_hashing_done">Hashes calculados para todos os arquivos</string>
<string name="main_hash_scan_done">Verificados todos %s hashes em relação a bade de dados de assinaturas</string>
<string name="main_no_hashes_available">Sem %s assinaturas de hashes disponíveis</string>
<string name="main_scanning_done">Análise será concluída em %s segundo(s)!</string>
<string name="main_scanning_done">Análise será concluída em %s segundos @ %sMB/s!</string>
<string name="main_files_scanned_count">%s arquivos analisados</string>
</resources>

View file

@ -44,6 +44,6 @@
<string name="main_hashing_done">Расчетные хеши для всех файлов</string>
<string name="main_hash_scan_done">Проверены все хэши %s по базам данных сигнатур</string>
<string name="main_no_hashes_available">Нет доступных подписей хэшей %s</string>
<string name="main_scanning_done">Сканирование выполнено за %s секунд!</string>
<string name="main_scanning_done">Сканирование выполнено за %s секунд @ %sMB/s!</string>
<string name="main_files_scanned_count">Просканировано %s файлов</string>
</resources>

View file

@ -46,6 +46,6 @@
<string name="main_hashing_done">Calculated hashes for all files</string>
<string name="main_hash_scan_done">Checked all %s hashes against signature databases</string>
<string name="main_no_hashes_available">No %s hashes signatures available</string>
<string name="main_scanning_done">Scan completed in %s seconds!</string>
<string name="main_scanning_done">Scan completed in %s seconds @ %sMB/s!</string>
<string name="main_files_scanned_count">%s files scanned</string>
</resources>

View file

@ -0,0 +1 @@
Hypatia

View file

@ -0,0 +1 @@
Hypatia