diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3219dde..d0f8199 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
+
diff --git a/app/src/main/java/org/openziti/mobile/ZitiVPNService.kt b/app/src/main/java/org/openziti/mobile/ZitiVPNService.kt
index 4628913..fcaf7d9 100644
--- a/app/src/main/java/org/openziti/mobile/ZitiVPNService.kt
+++ b/app/src/main/java/org/openziti/mobile/ZitiVPNService.kt
@@ -19,10 +19,15 @@ import android.os.IBinder
import android.system.OsConstants
import android.util.Log
import androidx.localbroadcastmanager.content.LocalBroadcastManager
-import kotlinx.coroutines.*
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.SupervisorJob
+import kotlinx.coroutines.asCoroutineDispatcher
+import kotlinx.coroutines.cancel
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.job
+import kotlinx.coroutines.launch
import org.openziti.android.Ziti
import org.openziti.mobile.net.PacketRouter
import org.openziti.mobile.net.PacketRouterImpl
@@ -33,7 +38,6 @@ import java.io.Writer
import java.nio.ByteBuffer
import java.time.Duration
import java.util.concurrent.Executors
-import kotlin.coroutines.CoroutineContext
class ZitiVPNService : VpnService(), CoroutineScope {
@@ -101,7 +105,7 @@ class ZitiVPNService : VpnService(), CoroutineScope {
}
private fun setNetworks() {
- val nwrks = networks()
+// val nwrks = networks()
runCatching {
// setUnderlyingNetworks(nwrks)
}.onFailure {
diff --git a/app/src/main/java/org/openziti/mobile/debug/DebugInfoActivity.kt b/app/src/main/java/org/openziti/mobile/debug/DebugInfoActivity.kt
index f1d26fd..cecbe1c 100644
--- a/app/src/main/java/org/openziti/mobile/debug/DebugInfoActivity.kt
+++ b/app/src/main/java/org/openziti/mobile/debug/DebugInfoActivity.kt
@@ -5,19 +5,14 @@
package org.openziti.mobile.debug
import android.os.Bundle
-import com.google.android.material.floatingactionbutton.FloatingActionButton
-import com.google.android.material.snackbar.Snackbar
+import androidx.fragment.app.FragmentActivity
import com.google.android.material.tabs.TabLayout
-import androidx.viewpager.widget.ViewPager
-import androidx.appcompat.app.AppCompatActivity
-import android.view.Menu
-import android.view.MenuItem
-import org.openziti.mobile.debug.SectionsPagerAdapter
+import com.google.android.material.tabs.TabLayoutMediator
import org.openziti.mobile.databinding.ActivityDebugInfoBinding
import org.openziti.util.DebugInfoProvider
-import java.util.*
+import java.util.ServiceLoader
-class DebugInfoActivity : AppCompatActivity() {
+class DebugInfoActivity : FragmentActivity() {
internal val contentMap: List>
init {
@@ -26,7 +21,6 @@ class DebugInfoActivity : AppCompatActivity() {
}
private lateinit var binding: ActivityDebugInfoBinding
- private lateinit var sectionsPagerAdapter: SectionsPagerAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -34,13 +28,17 @@ class DebugInfoActivity : AppCompatActivity() {
binding = ActivityDebugInfoBinding.inflate(layoutInflater)
setContentView(binding.root)
- val viewPager: ViewPager = binding.viewPager
- viewPager.adapter = SectionsPagerAdapter(this, supportFragmentManager).apply {
+ val viewPager = binding.viewPager
+ val adapter = SectionsPagerAdapter(this).apply {
names = contentMap.map{ it.first }.toList()
}
+ viewPager.adapter = adapter
+
val tabs: TabLayout = binding.tabs
- tabs.setupWithViewPager(viewPager)
+ TabLayoutMediator(tabs, viewPager) { tab, pos ->
+ tab.text = adapter.names[pos]
+ }.attach()
}
internal fun getSectionProvider(section: String): DebugInfoProvider? {
diff --git a/app/src/main/java/org/openziti/mobile/debug/SectionsPagerAdapter.kt b/app/src/main/java/org/openziti/mobile/debug/SectionsPagerAdapter.kt
index 3c8e4c3..9d9125d 100644
--- a/app/src/main/java/org/openziti/mobile/debug/SectionsPagerAdapter.kt
+++ b/app/src/main/java/org/openziti/mobile/debug/SectionsPagerAdapter.kt
@@ -4,25 +4,20 @@
package org.openziti.mobile.debug
-import android.content.Context
import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentManager
-import androidx.fragment.app.FragmentPagerAdapter
+import androidx.fragment.app.FragmentActivity
+import androidx.viewpager2.adapter.FragmentStateAdapter
/**
- * A [FragmentPagerAdapter] that returns a fragment corresponding to
+ * A [FragmentStateAdapter] that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
-class SectionsPagerAdapter(private val context: Context, fm: FragmentManager) :
- FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
-
+class SectionsPagerAdapter(act: FragmentActivity) : FragmentStateAdapter(act) {
lateinit var names: List
- override fun getItem(position: Int): Fragment {
+ override fun createFragment(position: Int): Fragment {
val name = names[position]
return DebugInfoFragment.newInstance(name)
}
- override fun getPageTitle(position: Int): CharSequence = names[position]
-
- override fun getCount(): Int = names.size
+ override fun getItemCount(): Int = names.size
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_debug_info.xml b/app/src/main/res/layout/activity_debug_info.xml
index e097f70..f601e5d 100644
--- a/app/src/main/res/layout/activity_debug_info.xml
+++ b/app/src/main/res/layout/activity_debug_info.xml
@@ -32,7 +32,7 @@
android:layout_height="wrap_content" />
-