代理名称可配置

main
Matthew 11 months ago
parent 69d7402645
commit 1b07646913

@ -11,7 +11,7 @@ level = "debug"
disablePrintColor = true disablePrintColor = true
[[proxies]] [[proxies]]
name = "p2p_adb" name = "%%PROXY_NAME%%"
type = "tcp" type = "tcp"
secretKey = "123456" secretKey = "123456"
localIP = "127.0.0.1" localIP = "127.0.0.1"

@ -1,15 +1,20 @@
package com.xypower.frpandroid; package com.xypower.frpandroid;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import com.xypower.common.FilesUtils;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.Closeable; import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -21,6 +26,8 @@ import java.nio.charset.Charset;
public class ConfigActivity extends AppCompatActivity { public class ConfigActivity extends AppCompatActivity {
private String mConfigFilePath;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -51,73 +58,34 @@ public class ConfigActivity extends AppCompatActivity {
EditText configEditText = (EditText)this.findViewById(R.id.configEditText); EditText configEditText = (EditText)this.findViewById(R.id.configEditText);
configEditText.setText((CharSequence)""); configEditText.setText((CharSequence)"");
FileInputStream fileInputStream = null; Intent intent = getIntent();
try {
fileInputStream = openFileInput("config.toml");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (fileInputStream != null) { String server = intent.getStringExtra("server");
InputStream inputStream = (InputStream)fileInputStream; if (!TextUtils.isEmpty(server)) {
// Charset var5 = Charsets.UTF_8; server = MainActivity.DEFAULT_SERVER;
Reader reader = (Reader)(new InputStreamReader(inputStream, Charset.defaultCharset()));
BufferedReader mReader = reader instanceof BufferedReader ? (BufferedReader)reader : new BufferedReader(reader, 8192);
StringBuffer mRespBuff = new StringBuffer();
char[] buff = new char[1024];
while(true) {
int bytesRead = 0;
try {
bytesRead = mReader.read(buff);
} catch (IOException e) {
e.printStackTrace();
}
if (bytesRead == -1) {
try {
mReader.close();
} catch (IOException e) {
}
configEditText.setText((CharSequence)mRespBuff.toString());
break;
}
mRespBuff.append(buff, 0, bytesRead);
}
} }
} String proxyName = intent.getStringExtra("proxyName");
if (!TextUtils.isEmpty(proxyName)) {
proxyName = "p2p_adb_" + Long.toString(System.currentTimeMillis() / 1000);
}
int port = intent.getIntExtra("port", MainActivity.DEFAULT_PORT);
int remotePort = intent.getIntExtra("remotePort", MainActivity.DEFAULT_REMOTE_PORT);
private static final void closeFinally(Closeable closable) { File file = MainActivity.checkConfig(getApplicationContext(), server, port, remotePort, proxyName);
if (closable != null) { if (file != null) {
try { mConfigFilePath = file.getAbsolutePath();
closable.close();
} catch (Throwable var3) { String content = FilesUtils.readTextFile(mConfigFilePath);
// ExceptionsKt.addSuppressed(cause, var3); configEditText.setText(TextUtils.isEmpty(content) ? "" : content);
}
} }
} }
public final void saveConfig() { public final void saveConfig() {
EditText configEditText = (EditText)this.findViewById(R.id.configEditText); EditText configEditText = (EditText)this.findViewById(R.id.configEditText);
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = this.openFileOutput("config.toml", 0);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try { if (mConfigFilePath != null) {
// Intrinsics.checkNotNullExpressionValue(configEditText, "configEditText"); FilesUtils.writeTextFile(mConfigFilePath, configEditText.getText().toString());
String text = configEditText.getText().toString();
byte[] bytes = text.getBytes(Charset.defaultCharset());
// Intrinsics.checkNotNullExpressionValue(var8, "this as java.lang.String).getBytes(charset)");
fileOutputStream.write(bytes);
// Unit var13 = Unit.INSTANCE;
} catch (Throwable ex) {
ex.printStackTrace();
} finally {
closeFinally(fileOutputStream);
} }
} }
} }

@ -38,9 +38,10 @@ import java.util.Iterator;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private static final String TAG = "FRP"; private static final String TAG = "FRP";
private static final String DEFAULT_SERVER = "61.169.135.146"; public static final String DEFAULT_SERVER = "61.169.135.146";
private static final int DEFAULT_PORT = 7000; // private static final String DEFAULT_PROXY_NAME = "p2p_adb_" + Long.toString(System.currentTimeMillis() / 1000);
private static final int DEFAULT_REMOTE_PORT = 50001; public static final int DEFAULT_PORT = 7000;
public static final int DEFAULT_REMOTE_PORT = 50001;
private Switch state_switch; private Switch state_switch;
private Switch auto_start_switch; private Switch auto_start_switch;
@ -50,12 +51,14 @@ public class MainActivity extends AppCompatActivity {
private static final String MICRO_KEY_SERVER = "%%SERVER%%"; private static final String MICRO_KEY_SERVER = "%%SERVER%%";
private static final String MICRO_KEY_PORT = "%%PORT%%"; private static final String MICRO_KEY_PORT = "%%PORT%%";
private static final String MICRO_KEY_REMOTE_PORT = "%%REMOTE_PORT%%"; private static final String MICRO_KEY_REMOTE_PORT = "%%REMOTE_PORT%%";
private static final String MICRO_KEY_PROXY_NAME = "%%PROXY_NAME%%";
Handler mHandler; Handler mHandler;
private String mServer = DEFAULT_SERVER; private String mServer = DEFAULT_SERVER;
private int mPort = DEFAULT_PORT; private int mPort = DEFAULT_PORT;
private int mRemotePort = DEFAULT_REMOTE_PORT; private int mRemotePort = DEFAULT_REMOTE_PORT;
private String mProxyName = "p2p_adb_" + Long.toString(System.currentTimeMillis() / 1000);
private final ServiceConnection connection = new ServiceConnection() { private final ServiceConnection connection = new ServiceConnection() {
public void onServiceConnected(@NotNull ComponentName className, @NotNull IBinder service) { public void onServiceConnected(@NotNull ComponentName className, @NotNull IBinder service) {
@ -95,13 +98,17 @@ public class MainActivity extends AppCompatActivity {
int autoClose = 0; int autoClose = 0;
{ {
Intent intent = getIntent(); Intent intent = getIntent();
String server = intent.getStringExtra("server"); String stringVal = intent.getStringExtra("server");
if (!TextUtils.isEmpty(stringVal)) {
mServer = stringVal;
}
stringVal = intent.getStringExtra("proxyName");
if (!TextUtils.isEmpty(stringVal)) {
mProxyName = stringVal;
}
mPort = intent.getIntExtra("port", DEFAULT_PORT); mPort = intent.getIntExtra("port", DEFAULT_PORT);
mRemotePort = intent.getIntExtra("remotePort", DEFAULT_REMOTE_PORT); mRemotePort = intent.getIntExtra("remotePort", DEFAULT_REMOTE_PORT);
startFrp = intent.getIntExtra("startFrp", 0); startFrp = intent.getIntExtra("startFrp", 0);
if (!TextUtils.isEmpty(server)) {
mServer = server;
}
if (startFrp != 0) { if (startFrp != 0) {
Log.i(TAG, "Will start server"); Log.i(TAG, "Will start server");
@ -111,7 +118,7 @@ public class MainActivity extends AppCompatActivity {
} }
checkConfig(mServer, mPort, mRemotePort); checkConfig(getApplicationContext(), mServer, mPort, mRemotePort, mProxyName);
checkNotificationPermission(); checkNotificationPermission();
createBGNotificationChannel(); createBGNotificationChannel();
@ -168,6 +175,7 @@ public class MainActivity extends AppCompatActivity {
configButton.setOnClickListener((View.OnClickListener)(new View.OnClickListener() { configButton.setOnClickListener((View.OnClickListener)(new View.OnClickListener() {
public final void onClick(View it) { public final void onClick(View it) {
Intent intent = new Intent((Context)MainActivity.this, ConfigActivity.class); Intent intent = new Intent((Context)MainActivity.this, ConfigActivity.class);
intent.putExtras(getIntent());
MainActivity.this.startActivity(intent); MainActivity.this.startActivity(intent);
} }
})); }));
@ -199,15 +207,15 @@ public class MainActivity extends AppCompatActivity {
} }
public final void checkConfig(String server, int port, int remotePort) { public static File checkConfig(Context context, String server, int port, int remotePort, String proxyName) {
// Intrinsics.checkNotNullExpressionValue(var12, "resources"); // Intrinsics.checkNotNullExpressionValue(var12, "resources");
AssetManager assetmanager = getResources().getAssets(); AssetManager assetmanager = context.getResources().getAssets();
File confFile = new File(getDataDir(), "conf"); File confFile = new File(context.getDataDir(), "conf");
if (!confFile.exists()) { if (!confFile.exists()) {
confFile.mkdirs(); confFile.mkdirs();
} }
File file = new File(new File(getDataDir(), "conf"), "config.toml"); File file = new File(new File(context.getDataDir(), "conf"), "config.toml");
StringBuffer configContent = new StringBuffer(); StringBuffer configContent = new StringBuffer();
InputStream inputStream = null; InputStream inputStream = null;
@ -217,6 +225,7 @@ public class MainActivity extends AppCompatActivity {
content = content.replaceAll(MICRO_KEY_SERVER, server); content = content.replaceAll(MICRO_KEY_SERVER, server);
content = content.replaceAll(MICRO_KEY_PORT, Integer.toString(port)); content = content.replaceAll(MICRO_KEY_PORT, Integer.toString(port));
content = content.replaceAll(MICRO_KEY_REMOTE_PORT, Integer.toString(remotePort)); content = content.replaceAll(MICRO_KEY_REMOTE_PORT, Integer.toString(remotePort));
content = content.replaceAll(MICRO_KEY_PROXY_NAME, proxyName);
FilesUtils.writeTextFile(file.getAbsolutePath(), content); FilesUtils.writeTextFile(file.getAbsolutePath(), content);
} catch (Throwable ex) { } catch (Throwable ex) {
@ -239,6 +248,8 @@ public class MainActivity extends AppCompatActivity {
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
return file;
} }
private static final void closeFinally(Closeable closable) { private static final void closeFinally(Closeable closable) {

Loading…
Cancel
Save