2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-08-22 01:51:47 +00:00

Add a setting to enable/disable UDP broadcast

This commit is contained in:
Albert Vaca Cintora 2023-06-19 18:47:05 +02:00
parent 020382931c
commit 0d658e6fb6
3 changed files with 20 additions and 1 deletions

View File

@ -547,4 +547,6 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<string name="plugin_stats">Plugin stats</string>
<string name="enable_udp_broadcast">Enable backwards-compatible device discovery</string>
</resources>

View File

@ -24,6 +24,7 @@ import org.kde.kdeconnect.Helpers.TrustedNetworkHelper;
import org.kde.kdeconnect.KdeConnect;
import org.kde.kdeconnect.NetworkPacket;
import org.kde.kdeconnect.UserInterface.CustomDevicesActivity;
import org.kde.kdeconnect.UserInterface.SettingsFragment;
import java.io.BufferedReader;
import java.io.IOException;
@ -331,6 +332,12 @@ public class LanLinkProvider extends BaseLinkProvider {
}
private void broadcastUdpIdentityPacket() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
if (!preferences.getBoolean(SettingsFragment.KEY_UDP_BROADCAST_ENABLED, true)) {
Log.i("LanLinkProvider", "UDP broadcast is disabled in settings. Skipping.");
return;
}
if (System.currentTimeMillis() < lastBroadcast + delayBetweenBroadcasts) {
Log.i("LanLinkProvider", "broadcastUdpPacket: relax cowboy");
return;

View File

@ -37,6 +37,9 @@ import org.kde.kdeconnect_tp.R;
public class SettingsFragment extends PreferenceFragmentCompat {
public static final String KEY_UDP_BROADCAST_ENABLED = "udp_broadcast_enabled";
public static final String KEY_APP_THEME = "theme_pref";
private EditTextPreference renameDevice;
@NonNull
@ -90,7 +93,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
// Theme Selector
ListPreference themeSelector = new ListPreference(context);
themeSelector.setKey("theme_pref");
themeSelector.setKey(KEY_APP_THEME);
themeSelector.setTitle(R.string.theme_dialog_title);
themeSelector.setDialogTitle(R.string.theme_dialog_title);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
@ -168,6 +171,13 @@ public class SettingsFragment extends PreferenceFragmentCompat {
return true;
});
// UDP broadcast toggle
final TwoStatePreference udpBroadcastDiscovery = new SwitchPreference(context);
udpBroadcastDiscovery.setPersistent(false);
udpBroadcastDiscovery.setDefaultValue(true);
udpBroadcastDiscovery.setKey(KEY_UDP_BROADCAST_ENABLED);
udpBroadcastDiscovery.setTitle(R.string.enable_udp_broadcast);
screen.addPreference(udpBroadcastDiscovery);
// More settings text
Preference moreSettingsText = new Preference(context);