mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
Show the number of scanned files in the foreground notification
This commit is contained in:
parent
65c3306dc2
commit
147d99480c
4 changed files with 19 additions and 5 deletions
|
@ -6,7 +6,7 @@ android {
|
||||||
applicationId "us.spotco.malwarescanner"
|
applicationId "us.spotco.malwarescanner"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 26
|
targetSdkVersion 26
|
||||||
versionCode 21
|
versionCode 23
|
||||||
versionName "2.0"
|
versionName "2.0"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
|
@ -97,6 +97,7 @@ class MalwareScanner extends AsyncTask<Set<File>, Object, String> {
|
||||||
fileHashesSHA1.clear();
|
fileHashesSHA1.clear();
|
||||||
fileHashesSHA256.clear();
|
fileHashesSHA256.clear();
|
||||||
System.gc();
|
System.gc();
|
||||||
|
Utils.FILES_SCANNED += filesToScan[0].size();
|
||||||
Log.d("Thiea", "Scan completed in " + (SystemClock.elapsedRealtime() - scanTime) + " ms!");
|
Log.d("Thiea", "Scan completed in " + (SystemClock.elapsedRealtime() - scanTime) + " ms!");
|
||||||
publishProgress("Scan completed in " + ((SystemClock.elapsedRealtime() - scanTime) / 1000) + " seconds!\n\n\n\n", true);
|
publishProgress("Scan completed in " + ((SystemClock.elapsedRealtime() - scanTime) / 1000) + " seconds!\n\n\n\n", true);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package us.spotco.malwarescanner;
|
package us.spotco.malwarescanner;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
|
import android.app.NotificationManager;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.FileObserver;
|
import android.os.FileObserver;
|
||||||
|
@ -15,6 +17,8 @@ import gnu.trove.set.hash.THashSet;
|
||||||
public class MalwareScannerService extends Service {
|
public class MalwareScannerService extends Service {
|
||||||
|
|
||||||
private THashSet<RecursiveFileObserver> malwareMonitors = new THashSet<>();
|
private THashSet<RecursiveFileObserver> malwareMonitors = new THashSet<>();
|
||||||
|
private NotificationCompat.Builder foregroundNotification = null;
|
||||||
|
private NotificationManager notificationManager = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final IBinder onBind(Intent intent) {
|
public final IBinder onBind(Intent intent) {
|
||||||
|
@ -30,6 +34,8 @@ public class MalwareScannerService extends Service {
|
||||||
malwareMonitor.startWatching();
|
malwareMonitor.startWatching();
|
||||||
}
|
}
|
||||||
//Toast.makeText(this, "Theia: Realtime Scanning Started", Toast.LENGTH_SHORT).show();
|
//Toast.makeText(this, "Theia: Realtime Scanning Started", Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
setForeground();
|
setForeground();
|
||||||
return START_STICKY;
|
return START_STICKY;
|
||||||
}
|
}
|
||||||
|
@ -47,6 +53,7 @@ public class MalwareScannerService extends Service {
|
||||||
filesToScan.add(file);
|
filesToScan.add(file);
|
||||||
new MalwareScanner(null, getApplicationContext(), false).execute(filesToScan);
|
new MalwareScanner(null, getApplicationContext(), false).execute(filesToScan);
|
||||||
}
|
}
|
||||||
|
updateForegroundNotification();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,16 +71,20 @@ public class MalwareScannerService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setForeground() {
|
private void setForeground() {
|
||||||
Notification notification =
|
foregroundNotification =
|
||||||
new NotificationCompat.Builder(this)
|
new NotificationCompat.Builder(this)
|
||||||
.setSmallIcon(R.drawable.ic_notification)
|
.setSmallIcon(R.drawable.ic_notification)
|
||||||
.setContentTitle(getText(R.string.lblNotificationRealtimeTitle))
|
.setContentTitle(getText(R.string.lblNotificationRealtimeTitle))
|
||||||
.setContentText(getText(R.string.lblNotificationRealtimeText))
|
.setContentText(getText(R.string.lblNotificationRealtimeText))
|
||||||
.setPriority(Notification.PRIORITY_MIN)
|
.setPriority(Notification.PRIORITY_MIN)
|
||||||
.setShowWhen(false)
|
.setShowWhen(false);
|
||||||
.build();
|
|
||||||
|
|
||||||
startForeground(-1, notification);
|
startForeground(-1, foregroundNotification.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateForegroundNotification() {
|
||||||
|
foregroundNotification.setSubText(Utils.FILES_SCANNED + " files scanned");
|
||||||
|
notificationManager.notify(-1, foregroundNotification.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@ class Utils {
|
||||||
public final static int MAX_SCAN_SIZE = (1000 * 1000) * 80; //80MB
|
public final static int MAX_SCAN_SIZE = (1000 * 1000) * 80; //80MB
|
||||||
public final static int MAX_SCAN_SIZE_REALTIME = MAX_SCAN_SIZE / 2; //40MB
|
public final static int MAX_SCAN_SIZE_REALTIME = MAX_SCAN_SIZE / 2; //40MB
|
||||||
|
|
||||||
|
public static int FILES_SCANNED = 0;
|
||||||
|
|
||||||
public static THashSet<File> getFilesRecursive(File root) {
|
public static THashSet<File> getFilesRecursive(File root) {
|
||||||
THashSet<File> filesAll = new THashSet<>();
|
THashSet<File> filesAll = new THashSet<>();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue