Better lifetimes still in the Java code, and turn on some strict vm policy messages.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4414 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
Cory McWilliams 2023-08-22 16:43:04 +00:00
parent 59b2ffaf95
commit d96b836bef

View File

@ -41,10 +41,14 @@ public class MainActivity extends Activity {
WebView web_view;
String base_url;
Process process;
WatchService watcher;
Thread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedClosableObjects()
.penaltyLog()
.build());
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
@ -55,8 +59,7 @@ public class MainActivity extends Activity {
Log.w("tildefriends", String.format("getPackageResourcePath() is %s", getPackageResourcePath().toString()));
Log.w("tildefriends", String.format("os.arch is %s", arch));
try {
ZipInputStream zip = new ZipInputStream(new BufferedInputStream(new FileInputStream(getPackageResourcePath().toString())));
try (ZipInputStream zip = new ZipInputStream(new BufferedInputStream(new FileInputStream(getPackageResourcePath().toString())))) {
ZipEntry entry = null;
String lookup = String.format("bin/%s/tildefriends", arch);
Log.w("tildefriends", "Looking for " + lookup);
@ -71,7 +74,6 @@ public class MainActivity extends Activity {
}
out.close();
new File(getFilesDir().toString() + "/tildefriends").setExecutable(true);
} finally {
}
}
zip.closeEntry();
@ -89,12 +91,11 @@ public class MainActivity extends Activity {
MainActivity activity = this;
new Thread(new Runnable() {
thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Log.w("tildefriends", "Watching for changes in: " + getFilesDir().toString());
watcher = FileSystems.getDefault().newWatchService();
Log.w("tildefriends", "Watching for changes in: " + getFilesDir().toString());
try (WatchService watcher = FileSystems.getDefault().newWatchService()) {
Paths.get(getFilesDir().toString()).register(
watcher,
StandardWatchEventKinds.ENTRY_CREATE,
@ -108,8 +109,6 @@ public class MainActivity extends Activity {
activity.runOnUiThread(() -> {
web_view.loadUrl(base_url);
});
watcher.close();
watcher = null;
break;
}
}
@ -124,7 +123,8 @@ public class MainActivity extends Activity {
Log.w("tildefriends", "InterruptedException: " + e.toString());
}
}
}).start();
});
thread.start();
String exe = getFilesDir().toString() + "/tildefriends";
ProcessBuilder builder = new ProcessBuilder(exe, "run", "-z", getPackageResourcePath().toString(), "-a", "out_http_port_file=" + port_file_path, "-p", "0");
@ -237,21 +237,12 @@ public class MainActivity extends Activity {
}
private int read_port(String path) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(path));
try (BufferedReader reader = new BufferedReader(new FileReader(path))) {
return Integer.parseInt(reader.readLine());
} catch (java.io.FileNotFoundException e) {
e.printStackTrace();
} catch (java.io.IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (java.io.IOException e) {
}
}
return -1;
}