MainActivity.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package io.github.jianboy.wifiproxy;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import android.content.pm.PackageManager;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.widget.Toast;
  10. import androidx.activity.EdgeToEdge;
  11. import androidx.annotation.NonNull;
  12. import androidx.appcompat.app.AppCompatActivity;
  13. import androidx.core.graphics.Insets;
  14. import androidx.core.view.ViewCompat;
  15. import androidx.core.view.WindowInsetsCompat;
  16. import io.github.jianboy.wifiproxy.utils.WifiProxyManager;
  17. public class MainActivity extends AppCompatActivity {
  18. Context mContext;
  19. Button btn1;
  20. EditText edt_host, edt_port;
  21. SharedPreferences sharedPreferences;
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. EdgeToEdge.enable(this);
  26. setContentView(R.layout.activity_main);
  27. ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
  28. Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
  29. v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
  30. return insets;
  31. });
  32. mContext = this;
  33. initView();
  34. }
  35. private void initView() {
  36. btn1 = (Button) findViewById(R.id.button1);
  37. edt_host = (EditText) findViewById(R.id.edt_host);
  38. edt_port = (EditText) findViewById(R.id.edt_port);
  39. // 恢复设置
  40. sharedPreferences = mContext.getSharedPreferences("setting", Context.MODE_PRIVATE);
  41. String host = sharedPreferences.getString("host", getString(R.string.v_host));
  42. String port = sharedPreferences.getString("port", getString(R.string.v_port));
  43. edt_host.setText(host);
  44. edt_port.setText(port);
  45. btn1.setOnClickListener(new View.OnClickListener() {
  46. @Override
  47. public void onClick(View v) {
  48. setWifiProxy();
  49. }
  50. });
  51. }
  52. /**
  53. * 设置wifi代理
  54. */
  55. private void setWifiProxy() {
  56. if (btn1.getText().toString().equals(R.string.set_wifi_proxy)) {
  57. WifiProxyManager.setWifiProxySettingsFor17And(mContext, edt_host.getText().toString().trim(),
  58. Integer.parseInt(edt_port.getText().toString().trim()), null);
  59. Toast.makeText(mContext, "设置成功!", Toast.LENGTH_SHORT).show();
  60. btn1.setText(R.string.cancel_wifi_proxy);
  61. } else {
  62. WifiProxyManager.unsetWifiProxySettingsFor17And(mContext);
  63. btn1.setText(R.string.set_wifi_proxy);
  64. }
  65. saveConfig();
  66. }
  67. /**
  68. * 保存设置,下次直接点击按钮即可设置代理
  69. */
  70. private void saveConfig() {
  71. SharedPreferences.Editor editor = sharedPreferences.edit();
  72. editor.putString("host", edt_host.getText().toString().trim());
  73. editor.putString("port", edt_port.getText().toString().trim());
  74. editor.commit();
  75. }
  76. @Override
  77. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  78. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  79. if (requestCode == WifiProxyManager.REQUEST_LOCATION_PERMISSION_CODE) {
  80. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  81. // Permission granted, proceed with accessing the location
  82. } else {
  83. // Permission denied, handle accordingly
  84. }
  85. }
  86. }
  87. }