diff --git a/src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java b/src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java index 0fa30287..70c4fedf 100644 --- a/src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java +++ b/src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java @@ -76,6 +76,9 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis private ServerSocket tcpServer; private DatagramSocket udpServer; + private long lastBroadcast = 0; + private final static long delayBetweenBroadcasts = 500; + private boolean listening = false; // To prevent infinte loop between Android < IceCream because both device can only broadcast identity package but cannot connect via TCP @@ -355,6 +358,12 @@ public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDis } private void broadcastUdpPacket() { + if (System.currentTimeMillis() < lastBroadcast + delayBetweenBroadcasts) { + Log.i("LanLinkProvider", "broadcastUdpPacket: relax cowboy"); + return; + } + lastBroadcast = System.currentTimeMillis(); + new Thread(() -> { ArrayList iplist = CustomDevicesActivity .getCustomDeviceList(PreferenceManager.getDefaultSharedPreferences(context)); diff --git a/src/org/kde/kdeconnect/UserInterface/MainActivity.java b/src/org/kde/kdeconnect/UserInterface/MainActivity.java index ad564e2c..43098713 100644 --- a/src/org/kde/kdeconnect/UserInterface/MainActivity.java +++ b/src/org/kde/kdeconnect/UserInterface/MainActivity.java @@ -286,7 +286,10 @@ public class MainActivity extends AppCompatActivity implements SharedPreferences @Override protected void onStart() { super.onStart(); - BackgroundService.RunCommand(this, service -> service.addDeviceListChangedCallback("MainActivity", this::updateDeviceList)); + BackgroundService.RunCommand(this, service -> { + service.onNetworkChange(); + service.addDeviceListChangedCallback("MainActivity", this::updateDeviceList); + }); updateDeviceList(); }