mirror of
https://github.com/emanuele-f/PCAPdroid.git
synced 2026-06-19 21:05:25 +08:00
parent
e502fe1ae5
commit
ebd5b589f6
@ -25,6 +25,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.preference.PreferenceManager;
|
||||
@ -36,6 +37,8 @@ import com.emanuelef.remote_capture.model.MatchList;
|
||||
import com.emanuelef.remote_capture.model.Prefs;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Set;
|
||||
|
||||
import cat.ereza.customactivityoncrash.config.CaocConfig;
|
||||
|
||||
@ -116,11 +119,15 @@ public class PCAPdroid extends Application {
|
||||
String packageName = intent.getData().getSchemeSpecificPart();
|
||||
Log.d(TAG, "ACTION_PACKAGE_REMOVED [update=" + isUpdate + "]: " + packageName);
|
||||
|
||||
if(!isUpdate)
|
||||
if(!isUpdate) {
|
||||
checkUidMapping(packageName);
|
||||
removeUninstalledAppsFromAppFilter();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, filter);
|
||||
|
||||
removeUninstalledAppsFromAppFilter();
|
||||
}
|
||||
|
||||
public static @NonNull PCAPdroid getInstance() {
|
||||
@ -195,6 +202,29 @@ public class PCAPdroid extends Application {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeUninstalledAppsFromAppFilter() {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
Set<String> filter = Prefs.getAppFilter(prefs);
|
||||
ArrayList<String> to_remove = new ArrayList<>();
|
||||
PackageManager pm = getPackageManager();
|
||||
|
||||
for (String package_name: filter) {
|
||||
try {
|
||||
Utils.getPackageInfo(pm, package_name, 0);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.i(TAG, "Package " + package_name + " uninstalled, removing from app filter");
|
||||
to_remove.add(package_name);
|
||||
}
|
||||
}
|
||||
|
||||
if (!to_remove.isEmpty()) {
|
||||
filter.removeAll(to_remove);
|
||||
prefs.edit()
|
||||
.putStringSet(Prefs.PREF_APP_FILTER, filter)
|
||||
.apply();
|
||||
}
|
||||
}
|
||||
|
||||
public MatchList getFirewallWhitelist() {
|
||||
if(mFirewallWhitelist == null) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user