|
@@ -13,9 +13,11 @@ import android.net.NetworkCapabilities
|
|
|
import android.os.AsyncTask
|
|
|
import android.os.Build
|
|
|
import android.os.CountDownTimer
|
|
|
+import android.os.Handler
|
|
|
import android.os.IBinder
|
|
|
import android.os.RemoteException
|
|
|
import android.util.Log
|
|
|
+import android.widget.Toast
|
|
|
import androidx.activity.ComponentActivity
|
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
|
@@ -168,11 +170,13 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
|
|
|
fun startTcpUDP() {
|
|
|
Log.d("Auto test connect", "ACTION_VPN_SERVER_NOT_RESPONDING startTcpUDP")
|
|
|
+ Log.d("ServerNotResponding", "startTcpUDP -> ${isBound}")
|
|
|
|
|
|
|
|
|
/*Connect UDP,TCP*/
|
|
|
App.connection_status = App.CONNECTION_STATE_CONNECTING
|
|
|
homeViewModel.setConnectState(App.CONNECTING)
|
|
|
+ Log.d("ServerNotResponding", "startTcpUDP -> CONNECTING")
|
|
|
|
|
|
// val widgetIntent = Intent(context, SimpleAppWidget::class.java)
|
|
|
// widgetIntent.action = SimpleAppWidget.ACTION_CONNECTING_VPN
|
|
@@ -424,13 +428,13 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
Log.d("test_wg", "stop vpn")
|
|
|
Log.d("isConnect_State_vpn", "stopVpn Util")
|
|
|
|
|
|
-
|
|
|
try {
|
|
|
// Log.d("App.connection stop", App.connection_status.toString())
|
|
|
|
|
|
/*Disconnect IKEV2*/
|
|
|
if (basePreferenceHelper.getProtocol().title.contentEquals(AppEnum.IKEV2_PROTOCOL.key)) {
|
|
|
Log.d("isConnect_State_vpn", "Disconnect IKEV2")
|
|
|
+ Log.d("ServerNotResponding", "Disconnect IKEV2")
|
|
|
val intent = Intent(context, VpnProfileControlActivity::class.java)
|
|
|
intent.action = VpnProfileControlActivity.DISCONNECT
|
|
|
context.startActivity(intent)
|
|
@@ -443,13 +447,16 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
}
|
|
|
/*Disconnect Wireguard*/
|
|
|
else if (basePreferenceHelper.getProtocol().title.toLowerCase()
|
|
|
- .contentEquals(AppEnum.WG_PROTOCOL.key.toLowerCase())
|
|
|
- )
|
|
|
+ .contentEquals(AppEnum.WG_PROTOCOL.key.toLowerCase()))
|
|
|
{
|
|
|
+ Log.d("ServerNotResponding", "Disconnect WG")
|
|
|
vpnWireGuardPermission(false)
|
|
|
|
|
|
- } else {
|
|
|
- /*Disconnect TCP,UDP*/
|
|
|
+ }
|
|
|
+ /*Disconnect TCP,UDP*/
|
|
|
+ else {
|
|
|
+ Log.d("ServerNotResponding", "Disconnect TCP/UDP")
|
|
|
+
|
|
|
App.connection_status = App.CONNECTION_STATE_DISCONNECTED
|
|
|
homeViewModel.setConnectState(App.DISCONNECTED)
|
|
|
|
|
@@ -479,10 +486,13 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ if (basePreferenceHelper.getProtocol().index == 0) {
|
|
|
+ val state = basePreferenceHelper.isAutoOpenVpnConnected()
|
|
|
+ Log.d("ServerNotResponding", "Auto StopVpn $state")
|
|
|
+ if (state) {
|
|
|
+ stopTcpUdp()
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// val widgetIntent = Intent(context, SimpleAppWidget::class.java)
|
|
|
// widgetIntent.action = SimpleAppWidget.ACTION_STOP_SERVICE
|
|
@@ -493,6 +503,33 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ fun stopTcpUdp() {
|
|
|
+ Log.d("ServerNotResponding", "Auto stopTcpUdp")
|
|
|
+
|
|
|
+ App.connection_status = App.CONNECTION_STATE_DISCONNECTED
|
|
|
+ homeViewModel.setConnectState(App.DISCONNECTED)
|
|
|
+ basePreferenceHelper.setAutoOpenVpnConnected(false)
|
|
|
+ App.isShowNotify = false
|
|
|
+ OpenVPNService.abortConnectionVPN = true
|
|
|
+ ProfileManager.setConntectedVpnProfileDisconnected(context)
|
|
|
+ if (App.mService != null) {
|
|
|
+ Log.d("test_openvpn", "if => ${App.mService}")
|
|
|
+ try {
|
|
|
+ Log.d("test_openvpn", "try => ${App.mService}")
|
|
|
+ App.mService!!.stopVPN(false)
|
|
|
+ } catch (e: RemoteException) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ pm = ProfileManager.getInstance(context)
|
|
|
+ vp = pm?.getProfileByName(Build.MODEL)
|
|
|
+ pm?.removeProfile(context, vp)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
fun countDownTimer() {
|
|
|
countDownTimer = object : CountDownTimer(32000, 1000) {
|
|
|
override fun onTick(millisUntilFinished: Long) {
|
|
@@ -558,6 +595,7 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
Log.d("vpnConnectionCall_ip", "ACTION_VPN_DISCONNECTED $connectState")
|
|
|
|
|
|
if (connectState == App.CONNECTING) {
|
|
|
+ Log.d("vpnConnectionCall_con", "CONNECTING $connectState")
|
|
|
App.connection_status = App.CONNECTION_STATE_CONNECTING
|
|
|
homeViewModel.setConnectState(App.CONNECTING)
|
|
|
}
|
|
@@ -576,7 +614,8 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
homeViewModel.getIp()
|
|
|
}
|
|
|
CharonVpnService.ACTION_VPN_CONNECTING -> {
|
|
|
- Log.d("vpnConnectionCall_ip", "ACTION_VPN_CONNECTING")
|
|
|
+ val connectState = homeViewModel.isConnect.value
|
|
|
+ Log.d("vpnConnectionCall_con", "ACTION_VPN_CONNECTING $connectState")
|
|
|
App.connection_status = App.CONNECTION_STATE_CONNECTING
|
|
|
homeViewModel.setConnectState(App.CONNECTING)
|
|
|
// val widgetIntent1 = Intent(context, SimpleAppWidget::class.java)
|
|
@@ -586,9 +625,37 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
|
|
|
CharonVpnService.ACTION_VPN_SERVER_NOT_RESPONDING -> {
|
|
|
Log.d("vpnConnectionCall_ip", "ACTION_VPN_SERVER_NOT_RESPONDING")
|
|
|
App.connection_status = App.CONNECTION_STATE_SERVER_NOT_RESPONDING
|
|
|
- if (context != null) {
|
|
|
- ikev2Callback.ServerNotResponding(context, homeViewModel)
|
|
|
+
|
|
|
+ if (basePreferenceHelper.getProtocol().index == 0) {
|
|
|
+ Log.d("ServerNotResponding", "Auto -> ${isBound}")
|
|
|
+ if (MainActivity.isAutoEnabled) {
|
|
|
+ Log.d("test_auto_p", "Inside()")
|
|
|
+ stopVpn()
|
|
|
+ Log.d("test_auto_p", "stopVpn()")
|
|
|
+ Handler().postDelayed(Runnable {
|
|
|
+ basePreferenceHelper.setAutoOpenVpnConnected(true)
|
|
|
+ startTcpUDP()
|
|
|
+ Log.d("test_auto_p", "startTcpUDP()")
|
|
|
+ Log.d("test_auto_p", "false")
|
|
|
+ }, 1000)
|
|
|
+ MainActivity.isAutoEnabled = false
|
|
|
+ Log.d("test_auto_p", "Out...()")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Log.d("ServerNotResponding", "IKEv2 -> ${isBound}")
|
|
|
+ if (MainActivity.isSnrNotify) {
|
|
|
+ Toast.makeText(
|
|
|
+ context,
|
|
|
+ R.string.server_not_responding,
|
|
|
+ Toast.LENGTH_SHORT
|
|
|
+ ).show()
|
|
|
+ MainActivity.isSnrNotify = false
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+// if (context != null) {
|
|
|
+// ikev2Callback.ServerNotResponding(context, homeViewModel)
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|