diff --git a/mobile/src/main/AndroidManifest.xml b/mobile/src/main/AndroidManifest.xml index eff53f0c..9afd03a5 100644 --- a/mobile/src/main/AndroidManifest.xml +++ b/mobile/src/main/AndroidManifest.xml @@ -169,9 +169,11 @@ + android:directBootAware="true" + tools:ignore="MissingClass"/> diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/MainActivity.kt b/mobile/src/main/java/be/mygod/vpnhotspot/MainActivity.kt index 274d9402..2763efdc 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/MainActivity.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/MainActivity.kt @@ -7,7 +7,6 @@ import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment -import androidx.fragment.app.replace import androidx.lifecycle.observe import be.mygod.vpnhotspot.client.ClientViewModel import be.mygod.vpnhotspot.client.ClientsFragment @@ -28,7 +27,7 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.navigation.setOnNavigationItemSelectedListener(this) - if (savedInstanceState == null) displayFragment() + if (savedInstanceState == null) displayFragment(TetheringFragment()) val model by viewModels() if (RepeaterService.supported) ServiceForegroundConnector(this, model, RepeaterService::class) model.clients.observe(this) { clients -> @@ -49,29 +48,29 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS R.id.navigation_clients -> { if (!item.isChecked) { item.isChecked = true - displayFragment() + displayFragment(ClientsFragment()) } true } R.id.navigation_tethering -> { if (!item.isChecked) { item.isChecked = true - displayFragment() + displayFragment(TetheringFragment()) } true } R.id.navigation_settings -> { if (!item.isChecked) { item.isChecked = true - displayFragment() + displayFragment(SettingsPreferenceFragment()) } true } else -> false } - private inline fun displayFragment() = - supportFragmentManager.beginTransaction().replace(R.id.fragmentHolder).commitAllowingStateLoss() + private fun displayFragment(fragment: Fragment) = + supportFragmentManager.beginTransaction().replace(R.id.fragmentHolder, fragment).commitAllowingStateLoss() override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/UpstreamMonitor.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/UpstreamMonitor.kt index 754ba73f..1ccc74ac 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/UpstreamMonitor.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/UpstreamMonitor.kt @@ -5,7 +5,6 @@ import android.net.LinkProperties import be.mygod.vpnhotspot.App.Companion.app import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import java.net.InetAddress import java.util.* import java.util.concurrent.ConcurrentHashMap @@ -72,10 +71,6 @@ abstract class UpstreamMonitor { val callbacks = Collections.newSetFromMap(ConcurrentHashMap()) protected abstract val currentLinkProperties: LinkProperties? open val currentIface: String? get() = currentLinkProperties?.interfaceName - /** - * There's no need for overriding currentDns for now. - */ - val currentDns: List get() = currentLinkProperties?.dnsServers ?: emptyList() protected abstract fun registerCallbackLocked(callback: Callback) abstract fun destroyLocked() diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt index b3d4e956..5d1c60c5 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt @@ -112,7 +112,9 @@ object WifiP2pManagerHelper { * * Source: https://android.googlesource.com/platform/frameworks/base/+/android-4.2_r1/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java#253 */ - private val getNetworkId by lazy { WifiP2pGroup::class.java.getDeclaredMethod("getNetworkId") } + private val getNetworkId by lazy @SuppressLint("DiscouragedPrivateApi") { + WifiP2pGroup::class.java.getDeclaredMethod("getNetworkId") + } @Deprecated("No longer used since API 29") val WifiP2pGroup.netId get() = getNetworkId.invoke(this) as Int } diff --git a/mobile/src/main/res/layout/listitem_repeater.xml b/mobile/src/main/res/layout/listitem_repeater.xml index 3e4969dc..32320852 100644 --- a/mobile/src/main/res/layout/listitem_repeater.xml +++ b/mobile/src/main/res/layout/listitem_repeater.xml @@ -75,7 +75,7 @@ android:background="?android:attr/selectableItemBackground" android:padding="16dp" android:onClick="@{_ -> data.wps()}" - android:visibility="@{data.serviceStarted && WifiP2pManagerHelper.startWps != null}"> + android:visibility="@{data.serviceStarted && WifiP2pManagerHelper.getStartWps() != null}">