- Renamed project namespace to hanson.xyz.vpnhotspotmod
- Added BroadcastReceiver to recive intents to start wifi and bluetooth tether options via tasker - Modified TetherService to run sticky - Modified TetherManager to 'monitor' all new interfaces as soon as they are created
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("com.android.application") version "8.2.0-alpha07" apply false
|
id("com.android.application") version "8.0.2" apply false
|
||||||
id("com.github.ben-manes.versions") version "0.47.0"
|
id("com.github.ben-manes.versions") version "0.47.0"
|
||||||
id("org.jetbrains.kotlin.android") version "1.8.21" apply false
|
id("org.jetbrains.kotlin.android") version "1.8.21" apply false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "be.mygod.vpnhotspot"
|
namespace = "hanson.xyz.vpnhotspotmod"
|
||||||
|
|
||||||
val javaVersion = 11
|
val javaVersion = 11
|
||||||
buildToolsVersion = "34.0.0"
|
buildToolsVersion = "34.0.0"
|
||||||
@@ -24,7 +24,6 @@ android {
|
|||||||
}
|
}
|
||||||
compileSdk = 34
|
compileSdk = 34
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "be.mygod.vpnhotspot"
|
|
||||||
minSdk = 28
|
minSdk = 28
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
resourceConfigurations.addAll(arrayOf("it", "pt-rBR", "ru", "zh-rCN", "zh-rTW"))
|
resourceConfigurations.addAll(arrayOf("it", "pt-rBR", "ru", "zh-rCN", "zh-rTW"))
|
||||||
@@ -36,6 +35,7 @@ android {
|
|||||||
put("room.incremental", "true")
|
put("room.incremental", "true")
|
||||||
put("room.schemaLocation", "$projectDir/schemas")
|
put("room.schemaLocation", "$projectDir/schemas")
|
||||||
}
|
}
|
||||||
|
applicationId = "hanson.xyz.vpnhotspotmod"
|
||||||
}
|
}
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
buildConfig = true
|
buildConfig = true
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:13108846109:android:63120dcb2e900ed0",
|
"mobilesdk_app_id": "1:13108846109:android:63120dcb2e900ed0",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "be.mygod.vpnhotspot"
|
"package_name": "hanson.xyz.vpnhotspotmod"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.room
|
package hanson.xyz.vpnhotspotmod.room
|
||||||
|
|
||||||
import androidx.room.testing.MigrationTestHelper
|
import androidx.room.testing.MigrationTestHelper
|
||||||
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
|
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.BuildConfig
|
import hanson.xyz.vpnhotspotmod.BuildConfig
|
||||||
import kotlinx.coroutines.currentCoroutineContext
|
import kotlinx.coroutines.currentCoroutineContext
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.ensureActive
|
import kotlinx.coroutines.ensureActive
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
|
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
|
||||||
import com.google.android.play.core.install.InstallException
|
import com.google.android.play.core.install.InstallException
|
||||||
import com.google.android.play.core.install.model.InstallErrorCode
|
import com.google.android.play.core.install.model.InstallErrorCode
|
||||||
@@ -23,7 +23,7 @@ object UpdateChecker {
|
|||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Timber.w(e)
|
Timber.w(e)
|
||||||
app.customTabsIntent.launchUrl(activity,
|
app.customTabsIntent.launchUrl(activity,
|
||||||
Uri.parse("https://play.google.com/store/apps/details?id=be.mygod.vpnhotspot"))
|
Uri.parse("https://play.google.com/store/apps/details?id=hanson.xyz.vpnhotspotmod"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private class UpdateDownloading(private val update: AppUpdateResult.InProgress) : AppUpdate {
|
private class UpdateDownloading(private val update: AppUpdateResult.InProgress) : AppUpdate {
|
||||||
@@ -214,9 +214,18 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
|
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="hanson.xyz.vpnhotspotmod.WIFI_TETHER_START" />
|
||||||
|
<action android:name="hanson.xyz.vpnhotspotmod.WIFI_TETHER_STOP" />
|
||||||
|
<action android:name="hanson.xyz.vpnhotspotmod.BT_TETHER_START" />
|
||||||
|
<action android:name="hanson.xyz.vpnhotspotmod.BT_TETHER_STOP" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="be.mygod.vpnhotspot.log"
|
android:authorities="hanson.xyz.vpnhotspotmod.log"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
<meta-data
|
<meta-data
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
@@ -18,12 +18,12 @@ import androidx.browser.customtabs.CustomTabsIntent
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import be.mygod.librootkotlinx.NoShellException
|
import be.mygod.librootkotlinx.NoShellException
|
||||||
import be.mygod.vpnhotspot.net.DhcpWorkaround
|
import hanson.xyz.vpnhotspotmod.net.DhcpWorkaround
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.util.DeviceStorageApp
|
import hanson.xyz.vpnhotspotmod.util.DeviceStorageApp
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import com.google.firebase.analytics.ktx.ParametersBuilder
|
import com.google.firebase.analytics.ktx.ParametersBuilder
|
||||||
import com.google.firebase.analytics.ktx.analytics
|
import com.google.firebase.analytics.ktx.analytics
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
@@ -8,7 +8,7 @@ import android.content.pm.PackageManager
|
|||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import be.mygod.librootkotlinx.toByteArray
|
import be.mygod.librootkotlinx.toByteArray
|
||||||
import be.mygod.librootkotlinx.toParcelable
|
import be.mygod.librootkotlinx.toParcelable
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.DataInputStream
|
import java.io.DataInputStream
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
@@ -7,10 +7,10 @@ import android.view.ViewGroup
|
|||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import androidx.appcompat.app.AppCompatDialogFragment
|
import androidx.appcompat.app.AppCompatDialogFragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.databinding.FragmentEbegBinding
|
import hanson.xyz.vpnhotspotmod.databinding.FragmentEbegBinding
|
||||||
import be.mygod.vpnhotspot.util.launchUrl
|
import hanson.xyz.vpnhotspotmod.util.launchUrl
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import com.android.billingclient.api.BillingClient
|
import com.android.billingclient.api.BillingClient
|
||||||
import com.android.billingclient.api.BillingClientStateListener
|
import com.android.billingclient.api.BillingClientStateListener
|
||||||
import com.android.billingclient.api.BillingFlowParams
|
import com.android.billingclient.api.BillingFlowParams
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import java.net.Inet4Address
|
import java.net.Inet4Address
|
||||||
|
|
||||||
abstract class IpNeighbourMonitoringService : Service(), IpNeighbourMonitor.Callback {
|
abstract class IpNeighbourMonitoringService : Service(), IpNeighbourMonitor.Callback {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -7,21 +7,21 @@ import android.net.wifi.WifiManager
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.librootkotlinx.RootServer
|
import be.mygod.librootkotlinx.RootServer
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.TetherTimeoutMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.TetherTimeoutMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat.Companion.toCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat.Companion.toCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager.wifiApState
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager.wifiApState
|
||||||
import be.mygod.vpnhotspot.root.LocalOnlyHotspotCallbacks
|
import hanson.xyz.vpnhotspotmod.root.LocalOnlyHotspotCallbacks
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.WifiApCommands
|
import hanson.xyz.vpnhotspotmod.root.WifiApCommands
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.StickyEvent1
|
import hanson.xyz.vpnhotspotmod.util.StickyEvent1
|
||||||
import be.mygod.vpnhotspot.util.broadcastReceiver
|
import hanson.xyz.vpnhotspotmod.util.broadcastReceiver
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
@@ -12,17 +12,17 @@ import androidx.fragment.app.Fragment
|
|||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.repeatOnLifecycle
|
import androidx.lifecycle.repeatOnLifecycle
|
||||||
import be.mygod.vpnhotspot.client.ClientViewModel
|
import hanson.xyz.vpnhotspotmod.client.ClientViewModel
|
||||||
import be.mygod.vpnhotspot.client.ClientsFragment
|
import hanson.xyz.vpnhotspotmod.client.ClientsFragment
|
||||||
import be.mygod.vpnhotspot.databinding.ActivityMainBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ActivityMainBinding
|
||||||
import be.mygod.vpnhotspot.manage.TetheringFragment
|
import hanson.xyz.vpnhotspotmod.manage.TetheringFragment
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiDoubleLock
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiDoubleLock
|
||||||
import be.mygod.vpnhotspot.util.AppUpdate
|
import hanson.xyz.vpnhotspotmod.util.AppUpdate
|
||||||
import be.mygod.vpnhotspot.util.ServiceForegroundConnector
|
import hanson.xyz.vpnhotspotmod.util.ServiceForegroundConnector
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.UpdateChecker
|
import hanson.xyz.vpnhotspotmod.util.UpdateChecker
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import com.google.android.material.badge.BadgeDrawable
|
import com.google.android.material.badge.BadgeDrawable
|
||||||
import com.google.android.material.navigation.NavigationBarView
|
import com.google.android.material.navigation.NavigationBarView
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
|
import android.bluetooth.BluetoothManager
|
||||||
|
import android.content.*
|
||||||
|
import android.graphics.drawable.Icon
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.IBinder
|
||||||
|
import android.service.quicksettings.Tile
|
||||||
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.core.content.getSystemService
|
||||||
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
|
import hanson.xyz.vpnhotspotmod.TetheringService
|
||||||
|
import hanson.xyz.vpnhotspotmod.manage.BluetoothTethering
|
||||||
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.tetheredIfaces
|
||||||
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
|
import hanson.xyz.vpnhotspotmod.util.broadcastReceiver
|
||||||
|
import hanson.xyz.vpnhotspotmod.util.readableMessage
|
||||||
|
import hanson.xyz.vpnhotspotmod.util.stopAndUnbind
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.GlobalScope
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import timber.log.Timber
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
|
|
||||||
|
// added by hansonxyz
|
||||||
|
|
||||||
|
class MyBroadcastReceiver : BroadcastReceiver(), TetheringManager.StartTetheringCallback {
|
||||||
|
|
||||||
|
private val handler = Handler(Looper.getMainLooper())
|
||||||
|
|
||||||
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
|
if (intent.action.toString().contains("BT_TETHER_START")) {
|
||||||
|
TetheringManager.startTethering(TetheringManager.TETHERING_BLUETOOTH, false, this)
|
||||||
|
}
|
||||||
|
if (intent.action.toString().contains("BT_TETHER_STOP")) {
|
||||||
|
TetheringManager.stopTethering(TetheringManager.TETHERING_BLUETOOTH)
|
||||||
|
}
|
||||||
|
if (intent.action.toString().contains("WIFI_TETHER_START")) {
|
||||||
|
TetheringManager.startTethering(TetheringManager.TETHERING_WIFI, false, this)
|
||||||
|
}
|
||||||
|
if (intent.action.toString().contains("WIFI_TETHER_STOP")) {
|
||||||
|
TetheringManager.stopTethering(TetheringManager.TETHERING_WIFI)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
@@ -18,27 +18,27 @@ import android.provider.Settings
|
|||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat.Companion.toLong
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat.Companion.toLong
|
||||||
import be.mygod.vpnhotspot.net.monitor.TetherTimeoutMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.TetherTimeoutMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.VendorElements
|
import hanson.xyz.vpnhotspotmod.net.wifi.VendorElements
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.deletePersistentGroup
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.deletePersistentGroup
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestConnectionInfo
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestConnectionInfo
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestDeviceAddress
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestDeviceAddress
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestGroupInfo
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestGroupInfo
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestP2pState
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestP2pState
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestPersistentGroupInfo
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestPersistentGroupInfo
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setVendorElements
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.setVendorElements
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.startWps
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.startWps
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiSsidCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiSsidCompat
|
||||||
import be.mygod.vpnhotspot.root.RepeaterCommands
|
import hanson.xyz.vpnhotspotmod.root.RepeaterCommands
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.util.*
|
import hanson.xyz.vpnhotspotmod.util.*
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.Routing
|
import hanson.xyz.vpnhotspotmod.net.Routing
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiDoubleLock
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiDoubleLock
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.app.*
|
import android.app.*
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -6,7 +6,7 @@ import android.content.Intent
|
|||||||
import android.content.pm.ServiceInfo
|
import android.content.pm.ServiceInfo
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object ServiceNotification {
|
object ServiceNotification {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
@@ -8,21 +8,21 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.TwoStatePreference
|
import androidx.preference.TwoStatePreference
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.TetherOffloadManager
|
import hanson.xyz.vpnhotspotmod.net.TetherOffloadManager
|
||||||
import be.mygod.vpnhotspot.net.monitor.FallbackUpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.FallbackUpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.UpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.UpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiDoubleLock
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiDoubleLock
|
||||||
import be.mygod.vpnhotspot.preference.AutoCompleteNetworkPreferenceDialogFragment
|
import hanson.xyz.vpnhotspotmod.preference.AutoCompleteNetworkPreferenceDialogFragment
|
||||||
import be.mygod.vpnhotspot.preference.SharedPreferenceDataStore
|
import hanson.xyz.vpnhotspotmod.preference.SharedPreferenceDataStore
|
||||||
import be.mygod.vpnhotspot.preference.SummaryFallbackProvider
|
import hanson.xyz.vpnhotspotmod.preference.SummaryFallbackProvider
|
||||||
import be.mygod.vpnhotspot.root.Dump
|
import hanson.xyz.vpnhotspotmod.root.Dump
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.launchUrl
|
import hanson.xyz.vpnhotspotmod.util.launchUrl
|
||||||
import be.mygod.vpnhotspot.util.showAllowingStateLoss
|
import hanson.xyz.vpnhotspotmod.util.showAllowingStateLoss
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
|
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
@@ -120,7 +120,7 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
|
|||||||
.setType("text/x-log")
|
.setType("text/x-log")
|
||||||
.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||||
.putExtra(Intent.EXTRA_STREAM,
|
.putExtra(Intent.EXTRA_STREAM,
|
||||||
FileProvider.getUriForFile(context, "be.mygod.vpnhotspot.log", logFile)),
|
FileProvider.getUriForFile(context, "hanson.xyz.vpnhotspotmod.log", logFile)),
|
||||||
context.getString(androidx.appcompat.R.string.abc_shareactionprovider_share_with)))
|
context.getString(androidx.appcompat.R.string.abc_shareactionprovider_share_with)))
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
@@ -1,14 +1,16 @@
|
|||||||
package be.mygod.vpnhotspot
|
package hanson.xyz.vpnhotspotmod
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.Routing
|
import hanson.xyz.vpnhotspotmod.net.Routing
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.util.Event0
|
import hanson.xyz.vpnhotspotmod.util.Event0
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -24,14 +26,15 @@ class TetheringService : IpNeighbourMonitoringService(), TetheringManager.Tether
|
|||||||
|
|
||||||
inner class Binder : android.os.Binder() {
|
inner class Binder : android.os.Binder() {
|
||||||
val routingsChanged = Event0()
|
val routingsChanged = Event0()
|
||||||
val monitoredIfaces get() = downstreams.values.filter { it.monitor }.map { it.downstream }
|
val monitoredIfaces get() = downstreams.values.map { it.downstream }
|
||||||
|
|
||||||
fun isActive(iface: String) = downstreams.containsKey(iface)
|
fun isActive(iface: String) = downstreams.containsKey(iface)
|
||||||
fun isInactive(iface: String) = downstreams[iface]?.run { !started && monitor }
|
fun isInactive(iface: String) = downstreams[iface]?.run { !started && monitor }
|
||||||
fun monitored(iface: String) = downstreams[iface]?.monitor
|
fun monitored(iface: String) = downstreams[iface]?.monitor
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Downstream(caller: Any, downstream: String, var monitor: Boolean = false) :
|
// hansonxyz - changed monitor default to true
|
||||||
|
private class Downstream(caller: Any, downstream: String, var monitor: Boolean = true) :
|
||||||
RoutingManager(caller, downstream) {
|
RoutingManager(caller, downstream) {
|
||||||
override fun Routing.configure() {
|
override fun Routing.configure() {
|
||||||
forward()
|
forward()
|
||||||
@@ -133,7 +136,7 @@ class TetheringService : IpNeighbourMonitoringService(), TetheringManager.Tether
|
|||||||
onDownstreamsChangedLocked()
|
onDownstreamsChangedLocked()
|
||||||
} else if (downstreams.isEmpty()) stopSelf(startId)
|
} else if (downstreams.isEmpty()) stopSelf(startId)
|
||||||
}
|
}
|
||||||
return START_NOT_STICKY
|
return START_STICKY //hansonxyz changed to sticky
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.client
|
package hanson.xyz.vpnhotspotmod.client
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.text.SpannableStringBuilder
|
import android.text.SpannableStringBuilder
|
||||||
@@ -6,15 +6,15 @@ import android.text.Spanned
|
|||||||
import android.text.style.StrikethroughSpan
|
import android.text.style.StrikethroughSpan
|
||||||
import androidx.lifecycle.map
|
import androidx.lifecycle.map
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.InetAddressComparator
|
import hanson.xyz.vpnhotspotmod.net.InetAddressComparator
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.room.ClientRecord
|
import hanson.xyz.vpnhotspotmod.room.ClientRecord
|
||||||
import be.mygod.vpnhotspot.util.makeIpSpan
|
import hanson.xyz.vpnhotspotmod.util.makeIpSpan
|
||||||
import be.mygod.vpnhotspot.util.makeMacSpan
|
import hanson.xyz.vpnhotspotmod.util.makeMacSpan
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.client
|
package hanson.xyz.vpnhotspotmod.client
|
||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
@@ -13,18 +13,18 @@ import androidx.lifecycle.DefaultLifecycleObserver
|
|||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.RepeaterService
|
import hanson.xyz.vpnhotspotmod.RepeaterService
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager.localOnlyTetheredIfaces
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.localOnlyTetheredIfaces
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager.tetheredIfaces
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.tetheredIfaces
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiClient
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiClient
|
||||||
import be.mygod.vpnhotspot.root.WifiApCommands
|
import hanson.xyz.vpnhotspotmod.root.WifiApCommands
|
||||||
import be.mygod.vpnhotspot.util.broadcastReceiver
|
import hanson.xyz.vpnhotspotmod.util.broadcastReceiver
|
||||||
|
|
||||||
class ClientViewModel : ViewModel(), ServiceConnection, IpNeighbourMonitor.Callback, DefaultLifecycleObserver,
|
class ClientViewModel : ViewModel(), ServiceConnection, IpNeighbourMonitor.Callback, DefaultLifecycleObserver,
|
||||||
WifiApManager.SoftApCallbackCompat {
|
WifiApManager.SoftApCallbackCompat {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.client
|
package hanson.xyz.vpnhotspotmod.client
|
||||||
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
@@ -26,22 +26,22 @@ import androidx.recyclerview.widget.DefaultItemAnimator
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.AlertDialogFragment
|
import hanson.xyz.vpnhotspotmod.AlertDialogFragment
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.Empty
|
import hanson.xyz.vpnhotspotmod.Empty
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.databinding.FragmentClientsBinding
|
import hanson.xyz.vpnhotspotmod.databinding.FragmentClientsBinding
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemClientBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemClientBinding
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.TrafficRecorder
|
import hanson.xyz.vpnhotspotmod.net.monitor.TrafficRecorder
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.room.ClientStats
|
import hanson.xyz.vpnhotspotmod.room.ClientStats
|
||||||
import be.mygod.vpnhotspot.room.TrafficRecord
|
import hanson.xyz.vpnhotspotmod.room.TrafficRecord
|
||||||
import be.mygod.vpnhotspot.util.format
|
import hanson.xyz.vpnhotspotmod.util.format
|
||||||
import be.mygod.vpnhotspot.util.showAllowingStateLoss
|
import hanson.xyz.vpnhotspotmod.util.showAllowingStateLoss
|
||||||
import be.mygod.vpnhotspot.util.toPluralInt
|
import hanson.xyz.vpnhotspotmod.util.toPluralInt
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CompletableDeferred
|
import kotlinx.coroutines.CompletableDeferred
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.client
|
package hanson.xyz.vpnhotspotmod.client
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import androidx.annotation.MainThread
|
import androidx.annotation.MainThread
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.util.connectCancellable
|
import hanson.xyz.vpnhotspotmod.util.connectCancellable
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.CoroutineStart
|
import kotlinx.coroutines.CoroutineStart
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.bluetooth.BluetoothAdapter
|
import android.bluetooth.BluetoothAdapter
|
||||||
@@ -8,11 +8,11 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.util.broadcastReceiver
|
import hanson.xyz.vpnhotspotmod.util.broadcastReceiver
|
||||||
import be.mygod.vpnhotspot.util.readableMessage
|
import hanson.xyz.vpnhotspotmod.util.readableMessage
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.lang.reflect.InvocationTargetException
|
import java.lang.reflect.InvocationTargetException
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import androidx.databinding.BaseObservable
|
import androidx.databinding.BaseObservable
|
||||||
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.TetheringService
|
import hanson.xyz.vpnhotspotmod.TetheringService
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemInterfaceBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemInterfaceBinding
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.util.formatAddresses
|
import hanson.xyz.vpnhotspotmod.util.formatAddresses
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class InterfaceManager(private val parent: TetheringFragment, val iface: String) : Manager() {
|
class InterfaceManager(private val parent: TetheringFragment, val iface: String) : Manager() {
|
||||||
@@ -28,9 +28,10 @@ class InterfaceManager(private val parent: TetheringFragment, val iface: String)
|
|||||||
.putExtra(TetheringService.EXTRA_ADD_INTERFACES, arrayOf(iface)))
|
.putExtra(TetheringService.EXTRA_ADD_INTERFACES, arrayOf(iface)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private inner class Data : be.mygod.vpnhotspot.manage.Data() {
|
private inner class Data : hanson.xyz.vpnhotspotmod.manage.Data() {
|
||||||
override val icon get() = TetherType.ofInterface(iface).icon
|
override val icon get() = TetherType.ofInterface(iface).icon
|
||||||
override val title get() = if (parent.binder?.monitored(iface) == true) {
|
override val title get() = if (parent.binder?.monitored(iface) == true) {
|
||||||
|
// override val title get() = if (true) {
|
||||||
parent.getString(R.string.tethering_state_monitored, iface)
|
parent.getString(R.string.tethering_state_monitored, iface)
|
||||||
} else iface
|
} else iface
|
||||||
override val text get() = addresses
|
override val text get() = addresses
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.service.quicksettings.Tile
|
import android.service.quicksettings.Tile
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.util.KillableTileService
|
import hanson.xyz.vpnhotspotmod.util.KillableTileService
|
||||||
import java.net.Inet4Address
|
import java.net.Inet4Address
|
||||||
|
|
||||||
abstract class IpNeighbourMonitoringTileService : KillableTileService(), IpNeighbourMonitor.Callback {
|
abstract class IpNeighbourMonitoringTileService : KillableTileService(), IpNeighbourMonitor.Callback {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
@@ -8,12 +8,12 @@ import android.os.Build
|
|||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.LocalOnlyHotspotService
|
import hanson.xyz.vpnhotspotmod.LocalOnlyHotspotService
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemInterfaceBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemInterfaceBinding
|
||||||
import be.mygod.vpnhotspot.util.ServiceForegroundConnector
|
import hanson.xyz.vpnhotspotmod.util.ServiceForegroundConnector
|
||||||
import be.mygod.vpnhotspot.util.formatAddresses
|
import hanson.xyz.vpnhotspotmod.util.formatAddresses
|
||||||
import java.net.NetworkInterface
|
import java.net.NetworkInterface
|
||||||
|
|
||||||
class LocalOnlyHotspotManager(private val parent: TetheringFragment) : Manager(), ServiceConnection {
|
class LocalOnlyHotspotManager(private val parent: TetheringFragment) : Manager(), ServiceConnection {
|
||||||
@@ -38,7 +38,7 @@ class LocalOnlyHotspotManager(private val parent: TetheringFragment) : Manager()
|
|||||||
if (binder?.iface == null) manager.parent.startLocalOnlyHotspot.launch(permission) else binder.stop()
|
if (binder?.iface == null) manager.parent.startLocalOnlyHotspot.launch(permission) else binder.stop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private inner class Data : be.mygod.vpnhotspot.manage.Data() {
|
private inner class Data : hanson.xyz.vpnhotspotmod.manage.Data() {
|
||||||
private val lookup: Map<String, NetworkInterface> get() = parent.ifaceLookup
|
private val lookup: Map<String, NetworkInterface> get() = parent.ifaceLookup
|
||||||
|
|
||||||
override val icon get() = R.drawable.ic_action_perm_scan_wifi
|
override val icon get() = R.drawable.ic_action_perm_scan_wifi
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -6,9 +6,9 @@ import android.content.Intent
|
|||||||
import android.graphics.drawable.Icon
|
import android.graphics.drawable.Icon
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.service.quicksettings.Tile
|
import android.service.quicksettings.Tile
|
||||||
import be.mygod.vpnhotspot.LocalOnlyHotspotService
|
import hanson.xyz.vpnhotspotmod.LocalOnlyHotspotService
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.util.stopAndUnbind
|
import hanson.xyz.vpnhotspotmod.util.stopAndUnbind
|
||||||
|
|
||||||
class LocalOnlyHotspotTileService : IpNeighbourMonitoringTileService() {
|
class LocalOnlyHotspotTileService : IpNeighbourMonitoringTileService() {
|
||||||
private val tile by lazy { Icon.createWithResource(application, R.drawable.ic_action_perm_scan_wifi) }
|
private val tile by lazy { Icon.createWithResource(application, R.drawable.ic_action_perm_scan_wifi) }
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.databinding.BaseObservable
|
import androidx.databinding.BaseObservable
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemManageBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemManageBinding
|
||||||
import be.mygod.vpnhotspot.net.TetherOffloadManager
|
import hanson.xyz.vpnhotspotmod.net.TetherOffloadManager
|
||||||
|
|
||||||
object ManageBar : Manager() {
|
object ManageBar : Manager() {
|
||||||
private const val TAG = "ManageBar"
|
private const val TAG = "ManageBar"
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemInterfaceBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemInterfaceBinding
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemManageBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemManageBinding
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemRepeaterBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemRepeaterBinding
|
||||||
|
|
||||||
abstract class Manager {
|
abstract class Manager {
|
||||||
companion object DiffCallback : DiffUtil.ItemCallback<Manager>() {
|
companion object DiffCallback : DiffUtil.ItemCallback<Manager>() {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
@@ -24,21 +24,21 @@ import androidx.lifecycle.ViewModel
|
|||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.withStarted
|
import androidx.lifecycle.withStarted
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.AlertDialogFragment
|
import hanson.xyz.vpnhotspotmod.AlertDialogFragment
|
||||||
import be.mygod.vpnhotspot.BR
|
import hanson.xyz.vpnhotspotmod.BR
|
||||||
import be.mygod.vpnhotspot.Empty
|
import hanson.xyz.vpnhotspotmod.Empty
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.RepeaterService
|
import hanson.xyz.vpnhotspotmod.RepeaterService
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemRepeaterBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemRepeaterBinding
|
||||||
import be.mygod.vpnhotspot.net.wifi.P2pSupplicantConfiguration
|
import hanson.xyz.vpnhotspotmod.net.wifi.P2pSupplicantConfiguration
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApDialogFragment
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApDialogFragment
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiSsidCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiSsidCompat
|
||||||
import be.mygod.vpnhotspot.util.ServiceForegroundConnector
|
import hanson.xyz.vpnhotspotmod.util.ServiceForegroundConnector
|
||||||
import be.mygod.vpnhotspot.util.formatAddresses
|
import hanson.xyz.vpnhotspotmod.util.formatAddresses
|
||||||
import be.mygod.vpnhotspot.util.showAllowingStateLoss
|
import hanson.xyz.vpnhotspotmod.util.showAllowingStateLoss
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -7,11 +7,11 @@ import android.graphics.drawable.Icon
|
|||||||
import android.net.wifi.p2p.WifiP2pGroup
|
import android.net.wifi.p2p.WifiP2pGroup
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.service.quicksettings.Tile
|
import android.service.quicksettings.Tile
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.RepeaterService
|
import hanson.xyz.vpnhotspotmod.RepeaterService
|
||||||
import be.mygod.vpnhotspot.util.KillableTileService
|
import hanson.xyz.vpnhotspotmod.util.KillableTileService
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.stopAndUnbind
|
import hanson.xyz.vpnhotspotmod.util.stopAndUnbind
|
||||||
|
|
||||||
class RepeaterTileService : KillableTileService() {
|
class RepeaterTileService : KillableTileService() {
|
||||||
private val tile by lazy { Icon.createWithResource(application, R.drawable.ic_action_settings_input_antenna) }
|
private val tile by lazy { Icon.createWithResource(application, R.drawable.ic_action_settings_input_antenna) }
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
@@ -19,16 +19,16 @@ import androidx.core.view.updatePaddingRelative
|
|||||||
import androidx.lifecycle.DefaultLifecycleObserver
|
import androidx.lifecycle.DefaultLifecycleObserver
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.MainActivity
|
import hanson.xyz.vpnhotspotmod.MainActivity
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.databinding.ListitemInterfaceBinding
|
import hanson.xyz.vpnhotspotmod.databinding.ListitemInterfaceBinding
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.net.wifi.*
|
import hanson.xyz.vpnhotspotmod.net.wifi.*
|
||||||
import be.mygod.vpnhotspot.root.WifiApCommands
|
import hanson.xyz.vpnhotspotmod.root.WifiApCommands
|
||||||
import be.mygod.vpnhotspot.util.*
|
import hanson.xyz.vpnhotspotmod.util.*
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -78,7 +78,7 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(),
|
|||||||
/**
|
/**
|
||||||
* A convenient class to delegate stuff to BaseObservable.
|
* A convenient class to delegate stuff to BaseObservable.
|
||||||
*/
|
*/
|
||||||
inner class Data : be.mygod.vpnhotspot.manage.Data() {
|
inner class Data : hanson.xyz.vpnhotspotmod.manage.Data() {
|
||||||
override val icon get() = tetherType.icon
|
override val icon get() = tetherType.icon
|
||||||
override val title get() = this@TetherManager.title
|
override val title get() = this@TetherManager.title
|
||||||
override val text get() = this@TetherManager.text
|
override val text get() = this@TetherManager.text
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.bluetooth.BluetoothManager
|
import android.bluetooth.BluetoothManager
|
||||||
@@ -21,22 +21,22 @@ import androidx.recyclerview.widget.DefaultItemAnimator
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import be.mygod.vpnhotspot.*
|
import hanson.xyz.vpnhotspotmod.*
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.databinding.FragmentTetheringBinding
|
import hanson.xyz.vpnhotspotmod.databinding.FragmentTetheringBinding
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager.localOnlyTetheredIfaces
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.localOnlyTetheredIfaces
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager.tetheredIfaces
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.tetheredIfaces
|
||||||
import be.mygod.vpnhotspot.net.monitor.TetherTimeoutMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.TetherTimeoutMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat.Companion.toCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat.Companion.toCompat
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApDialogFragment
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApDialogFragment
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.WifiApCommands
|
import hanson.xyz.vpnhotspotmod.root.WifiApCommands
|
||||||
import be.mygod.vpnhotspot.util.*
|
import hanson.xyz.vpnhotspotmod.util.*
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.CompletableDeferred
|
import kotlinx.coroutines.CompletableDeferred
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package hanson.xyz.vpnhotspotmod.manage
|
||||||
|
|
||||||
import android.bluetooth.BluetoothManager
|
import android.bluetooth.BluetoothManager
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
@@ -12,14 +12,14 @@ import android.service.quicksettings.Tile
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.TetheringService
|
import hanson.xyz.vpnhotspotmod.TetheringService
|
||||||
import be.mygod.vpnhotspot.net.TetherType
|
import hanson.xyz.vpnhotspotmod.net.TetherType
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager.tetheredIfaces
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager.tetheredIfaces
|
||||||
import be.mygod.vpnhotspot.util.broadcastReceiver
|
import hanson.xyz.vpnhotspotmod.util.broadcastReceiver
|
||||||
import be.mygod.vpnhotspot.util.readableMessage
|
import hanson.xyz.vpnhotspotmod.util.readableMessage
|
||||||
import be.mygod.vpnhotspot.util.stopAndUnbind
|
import hanson.xyz.vpnhotspotmod.util.stopAndUnbind
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.Routing.Companion.IP
|
import hanson.xyz.vpnhotspotmod.net.Routing.Companion.IP
|
||||||
import be.mygod.vpnhotspot.root.RoutingCommands
|
import hanson.xyz.vpnhotspotmod.root.RoutingCommands
|
||||||
import be.mygod.vpnhotspot.util.RootSession
|
import hanson.xyz.vpnhotspotmod.util.RootSession
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.system.ErrnoException
|
import android.system.ErrnoException
|
||||||
import android.system.Os
|
import android.system.Os
|
||||||
import android.system.OsConstants
|
import android.system.OsConstants
|
||||||
import be.mygod.vpnhotspot.root.ReadArp
|
import hanson.xyz.vpnhotspotmod.root.ReadArp
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.util.parseNumericAddress
|
import hanson.xyz.vpnhotspotmod.util.parseNumericAddress
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import java.nio.ByteBuffer
|
import java.nio.ByteBuffer
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.net.RouteInfo
|
import android.net.RouteInfo
|
||||||
import android.system.Os
|
import android.system.Os
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.monitor.FallbackUpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.FallbackUpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.IpNeighbourMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.IpNeighbourMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.TrafficRecorder
|
import hanson.xyz.vpnhotspotmod.net.monitor.TrafficRecorder
|
||||||
import be.mygod.vpnhotspot.net.monitor.UpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.UpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.RoutingCommands
|
import hanson.xyz.vpnhotspotmod.root.RoutingCommands
|
||||||
import be.mygod.vpnhotspot.util.RootSession
|
import hanson.xyz.vpnhotspotmod.util.RootSession
|
||||||
import be.mygod.vpnhotspot.util.allInterfaceNames
|
import hanson.xyz.vpnhotspotmod.util.allInterfaceNames
|
||||||
import be.mygod.vpnhotspot.util.allRoutes
|
import hanson.xyz.vpnhotspotmod.util.allRoutes
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.BufferedWriter
|
import java.io.BufferedWriter
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.root.SettingsGlobalPut
|
import hanson.xyz.vpnhotspotmod.root.SettingsGlobalPut
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It's hard to change tethering rules with Tethering hardware acceleration enabled for now.
|
* It's hard to change tethering rules with Tethering hardware acceleration enabled for now.
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.util.Event0
|
import hanson.xyz.vpnhotspotmod.util.Event0
|
||||||
import be.mygod.vpnhotspot.util.findIdentifier
|
import hanson.xyz.vpnhotspotmod.util.findIdentifier
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package hanson.xyz.vpnhotspotmod.net
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
@@ -12,14 +12,18 @@ import android.net.Network
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.DeadObjectException
|
import android.os.DeadObjectException
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
import androidx.core.os.ExecutorCompat
|
import androidx.core.os.ExecutorCompat
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.StartTethering
|
import hanson.xyz.vpnhotspotmod.root.StartTethering
|
||||||
import be.mygod.vpnhotspot.root.StopTethering
|
import hanson.xyz.vpnhotspotmod.root.StopTethering
|
||||||
import be.mygod.vpnhotspot.util.*
|
import hanson.xyz.vpnhotspotmod.util.*
|
||||||
import com.android.dx.stock.ProxyBuilder
|
import com.android.dx.stock.ProxyBuilder
|
||||||
|
import hanson.xyz.vpnhotspotmod.App
|
||||||
|
import hanson.xyz.vpnhotspotmod.TetheringService
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -335,7 +339,7 @@ object TetheringManager {
|
|||||||
rootCache.mkdirs()
|
rootCache.mkdirs()
|
||||||
check(rootCache.exists()) { "Creating root cache dir failed" }
|
check(rootCache.exists()) { "Creating root cache dir failed" }
|
||||||
RootManager.use {
|
RootManager.use {
|
||||||
it.execute(be.mygod.vpnhotspot.root.StartTetheringLegacy(
|
it.execute(hanson.xyz.vpnhotspotmod.root.StartTetheringLegacy(
|
||||||
rootCache, type, showProvisioningUi))
|
rootCache, type, showProvisioningUi))
|
||||||
}.value
|
}.value
|
||||||
} catch (eRoot: Exception) {
|
} catch (eRoot: Exception) {
|
||||||
@@ -447,7 +451,9 @@ object TetheringManager {
|
|||||||
* multiple times later upon changes.
|
* multiple times later upon changes.
|
||||||
* @param interfaces The list of tetherable interface names.
|
* @param interfaces The list of tetherable interface names.
|
||||||
*/
|
*/
|
||||||
fun onTetherableInterfacesChanged(interfaces: List<String?>) {}
|
fun onTetherableInterfacesChanged(interfaces: List<String?>) {
|
||||||
|
//hansonxyz
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when there was a change in the list of tethered interfaces.
|
* Called when there was a change in the list of tethered interfaces.
|
||||||
@@ -554,10 +560,27 @@ object TetheringManager {
|
|||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
callback?.onTetherableInterfacesChanged(args!![0] as List<String?>)
|
callback?.onTetherableInterfacesChanged(args!![0] as List<String?>)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// modified by hansonxyz
|
||||||
method.matches1<java.util.List<*>>("onTetheredInterfacesChanged") -> {
|
method.matches1<java.util.List<*>>("onTetheredInterfacesChanged") -> {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
callback?.onTetheredInterfacesChanged(args!![0] as List<String?>)
|
val tetheredInterfaces = args!![0] as List<String?>
|
||||||
|
callback?.onTetheredInterfacesChanged(tetheredInterfaces)
|
||||||
|
|
||||||
|
// hansonxyz
|
||||||
|
tetheredInterfaces?.let {
|
||||||
|
for (iface in it) {
|
||||||
|
App.app.startForegroundService(
|
||||||
|
Intent(App.app, TetheringService::class.java)
|
||||||
|
.putExtra(
|
||||||
|
TetheringService.EXTRA_ADD_INTERFACES,
|
||||||
|
arrayOf(iface)
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
method.matches("onError", String::class.java, Integer.TYPE) -> {
|
method.matches("onError", String::class.java, Integer.TYPE) -> {
|
||||||
callback?.onError(args!![0] as String, args[1] as Int)
|
callback?.onError(args!![0] as String, args[1] as Int)
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.globalNetworkRequestBuilder
|
import hanson.xyz.vpnhotspotmod.util.globalNetworkRequestBuilder
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.allInterfaceNames
|
import hanson.xyz.vpnhotspotmod.util.allInterfaceNames
|
||||||
import be.mygod.vpnhotspot.util.globalNetworkRequestBuilder
|
import hanson.xyz.vpnhotspotmod.util.globalNetworkRequestBuilder
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import be.mygod.librootkotlinx.RootServer
|
import be.mygod.librootkotlinx.RootServer
|
||||||
import be.mygod.librootkotlinx.isEBADF
|
import be.mygod.librootkotlinx.isEBADF
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.Routing
|
import hanson.xyz.vpnhotspotmod.net.Routing
|
||||||
import be.mygod.vpnhotspot.root.ProcessData
|
import hanson.xyz.vpnhotspotmod.root.ProcessData
|
||||||
import be.mygod.vpnhotspot.root.ProcessListener
|
import hanson.xyz.vpnhotspotmod.root.ProcessListener
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.RoutingCommands
|
import hanson.xyz.vpnhotspotmod.root.RoutingCommands
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.channels.ReceiveChannel
|
import kotlinx.coroutines.channels.ReceiveChannel
|
||||||
import kotlinx.coroutines.channels.consumeEach
|
import kotlinx.coroutines.channels.consumeEach
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import be.mygod.vpnhotspot.net.IpDev
|
import hanson.xyz.vpnhotspotmod.net.IpDev
|
||||||
import be.mygod.vpnhotspot.net.IpNeighbour
|
import hanson.xyz.vpnhotspotmod.net.IpNeighbour
|
||||||
import kotlinx.collections.immutable.PersistentMap
|
import kotlinx.collections.immutable.PersistentMap
|
||||||
import kotlinx.collections.immutable.persistentMapOf
|
import kotlinx.collections.immutable.persistentMapOf
|
||||||
import kotlinx.collections.immutable.toPersistentMap
|
import kotlinx.collections.immutable.toPersistentMap
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.root.SettingsGlobalPut
|
import hanson.xyz.vpnhotspotmod.root.SettingsGlobalPut
|
||||||
import be.mygod.vpnhotspot.util.findIdentifier
|
import hanson.xyz.vpnhotspotmod.util.findIdentifier
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import androidx.collection.LongSparseArray
|
import androidx.collection.LongSparseArray
|
||||||
import androidx.collection.set
|
import androidx.collection.set
|
||||||
import be.mygod.vpnhotspot.net.IpDev
|
import hanson.xyz.vpnhotspotmod.net.IpDev
|
||||||
import be.mygod.vpnhotspot.net.Routing.Companion.IPTABLES
|
import hanson.xyz.vpnhotspotmod.net.Routing.Companion.IPTABLES
|
||||||
import be.mygod.vpnhotspot.room.AppDatabase
|
import hanson.xyz.vpnhotspotmod.room.AppDatabase
|
||||||
import be.mygod.vpnhotspot.room.TrafficRecord
|
import hanson.xyz.vpnhotspotmod.room.TrafficRecord
|
||||||
import be.mygod.vpnhotspot.util.Event2
|
import hanson.xyz.vpnhotspotmod.util.Event2
|
||||||
import be.mygod.vpnhotspot.util.RootSession
|
import hanson.xyz.vpnhotspotmod.util.RootSession
|
||||||
import be.mygod.vpnhotspot.util.parseNumericAddress
|
import hanson.xyz.vpnhotspotmod.util.parseNumericAddress
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.CoroutineStart
|
import kotlinx.coroutines.CoroutineStart
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.net.monitor
|
package hanson.xyz.vpnhotspotmod.net.monitor
|
||||||
|
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.globalNetworkRequestBuilder
|
import hanson.xyz.vpnhotspotmod.util.globalNetworkRequestBuilder
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.net.wifi.p2p.WifiP2pGroup
|
import android.net.wifi.p2p.WifiP2pGroup
|
||||||
import be.mygod.vpnhotspot.RepeaterService
|
import hanson.xyz.vpnhotspotmod.RepeaterService
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat
|
||||||
import be.mygod.vpnhotspot.root.RepeaterCommands
|
import hanson.xyz.vpnhotspotmod.root.RepeaterCommands
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.util.LongConstantLookup
|
import hanson.xyz.vpnhotspotmod.util.LongConstantLookup
|
||||||
import be.mygod.vpnhotspot.util.UnblockCentral
|
import hanson.xyz.vpnhotspotmod.util.UnblockCentral
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
@JvmInline
|
@JvmInline
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
@@ -10,12 +10,12 @@ import android.os.Build
|
|||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.util.SparseIntArray
|
import android.util.SparseIntArray
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.net.monitor.TetherTimeoutMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.TetherTimeoutMonitor
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat.Companion.requireSingleBand
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat.Companion.requireSingleBand
|
||||||
import be.mygod.vpnhotspot.net.wifi.SoftApConfigurationCompat.Companion.setChannel
|
import hanson.xyz.vpnhotspotmod.net.wifi.SoftApConfigurationCompat.Companion.setChannel
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiSsidCompat.Companion.toCompat
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiSsidCompat.Companion.toCompat
|
||||||
import be.mygod.vpnhotspot.util.ConstantLookup
|
import hanson.xyz.vpnhotspotmod.util.ConstantLookup
|
||||||
import be.mygod.vpnhotspot.util.UnblockCentral
|
import hanson.xyz.vpnhotspotmod.util.UnblockCentral
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.lang.reflect.InvocationTargetException
|
import java.lang.reflect.InvocationTargetException
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.util.ConstantLookup
|
import hanson.xyz.vpnhotspotmod.util.ConstantLookup
|
||||||
import be.mygod.vpnhotspot.util.UnblockCentral
|
import hanson.xyz.vpnhotspotmod.util.UnblockCentral
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
@JvmInline
|
@JvmInline
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.net.wifi.ScanResult
|
import android.net.wifi.ScanResult
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
@@ -26,17 +26,17 @@ import androidx.core.os.persistableBundleOf
|
|||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
import be.mygod.librootkotlinx.toByteArray
|
import be.mygod.librootkotlinx.toByteArray
|
||||||
import be.mygod.librootkotlinx.toParcelable
|
import be.mygod.librootkotlinx.toParcelable
|
||||||
import be.mygod.vpnhotspot.AlertDialogFragment
|
import hanson.xyz.vpnhotspotmod.AlertDialogFragment
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.RepeaterService
|
import hanson.xyz.vpnhotspotmod.RepeaterService
|
||||||
import be.mygod.vpnhotspot.databinding.DialogWifiApBinding
|
import hanson.xyz.vpnhotspotmod.databinding.DialogWifiApBinding
|
||||||
import be.mygod.vpnhotspot.net.monitor.TetherTimeoutMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.TetherTimeoutMonitor
|
||||||
import be.mygod.vpnhotspot.util.QRCodeDialog
|
import hanson.xyz.vpnhotspotmod.util.QRCodeDialog
|
||||||
import be.mygod.vpnhotspot.util.RangeInput
|
import hanson.xyz.vpnhotspotmod.util.RangeInput
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.readableMessage
|
import hanson.xyz.vpnhotspotmod.util.readableMessage
|
||||||
import be.mygod.vpnhotspot.util.showAllowingStateLoss
|
import hanson.xyz.vpnhotspotmod.util.showAllowingStateLoss
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -11,8 +11,8 @@ import android.os.Build
|
|||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.util.*
|
import hanson.xyz.vpnhotspotmod.util.*
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.lang.reflect.InvocationHandler
|
import java.lang.reflect.InvocationHandler
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.util.UnblockCentral
|
import hanson.xyz.vpnhotspotmod.util.UnblockCentral
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
@JvmInline
|
@JvmInline
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -12,8 +12,8 @@ import androidx.core.content.edit
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import androidx.lifecycle.DefaultLifecycleObserver
|
import androidx.lifecycle.DefaultLifecycleObserver
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This mechanism is used to maximize profit. Source: https://stackoverflow.com/a/29657230/2245107
|
* This mechanism is used to maximize profit. Source: https://stackoverflow.com/a/29657230/2245107
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
@@ -8,10 +8,10 @@ import android.net.wifi.p2p.WifiP2pGroup
|
|||||||
import android.net.wifi.p2p.WifiP2pInfo
|
import android.net.wifi.p2p.WifiP2pInfo
|
||||||
import android.net.wifi.p2p.WifiP2pManager
|
import android.net.wifi.p2p.WifiP2pManager
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat
|
||||||
import be.mygod.vpnhotspot.util.callSuper
|
import hanson.xyz.vpnhotspotmod.util.callSuper
|
||||||
import be.mygod.vpnhotspot.util.matches
|
import hanson.xyz.vpnhotspotmod.util.matches
|
||||||
import kotlinx.coroutines.CompletableDeferred
|
import kotlinx.coroutines.CompletableDeferred
|
||||||
import java.lang.reflect.InvocationHandler
|
import java.lang.reflect.InvocationHandler
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.net.wifi
|
package hanson.xyz.vpnhotspotmod.net.wifi
|
||||||
|
|
||||||
import android.net.wifi.WifiSsid
|
import android.net.wifi.WifiSsid
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.preference
|
package hanson.xyz.vpnhotspotmod.preference
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
@@ -12,11 +12,11 @@ import androidx.core.os.bundleOf
|
|||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.withStarted
|
import androidx.lifecycle.withStarted
|
||||||
import androidx.preference.EditTextPreferenceDialogFragmentCompat
|
import androidx.preference.EditTextPreferenceDialogFragmentCompat
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.allInterfaceNames
|
import hanson.xyz.vpnhotspotmod.util.allInterfaceNames
|
||||||
import be.mygod.vpnhotspot.util.globalNetworkRequestBuilder
|
import hanson.xyz.vpnhotspotmod.util.globalNetworkRequestBuilder
|
||||||
import be.mygod.vpnhotspot.widget.AlwaysAutoCompleteEditText
|
import hanson.xyz.vpnhotspotmod.widget.AlwaysAutoCompleteEditText
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class AutoCompleteNetworkPreferenceDialogFragment : EditTextPreferenceDialogFragmentCompat() {
|
class AutoCompleteNetworkPreferenceDialogFragment : EditTextPreferenceDialogFragmentCompat() {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.preference
|
package hanson.xyz.vpnhotspotmod.preference
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.preference
|
package hanson.xyz.vpnhotspotmod.preference
|
||||||
|
|
||||||
import androidx.preference.EditTextPreference
|
import androidx.preference.EditTextPreference
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.preference
|
package hanson.xyz.vpnhotspotmod.preference
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
@@ -10,12 +10,12 @@ import androidx.lifecycle.DefaultLifecycleObserver
|
|||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.monitor.FallbackUpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.FallbackUpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.net.monitor.UpstreamMonitor
|
import hanson.xyz.vpnhotspotmod.net.monitor.UpstreamMonitor
|
||||||
import be.mygod.vpnhotspot.util.allRoutes
|
import hanson.xyz.vpnhotspotmod.util.allRoutes
|
||||||
import be.mygod.vpnhotspot.util.format
|
import hanson.xyz.vpnhotspotmod.util.format
|
||||||
import be.mygod.vpnhotspot.util.parseNumericAddress
|
import hanson.xyz.vpnhotspotmod.util.parseNumericAddress
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.room
|
package hanson.xyz.vpnhotspotmod.room
|
||||||
|
|
||||||
import androidx.room.Database
|
import androidx.room.Database
|
||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
@@ -6,7 +6,7 @@ import androidx.room.RoomDatabase
|
|||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import androidx.room.migration.Migration
|
import androidx.room.migration.Migration
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package be.mygod.vpnhotspot.room
|
package hanson.xyz.vpnhotspotmod.room
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.map
|
import androidx.lifecycle.map
|
||||||
import androidx.room.*
|
import androidx.room.*
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat.Companion.toLong
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat.Companion.toLong
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
data class ClientRecord(@PrimaryKey
|
data class ClientRecord(@PrimaryKey
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package be.mygod.vpnhotspot.room
|
package hanson.xyz.vpnhotspotmod.room
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import androidx.room.TypeConverter
|
import androidx.room.TypeConverter
|
||||||
import be.mygod.librootkotlinx.useParcel
|
import be.mygod.librootkotlinx.useParcel
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat.Companion.toLong
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat.Companion.toLong
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.room
|
package hanson.xyz.vpnhotspotmod.room
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.net.wifi.SoftApConfiguration
|
import android.net.wifi.SoftApConfiguration
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
@@ -6,11 +6,11 @@ import android.os.RemoteException
|
|||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.librootkotlinx.*
|
import be.mygod.librootkotlinx.*
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.Routing.Companion.IP
|
import hanson.xyz.vpnhotspotmod.net.Routing.Companion.IP
|
||||||
import be.mygod.vpnhotspot.net.Routing.Companion.IPTABLES
|
import hanson.xyz.vpnhotspotmod.net.Routing.Companion.IPTABLES
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import hanson.xyz.vpnhotspotmod.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.channels.onClosed
|
import kotlinx.coroutines.channels.onClosed
|
||||||
import kotlinx.coroutines.channels.onFailure
|
import kotlinx.coroutines.channels.onFailure
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
import android.net.wifi.ScanResult
|
import android.net.wifi.ScanResult
|
||||||
@@ -10,12 +10,12 @@ import android.system.OsConstants
|
|||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import be.mygod.librootkotlinx.*
|
import be.mygod.librootkotlinx.*
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.deletePersistentGroup
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.deletePersistentGroup
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestDeviceAddress
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestDeviceAddress
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestPersistentGroupInfo
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.requestPersistentGroupInfo
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setVendorElements
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.setVendorElements
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import be.mygod.librootkotlinx.*
|
import be.mygod.librootkotlinx.*
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.util.Services
|
import hanson.xyz.vpnhotspotmod.util.Services
|
||||||
import be.mygod.vpnhotspot.util.UnblockCentral
|
import hanson.xyz.vpnhotspotmod.util.UnblockCentral
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import be.mygod.librootkotlinx.RootCommand
|
import be.mygod.librootkotlinx.RootCommand
|
||||||
import be.mygod.librootkotlinx.RootCommandNoResult
|
import be.mygod.librootkotlinx.RootCommandNoResult
|
||||||
import be.mygod.vpnhotspot.net.Routing
|
import hanson.xyz.vpnhotspotmod.net.Routing
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.coroutineScope
|
import kotlinx.coroutines.coroutineScope
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.root
|
package hanson.xyz.vpnhotspotmod.root
|
||||||
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
@@ -10,11 +10,11 @@ import androidx.annotation.RequiresApi
|
|||||||
import be.mygod.librootkotlinx.ParcelableBoolean
|
import be.mygod.librootkotlinx.ParcelableBoolean
|
||||||
import be.mygod.librootkotlinx.RootCommand
|
import be.mygod.librootkotlinx.RootCommand
|
||||||
import be.mygod.librootkotlinx.RootCommandChannel
|
import be.mygod.librootkotlinx.RootCommandChannel
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiApManager
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiApManager
|
||||||
import be.mygod.vpnhotspot.net.wifi.WifiClient
|
import hanson.xyz.vpnhotspotmod.net.wifi.WifiClient
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.channels.*
|
import kotlinx.coroutines.channels.*
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.collection.LongSparseArray
|
import androidx.collection.LongSparseArray
|
||||||
import androidx.collection.SparseArrayCompat
|
import androidx.collection.SparseArrayCompat
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
class ConstantLookup(private val prefix: String, private val lookup29: Array<out String?>,
|
class ConstantLookup(private val prefix: String, private val lookup29: Array<out String?>,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.text.style.URLSpan
|
import android.text.style.URLSpan
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -8,7 +8,7 @@ import android.os.DeadObjectException
|
|||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.service.quicksettings.Tile
|
import android.service.quicksettings.Tile
|
||||||
import android.service.quicksettings.TileService
|
import android.service.quicksettings.TileService
|
||||||
import be.mygod.vpnhotspot.BootReceiver
|
import hanson.xyz.vpnhotspotmod.BootReceiver
|
||||||
|
|
||||||
abstract class KillableTileService : TileService(), ServiceConnection {
|
abstract class KillableTileService : TileService(), ServiceConnection {
|
||||||
protected var tapPending = false
|
protected var tapPending = false
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
@@ -9,7 +9,7 @@ import android.widget.ImageView
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import be.mygod.vpnhotspot.R
|
import hanson.xyz.vpnhotspotmod.R
|
||||||
import com.google.zxing.BarcodeFormat
|
import com.google.zxing.BarcodeFormat
|
||||||
import com.google.zxing.EncodeHintType
|
import com.google.zxing.EncodeHintType
|
||||||
import com.google.zxing.MultiFormatWriter
|
import com.google.zxing.MultiFormatWriter
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
object RangeInput {
|
object RangeInput {
|
||||||
fun toString(input: IntArray) = StringBuilder().apply {
|
fun toString(input: IntArray) = StringBuilder().apply {
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import be.mygod.librootkotlinx.RootServer
|
import be.mygod.librootkotlinx.RootServer
|
||||||
import be.mygod.vpnhotspot.root.RootManager
|
import hanson.xyz.vpnhotspotmod.root.RootManager
|
||||||
import be.mygod.vpnhotspot.root.RoutingCommands
|
import hanson.xyz.vpnhotspotmod.root.RoutingCommands
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.net.MacAddress
|
import android.net.MacAddress
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.util
|
package hanson.xyz.vpnhotspotmod.util
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
@@ -22,9 +22,9 @@ import androidx.core.view.isVisible
|
|||||||
import androidx.databinding.BindingAdapter
|
import androidx.databinding.BindingAdapter
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.MacAddressCompat
|
import hanson.xyz.vpnhotspotmod.net.MacAddressCompat
|
||||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
import hanson.xyz.vpnhotspotmod.widget.SmartSnackbar
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.widget
|
package hanson.xyz.vpnhotspotmod.widget
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.widget
|
package hanson.xyz.vpnhotspotmod.widget
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.widget
|
package hanson.xyz.vpnhotspotmod.widget
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.text.method.LinkMovementMethod
|
import android.text.method.LinkMovementMethod
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package be.mygod.vpnhotspot.widget
|
package hanson.xyz.vpnhotspotmod.widget
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
@@ -8,8 +8,8 @@ import androidx.annotation.StringRes
|
|||||||
import androidx.lifecycle.DefaultLifecycleObserver
|
import androidx.lifecycle.DefaultLifecycleObserver
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.lifecycle.findViewTreeLifecycleOwner
|
import androidx.lifecycle.findViewTreeLifecycleOwner
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import hanson.xyz.vpnhotspotmod.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.util.readableMessage
|
import hanson.xyz.vpnhotspotmod.util.readableMessage
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
|
|
||||||
0
mobile/src/main/res/drawable/ic_launcher_background.xml
Executable file → Normal file
0
mobile/src/main/res/drawable/ic_launcher_background.xml
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user