Use viewTreeLifecycleOwner

This commit is contained in:
Mygod
2020-06-01 16:21:49 -04:00
parent fb5283e61a
commit 379c3b226f
7 changed files with 12 additions and 11 deletions

View File

@@ -67,7 +67,7 @@ android {
androidExtensions.isExperimental = true
dependencies {
val lifecycleVersion = "2.2.0"
val lifecycleVersion = "2.3.0-alpha03"
val roomVersion = "2.2.5"
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.0.5")
@@ -76,7 +76,7 @@ dependencies {
implementation("androidx.browser:browser:1.2.0")
implementation("androidx.core:core-ktx:1.3.0-rc01")
implementation("androidx.emoji:emoji:1.1.0-rc01")
implementation("androidx.fragment:fragment-ktx:1.2.4")
implementation("androidx.fragment:fragment-ktx:1.3.0-alpha05")
implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion")

View File

@@ -83,7 +83,7 @@ class EBegFragment : AppCompatDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
dialog!!.setTitle(R.string.settings_misc_donate)
lifecycleScope.launchWhenCreated {
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
billingClient.querySkuDetails(SkuDetailsParams.newBuilder().apply {
setSkusList(listOf("donate001", "donate002", "donate005", "donate010", "donate020", "donate050",
"donate100", "donate200", "donatemax"))

View File

@@ -40,7 +40,7 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
number = count
} else binding.navigation.removeBadge(R.id.navigation_clients)
}
SmartSnackbar.Register(lifecycle, binding.fragmentHolder)
SmartSnackbar.Register(binding.fragmentHolder)
WifiDoubleLock.ActivityListener(this)
}

View File

@@ -18,6 +18,7 @@ import androidx.core.os.BuildCompat
import androidx.databinding.BaseObservable
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.findViewTreeLifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.observe
import androidx.recyclerview.widget.DefaultItemAnimator
@@ -110,7 +111,7 @@ class ClientsFragment : Fragment() {
private inner class ClientViewHolder(val binding: ListitemClientBinding) : RecyclerView.ViewHolder(binding.root),
View.OnClickListener, PopupMenu.OnMenuItemClickListener {
init {
binding.lifecycleOwner = this@ClientsFragment
binding.lifecycleOwner = binding.root.findViewTreeLifecycleOwner()
binding.root.setOnClickListener(this)
binding.description.movementMethod = LinkMovementMethod.getInstance()
}
@@ -149,7 +150,7 @@ class ClientsFragment : Fragment() {
}
R.id.stats -> {
binding.client?.let { client ->
lifecycleScope.launchWhenCreated {
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
withContext(Dispatchers.Unconfined) {
StatsDialogFragment().withArg(StatsArg(
client.title.value ?: return@withContext,

View File

@@ -140,7 +140,7 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(),
private val tethering = BluetoothTethering(parent.requireContext()) { onTetheringStarted() }
init {
parent.lifecycle.addObserver(this)
parent.viewLifecycleOwner.lifecycle.addObserver(this)
}
override fun onDestroy(owner: LifecycleOwner) = tethering.close()

View File

@@ -161,7 +161,7 @@ class TetheringFragment : Fragment(), ServiceConnection, Toolbar.OnMenuItemClick
true
}
R.id.configuration_repeater -> {
lifecycleScope.launchWhenCreated {
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
adapter.repeaterManager.getConfiguration()?.let { config ->
WifiApDialogFragment().withArg(WifiApDialogFragment.Arg(config, p2pMode = true)).show(
this@TetheringFragment, CONFIGURE_REPEATER)

View File

@@ -6,8 +6,8 @@ import android.view.View
import android.widget.Toast
import androidx.annotation.StringRes
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.findViewTreeLifecycleOwner
import be.mygod.vpnhotspot.App.Companion.app
import be.mygod.vpnhotspot.util.readableMessage
import com.google.android.material.snackbar.Snackbar
@@ -32,9 +32,9 @@ sealed class SmartSnackbar {
}.readableMessage)
}
class Register(lifecycle: Lifecycle, private val view: View) : DefaultLifecycleObserver {
class Register(private val view: View) : DefaultLifecycleObserver {
init {
lifecycle.addObserver(this)
view.findViewTreeLifecycleOwner()!!.lifecycle.addObserver(this)
}
override fun onResume(owner: LifecycleOwner) {