mirror of
https://github.com/emanuele-f/PCAPdroid.git
synced 2026-06-16 21:10:57 +08:00
Fix firewall visibility
This commit is contained in:
parent
9506a1fb6f
commit
7807dee049
@ -27,6 +27,8 @@ import android.util.Log;
|
||||
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.emanuelef.remote_capture.model.Prefs;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.KeyFactory;
|
||||
@ -176,7 +178,13 @@ public class Billing {
|
||||
return rv;
|
||||
}
|
||||
|
||||
public boolean canUseFirewall() {
|
||||
return isPurchased(Billing.FIREWALL_SKU) && !CaptureService.isCapturingAsRoot();
|
||||
public boolean isFirewallVisible() {
|
||||
if(!isPurchased(Billing.FIREWALL_SKU))
|
||||
return false;
|
||||
|
||||
if(CaptureService.isServiceActive())
|
||||
return !CaptureService.isCapturingAsRoot();
|
||||
else
|
||||
return !Prefs.isRootCaptureEnabled(mPrefs);
|
||||
}
|
||||
}
|
||||
|
||||
@ -936,13 +936,6 @@ public class CaptureService extends VpnService implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isFirewallEnabled(Context ctx, SharedPreferences prefs) {
|
||||
if(INSTANCE != null)
|
||||
return INSTANCE.mFirewallEnabled;
|
||||
|
||||
return Prefs.isFirewallEnabled(ctx, prefs);
|
||||
}
|
||||
|
||||
/* The following methods are called from native code */
|
||||
|
||||
public String getVpnIPv4() {
|
||||
@ -1140,7 +1133,7 @@ public class CaptureService extends VpnService implements Runnable {
|
||||
}
|
||||
|
||||
public void reloadBlocklist() {
|
||||
if(!mBilling.canUseFirewall())
|
||||
if(!mBilling.isFirewallVisible())
|
||||
return;
|
||||
|
||||
Log.d(TAG, "reloading firewall blocklist");
|
||||
|
||||
@ -116,7 +116,7 @@ public class EditFilterActivity extends BaseActivity {
|
||||
if(!Prefs.isMalwareDetectionEnabled(this, prefs))
|
||||
mOnlyBlacklisted.setVisibility(View.GONE);
|
||||
|
||||
if(!billing.canUseFirewall())
|
||||
if(!billing.isFirewallVisible())
|
||||
mOnlyBlocked.setVisibility(View.GONE);
|
||||
|
||||
ConnectionsRegister reg = CaptureService.getConnsRegister();
|
||||
|
||||
@ -108,8 +108,8 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
|
||||
public static final String GITHUB_PROJECT_URL = "https://github.com/emanuele-f/PCAPdroid";
|
||||
public static final String DOCS_URL = "https://emanuele-f.github.io/PCAPdroid";
|
||||
public static final String DONATE_URL = "https://emanuele-f.github.io/PCAPdroid/donate";
|
||||
public static final String MALWARE_DETECTION_DOCS_URL = DOCS_URL + "/paid_features#51-malware-detection";
|
||||
public static final String FIREWALL_DOCS_URL = DOCS_URL + "/paid_features#52-firewall";
|
||||
public static final String FIREWALL_DOCS_URL = DOCS_URL + "/paid_features#51-firewall";
|
||||
public static final String MALWARE_DETECTION_DOCS_URL = DOCS_URL + "/paid_features#52-malware-detection";
|
||||
|
||||
private final ActivityResultLauncher<Intent> pcapFileLauncher =
|
||||
registerForActivityResult(new StartActivityForResult(), this::pcapFileResult);
|
||||
@ -211,7 +211,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
|
||||
Menu navMenu = mNavView.getMenu();
|
||||
navMenu.findItem(R.id.open_root_log).setVisible(Prefs.isRootCaptureEnabled(mPrefs));
|
||||
navMenu.findItem(R.id.malware_detection).setVisible(Prefs.isMalwareDetectionEnabled(this, mPrefs));
|
||||
navMenu.findItem(R.id.firewall).setVisible(mIab.canUseFirewall());
|
||||
navMenu.findItem(R.id.firewall).setVisible(mIab.isFirewallVisible());
|
||||
}
|
||||
|
||||
private void setupNavigationDrawer() {
|
||||
|
||||
@ -100,7 +100,7 @@ public class AppsStatsAdapter extends RecyclerView.Adapter<AppsStatsAdapter.View
|
||||
mBlocklist = PCAPdroid.getInstance().getBlocklist();
|
||||
mListener = null;
|
||||
mStats = new ArrayList<>();
|
||||
mFirewallAvailable = Billing.newInstance(context).canUseFirewall();
|
||||
mFirewallAvailable = Billing.newInstance(context).isFirewallVisible();
|
||||
setHasStableIds(true);
|
||||
}
|
||||
|
||||
|
||||
@ -307,7 +307,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
|
||||
Context ctx = requireContext();
|
||||
MenuItem item;
|
||||
|
||||
boolean firewallAvailable = Billing.newInstance(ctx).canUseFirewall();
|
||||
boolean firewallAvailable = Billing.newInstance(ctx).isFirewallVisible();
|
||||
boolean blockVisible = false;
|
||||
boolean unblockVisible = false;
|
||||
MatchList blocklist = PCAPdroid.getInstance().getBlocklist();
|
||||
|
||||
@ -121,7 +121,7 @@ public class FirewallStatus extends Fragment {
|
||||
|
||||
mToggle = (SwitchCompat) menu.findItem(R.id.toggle_btn).getActionView();
|
||||
mToggle.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
if(isChecked == CaptureService.isFirewallEnabled(requireContext(), mPrefs))
|
||||
if(isChecked == Prefs.isFirewallEnabled(requireContext(), mPrefs))
|
||||
return; // not changed
|
||||
|
||||
Log.d(TAG, "Firwall is now " + (isChecked ? "enabled" : "disabled"));
|
||||
@ -152,7 +152,7 @@ public class FirewallStatus extends Fragment {
|
||||
Context ctx = requireContext();
|
||||
ConnectionsRegister reg = CaptureService.getConnsRegister();
|
||||
boolean is_running = CaptureService.isServiceActive();
|
||||
boolean is_enabled = CaptureService.isFirewallEnabled(ctx, mPrefs);
|
||||
boolean is_enabled = Prefs.isFirewallEnabled(ctx, mPrefs);
|
||||
|
||||
if(!is_running) {
|
||||
mStatusIcon.setImageResource(R.drawable.ic_shield);
|
||||
|
||||
@ -116,7 +116,7 @@ public class Prefs {
|
||||
}
|
||||
public static boolean isFirewallEnabled(Context ctx, SharedPreferences p) {
|
||||
// NOTE: firewall can be disabled at runtime
|
||||
return(Billing.newInstance(ctx).canUseFirewall()
|
||||
return(Billing.newInstance(ctx).isFirewallVisible()
|
||||
&& p.getBoolean(PREF_FIREWALL, true));
|
||||
}
|
||||
public static boolean startAtBoot(SharedPreferences p) { return(p.getBoolean(PREF_START_AT_BOOT, false)); }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user