From 30755ae95cd4f31302cdbd8c645642865ac43f81 Mon Sep 17 00:00:00 2001 From: "a.fialko" Date: Mon, 9 Jul 2018 16:59:19 +0300 Subject: [PATCH 1/3] get component name via context extension --- api/current.txt | 1 + .../java/androidx/core/content/ContextTest.kt | 16 ++++++++++++++++ src/main/java/androidx/core/content/Context.kt | 5 +++++ 3 files changed, 22 insertions(+) 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..81367c8f 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, "androidx.core.TestActivity") + context.componentName().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..eea162cc 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,7 @@ inline fun Context.withStyledAttributes( typedArray.recycle() } } + +inline fun Context.componentName() = ComponentName(this, T::class.java) + +inline fun Context.componentName(className: String) = ComponentName(this, className) From 1736dc12d6973e72b1cc78a376d997174f5aedd6 Mon Sep 17 00:00:00 2001 From: "a.fialko" Date: Mon, 9 Jul 2018 17:04:42 +0300 Subject: [PATCH 2/3] fix test --- src/androidTest/java/androidx/core/content/ContextTest.kt | 4 ++-- src/main/java/androidx/core/content/Context.kt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/androidTest/java/androidx/core/content/ContextTest.kt b/src/androidTest/java/androidx/core/content/ContextTest.kt index 81367c8f..bb2da639 100644 --- a/src/androidTest/java/androidx/core/content/ContextTest.kt +++ b/src/androidTest/java/androidx/core/content/ContextTest.kt @@ -81,8 +81,8 @@ class ContextTest { } @Test fun componentNameViaClassName() { - val componentName = ComponentName(context, "androidx.core.TestActivity") - context.componentName().also { + 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 eea162cc..3c519d0d 100644 --- a/src/main/java/androidx/core/content/Context.kt +++ b/src/main/java/androidx/core/content/Context.kt @@ -93,6 +93,7 @@ inline fun Context.withStyledAttributes( } } + inline fun Context.componentName() = ComponentName(this, T::class.java) inline fun Context.componentName(className: String) = ComponentName(this, className) From ceb47b9b69065eed99ba823b36825e22ea9521b1 Mon Sep 17 00:00:00 2001 From: "a.fialko" Date: Mon, 9 Jul 2018 17:59:40 +0300 Subject: [PATCH 3/3] add doc --- src/main/java/androidx/core/content/Context.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/androidx/core/content/Context.kt b/src/main/java/androidx/core/content/Context.kt index 3c519d0d..4f75d1fc 100644 --- a/src/main/java/androidx/core/content/Context.kt +++ b/src/main/java/androidx/core/content/Context.kt @@ -93,7 +93,8 @@ inline fun Context.withStyledAttributes( } } - +/** 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)