summaryrefslogtreecommitdiff
path: root/app/java/src
diff options
context:
space:
mode:
authorDaniel Weipert <code@drogueronin.de>2023-05-14 23:00:00 +0200
committerDaniel Weipert <code@drogueronin.de>2023-05-14 23:00:00 +0200
commit08b40e81c62420e977e82189482fc07c0d6ace31 (patch)
tree59848b81e4c24945a35846f42215c336aaeb13ae /app/java/src
parentde738691db03ff61bf292b75bfa716b75fe34af1 (diff)
menu / settings
Diffstat (limited to 'app/java/src')
-rw-r--r--app/java/src/MainActivity.java61
-rw-r--r--app/java/src/SettingsActivity.java22
-rw-r--r--app/java/src/WifiListenerReceiver.java4
3 files changed, 71 insertions, 16 deletions
diff --git a/app/java/src/MainActivity.java b/app/java/src/MainActivity.java
index bfad05a..6d232b9 100644
--- a/app/java/src/MainActivity.java
+++ b/app/java/src/MainActivity.java
@@ -7,11 +7,17 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
import android.net.VpnService;
+import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.preference.PreferenceManager;
+
import android.util.Log;
import android.view.Menu;
@@ -29,7 +35,7 @@ public class MainActivity extends Activity {
private Button buttonStart;
private Intent dnsProxyService;
- private BroadcastReceiver receiver = new BroadcastReceiver() {
+ private BroadcastReceiver receiveDNSProxyService = new BroadcastReceiver() {
/**
* Set button_start state on receive from DNSProxyService
@@ -40,6 +46,17 @@ public class MainActivity extends Activity {
}
};
+ private BroadcastReceiver receiveNetworkChange = new BroadcastReceiver() {
+
+ /**
+ * Set button_start state on receive of network change
+ */
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ setStateButtonStart();
+ }
+ };
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -48,9 +65,6 @@ public class MainActivity extends Activity {
this.buttonStart = (Button) findViewById(R.id.button_start);
this.dnsProxyService = new Intent(this, DNSProxyService.class);
-
- // if setting.get(USER_WIFI_LISTENER)
- // startService(new Intent(this, WifiListenerService.class));
}
@Override
@@ -58,14 +72,17 @@ public class MainActivity extends Activity {
super.onResume();
this.setStateButtonStart();
- registerReceiver(this.receiver, new IntentFilter(DNSProxyService.NOTIFICATION));
+ this.toggleWifiListenerService();
+ registerReceiver(this.receiveDNSProxyService, new IntentFilter(DNSProxyService.NOTIFICATION));
+ registerReceiver(this.receiveNetworkChange, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION));
}
@Override
public void onPause() {
super.onPause();
- unregisterReceiver(receiver);
+ unregisterReceiver(this.receiveDNSProxyService);
+ unregisterReceiver(this.receiveNetworkChange);
}
@Override
@@ -96,7 +113,7 @@ public class MainActivity extends Activity {
@Override
public void onActivityResult(int request, int result, Intent data) {
if (result == RESULT_OK) {
- this.start();
+ this.startDNSProxyService();
}
}
@@ -114,25 +131,35 @@ public class MainActivity extends Activity {
}
}
else { // stop
- this.stop();
+ this.stopDNSProxyService();
}
}
/**
- * Set button_start text
+ * Set button_start state
*/
- public void setStateButtonStart() {
+ private void setStateButtonStart() {
+ // change text
if (!DNSProxyService.isRunning()) {
this.buttonStart.setText(getString(R.string.button_start__start));
} else {
this.buttonStart.setText(getString(R.string.button_start__stop));
}
+
+ // toggle enabled
+ ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+ if (networkInfo.isConnected() || DNSProxyService.isRunning()) {
+ this.buttonStart.setEnabled(true);
+ } else if (!networkInfo.isConnected() && !DNSProxyService.isRunning()) {
+ this.buttonStart.setEnabled(false);
+ }
}
/**
* Start DNSProxyService
*/
- public void start() {
+ private void startDNSProxyService() {
startService(this.dnsProxyService.setAction(DNSProxyService.ACTION_START));
Toast
@@ -147,7 +174,7 @@ public class MainActivity extends Activity {
/**
* Stop DNSProxyService
*/
- public void stop() {
+ private void stopDNSProxyService() {
startService(this.dnsProxyService.setAction(DNSProxyService.ACTION_STOP));
Toast
@@ -158,4 +185,14 @@ public class MainActivity extends Activity {
)
.show();
}
+
+ private void toggleWifiListenerService() {
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
+
+ if (sharedPreferences.getBoolean("use_wifi_listener", false)) {
+ startService(new Intent(this, WifiListenerService.class));
+ } else {
+ stopService(new Intent(this, WifiListenerService.class));
+ }
+ }
}
diff --git a/app/java/src/SettingsActivity.java b/app/java/src/SettingsActivity.java
index 83e2661..c71693a 100644
--- a/app/java/src/SettingsActivity.java
+++ b/app/java/src/SettingsActivity.java
@@ -12,6 +12,10 @@ import android.net.VpnService;
import android.os.Bundle;
+import android.preference.MultiSelectListPreference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
+
import android.util.Log;
import android.view.Menu;
@@ -24,13 +28,17 @@ import android.widget.Button;
import android.widget.Toast;
import android.provider.Settings;
-public class SettingsActivity extends Activity {
+import java.util.List;
+
+public class SettingsActivity extends PreferenceActivity {
+
+ private MultiSelectListPreference knownSsids;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.settings);
+ getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
// if (setting.get(USE_WIFI_LISTENER))
// requestPermissions(new String[]{
@@ -38,4 +46,14 @@ public class SettingsActivity extends Activity {
// }, 1234);
// startService(WifiListenerService);
}
+
+ public static class SettingsFragment extends PreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.settings);
+ }
+ }
}
diff --git a/app/java/src/WifiListenerReceiver.java b/app/java/src/WifiListenerReceiver.java
index ca22965..d34df2b 100644
--- a/app/java/src/WifiListenerReceiver.java
+++ b/app/java/src/WifiListenerReceiver.java
@@ -25,7 +25,7 @@ public class WifiListenerReceiver extends BroadcastReceiver
// start
if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
// wait a few moments for wifi to be fully there
- (new Handler()).postDelayed(new Runnable() {
+ /* (new Handler()).postDelayed(new Runnable() {
@Override
public void run() {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
@@ -35,7 +35,7 @@ public class WifiListenerReceiver extends BroadcastReceiver
context.startService(dnsProxyService.setAction(DNSProxyService.ACTION_START));
}
- }, 1000);
+ }, 1000); */
}
// stop