diff --git a/api/current.txt b/api/current.txt index 5b79660e..88ef47f0 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23,6 +23,7 @@ package androidx.core.content { public final class ContextKt { ctor public ContextKt(); + method public static android.content.ComponentName componentName(android.content.Context, String className); method public static void withStyledAttributes(android.content.Context, android.util.AttributeSet? set = "null", int[] attrs, @AttrRes int defStyleAttr = "0", @StyleRes int defStyleRes = "0", kotlin.jvm.functions.Function1 block); method public static void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1 block); } diff --git a/src/androidTest/java/androidx/core/content/ContextTest.kt b/src/androidTest/java/androidx/core/content/ContextTest.kt index 09d2355f..bb2da639 100644 --- a/src/androidTest/java/androidx/core/content/ContextTest.kt +++ b/src/androidTest/java/androidx/core/content/ContextTest.kt @@ -16,9 +16,11 @@ package androidx.core.content +import android.content.ComponentName import android.content.ContextWrapper import android.support.test.InstrumentationRegistry import android.support.test.filters.SdkSuppress +import androidx.core.TestActivity import androidx.core.ktx.test.R import androidx.core.getAttributeSet import org.junit.Assert.assertEquals @@ -70,4 +72,18 @@ class ContextTest { assertTrue(getInt(R.styleable.SampleAttrs_sample, -1) != -1) } } + + @Test fun componentName() { + val componentName = ComponentName(context, TestActivity::class.java) + context.componentName().also { + assertEquals(componentName, it) + } + } + + @Test fun componentNameViaClassName() { + val componentName = ComponentName(context, TestActivity::class.java) + context.componentName("androidx.core.TestActivity").also { + assertEquals(componentName, it) + } + } } diff --git a/src/main/java/androidx/core/content/Context.kt b/src/main/java/androidx/core/content/Context.kt index 2ffb17b7..4f75d1fc 100644 --- a/src/main/java/androidx/core/content/Context.kt +++ b/src/main/java/androidx/core/content/Context.kt @@ -16,6 +16,7 @@ package androidx.core.content +import android.content.ComponentName import android.content.Context import android.content.res.TypedArray import android.util.AttributeSet @@ -91,3 +92,9 @@ inline fun Context.withStyledAttributes( typedArray.recycle() } } + +/** Creates a [ComponentName] from the given [T]. */ +inline fun Context.componentName() = ComponentName(this, T::class.java) + +/** Creates a [ComponentName] from the given [String]. */ +inline fun Context.componentName(className: String) = ComponentName(this, className)