mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
More work
This commit is contained in:
parent
a8df8fe3c1
commit
20cadea983
4 changed files with 25 additions and 9 deletions
|
@ -3,6 +3,7 @@
|
|||
package="us.spotco.veritas">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
|
|
@ -12,10 +12,11 @@ import android.widget.TextView;
|
|||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private boolean checkUpdates = true;
|
||||
private boolean scanSystem = true;
|
||||
private boolean scanApps = true;
|
||||
private boolean scanInternal = true;
|
||||
private boolean scanExternal = true;
|
||||
private boolean scanExternal = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -58,17 +59,25 @@ public class MainActivity extends AppCompatActivity {
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.mnuUpdateDatabase:
|
||||
checkUpdates = !item.isChecked();
|
||||
item.setChecked(checkUpdates);
|
||||
break;
|
||||
case R.id.mnuScanSystem:
|
||||
scanSystem = !item.isChecked();
|
||||
item.setChecked(scanSystem);
|
||||
break;
|
||||
case R.id.mnuScanApps:
|
||||
scanApps = !item.isChecked();
|
||||
item.setChecked(scanApps);
|
||||
break;
|
||||
case R.id.mnuScanInternal:
|
||||
scanInternal = !item.isChecked();
|
||||
item.setChecked(scanInternal);
|
||||
break;
|
||||
case R.id.mnuScanExternal:
|
||||
scanExternal = !item.isChecked();
|
||||
item.setChecked(scanExternal);
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package us.spotco.veritas;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Environment;
|
||||
import android.widget.TextView;
|
||||
|
@ -11,6 +13,8 @@ import com.google.common.io.Files;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class MalwareScanner {
|
||||
|
||||
|
@ -62,19 +66,21 @@ public class MalwareScanner {
|
|||
boolean scanInternal = booleans[2];
|
||||
boolean scanExternal = booleans[3];
|
||||
|
||||
ArrayList<File> filesToScan = new ArrayList<File>();
|
||||
Set<File> filesToScan = new HashSet<>();
|
||||
|
||||
if (scanSystem) {
|
||||
filesToScan.addAll(getFilesRecursive(Environment.getRootDirectory()));
|
||||
}
|
||||
if (scanApps) {
|
||||
//TODO
|
||||
for(ApplicationInfo packageInfo : context.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) {
|
||||
filesToScan.add(new File(packageInfo.sourceDir));
|
||||
}
|
||||
}
|
||||
if (scanInternal) {
|
||||
filesToScan.addAll(getFilesRecursive(Environment.getExternalStorageDirectory()));
|
||||
}
|
||||
if (scanExternal && Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
||||
//TODO
|
||||
if (scanExternal) {
|
||||
filesToScan.addAll(getFilesRecursive(new File("/storage")));
|
||||
}
|
||||
publishProgress(filesToScan.size() + " files pending scan");
|
||||
|
||||
|
@ -95,14 +101,14 @@ public class MalwareScanner {
|
|||
|
||||
}
|
||||
|
||||
private ArrayList<File> getFilesRecursive(File root) {
|
||||
ArrayList<File> filesAll = new ArrayList<File>();
|
||||
private Set<File> getFilesRecursive(File root) {
|
||||
Set<File> filesAll = new HashSet<>();
|
||||
|
||||
File[] files = root.listFiles();
|
||||
if (files != null && files.length > 0) {
|
||||
for (File f : files) {
|
||||
if (f.isDirectory()) {
|
||||
ArrayList<File> filesTmp = getFilesRecursive(f);
|
||||
Set<File> filesTmp = getFilesRecursive(f);
|
||||
if (filesTmp != null) {
|
||||
filesAll.addAll(filesTmp);
|
||||
}
|
||||
|
|
|
@ -27,6 +27,6 @@
|
|||
android:id="@+id/mnuScanExternal"
|
||||
android:title="@string/lblScanExternal"
|
||||
android:checkable="true"
|
||||
android:checked="true" />
|
||||
android:checked="false" />
|
||||
|
||||
</menu>
|
||||
|
|
Loading…
Add table
Reference in a new issue