From 49ac61304e5a244c674028d279f70f9631351f9c Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 15 Sep 2020 23:30:20 +0200 Subject: coroutines: use lifecycleScope where appropriate There's still a bit of GlobalScope lingering around, which might be removable. Signed-off-by: Jason A. Donenfeld --- ui/src/main/java/com/wireguard/android/util/Extensions.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ui/src/main/java/com/wireguard/android/util/Extensions.kt') diff --git a/ui/src/main/java/com/wireguard/android/util/Extensions.kt b/ui/src/main/java/com/wireguard/android/util/Extensions.kt index a705401f..9106ec77 100644 --- a/ui/src/main/java/com/wireguard/android/util/Extensions.kt +++ b/ui/src/main/java/com/wireguard/android/util/Extensions.kt @@ -9,6 +9,10 @@ import android.content.Context import android.util.TypedValue import androidx.annotation.AttrRes import androidx.fragment.app.Fragment +import androidx.lifecycle.lifecycleScope +import androidx.preference.Preference +import com.wireguard.android.activity.SettingsActivity +import kotlinx.coroutines.CoroutineScope fun Context.resolveAttribute(@AttrRes attrRes: Int): Int { val typedValue = TypedValue() @@ -19,3 +23,9 @@ fun Context.resolveAttribute(@AttrRes attrRes: Int): Int { fun Fragment.requireTargetFragment(): Fragment { return requireNotNull(targetFragment) { "A target fragment should always be set for $this" } } + +val Preference.activity: SettingsActivity + get() = if (this.context is SettingsActivity) this.context as SettingsActivity else throw IllegalStateException("Failed to resolve SettingsActivity") + +val Preference.lifecycleScope: CoroutineScope + get() = this.activity.lifecycleScope -- cgit v1.2.3-59-g8ed1b