for go proxy stop

okjack
okjack 2 years ago
parent 5879ef9450
commit 09768062a6
  1. 1
      app/build.gradle
  2. 45
      app/src/main/java/com/fongmi/android/tv/server/Go.java
  3. 21
      app/src/main/java/com/fongmi/android/tv/server/Server.java

@ -128,7 +128,6 @@ dependencies {
implementation 'org.nanohttpd:nanohttpd:2.3.1'
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
implementation(ext: 'aar', name: 'dlna-core', group: 'fongmi', version: 'release')
implementation(ext: 'aar', name: 'go-proxy-video', group: 'fongmi', version: 'release')
leanbackImplementation(ext: 'aar', name: 'dlna-dmr', group: 'fongmi', version: 'release')
leanbackImplementation 'androidx.leanback:leanback:1.2.0-alpha04'
leanbackImplementation 'me.jessyan:autosize:1.2.1'

@ -0,0 +1,45 @@
package com.fongmi.android.tv.server;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.ShellUtil;
import com.github.catvod.Init;
import com.github.catvod.utils.Path;
import java.io.File;
public class Go {
public static void prepare() {
App.execute(() -> {
try {
File file = new File(Init.context().getFilesDir().getAbsolutePath() + "/go_proxy_video");
if (file.exists()) return;
file.createNewFile();
Path.copy(Init.context().getAssets().open("go_proxy_video"), file);
file.setExecutable(true);
} catch (Exception e) {
e.printStackTrace();
}
});
}
public void start() {
new Thread(() -> {
try {
File file = new File(Init.context().getFilesDir().getAbsolutePath() + "/go_proxy_video");
if (!file.exists()) return;
file.setExecutable(true);
ShellUtil.execCommand("nohup " + file.getAbsolutePath(), false);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
public void stop() {
new Thread(() -> {
ShellUtil.execCommand(new String[]{"killall -9 go_proxy_video"}, false);
}).start();
}
}

@ -3,13 +3,10 @@ package com.fongmi.android.tv.server;
import com.github.catvod.Proxy;
import com.github.catvod.utils.Util;
import go_proxy_video.Go_proxy_video;
public class Server {
private Nano nano;
private int port;
private Thread goThread;
private Go go;
private static class Loader {
static volatile Server INSTANCE = new Server();
@ -40,9 +37,12 @@ public class Server {
}
public void go() {
if (goThread != null) goThread.interrupt();
goThread = new Thread(Go_proxy_video::start);
goThread.start();
if (go != null) {
go.start();
return;
}
go = new Go();
go.start();
}
public void start() {
@ -59,6 +59,7 @@ public class Server {
nano = null;
}
} while (port < 9999);
Go.prepare();
}
public void stop() {
@ -66,9 +67,9 @@ public class Server {
nano.stop();
nano = null;
}
if (goThread != null) {
goThread.interrupt();
goThread = null;
if (go != null) {
go.stop();
go = null;
}
}
}

Loading…
Cancel
Save