diff options
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/util/Extensions.kt')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/util/Extensions.kt | 20 |
1 files changed, 15 insertions, 5 deletions
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..c4b43951 100644 --- a/ui/src/main/java/com/wireguard/android/util/Extensions.kt +++ b/ui/src/main/java/com/wireguard/android/util/Extensions.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2020 WireGuard LLC. All Rights Reserved. + * Copyright © 2017-2025 WireGuard LLC. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ @@ -8,7 +8,11 @@ package com.wireguard.android.util 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.Application +import com.wireguard.android.activity.SettingsActivity +import kotlinx.coroutines.CoroutineScope fun Context.resolveAttribute(@AttrRes attrRes: Int): Int { val typedValue = TypedValue() @@ -16,6 +20,12 @@ fun Context.resolveAttribute(@AttrRes attrRes: Int): Int { return typedValue.data } -fun Fragment.requireTargetFragment(): Fragment { - return requireNotNull(targetFragment) { "A target fragment should always be set for $this" } -} +val Any.applicationScope: CoroutineScope + get() = Application.getCoroutineScope() + +val Preference.activity: SettingsActivity + get() = context as? SettingsActivity + ?: throw IllegalStateException("Failed to resolve SettingsActivity") + +val Preference.lifecycleScope: CoroutineScope + get() = activity.lifecycleScope |