diff --git a/app/src/main/assets/config.toml b/app/src/main/assets/config.toml index f248cfb..031ba4e 100644 --- a/app/src/main/assets/config.toml +++ b/app/src/main/assets/config.toml @@ -11,7 +11,7 @@ level = "debug" disablePrintColor = true [[proxies]] -name = "p2p_adb" +name = "%%PROXY_NAME%%" type = "tcp" secretKey = "123456" localIP = "127.0.0.1" diff --git a/app/src/main/java/com/xypower/frpandroid/ConfigActivity.java b/app/src/main/java/com/xypower/frpandroid/ConfigActivity.java index 6b50efb..babceb4 100644 --- a/app/src/main/java/com/xypower/frpandroid/ConfigActivity.java +++ b/app/src/main/java/com/xypower/frpandroid/ConfigActivity.java @@ -1,15 +1,20 @@ package com.xypower.frpandroid; +import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; +import com.xypower.common.FilesUtils; + import org.jetbrains.annotations.Nullable; import java.io.BufferedReader; import java.io.Closeable; +import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -21,6 +26,8 @@ import java.nio.charset.Charset; public class ConfigActivity extends AppCompatActivity { + private String mConfigFilePath; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -51,73 +58,34 @@ public class ConfigActivity extends AppCompatActivity { EditText configEditText = (EditText)this.findViewById(R.id.configEditText); configEditText.setText((CharSequence)""); - FileInputStream fileInputStream = null; - try { - fileInputStream = openFileInput("config.toml"); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } + Intent intent = getIntent(); - if (fileInputStream != null) { - InputStream inputStream = (InputStream)fileInputStream; - // Charset var5 = Charsets.UTF_8; - 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 server = intent.getStringExtra("server"); + if (!TextUtils.isEmpty(server)) { + server = MainActivity.DEFAULT_SERVER; } - } + 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) { - if (closable != null) { - try { - closable.close(); - } catch (Throwable var3) { - // ExceptionsKt.addSuppressed(cause, var3); - } + File file = MainActivity.checkConfig(getApplicationContext(), server, port, remotePort, proxyName); + if (file != null) { + mConfigFilePath = file.getAbsolutePath(); + + String content = FilesUtils.readTextFile(mConfigFilePath); + configEditText.setText(TextUtils.isEmpty(content) ? "" : content); } } + public final void saveConfig() { EditText configEditText = (EditText)this.findViewById(R.id.configEditText); - FileOutputStream fileOutputStream = null; - try { - fileOutputStream = this.openFileOutput("config.toml", 0); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - try { - // Intrinsics.checkNotNullExpressionValue(configEditText, "configEditText"); - 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); + if (mConfigFilePath != null) { + FilesUtils.writeTextFile(mConfigFilePath, configEditText.getText().toString()); } - } } \ No newline at end of file diff --git a/app/src/main/java/com/xypower/frpandroid/MainActivity.java b/app/src/main/java/com/xypower/frpandroid/MainActivity.java index 92b05c4..7a83ac2 100644 --- a/app/src/main/java/com/xypower/frpandroid/MainActivity.java +++ b/app/src/main/java/com/xypower/frpandroid/MainActivity.java @@ -38,9 +38,10 @@ import java.util.Iterator; public class MainActivity extends AppCompatActivity { private static final String TAG = "FRP"; - private static final String DEFAULT_SERVER = "61.169.135.146"; - private static final int DEFAULT_PORT = 7000; - private static final int DEFAULT_REMOTE_PORT = 50001; + public static final String DEFAULT_SERVER = "61.169.135.146"; + // private static final String DEFAULT_PROXY_NAME = "p2p_adb_" + Long.toString(System.currentTimeMillis() / 1000); + public static final int DEFAULT_PORT = 7000; + public static final int DEFAULT_REMOTE_PORT = 50001; private Switch state_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_PORT = "%%PORT%%"; private static final String MICRO_KEY_REMOTE_PORT = "%%REMOTE_PORT%%"; + private static final String MICRO_KEY_PROXY_NAME = "%%PROXY_NAME%%"; Handler mHandler; private String mServer = DEFAULT_SERVER; private int mPort = DEFAULT_PORT; private int mRemotePort = DEFAULT_REMOTE_PORT; + private String mProxyName = "p2p_adb_" + Long.toString(System.currentTimeMillis() / 1000); private final ServiceConnection connection = new ServiceConnection() { public void onServiceConnected(@NotNull ComponentName className, @NotNull IBinder service) { @@ -95,13 +98,17 @@ public class MainActivity extends AppCompatActivity { int autoClose = 0; { 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); mRemotePort = intent.getIntExtra("remotePort", DEFAULT_REMOTE_PORT); startFrp = intent.getIntExtra("startFrp", 0); - if (!TextUtils.isEmpty(server)) { - mServer = server; - } if (startFrp != 0) { 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(); createBGNotificationChannel(); @@ -168,6 +175,7 @@ public class MainActivity extends AppCompatActivity { configButton.setOnClickListener((View.OnClickListener)(new View.OnClickListener() { public final void onClick(View it) { Intent intent = new Intent((Context)MainActivity.this, ConfigActivity.class); + intent.putExtras(getIntent()); 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"); - 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()) { 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(); InputStream inputStream = null; @@ -217,6 +225,7 @@ public class MainActivity extends AppCompatActivity { content = content.replaceAll(MICRO_KEY_SERVER, server); content = content.replaceAll(MICRO_KEY_PORT, Integer.toString(port)); content = content.replaceAll(MICRO_KEY_REMOTE_PORT, Integer.toString(remotePort)); + content = content.replaceAll(MICRO_KEY_PROXY_NAME, proxyName); FilesUtils.writeTextFile(file.getAbsolutePath(), content); } catch (Throwable ex) { @@ -239,6 +248,8 @@ public class MainActivity extends AppCompatActivity { } catch (Exception ex) { ex.printStackTrace(); } + + return file; } private static final void closeFinally(Closeable closable) {