lbry-android-sdk/p4a/pythonforandroid/bootstraps/webview/build/templates/WebViewLoader.tmpl.java
2022-12-02 15:15:34 -05:00

56 lines
1.8 KiB
Java

package org.kivy.android;
import android.util.Log;
import java.io.IOException;
import java.net.Socket;
import java.net.InetSocketAddress;
import android.os.SystemClock;
import android.os.Handler;
import org.kivy.android.PythonActivity;
public class WebViewLoader {
private static final String TAG = "WebViewLoader";
public static void testConnection() {
while (true) {
if (WebViewLoader.pingHost("localhost", {{ args.port }}, 100)) {
Log.v(TAG, "Successfully pinged localhost:{{ args.port }}");
Handler mainHandler = new Handler(PythonActivity.mActivity.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() {
PythonActivity.mActivity.loadUrl("http://127.0.0.1:{{ args.port }}/");
Log.v(TAG, "Loaded webserver in webview");
}
};
mainHandler.post(myRunnable);
break;
} else {
Log.v(TAG, "Could not ping localhost:{{ args.port }}");
try {
Thread.sleep(100);
} catch(InterruptedException e) {
Log.v(TAG, "InterruptedException occurred when sleeping");
}
}
}
}
public static boolean pingHost(String host, int port, int timeout) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(host, port), timeout);
socket.close();
return true;
} catch (IOException e) {
try {socket.close();} catch (IOException f) {return false;}
return false; // Either timeout or unreachable or failed DNS lookup.
}
}
}