Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ea04c076c | |||
| 98475460bf | |||
| 68ee61a753 | |||
| 90ba9ef2b7 |
@@ -2,6 +2,16 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.v2ray.ang">
|
package="com.v2ray.ang">
|
||||||
|
|
||||||
|
<supports-screens
|
||||||
|
android:anyDensity="true"
|
||||||
|
android:smallScreens="true"
|
||||||
|
android:normalScreens="true"
|
||||||
|
android:largeScreens="true"
|
||||||
|
android:xlargeScreens="true"/>
|
||||||
|
|
||||||
|
<uses-feature android:name="android.hardware.camera" android:required="false"/>
|
||||||
|
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|||||||
@@ -69,36 +69,28 @@ class V2RayVpnService : VpnService() {
|
|||||||
*
|
*
|
||||||
* Source: https://android.googlesource.com/platform/frameworks/base/+/2df4c7d/services/core/java/com/android/server/ConnectivityService.java#887
|
* Source: https://android.googlesource.com/platform/frameworks/base/+/2df4c7d/services/core/java/com/android/server/ConnectivityService.java#887
|
||||||
*/
|
*/
|
||||||
private val defaultNetworkRequest by lazy {
|
private val defaultNetworkRequest by lazy @RequiresApi(Build.VERSION_CODES.P) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
NetworkRequest.Builder()
|
||||||
NetworkRequest.Builder()
|
|
||||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
|
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
|
||||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
|
.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
|
||||||
.build()
|
.build()
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private val connectivity by lazy { getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager }
|
private val connectivity by lazy { getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager }
|
||||||
|
|
||||||
private val defaultNetworkCallback by lazy {
|
private val defaultNetworkCallback by lazy @RequiresApi(Build.VERSION_CODES.P) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
object : ConnectivityManager.NetworkCallback() {
|
||||||
object : ConnectivityManager.NetworkCallback() {
|
override fun onAvailable(network: Network) {
|
||||||
override fun onAvailable(network: Network) {
|
setUnderlyingNetworks(arrayOf(network))
|
||||||
setUnderlyingNetworks(arrayOf(network))
|
}
|
||||||
}
|
override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities?) {
|
||||||
override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities?) {
|
// it's a good idea to refresh capabilities
|
||||||
// it's a good idea to refresh capabilities
|
setUnderlyingNetworks(arrayOf(network))
|
||||||
setUnderlyingNetworks(arrayOf(network))
|
}
|
||||||
}
|
override fun onLost(network: Network) {
|
||||||
override fun onLost(network: Network) {
|
setUnderlyingNetworks(null)
|
||||||
setUnderlyingNetworks(null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private var listeningForDefaultNetwork = false
|
private var listeningForDefaultNetwork = false
|
||||||
|
|||||||
Reference in New Issue
Block a user