Use viewTreeLifecycleOwner
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user