From 7aa461383026696ca944f260843ee208ac2ad95e Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 30 Oct 2015 08:57:36 +0100 Subject: [PATCH] Refactoring --- .../eu/faircode/netguard/ActivityMain.java | 172 +++++++++++------- .../eu/faircode/netguard/SinkholeService.java | 32 ++-- app/src/main/res/menu/main.xml | 2 +- 3 files changed, 124 insertions(+), 82 deletions(-) diff --git a/app/src/main/java/eu/faircode/netguard/ActivityMain.java b/app/src/main/java/eu/faircode/netguard/ActivityMain.java index 74079db4..3e98e6b5 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityMain.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityMain.java @@ -226,14 +226,14 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences menuNetwork = menu.findItem(R.id.menu_network); menuNetwork.setIcon(Util.isWifiActive(this) ? R.drawable.ic_network_wifi_white_24dp : R.drawable.ic_network_cell_white_24dp); - MenuItem wifi = menu.findItem(R.id.menu_whitelist_wifi); - wifi.setChecked(prefs.getBoolean("whitelist_wifi", true)); + MenuItem menuWwifi = menu.findItem(R.id.menu_whitelist_wifi); + menuWwifi.setChecked(prefs.getBoolean("whitelist_wifi", true)); - MenuItem other = menu.findItem(R.id.menu_whitelist_other); - other.setChecked(prefs.getBoolean("whitelist_other", true)); + MenuItem menuOther = menu.findItem(R.id.menu_whitelist_other); + menuOther.setChecked(prefs.getBoolean("whitelist_other", true)); - MenuItem dark = menu.findItem(R.id.menu_dark); - dark.setChecked(prefs.getBoolean("dark_theme", false)); + MenuItem menuTheme = menu.findItem(R.id.menu_theme); + menuTheme.setChecked(prefs.getBoolean("dark_theme", false)); return super.onPrepareOptionsMenu(menu); } @@ -245,12 +245,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences // Handle item selection switch (item.getItemId()) { case R.id.menu_network: - Intent settings = new Intent(Util.isWifiActive(this) - ? Settings.ACTION_WIFI_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS); - if (settings.resolveActivity(getPackageManager()) != null) - startActivity(settings); - else - Log.w(TAG, settings + " not available"); + menu_network(); return true; case R.id.menu_refresh: @@ -258,79 +253,35 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences return true; case R.id.menu_whitelist_wifi: - prefs.edit().putBoolean("whitelist_wifi", !prefs.getBoolean("whitelist_wifi", true)).apply(); - fillApplicationList(); - SinkholeService.reload("wifi", this); + menu_whitelist_wifi(prefs); return true; case R.id.menu_whitelist_other: - prefs.edit().putBoolean("whitelist_other", !prefs.getBoolean("whitelist_other", true)).apply(); - fillApplicationList(); - SinkholeService.reload("other", this); + menu_whitelist_other(prefs); return true; case R.id.menu_reset_wifi: - new AlertDialog.Builder(this) - .setMessage(R.string.msg_sure) - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - reset("wifi"); - } - }) - .setNegativeButton(android.R.string.no, null) - .show(); + menu_reset_wifi(); return true; case R.id.menu_reset_other: - new AlertDialog.Builder(this) - .setMessage(R.string.msg_sure) - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - reset("other"); - } - }) - .setNegativeButton(android.R.string.no, null) - .show(); + menu_reset_other(); return true; - case R.id.menu_dark: - prefs.edit().putBoolean("dark_theme", !prefs.getBoolean("dark_theme", false)).apply(); - recreate(); + case R.id.menu_theme: + menu_theme(prefs); return true; case R.id.menu_vpn_settings: - // Open VPN settings - Intent vpn = new Intent("android.net.vpn.SETTINGS"); - if (vpn.resolveActivity(getPackageManager()) != null) - startActivity(vpn); - else - Log.w(TAG, vpn + " not available"); + menu_vpn_settings(); return true; case R.id.menu_support: - Intent xda = new Intent(Intent.ACTION_VIEW); - xda.setData(Uri.parse("http://forum.xda-developers.com/showthread.php?t=3233012")); - if (xda.resolveActivity(getPackageManager()) != null) - startActivity(xda); - else - Log.w(TAG, xda + " not available"); - - - + menu_support(); return true; case R.id.menu_about: - // Show about - LayoutInflater inflater = LayoutInflater.from(this); - View view = inflater.inflate(R.layout.about, null); - TextView tvVersion = (TextView) view.findViewById(R.id.tvVersion); - tvVersion.setText(Util.getSelfVersionName(this)); - AlertDialog dialog = new AlertDialog.Builder(this) - .setView(view) - .setCancelable(true).create(); - dialog.show(); + menu_about(); return true; default: @@ -338,6 +289,97 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences } } + private void menu_network() { + Intent settings = new Intent(Util.isWifiActive(this) + ? Settings.ACTION_WIFI_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS); + if (settings.resolveActivity(getPackageManager()) != null) + startActivity(settings); + else + Log.w(TAG, settings + " not available"); + } + + private void menu_whitelist_wifi(SharedPreferences prefs) { + prefs.edit().putBoolean("whitelist_wifi", !prefs.getBoolean("whitelist_wifi", true)).apply(); + fillApplicationList(); + SinkholeService.reload("wifi", this); + } + + private void menu_whitelist_other(SharedPreferences prefs) { + prefs.edit().putBoolean("whitelist_other", !prefs.getBoolean("whitelist_other", true)).apply(); + fillApplicationList(); + SinkholeService.reload("other", this); + } + + private void menu_reset_wifi() { + new AlertDialog.Builder(this) + .setMessage(R.string.msg_sure) + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + reset("wifi"); + } + }) + .setNegativeButton(android.R.string.no, null) + .show(); + } + + private void menu_reset_other() { + new AlertDialog.Builder(this) + .setMessage(R.string.msg_sure) + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + reset("other"); + } + }) + .setNegativeButton(android.R.string.no, null) + .show(); + } + + private void menu_theme(SharedPreferences prefs) { + prefs.edit().putBoolean("dark_theme", !prefs.getBoolean("dark_theme", false)).apply(); + recreate(); + } + + private void menu_vpn_settings() { + Intent vpn = new Intent("android.net.vpn.SETTINGS"); + if (vpn.resolveActivity(getPackageManager()) != null) + startActivity(vpn); + else + Log.w(TAG, vpn + " not available"); + } + + private void menu_support() { + Intent xda = new Intent(Intent.ACTION_VIEW); + xda.setData(Uri.parse("http://forum.xda-developers.com/showthread.php?t=3233012")); + if (xda.resolveActivity(getPackageManager()) != null) + startActivity(xda); + else + Log.w(TAG, xda + " not available"); + } + + private void menu_about() { + LayoutInflater inflater = LayoutInflater.from(this); + View view = inflater.inflate(R.layout.about, null); + TextView tvVersion = (TextView) view.findViewById(R.id.tvVersion); + tvVersion.setText(Util.getSelfVersionName(this)); + view.setOnClickListener(new View.OnClickListener() { + private short tap = 0; + + @Override + public void onClick(View view) { + if (++tap == 7) { + tap = 0; + Util.sendLogcat(TAG, ActivityMain.this); + } + } + }); + AlertDialog dialog = new AlertDialog.Builder(this) + .setView(view) + .setCancelable(true).create(); + dialog.show(); + } + private void reset(String network) { SharedPreferences other = getSharedPreferences(network, Context.MODE_PRIVATE); SharedPreferences.Editor edit = other.edit(); diff --git a/app/src/main/java/eu/faircode/netguard/SinkholeService.java b/app/src/main/java/eu/faircode/netguard/SinkholeService.java index faef5ab4..6c91ae36 100644 --- a/app/src/main/java/eu/faircode/netguard/SinkholeService.java +++ b/app/src/main/java/eu/faircode/netguard/SinkholeService.java @@ -45,8 +45,8 @@ public class SinkholeService extends VpnService { switch (cmd) { case start: if (enabled && vpn == null) { - vpn = vpnStart(); - receiveStart(vpn); + vpn = startVPN(); + startDebug(vpn); } break; @@ -54,18 +54,18 @@ public class SinkholeService extends VpnService { // Seamless handover ParcelFileDescriptor prev = vpn; if (enabled) { - vpn = vpnStart(); - receivedEnd(); - receiveStart(vpn); + vpn = startVPN(); + stopDebug(); + startDebug(vpn); } if (prev != null) - vpnStop(prev); + stopVPN(prev); break; case stop: if (vpn != null) { - receivedEnd(); - vpnStop(vpn); + stopDebug(); + stopVPN(vpn); vpn = null; } stopSelf(); @@ -75,7 +75,7 @@ public class SinkholeService extends VpnService { return START_STICKY; } - private ParcelFileDescriptor vpnStart() { + private ParcelFileDescriptor startVPN() { Log.i(TAG, "Starting"); // Check if Wi-Fi @@ -131,7 +131,7 @@ public class SinkholeService extends VpnService { } } - private void vpnStop(ParcelFileDescriptor pfd) { + private void stopVPN(ParcelFileDescriptor pfd) { Log.i(TAG, "Stopping"); try { pfd.close(); @@ -140,7 +140,7 @@ public class SinkholeService extends VpnService { } } - private void receiveStart(final ParcelFileDescriptor pfd) { + private void startDebug(final ParcelFileDescriptor pfd) { if (!debug) return; @@ -198,7 +198,7 @@ public class SinkholeService extends VpnService { thread.start(); } - private void receivedEnd() { + private void stopDebug() { if (thread != null) thread.interrupt(); } @@ -260,8 +260,8 @@ public class SinkholeService extends VpnService { Log.i(TAG, "Destroy"); if (vpn != null) { - receivedEnd(); - vpnStop(vpn); + stopDebug(); + stopVPN(vpn); vpn = null; } @@ -277,8 +277,8 @@ public class SinkholeService extends VpnService { Log.i(TAG, "Revoke"); if (vpn != null) { - receivedEnd(); - vpnStop(vpn); + stopDebug(); + stopVPN(vpn); vpn = null; } diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml index 91c4864e..cd49794d 100644 --- a/app/src/main/res/menu/main.xml +++ b/app/src/main/res/menu/main.xml @@ -29,7 +29,7 @@ android:id="@+id/menu_reset_other" android:title="@string/menu_reset_other" />