summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2021-10-24 18:14:18 +0200
committerArne Schwabe <arne@rfc2549.org>2021-10-24 18:14:18 +0200
commitaf4a789df914732e65b05dae582ed21eed0d91b7 (patch)
tree310895a240d6ebed32a38441492aaa6d5ed673dd
parent3697577127dc8c8b16519fb9d08cb14f58133a0e (diff)
Convert IP settings to Kotlin and use autosummary provider
-rw-r--r--main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.java150
-rw-r--r--main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt106
-rw-r--r--main/src/ui/res/xml/vpn_ipsettings.xml71
3 files changed, 144 insertions, 183 deletions
diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.java b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.java
deleted file mode 100644
index 843ff750..00000000
--- a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2012-2016 Arne Schwabe
- * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
- */
-
-package de.blinkt.openvpn.fragments;
-
-import android.os.Bundle;
-
-import androidx.preference.CheckBoxPreference;
-import androidx.preference.EditTextPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceManager;
-import androidx.preference.SwitchPreference;
-
-import de.blinkt.openvpn.R;
-import de.blinkt.openvpn.VpnProfile;
-
-public class Settings_IP extends OpenVpnPreferencesFragment implements Preference.OnPreferenceChangeListener {
- private EditTextPreference mIPv4;
- private EditTextPreference mIPv6;
- private SwitchPreference mUsePull;
- private CheckBoxPreference mOverrideDNS;
- private EditTextPreference mSearchdomain;
- private EditTextPreference mDNS1;
- private EditTextPreference mDNS2;
- private CheckBoxPreference mNobind;
-
- @Override
- public void onResume()
- {
- super.onResume();
-
-
- // Make sure default values are applied. In a real app, you would
- // want this in a shared function that is used to retrieve the
- // SharedPreferences wherever they are needed.
- PreferenceManager.setDefaultValues(requireActivity(),
- R.xml.vpn_ipsettings, false);
-
- // Load the preferences from an XML resource
- addPreferencesFromResource(R.xml.vpn_ipsettings);
- mIPv4 = findPreference("ipv4_address");
- mIPv6 = findPreference("ipv6_address");
- mUsePull = findPreference("usePull");
- mOverrideDNS = findPreference("overrideDNS");
- mSearchdomain = findPreference("searchdomain");
- mDNS1 = findPreference("dns1");
- mDNS2 = findPreference("dns2");
- mNobind = findPreference("nobind");
-
- mIPv4.setOnPreferenceChangeListener(this);
- mIPv6.setOnPreferenceChangeListener(this);
- mDNS1.setOnPreferenceChangeListener(this);
- mDNS2.setOnPreferenceChangeListener(this);
- mUsePull.setOnPreferenceChangeListener(this);
- mOverrideDNS.setOnPreferenceChangeListener(this);
- mSearchdomain.setOnPreferenceChangeListener(this);
-
- loadSettings();
- }
-
- @Override
- protected void loadSettings() {
-
- if (mProfile.mAuthenticationType == VpnProfile.TYPE_STATICKEYS)
- mUsePull.setEnabled(false);
- else
- mUsePull.setChecked(mProfile.mUsePull);
- mIPv4.setText(mProfile.mIPv4Address);
- mIPv6.setText(mProfile.mIPv6Address);
- mDNS1.setText(mProfile.mDNS1);
- mDNS2.setText(mProfile.mDNS2);
- mOverrideDNS.setChecked(mProfile.mOverrideDNS);
- mSearchdomain.setText(mProfile.mSearchDomain);
- mNobind.setChecked(mProfile.mNobind);
-
-
- //mUsePull.setEnabled(mProfile.mAuthenticationType != VpnProfile.TYPE_STATICKEYS);
- mUsePull.setEnabled(true);
-
- if (mProfile.mAuthenticationType == VpnProfile.TYPE_STATICKEYS)
- mUsePull.setChecked(false);
-
- // Sets Summary
- onPreferenceChange(mIPv4, mIPv4.getText());
- onPreferenceChange(mIPv6, mIPv6.getText());
- onPreferenceChange(mDNS1, mDNS1.getText());
- onPreferenceChange(mDNS2, mDNS2.getText());
- onPreferenceChange(mSearchdomain, mSearchdomain.getText());
-
- setDNSState();
- }
-
-
- @Override
- protected void saveSettings() {
- mProfile.mUsePull = mUsePull.isChecked();
- mProfile.mIPv4Address = mIPv4.getText();
- mProfile.mIPv6Address = mIPv6.getText();
- mProfile.mDNS1 = mDNS1.getText();
- mProfile.mDNS2 = mDNS2.getText();
- mProfile.mOverrideDNS = mOverrideDNS.isChecked();
- mProfile.mSearchDomain = mSearchdomain.getText();
- mProfile.mNobind = mNobind.isChecked();
-
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference,
- Object newValue) {
- if(preference==mIPv4 || preference == mIPv6
- || preference==mDNS1 || preference == mDNS2
- || preference == mSearchdomain
- )
-
- preference.setSummary((String)newValue);
-
- if(preference== mUsePull || preference == mOverrideDNS)
- if(preference==mOverrideDNS) {
- // Set so the function gets the right value
- mOverrideDNS.setChecked((Boolean) newValue);
- }
- setDNSState();
-
- saveSettings();
- return true;
- }
-
- private void setDNSState() {
- boolean enabled;
- mOverrideDNS.setEnabled(mUsePull.isChecked());
- if(!mUsePull.isChecked())
- enabled =true;
- else
- enabled = mOverrideDNS.isChecked();
-
- mDNS1.setEnabled(enabled);
- mDNS2.setEnabled(enabled);
- mSearchdomain.setEnabled(enabled);
-
-
- }
-
-
- @Override
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-
- }
-} \ No newline at end of file
diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt
new file mode 100644
index 00000000..d2bf4b74
--- /dev/null
+++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2012-2016 Arne Schwabe
+ * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ */
+package de.blinkt.openvpn.fragments
+
+import android.os.Bundle
+import androidx.preference.*
+import de.blinkt.openvpn.R
+import de.blinkt.openvpn.fragments.OpenVpnPreferencesFragment
+import de.blinkt.openvpn.VpnProfile
+
+class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeListener {
+ private lateinit var mIPv4: EditTextPreference
+ private lateinit var mIPv6: EditTextPreference
+ private lateinit var mUsePull: SwitchPreference
+ private lateinit var mOverrideDNS: CheckBoxPreference
+ private lateinit var mSearchdomain: EditTextPreference
+ private lateinit var mDNS1: EditTextPreference
+ private lateinit var mDNS2: EditTextPreference
+ private lateinit var mNobind: CheckBoxPreference
+ override fun onResume() {
+ super.onResume()
+
+
+ // Make sure default values are applied. In a real app, you would
+ // want this in a shared function that is used to retrieve the
+ // SharedPreferences wherever they are needed.
+ PreferenceManager.setDefaultValues(
+ requireActivity(),
+ R.xml.vpn_ipsettings, false
+ )
+
+ // Load the preferences from an XML resource
+ addPreferencesFromResource(R.xml.vpn_ipsettings)
+ mIPv4 = findPreference("ipv4_address")!!
+ mIPv6 = findPreference("ipv6_address")!!
+ mUsePull = findPreference("usePull")!!
+ mOverrideDNS = findPreference("overrideDNS")!!
+ mSearchdomain = findPreference("searchdomain")!!
+ mDNS1 = findPreference("dns1")!!
+ mDNS2 = findPreference("dns2")!!
+ mNobind = findPreference("nobind")!!
+ mUsePull.onPreferenceChangeListener = this
+ mOverrideDNS.onPreferenceChangeListener = this
+ loadSettings()
+ }
+
+ override fun loadSettings() {
+ if (mProfile.mAuthenticationType == VpnProfile.TYPE_STATICKEYS) mUsePull.isEnabled =
+ false else mUsePull.isChecked = mProfile.mUsePull
+ mIPv4.text = mProfile.mIPv4Address
+ mIPv6.text = mProfile.mIPv6Address
+ mDNS1.text = mProfile.mDNS1
+ mDNS2.text = mProfile.mDNS2
+ mOverrideDNS.isChecked = mProfile.mOverrideDNS
+ mSearchdomain.text = mProfile.mSearchDomain
+ mNobind.isChecked = mProfile.mNobind
+
+
+ //mUsePull.setEnabled(mProfile.mAuthenticationType != VpnProfile.TYPE_STATICKEYS);
+ mUsePull.isEnabled = true
+ if (mProfile.mAuthenticationType == VpnProfile.TYPE_STATICKEYS) mUsePull.isChecked = false
+
+ // Sets Summary
+ setDNSState()
+ }
+
+ override fun saveSettings() {
+ mProfile.mUsePull = mUsePull.isChecked
+ mProfile.mIPv4Address = mIPv4.text
+ mProfile.mIPv6Address = mIPv6.text
+ mProfile.mDNS1 = mDNS1.text
+ mProfile.mDNS2 = mDNS2.text
+ mProfile.mOverrideDNS = mOverrideDNS.isChecked
+ mProfile.mSearchDomain = mSearchdomain.text
+ mProfile.mNobind = mNobind.isChecked
+ }
+
+ override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean {
+ if (preference === mUsePull || preference === mOverrideDNS)
+ if (preference === mOverrideDNS) {
+ // Set so the function gets the right value
+ mOverrideDNS.isChecked = (newValue as Boolean)
+ }
+ setDNSState()
+ saveSettings()
+ return true
+ }
+
+ override fun onPause() {
+ super.onPause()
+ saveSettings()
+ }
+
+ private fun setDNSState() {
+ val enabled: Boolean
+ mOverrideDNS.isEnabled = mUsePull.isChecked
+ enabled = if (!mUsePull.isChecked) true else mOverrideDNS.isChecked
+ mDNS1.isEnabled = enabled
+ mDNS2.isEnabled = enabled
+ mSearchdomain.isEnabled = enabled
+ }
+
+ override fun onCreatePreferences(savedInstanceState: Bundle, rootKey: String) {}
+} \ No newline at end of file
diff --git a/main/src/ui/res/xml/vpn_ipsettings.xml b/main/src/ui/res/xml/vpn_ipsettings.xml
index 5df7ffa8..2b03c694 100644
--- a/main/src/ui/res/xml/vpn_ipsettings.xml
+++ b/main/src/ui/res/xml/vpn_ipsettings.xml
@@ -1,53 +1,58 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (c) 2012-2016 Arne Schwabe
~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreference
- android:disableDependentsState="true"
- android:key="usePull"
- android:summaryOff="@string/pull_off_summary"
- android:summaryOn="@string/pull_on_summary"
- android:title="@string/use_pull" />
+ android:disableDependentsState="true"
+ android:key="usePull"
+ android:summaryOff="@string/pull_off_summary"
+ android:summaryOn="@string/pull_on_summary"
+ android:title="@string/use_pull" />
- <PreferenceCategory android:title="IP" >
+ <PreferenceCategory android:title="IP">
<EditTextPreference
- android:dependency="usePull"
- android:dialogMessage="@string/ipv4_dialog_title"
- android:key="ipv4_address"
- android:title="@string/ipv4_address" />
+ android:dependency="usePull"
+ android:dialogMessage="@string/ipv4_dialog_title"
+ android:key="ipv4_address"
+ android:title="@string/ipv4_address"
+ app:useSimpleSummaryProvider="true" />
<EditTextPreference
- android:dependency="usePull"
- android:dialogMessage="@string/ipv6_dialog_tile"
- android:key="ipv6_address"
- android:title="@string/ipv6_address" />
+ android:dependency="usePull"
+ android:dialogMessage="@string/ipv6_dialog_tile"
+ android:key="ipv6_address"
+ android:title="@string/ipv6_address"
+ app:useSimpleSummaryProvider="true" />
<CheckBoxPreference
- android:key="nobind"
- android:persistent="false"
- android:summary="@string/nobind_summary"
- android:title="@string/no_bind" />
+ android:key="nobind"
+ android:persistent="false"
+ android:summary="@string/nobind_summary"
+ android:title="@string/no_bind" />
</PreferenceCategory>
- <PreferenceCategory android:title="@string/dns" >
+ <PreferenceCategory android:title="@string/dns">
<CheckBoxPreference
- android:key="overrideDNS"
- android:summary="@string/dns_override_summary"
- android:title="@string/override_dns" />
+ android:key="overrideDNS"
+ android:summary="@string/dns_override_summary"
+ android:title="@string/override_dns" />
<EditTextPreference
- android:key="searchdomain"
- android:title="@string/searchdomain" />
+ android:key="searchdomain"
+ android:title="@string/searchdomain"
+ app:useSimpleSummaryProvider="true" />
<EditTextPreference
- android:dialogMessage="@string/dns1_summary"
- android:key="dns1"
- android:title="@string/dns_server" />
+ android:dialogMessage="@string/dns1_summary"
+ android:key="dns1"
+ android:title="@string/dns_server"
+ app:useSimpleSummaryProvider="true" />
<EditTextPreference
- android:dialogMessage="@string/secondary_dns_message"
- android:key="dns2"
- android:title="@string/backup_dns" />
+ android:dialogMessage="@string/secondary_dns_message"
+ android:key="dns2"
+ android:title="@string/backup_dns"
+ app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
</PreferenceScreen> \ No newline at end of file