Changeset View
Changeset View
Standalone View
Standalone View
src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
Show All 29 Lines | |||||
30 | import org.kde.kdeconnect.Backends.BaseLink; | 30 | import org.kde.kdeconnect.Backends.BaseLink; | ||
31 | import org.kde.kdeconnect.Backends.BaseLinkProvider; | 31 | import org.kde.kdeconnect.Backends.BaseLinkProvider; | ||
32 | import org.kde.kdeconnect.BackgroundService; | 32 | import org.kde.kdeconnect.BackgroundService; | ||
33 | import org.kde.kdeconnect.Device; | 33 | import org.kde.kdeconnect.Device; | ||
34 | import org.kde.kdeconnect.Helpers.DeviceHelper; | 34 | import org.kde.kdeconnect.Helpers.DeviceHelper; | ||
35 | import org.kde.kdeconnect.Helpers.NetworkHelper; | 35 | import org.kde.kdeconnect.Helpers.NetworkHelper; | ||
36 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | 36 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | ||
37 | import org.kde.kdeconnect.Helpers.StringsHelper; | 37 | import org.kde.kdeconnect.Helpers.StringsHelper; | ||
38 | import org.kde.kdeconnect.Helpers.TrustedNetworkHelper; | ||||
38 | import org.kde.kdeconnect.NetworkPacket; | 39 | import org.kde.kdeconnect.NetworkPacket; | ||
39 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | 40 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | ||
40 | 41 | | |||
41 | import java.io.BufferedReader; | 42 | import java.io.BufferedReader; | ||
42 | import java.io.IOException; | 43 | import java.io.IOException; | ||
43 | import java.io.InputStreamReader; | 44 | import java.io.InputStreamReader; | ||
44 | import java.io.OutputStream; | 45 | import java.io.OutputStream; | ||
45 | import java.net.DatagramPacket; | 46 | import java.net.DatagramPacket; | ||
46 | import java.net.DatagramSocket; | 47 | import java.net.DatagramSocket; | ||
47 | import java.net.InetAddress; | 48 | import java.net.InetAddress; | ||
48 | import java.net.InetSocketAddress; | 49 | import java.net.InetSocketAddress; | ||
49 | import java.net.ServerSocket; | 50 | import java.net.ServerSocket; | ||
50 | import java.net.Socket; | 51 | import java.net.Socket; | ||
51 | import java.net.SocketException; | 52 | import java.net.SocketException; | ||
52 | import java.security.cert.Certificate; | 53 | import java.security.cert.Certificate; | ||
53 | import java.util.ArrayList; | 54 | import java.util.ArrayList; | ||
54 | import java.util.HashMap; | 55 | import java.util.HashMap; | ||
55 | import java.util.Timer; | 56 | import java.util.Timer; | ||
56 | import java.util.TimerTask; | 57 | import java.util.TimerTask; | ||
57 | 58 | | |||
58 | import javax.net.SocketFactory; | 59 | import javax.net.SocketFactory; | ||
59 | import javax.net.ssl.HandshakeCompletedEvent; | | |||
60 | import javax.net.ssl.HandshakeCompletedListener; | | |||
61 | import javax.net.ssl.SSLSocket; | 60 | import javax.net.ssl.SSLSocket; | ||
62 | 61 | | |||
63 | /** | 62 | /** | ||
64 | * This BaseLinkProvider creates {@link LanLink}s to other devices on the same | 63 | * This BaseLinkProvider creates {@link LanLink}s to other devices on the same | ||
65 | * WiFi network. The first packet sent over a socket must be an | 64 | * WiFi network. The first packet sent over a socket must be an | ||
66 | * {@link NetworkPacket#createIdentityPacket(Context)}. | 65 | * {@link NetworkPacket#createIdentityPacket(Context)}. | ||
67 | * | 66 | * | ||
68 | * @see #identityPacketReceived(NetworkPacket, Socket, LanLink.ConnectionStarted) | 67 | * @see #identityPacketReceived(NetworkPacket, Socket, LanLink.ConnectionStarted) | ||
▲ Show 20 Lines • Show All 311 Lines • ▼ Show 20 Line(s) | 69 | public class LanLinkProvider extends BaseLinkProvider implements LanLink.LinkDisconnectedCallback { | |||
380 | 379 | | |||
381 | private void broadcastUdpPacket() { | 380 | private void broadcastUdpPacket() { | ||
382 | 381 | | |||
383 | if (NetworkHelper.isOnMobileNetwork(context)) { | 382 | if (NetworkHelper.isOnMobileNetwork(context)) { | ||
384 | Log.w("LanLinkProvider", "On 3G network, not sending broadcast."); | 383 | Log.w("LanLinkProvider", "On 3G network, not sending broadcast."); | ||
385 | return; | 384 | return; | ||
386 | } | 385 | } | ||
387 | 386 | | |||
387 | if (TrustedNetworkHelper.isNotTrustedNetwork(context)) { | ||||
388 | Log.w("LanLinkProvider", "Current WiFi isn't a Trusted Network"); | ||||
389 | return; | ||||
390 | } | ||||
391 | | ||||
388 | new Thread(() -> { | 392 | new Thread(() -> { | ||
389 | 393 | | |||
390 | String deviceListPrefs = PreferenceManager.getDefaultSharedPreferences(context).getString(CustomDevicesActivity.KEY_CUSTOM_DEVLIST_PREFERENCE, ""); | 394 | String deviceListPrefs = PreferenceManager.getDefaultSharedPreferences(context).getString(CustomDevicesActivity.KEY_CUSTOM_DEVLIST_PREFERENCE, ""); | ||
391 | ArrayList<String> iplist = new ArrayList<>(); | 395 | ArrayList<String> iplist = new ArrayList<>(); | ||
392 | if (!deviceListPrefs.isEmpty()) { | 396 | if (!deviceListPrefs.isEmpty()) { | ||
393 | iplist = CustomDevicesActivity.deserializeIpList(deviceListPrefs); | 397 | iplist = CustomDevicesActivity.deserializeIpList(deviceListPrefs); | ||
394 | } | 398 | } | ||
395 | iplist.add("255.255.255.255"); //Default: broadcast. | 399 | iplist.add("255.255.255.255"); //Default: broadcast. | ||
▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines |