@@ -103,7 +103,7 @@ API light grey list:
|
|||||||
|
|
||||||
* (since API 24) [`Landroid/bluetooth/BluetoothPan;->isTetheringOn()Z`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#1498)
|
* (since API 24) [`Landroid/bluetooth/BluetoothPan;->isTetheringOn()Z`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#1498)
|
||||||
* (since API 24) [`Landroid/net/ConnectivityManager;->getLastTetherError(Ljava/lang/String;)I`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#3783)
|
* (since API 24) [`Landroid/net/ConnectivityManager;->getLastTetherError(Ljava/lang/String;)I`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#3783)
|
||||||
* (deprecated since API 26) [`Landroid/net/wifi/WifiManager;->setWifiApEnabled(Landroid/net/wifi/WifiConfiguration;Z)Z`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-dark-greylist.txt#4378)
|
* (deprecated since API 25) [`Landroid/net/wifi/WifiManager;->setWifiApEnabled(Landroid/net/wifi/WifiConfiguration;Z)Z`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-dark-greylist.txt#4378)
|
||||||
* [`Landroid/net/wifi/p2p/WifiP2pGroup;->getNetworkId()I`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4399)
|
* [`Landroid/net/wifi/p2p/WifiP2pGroup;->getNetworkId()I`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4399)
|
||||||
* [`Landroid/net/wifi/p2p/WifiP2pGroupList;->getGroupList()Ljava/util/Collection;`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4405)
|
* [`Landroid/net/wifi/p2p/WifiP2pGroupList;->getGroupList()Ljava/util/Collection;`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4405)
|
||||||
* [`Landroid/net/wifi/p2p/WifiP2pManager;->deletePersistentGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;ILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4411)
|
* [`Landroid/net/wifi/p2p/WifiP2pManager;->deletePersistentGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;ILandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V`](https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#4411)
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
<service
|
<service
|
||||||
android:name=".manage.TetheringTileService$WifiLegacy"
|
android:name=".manage.TetheringTileService$WifiLegacy"
|
||||||
android:directBootAware="true"
|
android:directBootAware="true"
|
||||||
android:enabled="@bool/api_lt_26"
|
android:enabled="@bool/api_lt_25"
|
||||||
android:icon="@drawable/ic_device_wifi_tethering"
|
android:icon="@drawable/ic_device_wifi_tethering"
|
||||||
android:label="@string/tethering_manage_wifi_legacy"
|
android:label="@string/tethering_manage_wifi_legacy"
|
||||||
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
|
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@Deprecated("Not usable since API 26")
|
@Deprecated("Not usable since API 25")
|
||||||
class WifiLegacy(parent: TetheringFragment) : TetherManager(parent) {
|
class WifiLegacy(parent: TetheringFragment) : TetherManager(parent) {
|
||||||
override val title get() = parent.getString(R.string.tethering_manage_wifi_legacy)
|
override val title get() = parent.getString(R.string.tethering_manage_wifi_legacy)
|
||||||
override val tetherType get() = TetherType.WIFI
|
override val tetherType get() = TetherType.WIFI
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class TetheringFragment : Fragment(), ServiceConnection {
|
|||||||
list.addAll(tetherManagers)
|
list.addAll(tetherManagers)
|
||||||
tetherManagers.forEach { it.updateErrorMessage(erroredIfaces) }
|
tetherManagers.forEach { it.updateErrorMessage(erroredIfaces) }
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT < 26) {
|
if (Build.VERSION.SDK_INT < 25) {
|
||||||
list.add(wifiManagerLegacy)
|
list.add(wifiManagerLegacy)
|
||||||
wifiManagerLegacy.onTetheringStarted()
|
wifiManagerLegacy.onTetheringStarted()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ sealed class TetheringTileService : TetherListeningTileService(), TetheringManag
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@Deprecated("Not usable since API 26")
|
@Deprecated("Not usable since API 25")
|
||||||
class WifiLegacy : TetheringTileService() {
|
class WifiLegacy : TetheringTileService() {
|
||||||
override val labelString get() = R.string.tethering_manage_wifi_legacy
|
override val labelString get() = R.string.tethering_manage_wifi_legacy
|
||||||
override val tetherType get() = TetherType.WIFI
|
override val tetherType get() = TetherType.WIFI
|
||||||
|
|||||||
@@ -4,6 +4,11 @@ import android.net.wifi.WifiConfiguration
|
|||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import be.mygod.vpnhotspot.App.Companion.app
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Although the functionalities were removed in API 26, it is already not functioning correctly on API 25.
|
||||||
|
*
|
||||||
|
* See also: https://android.googlesource.com/platform/frameworks/base/+/5c0b10a4a9eecc5307bb89a271221f2b20448797%5E%21/
|
||||||
|
*/
|
||||||
object WifiApManager {
|
object WifiApManager {
|
||||||
private val setWifiApEnabled = WifiManager::class.java.getDeclaredMethod("setWifiApEnabled",
|
private val setWifiApEnabled = WifiManager::class.java.getDeclaredMethod("setWifiApEnabled",
|
||||||
WifiConfiguration::class.java, Boolean::class.java)
|
WifiConfiguration::class.java, Boolean::class.java)
|
||||||
@@ -20,12 +25,12 @@ object WifiApManager {
|
|||||||
private fun WifiManager.setWifiApEnabled(wifiConfig: WifiConfiguration?, enabled: Boolean) =
|
private fun WifiManager.setWifiApEnabled(wifiConfig: WifiConfiguration?, enabled: Boolean) =
|
||||||
setWifiApEnabled.invoke(this, wifiConfig, enabled) as Boolean
|
setWifiApEnabled.invoke(this, wifiConfig, enabled) as Boolean
|
||||||
|
|
||||||
@Deprecated("No longer usable since API 26.")
|
@Deprecated("No longer usable since API 25.")
|
||||||
fun start(wifiConfig: WifiConfiguration? = null) {
|
fun start(wifiConfig: WifiConfiguration? = null) {
|
||||||
app.wifi.isWifiEnabled = false
|
app.wifi.isWifiEnabled = false
|
||||||
app.wifi.setWifiApEnabled(wifiConfig, true)
|
app.wifi.setWifiApEnabled(wifiConfig, true)
|
||||||
}
|
}
|
||||||
@Deprecated("No longer usable since API 26.")
|
@Deprecated("No longer usable since API 25.")
|
||||||
fun stop() {
|
fun stop() {
|
||||||
app.wifi.setWifiApEnabled(null, false)
|
app.wifi.setWifiApEnabled(null, false)
|
||||||
app.wifi.isWifiEnabled = true
|
app.wifi.isWifiEnabled = true
|
||||||
|
|||||||
4
mobile/src/main/res/values-v25/bools.xml
Normal file
4
mobile/src/main/res/values-v25/bools.xml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<bool name="api_lt_25">false</bool>
|
||||||
|
</resources>
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<bool name="api_ge_26">true</bool>
|
<bool name="api_ge_26">true</bool>
|
||||||
<bool name="api_lt_26">false</bool>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<bool name="api_ge_26">false</bool>
|
<bool name="api_ge_26">false</bool>
|
||||||
<bool name="api_lt_26">true</bool>
|
<bool name="api_lt_25">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user