diff --git a/android.gradle b/android.gradle index 695b8bd..311269b 100644 --- a/android.gradle +++ b/android.gradle @@ -5,22 +5,4 @@ android { minSdkVersion 19 targetSdkVersion 30 } - - compileOptions { - sourceCompatibility '1.8' - targetCompatibility '1.8' - } -} - -pluginManager.withPlugin('org.jetbrains.kotlin.android') { - android { - kotlinOptions { - jvmTarget = '1.8' - freeCompilerArgs += [ - '-Xno-call-assertions', - '-Xno-param-assertions', - '-Xno-receiver-assertions', - ] - } - } } diff --git a/astring/src/main/kotlin/xyz/tynn/astring/AString.kt b/astring/src/main/kotlin/xyz/tynn/astring/AString.kt index 0b34e5e..2b5180c 100644 --- a/astring/src/main/kotlin/xyz/tynn/astring/AString.kt +++ b/astring/src/main/kotlin/xyz/tynn/astring/AString.kt @@ -11,40 +11,40 @@ import kotlin.reflect.KProperty /** * Invokes the `AString` with [Fragment.requireContext] */ -operator fun AString.invoke( +public operator fun AString.invoke( fragment: Fragment, -) = invoke(fragment.requireContext()) +): CharSequence? = invoke(fragment.requireContext()) /** * Invokes the `AString` with [View.getContext] */ -operator fun AString.invoke( +public operator fun AString.invoke( view: View, -) = invoke(view.context) +): CharSequence? = invoke(view.context) /** * Delegates a `CharSequence?` property within a [Context] to the `AString` */ @JvmSynthetic -operator fun AString.getValue( +public operator fun AString.getValue( thisRef: Context, property: KProperty<*>, -) = invoke(thisRef) +): CharSequence? = invoke(thisRef) /** * Delegates a `CharSequence?` property within a [Fragment] to the `AString` */ @JvmSynthetic -operator fun AString.getValue( +public operator fun AString.getValue( thisRef: Fragment, property: KProperty<*>, -) = invoke(thisRef.requireContext()) +): CharSequence? = invoke(thisRef.requireContext()) /** * Delegates a `CharSequence?` property within a [View] to the `AString` */ @JvmSynthetic -operator fun AString.getValue( +public operator fun AString.getValue( thisRef: View, property: KProperty<*>, -) = invoke(thisRef.context) +): CharSequence? = invoke(thisRef.context) diff --git a/astring/src/main/kotlin/xyz/tynn/astring/AStringFactory.kt b/astring/src/main/kotlin/xyz/tynn/astring/AStringFactory.kt index 43526d5..ec0090c 100644 --- a/astring/src/main/kotlin/xyz/tynn/astring/AStringFactory.kt +++ b/astring/src/main/kotlin/xyz/tynn/astring/AStringFactory.kt @@ -10,7 +10,7 @@ import androidx.annotation.PluralsRes import androidx.annotation.StringRes @JvmField -val nullAsAString: AString = NullValueWrapper.I +public val nullAsAString: AString = NullValueWrapper.I /** * Creates an `AString` from a `CharSequence?` @@ -18,8 +18,8 @@ val nullAsAString: AString = NullValueWrapper.I * Returns [nullAsAString] for null */ @JvmName("createFromCharSequence") -fun CharSequence?.asAString() = if (this == null) - NullValueWrapper.I +public fun CharSequence?.asAString(): AString = if (this == null) + nullAsAString else CharSequenceWrapper(this) /** @@ -28,11 +28,11 @@ else CharSequenceWrapper(this) * Returns [nullAsAString] for 0 */ @JvmName("createFromQuantityStringResource") -fun QuantityStringResource( +public fun QuantityStringResource( @PluralsRes resId: Int, quantity: Int, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else QuantityStringResourceDelegate( resId, quantity, @@ -45,12 +45,12 @@ else QuantityStringResourceDelegate( * Returns [nullAsAString] for 0 */ @JvmName("createFromQuantityStringResource") -fun QuantityStringResource( +public fun QuantityStringResource( @PluralsRes resId: Int, quantity: Int, vararg formatArgs: Any?, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else QuantityStringResourceDelegate( resId, quantity, @@ -63,11 +63,11 @@ else QuantityStringResourceDelegate( * Returns [nullAsAString] for 0 */ @JvmName("createFromQuantityTextResource") -fun QuantityTextResource( +public fun QuantityTextResource( @PluralsRes resId: Int, quantity: Int, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else QuantityTextResourceDelegate( resId, quantity, @@ -79,10 +79,10 @@ else QuantityTextResourceDelegate( * Returns [nullAsAString] for 0 */ @JvmName("createFromStringResource") -fun StringResource( +public fun StringResource( @StringRes resId: Int, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else StringResourceDelegate( resId, null, @@ -94,11 +94,11 @@ else StringResourceDelegate( * Returns [nullAsAString] for 0 */ @JvmName("createFromStringResource") -fun StringResource( +public fun StringResource( @StringRes resId: Int, vararg formatArgs: Any?, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else StringResourceDelegate( resId, formatArgs, @@ -110,10 +110,10 @@ else StringResourceDelegate( * Returns [nullAsAString] for 0 */ @JvmName("createFromTextResource") -fun TextResource( +public fun TextResource( @StringRes resId: Int, -) = if (resId == 0) - NullValueWrapper.I +): AString = if (resId == 0) + nullAsAString else TextResourceDelegate( resId, ) diff --git a/astring/src/test/java/xyz/tynn/astring/AStringFactoryTest.java b/astring/src/test/java/xyz/tynn/astring/AStringFactoryTest.java index a808f27..fb6ec7c 100644 --- a/astring/src/test/java/xyz/tynn/astring/AStringFactoryTest.java +++ b/astring/src/test/java/xyz/tynn/astring/AStringFactoryTest.java @@ -3,12 +3,12 @@ package xyz.tynn.astring; -import org.junit.Test; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import static xyz.tynn.astring.NullValueWrapper.I; +import org.junit.Test; + public class AStringFactoryTest { @Test diff --git a/astring/src/test/java/xyz/tynn/astring/AStringTest.java b/astring/src/test/java/xyz/tynn/astring/AStringTest.java index 8d86656..baefc17 100644 --- a/astring/src/test/java/xyz/tynn/astring/AStringTest.java +++ b/astring/src/test/java/xyz/tynn/astring/AStringTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.view.View; import androidx.fragment.app.Fragment; @@ -12,9 +15,6 @@ import io.mockk.impl.annotations.MockK; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringTest { @MockK diff --git a/astring/src/test/kotlin/xyz/tynn/astring/AStringKtTest.kt b/astring/src/test/kotlin/xyz/tynn/astring/AStringKtTest.kt index e3316e8..23bbf25 100644 --- a/astring/src/test/kotlin/xyz/tynn/astring/AStringKtTest.kt +++ b/astring/src/test/kotlin/xyz/tynn/astring/AStringKtTest.kt @@ -13,7 +13,7 @@ import io.mockk.spyk import io.mockk.verify import kotlin.test.Test -class AStringKtTest { +internal class AStringKtTest { val aString = mockk(relaxed = true) val aContext = mockk() diff --git a/build.gradle b/build.gradle index 76c6eba..bd9417b 100644 --- a/build.gradle +++ b/build.gradle @@ -22,22 +22,7 @@ subprojects { pluginManager.withPlugin('com.android.library') { apply plugin: 'org.jetbrains.kotlin.android' apply from: "$rootDir/android.gradle" - - android { - libraryVariants.all { - it.generateBuildConfigProvider.configure { - enabled = false - } - } - } - - tasks.withType(GenerateModuleMetadata).configureEach { - enabled = false - } - - dependencies { - compileOnly 'org.jetbrains.kotlin:kotlin-stdlib' - } + apply from: "$rootDir/library.gradle" } pluginManager.withPlugin('com.android.application') { diff --git a/example/base/src/main/kotlin/xyz/tynn/astring/example/base/AStrings.kt b/example/base/src/main/kotlin/xyz/tynn/astring/example/base/AStrings.kt index ecb884f..b5f2066 100644 --- a/example/base/src/main/kotlin/xyz/tynn/astring/example/base/AStrings.kt +++ b/example/base/src/main/kotlin/xyz/tynn/astring/example/base/AStrings.kt @@ -5,21 +5,21 @@ package xyz.tynn.astring.example.base import xyz.tynn.astring.* -val aString = "AString".asAString() -val accessibilityPaneTitle = "accessibility pane title".asAString() -val action1 = StringResource(R.string.astring_action, 1) -val action2 = StringResource(R.string.astring_action, 2) -val action3 = StringResource(R.string.astring_action, 3) -val append = StringResource(R.string.astring_append) -val appendRange = StringResource(R.string.astring_append_range, 123) -val contentDescription = "content description".asAString() -val dialog = StringResource(R.string.astring_dialog) -val error = StringResource(R.string.astring_error) -val errorIcon = StringResource(R.string.astring_error_with_icon) -val hint = QuantityStringResource(R.plurals.astring_text_hint, 0) -val message = StringResource(R.string.astring_message) -val stateDescription = "state description".asAString() -val text = TextResource(R.string.astring_text) -val textType = QuantityTextResource(R.plurals.astring_text_type, 5) -val title = StringResource(R.string.astring_title) -val tooltipText = QuantityStringResource(R.plurals.astring_tooltip_text, 2, 2) +public val aString: AString = "AString".asAString() +public val accessibilityPaneTitle: AString = "accessibility pane title".asAString() +public val action1: AString = StringResource(R.string.astring_action, 1) +public val action2: AString = StringResource(R.string.astring_action, 2) +public val action3: AString = StringResource(R.string.astring_action, 3) +public val append: AString = StringResource(R.string.astring_append) +public val appendRange: AString = StringResource(R.string.astring_append_range, 123) +public val contentDescription: AString = "content description".asAString() +public val dialog: AString = StringResource(R.string.astring_dialog) +public val error: AString = StringResource(R.string.astring_error) +public val errorIcon: AString = StringResource(R.string.astring_error_with_icon) +public val hint: AString = QuantityStringResource(R.plurals.astring_text_hint, 0) +public val message: AString = StringResource(R.string.astring_message) +public val stateDescription: AString = "state description".asAString() +public val text: AString = TextResource(R.string.astring_text) +public val textType: AString = QuantityTextResource(R.plurals.astring_text_type, 5) +public val title: AString = StringResource(R.string.astring_title) +public val tooltipText: AString = QuantityStringResource(R.plurals.astring_tooltip_text, 2, 2) diff --git a/example/java/src/main/java/xyz/tynn/astring/example/java/MainActivity.java b/example/java/src/main/java/xyz/tynn/astring/example/java/MainActivity.java index c430c6b..fce8520 100644 --- a/example/java/src/main/java/xyz/tynn/astring/example/java/MainActivity.java +++ b/example/java/src/main/java/xyz/tynn/astring/example/java/MainActivity.java @@ -3,30 +3,6 @@ package xyz.tynn.astring.example.java; -import android.app.AlertDialog.Builder; -import android.content.DialogInterface.OnClickListener; -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.Toast; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.content.ContextCompat; - -import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.google.android.material.snackbar.Snackbar; - -import xyz.tynn.astring.appcompat.AStringAlertDialog; -import xyz.tynn.astring.appcompat.AStringAlertDialogBuilder; -import xyz.tynn.astring.core.AStringToast; -import xyz.tynn.astring.example.base.AStringsKt; -import xyz.tynn.astring.example.base.R; -import xyz.tynn.astring.example.base.databinding.ActivityMainBinding; -import xyz.tynn.astring.material.AStringSnackbar; - import static android.content.DialogInterface.BUTTON_NEGATIVE; import static android.widget.TextView.BufferType.SPANNABLE; import static android.widget.Toast.LENGTH_SHORT; @@ -60,6 +36,30 @@ import static xyz.tynn.astring.material.AStringSnackbar.make; import static xyz.tynn.astring.material.AStringSnackbar.setAction; +import android.app.AlertDialog.Builder; +import android.content.DialogInterface.OnClickListener; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.snackbar.Snackbar; + +import xyz.tynn.astring.appcompat.AStringAlertDialog; +import xyz.tynn.astring.appcompat.AStringAlertDialogBuilder; +import xyz.tynn.astring.core.AStringToast; +import xyz.tynn.astring.example.base.AStringsKt; +import xyz.tynn.astring.example.base.R; +import xyz.tynn.astring.example.base.databinding.ActivityMainBinding; +import xyz.tynn.astring.material.AStringSnackbar; + public class MainActivity extends AppCompatActivity { private CharSequence tag = null; diff --git a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialog.kt b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialog.kt index 5b5f27b..cf9075b 100644 --- a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialog.kt +++ b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialog.kt @@ -23,11 +23,11 @@ private annotation class DialogInterfaceButton * * @see AlertDialog.setButton */ -fun AlertDialog.setButton( +public fun AlertDialog.setButton( @DialogInterfaceButton whichButton: Int, text: AString, listener: OnClickListener?, -) = setButton( +): Unit = setButton( whichButton, text(context), listener, @@ -40,11 +40,11 @@ fun AlertDialog.setButton( * * @see AlertDialog.setButton */ -fun AlertDialog.setButton( +public fun AlertDialog.setButton( @DialogInterfaceButton whichButton: Int, text: AString, msg: Message?, -) = setButton( +): Unit = setButton( whichButton, text(context), msg, @@ -55,9 +55,9 @@ fun AlertDialog.setButton( * * @see AlertDialog.setMessage */ -fun AlertDialog.setMessage( +public fun AlertDialog.setMessage( message: AString, -) = setMessage( +): Unit = setMessage( message(context), ) @@ -66,8 +66,8 @@ fun AlertDialog.setMessage( * * @see AlertDialog.setTitle */ -fun AlertDialog.setTitle( +public fun AlertDialog.setTitle( title: AString, -) = setTitle( +): Unit = setTitle( title(context), ) diff --git a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialogBuilder.kt b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialogBuilder.kt index 752b236..e69dd4b 100644 --- a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialogBuilder.kt +++ b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringAlertDialogBuilder.kt @@ -14,15 +14,14 @@ import xyz.tynn.astring.AString * * @see Builder.setNegativeButton */ -fun B.setNegativeButton( +public fun B.setNegativeButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setNegativeButton( text(context), listener, ) - return this } /** @@ -30,15 +29,14 @@ fun B.setNegativeButton( * * @see Builder.setNeutralButton */ -fun B.setNeutralButton( +public fun B.setNeutralButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setNeutralButton( text(context), listener, ) - return this } /** @@ -46,15 +44,14 @@ fun B.setNeutralButton( * * @see Builder.setPositiveButton */ -fun B.setPositiveButton( +public fun B.setPositiveButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setPositiveButton( text(context), listener, ) - return this } /** @@ -62,13 +59,12 @@ fun B.setPositiveButton( * * @see Builder.setMessage */ -fun B.setMessage( +public fun B.setMessage( message: AString, -): B { +): B = apply { setMessage( message(context), ) - return this } /** @@ -76,11 +72,10 @@ fun B.setMessage( * * @see Builder.setTitle */ -fun B.setTitle( +public fun B.setTitle( title: AString, -): B { +): B = apply { setTitle( title(context), ) - return this } diff --git a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringToolbar.kt b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringToolbar.kt index da5ffa9..c642d86 100644 --- a/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringToolbar.kt +++ b/extension/appcompat/src/main/kotlin/xyz/tynn/astring/appcompat/AStringToolbar.kt @@ -13,9 +13,9 @@ import xyz.tynn.astring.AString * @see Toolbar.setLogoDescription */ @Suppress("UsePropertyAccessSyntax") -fun Toolbar.setLogoDescription( +public fun Toolbar.setLogoDescription( description: AString, -) = setLogoDescription( +): Unit = setLogoDescription( description(context), ) @@ -23,9 +23,9 @@ fun Toolbar.setLogoDescription( * Sets a subtitle * @see Toolbar.setSubtitle */ -fun Toolbar.setSubtitle( +public fun Toolbar.setSubtitle( subtitle: AString, -) = setSubtitle( +): Unit = setSubtitle( subtitle(context), ) @@ -33,8 +33,8 @@ fun Toolbar.setSubtitle( * Sets a title * @see Toolbar.setTitle */ -fun Toolbar.setTitle( +public fun Toolbar.setTitle( title: AString, -) = setTitle( +): Unit = setTitle( title(context), ) diff --git a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogBuilderTest.java b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogBuilderTest.java index f8f0ff1..37d6f65 100644 --- a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogBuilderTest.java +++ b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogBuilderTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.appcompat; +import static org.junit.Assert.assertSame; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.content.DialogInterface.OnClickListener; import androidx.appcompat.app.AlertDialog; @@ -13,10 +17,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static org.junit.Assert.assertSame; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringAlertDialogBuilderTest { @MockK diff --git a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogTest.java b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogTest.java index b49f888..832dcb2 100644 --- a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogTest.java +++ b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringAlertDialogTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.appcompat; +import static android.content.DialogInterface.BUTTON_NEUTRAL; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.content.DialogInterface.OnClickListener; import android.os.Message; @@ -14,10 +18,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static android.content.DialogInterface.BUTTON_NEUTRAL; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringAlertDialogTest { @MockK diff --git a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringToolbarTest.java b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringToolbarTest.java index c695c13..6eb9f06 100644 --- a/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringToolbarTest.java +++ b/extension/appcompat/src/test/java/xyz/tynn/astring/appcompat/AStringToolbarTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.appcompat; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import androidx.appcompat.widget.Toolbar; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringToolbarTest { @MockK diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialog.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialog.kt index 2dadfcf..0f3307d 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialog.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialog.kt @@ -23,11 +23,11 @@ private annotation class DialogInterfaceButton * * @see AlertDialog.setButton */ -fun AlertDialog.setButton( +public fun AlertDialog.setButton( @DialogInterfaceButton whichButton: Int, text: AString, listener: OnClickListener?, -) = setButton( +): Unit = setButton( whichButton, text(context), listener, @@ -40,11 +40,11 @@ fun AlertDialog.setButton( * * @see AlertDialog.setButton */ -fun AlertDialog.setButton( +public fun AlertDialog.setButton( @DialogInterfaceButton whichButton: Int, text: AString, msg: Message?, -) = setButton( +): Unit = setButton( whichButton, text(context), msg, @@ -55,9 +55,9 @@ fun AlertDialog.setButton( * * @see AlertDialog.setMessage */ -fun AlertDialog.setMessage( +public fun AlertDialog.setMessage( message: AString, -) = setMessage( +): Unit = setMessage( message(context), ) @@ -66,8 +66,8 @@ fun AlertDialog.setMessage( * * @see AlertDialog.setTitle */ -fun AlertDialog.setTitle( +public fun AlertDialog.setTitle( title: AString, -) = setTitle( +): Unit = setTitle( title(context), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialogBuilder.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialogBuilder.kt index 3b56da9..a71e5c3 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialogBuilder.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringAlertDialogBuilder.kt @@ -14,15 +14,14 @@ import xyz.tynn.astring.AString * * @see Builder.setNegativeButton */ -fun B.setNegativeButton( +public fun B.setNegativeButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setNegativeButton( text(context), listener, ) - return this } /** @@ -30,15 +29,14 @@ fun B.setNegativeButton( * * @see Builder.setNeutralButton */ -fun B.setNeutralButton( +public fun B.setNeutralButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setNeutralButton( text(context), listener, ) - return this } /** @@ -46,15 +44,14 @@ fun B.setNeutralButton( * * @see Builder.setPositiveButton */ -fun B.setPositiveButton( +public fun B.setPositiveButton( text: AString, listener: OnClickListener?, -): B { +): B = apply { setPositiveButton( text(context), listener, ) - return this } /** @@ -62,13 +59,12 @@ fun B.setPositiveButton( * * @see Builder.setMessage */ -fun B.setMessage( +public fun B.setMessage( message: AString, -): B { +): B = apply { setMessage( message(context), ) - return this } /** @@ -76,11 +72,10 @@ fun B.setMessage( * * @see Builder.setTitle */ -fun B.setTitle( +public fun B.setTitle( title: AString, -): B { +): B = apply { setTitle( title(context), ) - return this } diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringSwitch.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringSwitch.kt index 931a35b..2eac287 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringSwitch.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringSwitch.kt @@ -12,9 +12,9 @@ import xyz.tynn.astring.AString * Sets the text displayed when the button is not in the checked state * @see Switch.setTextOff */ -fun Switch.setTextOff( +public fun Switch.setTextOff( textOff: AString, -) = setTextOff( +): Unit = setTextOff( textOff(context), ) @@ -22,8 +22,8 @@ fun Switch.setTextOff( * Sets the text displayed when the button is in the checked state * @see Switch.setTextOn */ -fun Switch.setTextOn( +public fun Switch.setTextOn( textOn: AString, -) = setTextOn( +): Unit = setTextOn( textOn(context), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextSwitcher.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextSwitcher.kt index 771a884..48d90d5 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextSwitcher.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextSwitcher.kt @@ -12,9 +12,9 @@ import xyz.tynn.astring.AString * Sets the text of the text view that is currently showing * @see TextSwitcher.setCurrentText */ -fun TextSwitcher.setCurrentText( +public fun TextSwitcher.setCurrentText( text: AString, -) = setCurrentText( +): Unit = setCurrentText( text(context), ) @@ -22,8 +22,8 @@ fun TextSwitcher.setCurrentText( * Sets the text of the next view and switches to the next view * @see TextSwitcher.setText */ -fun TextSwitcher.setText( +public fun TextSwitcher.setText( text: AString, -) = setText( +): Unit = setText( text(context), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextView.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextView.kt index 48901cf..668c5cd 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextView.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringTextView.kt @@ -13,9 +13,9 @@ import xyz.tynn.astring.AString * Appends the text to the display buffer * @see TextView.append */ -fun TextView.append( +public fun TextView.append( text: AString, -) = append( +): Unit = append( text(context), ) @@ -23,11 +23,11 @@ fun TextView.append( * Appends the text to the display buffer * @see TextView.append */ -fun TextView.append( +public fun TextView.append( text: AString, start: Int, end: Int, -) = append( +): Unit = append( text(context), start, end, @@ -37,9 +37,9 @@ fun TextView.append( * Sets the error message * @see TextView.setError */ -fun TextView.setError( +public fun TextView.setError( error: AString, -) = setError( +): Unit = setError( error(context), ) @@ -47,10 +47,10 @@ fun TextView.setError( * Sets the error message * @see TextView.setError */ -fun TextView.setError( +public fun TextView.setError( error: AString, icon: Drawable?, -) = setError( +): Unit = setError( error(context), icon, ) @@ -59,9 +59,9 @@ fun TextView.setError( * Sets the text to be displayed when the text of the TextView is empty * @see TextView.setHint */ -fun TextView.setHint( +public fun TextView.setHint( hint: AString, -) = setHint( +): Unit = setHint( hint(context), ) @@ -69,9 +69,9 @@ fun TextView.setHint( * Sets the text to be displayed * @see TextView.setText */ -fun TextView.setText( +public fun TextView.setText( text: AString, -) = setText( +): Unit = setText( text(context), ) @@ -79,10 +79,10 @@ fun TextView.setText( * Sets the text to be displayed * @see TextView.setText */ -fun TextView.setText( +public fun TextView.setText( text: AString, type: TextView.BufferType, -) = setText( +): Unit = setText( text(context), type, ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToast.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToast.kt index 257502b..2545d3e 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToast.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToast.kt @@ -25,7 +25,7 @@ private annotation class ToastDuration */ @SuppressLint("ShowToast") @JvmName("makeText") -fun makeToast( +public fun makeToast( context: Context, text: AString, @ToastDuration duration: Int, @@ -42,10 +42,10 @@ fun makeToast( * * @see Toast.setText */ -fun Toast.setText( +public fun Toast.setText( context: Context, text: AString, -) = setText( +): Unit = setText( text(requireNonNull(context)), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToggleButton.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToggleButton.kt index 92c3fe8..e7331cc 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToggleButton.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToggleButton.kt @@ -12,9 +12,9 @@ import xyz.tynn.astring.AString * Sets the text displayed when the button is not in the checked state * @see ToggleButton.setTextOff */ -fun ToggleButton.setTextOff( +public fun ToggleButton.setTextOff( textOff: AString, -) = setTextOff( +): Unit = setTextOff( textOff(context), ) @@ -22,8 +22,8 @@ fun ToggleButton.setTextOff( * Sets the text displayed when the button is in the checked state * @see ToggleButton.setTextOn */ -fun ToggleButton.setTextOn( +public fun ToggleButton.setTextOn( textOn: AString, -) = setTextOn( +): Unit = setTextOn( textOn(context), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToolbar.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToolbar.kt index 2e4b197..cc7ac31 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToolbar.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringToolbar.kt @@ -16,9 +16,9 @@ import xyz.tynn.astring.AString */ @RequiresApi(LOLLIPOP) @Suppress("UsePropertyAccessSyntax") -fun Toolbar.setLogoDescription( +public fun Toolbar.setLogoDescription( description: AString, -) = setLogoDescription( +): Unit = setLogoDescription( description(context), ) @@ -27,9 +27,9 @@ fun Toolbar.setLogoDescription( * @see Toolbar.setSubtitle */ @RequiresApi(LOLLIPOP) -fun Toolbar.setSubtitle( +public fun Toolbar.setSubtitle( subtitle: AString, -) = setSubtitle( +): Unit = setSubtitle( subtitle(context), ) @@ -38,8 +38,8 @@ fun Toolbar.setSubtitle( * @see Toolbar.setTitle */ @RequiresApi(LOLLIPOP) -fun Toolbar.setTitle( +public fun Toolbar.setTitle( title: AString, -) = setTitle( +): Unit = setTitle( title(context), ) diff --git a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringView.kt b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringView.kt index 4470976..99d6942 100644 --- a/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringView.kt +++ b/extension/core/src/main/kotlin/xyz/tynn/astring/core/AStringView.kt @@ -15,9 +15,9 @@ import androidx.core.view.ViewCompat.setStateDescription as setStateDescriptionC * Sets the accessibility pane title * @see View.setAccessibilityPaneTitle */ -fun View.setAccessibilityPaneTitle( +public fun View.setAccessibilityPaneTitle( accessibilityPaneTitle: AString, -) = setAccessibilityPaneTitle( +): Unit = setAccessibilityPaneTitle( this, accessibilityPaneTitle(context), ) @@ -26,9 +26,9 @@ fun View.setAccessibilityPaneTitle( * Sets the content description * @see View.setContentDescription */ -fun View.setContentDescription( +public fun View.setContentDescription( contentDescription: AString, -) = setContentDescription( +): Unit = setContentDescription( contentDescription(context), ) @@ -36,9 +36,9 @@ fun View.setContentDescription( * Sets the state description * @see View.setStateDescription */ -fun View.setStateDescription( +public fun View.setStateDescription( stateDescription: AString, -) = setStateDescriptionCompat( +): Unit = setStateDescriptionCompat( this, stateDescription(context), ) @@ -47,9 +47,9 @@ fun View.setStateDescription( * Sets the tooltip for the view * @see View.setTooltipText */ -fun View.setTooltipText( +public fun View.setTooltipText( tooltipText: AString, -) = setTooltipText( +): Unit = setTooltipText( this, tooltipText(context), ) diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogBuilderTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogBuilderTest.java index cf6068c..5bd8d54 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogBuilderTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogBuilderTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.core; +import static org.junit.Assert.assertSame; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.app.AlertDialog; import android.content.DialogInterface.OnClickListener; @@ -12,10 +16,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static org.junit.Assert.assertSame; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringAlertDialogBuilderTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogTest.java index ad4d577..41cbee5 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringAlertDialogTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.core; +import static android.content.DialogInterface.BUTTON_NEUTRAL; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.app.AlertDialog; import android.content.DialogInterface.OnClickListener; import android.os.Message; @@ -13,10 +17,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static android.content.DialogInterface.BUTTON_NEUTRAL; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringAlertDialogTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringSwitchTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringSwitchTest.java index 0cc7900..adad0d0 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringSwitchTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringSwitchTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.core; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.widget.Switch; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringSwitchTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextSwitcherTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextSwitcherTest.java index 1d7664c..d1f50f9 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextSwitcherTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextSwitcherTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.core; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.widget.TextSwitcher; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringTextSwitcherTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextViewTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextViewTest.java index e89bd21..1e3f5b5 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextViewTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringTextViewTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.core; +import static android.widget.TextView.BufferType.SPANNABLE; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.widget.TextView; @@ -13,10 +17,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static android.widget.TextView.BufferType.SPANNABLE; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringTextViewTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToastTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToastTest.java index f6aeb92..db63352 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToastTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToastTest.java @@ -3,6 +3,14 @@ package xyz.tynn.astring.core; +import static android.widget.Toast.LENGTH_LONG; +import static org.junit.Assert.assertEquals; +import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.prepare; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; +import static xyz.tynn.astring.testing.mockk.MockkCoreKt.mockkToastMakeText; + import android.content.Context; import android.widget.Toast; @@ -13,14 +21,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static android.widget.Toast.LENGTH_LONG; -import static org.junit.Assert.assertEquals; -import static xyz.tynn.astring.core.MockkDefinitionsKt.mockkToastMakeText; -import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.prepare; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringToastTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToggleButtonTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToggleButtonTest.java index c1a1147..7deed8d 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToggleButtonTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToggleButtonTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.core; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.widget.ToggleButton; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringToggleButtonTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToolbarTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToolbarTest.java index 5886a2e..b666804 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringToolbarTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringToolbarTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.core; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.widget.Toolbar; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringToolbarTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/AStringViewTest.java b/extension/core/src/test/java/xyz/tynn/astring/core/AStringViewTest.java index c528bc0..2be726a 100644 --- a/extension/core/src/test/java/xyz/tynn/astring/core/AStringViewTest.java +++ b/extension/core/src/test/java/xyz/tynn/astring/core/AStringViewTest.java @@ -3,6 +3,14 @@ package xyz.tynn.astring.core; +import static androidx.core.view.ViewCompat.setAccessibilityPaneTitle; +import static androidx.core.view.ViewCompat.setStateDescription; +import static androidx.core.view.ViewCompat.setTooltipText; +import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.prepare; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.view.View; import androidx.core.view.ViewCompat; @@ -14,14 +22,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static androidx.core.view.ViewCompat.setAccessibilityPaneTitle; -import static androidx.core.view.ViewCompat.setStateDescription; -import static androidx.core.view.ViewCompat.setTooltipText; -import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.prepare; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringViewTest { @MockK diff --git a/extension/core/src/test/java/xyz/tynn/astring/core/MockkDefinitions.kt b/extension/core/src/test/java/xyz/tynn/astring/core/MockkDefinitions.kt deleted file mode 100644 index 469e056..0000000 --- a/extension/core/src/test/java/xyz/tynn/astring/core/MockkDefinitions.kt +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2021 Christian Schmitz -// SPDX-License-Identifier: Apache-2.0 - -package xyz.tynn.astring.core - -import android.widget.Toast -import io.mockk.every - -fun mockkToastMakeText( - toast: Toast, -) = every { - Toast.makeText(any(), any(), any()) -} returns toast diff --git a/extension/core/src/test/java/xyz/tynn/astring/testing/mockk/MockkCore.kt b/extension/core/src/test/java/xyz/tynn/astring/testing/mockk/MockkCore.kt new file mode 100644 index 0000000..f32aba0 --- /dev/null +++ b/extension/core/src/test/java/xyz/tynn/astring/testing/mockk/MockkCore.kt @@ -0,0 +1,14 @@ +// Copyright 2021 Christian Schmitz +// SPDX-License-Identifier: Apache-2.0 + +package xyz.tynn.astring.testing.mockk + +import android.widget.Toast +import android.widget.Toast.makeText +import io.mockk.every + +public fun mockkToastMakeText( + toast: Toast, +): Any = every { + makeText(any(), any(), any()) +} returns toast diff --git a/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringSnackbar.kt b/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringSnackbar.kt index 3015cb9..e54bf69 100644 --- a/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringSnackbar.kt +++ b/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringSnackbar.kt @@ -20,25 +20,25 @@ import xyz.tynn.astring.AString * @see Snackbar.make */ @JvmName("make") -fun makeSnackbar( +public fun makeSnackbar( view: View, text: AString, @Duration duration: Int, -): Snackbar { - var textValue = text(view.context) - if (textValue == null) textValue = "" - return make(view, textValue, duration) -} +): Snackbar = make( + view, + text(view.context) ?: "", + duration, +) /** * Sets the action to be displayed in this [Snackbar] * * @see Snackbar.setAction */ -fun Snackbar.setAction( +public fun Snackbar.setAction( text: AString, listener: OnClickListener?, -) = setAction( +): Snackbar = setAction( text(context), listener, ) @@ -50,10 +50,8 @@ fun Snackbar.setAction( * * @see Snackbar.setText */ -fun Snackbar.setText( +public fun Snackbar.setText( text: AString, -): Snackbar { - var textValue = text(context) - if (textValue == null) textValue = "" - return setText(textValue) -} +): Snackbar = setText( + text(context) ?: "", +) diff --git a/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringTextInputLayout.kt b/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringTextInputLayout.kt index 839c002..8ac950c 100644 --- a/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringTextInputLayout.kt +++ b/extension/material/src/main/kotlin/xyz/tynn/astring/material/AStringTextInputLayout.kt @@ -12,9 +12,9 @@ import xyz.tynn.astring.AString * Sets a content description for the end icon * @see TextInputLayout.setEndIconContentDescription */ -fun TextInputLayout.setEndIconContentDescription( +public fun TextInputLayout.setEndIconContentDescription( endIconContentDescription: AString, -) = setEndIconContentDescription( +): Unit = setEndIconContentDescription( endIconContentDescription(context), ) @@ -22,9 +22,9 @@ fun TextInputLayout.setEndIconContentDescription( * Sets a content description for the error message * @see TextInputLayout.setErrorContentDescription */ -fun TextInputLayout.setErrorContentDescription( +public fun TextInputLayout.setErrorContentDescription( errorContentDescription: AString, -) = setErrorContentDescription( +): Unit = setErrorContentDescription( errorContentDescription(context), ) @@ -32,9 +32,9 @@ fun TextInputLayout.setErrorContentDescription( * Sets an error message * @see TextInputLayout.setError */ -fun TextInputLayout.setError( +public fun TextInputLayout.setError( error: AString, -) = setError( +): Unit = setError( error(context), ) @@ -42,9 +42,9 @@ fun TextInputLayout.setError( * Sets a helper message * @see TextInputLayout.setHelperText */ -fun TextInputLayout.setHelperText( +public fun TextInputLayout.setHelperText( helperText: AString, -) = setHelperText( +): Unit = setHelperText( helperText(context), ) @@ -52,9 +52,9 @@ fun TextInputLayout.setHelperText( * Sets a hint * @see TextInputLayout.setHint */ -fun TextInputLayout.setHint( +public fun TextInputLayout.setHint( hint: AString, -) = setHint( +): Unit = setHint( hint(context), ) @@ -62,9 +62,9 @@ fun TextInputLayout.setHint( * Sets a placeholder text * @see TextInputLayout.setPlaceholderText */ -fun TextInputLayout.setPlaceholderText( +public fun TextInputLayout.setPlaceholderText( placeholderText: AString, -) = setPlaceholderText( +): Unit = setPlaceholderText( placeholderText(context), ) @@ -72,9 +72,9 @@ fun TextInputLayout.setPlaceholderText( * Sets a prefix text * @see TextInputLayout.setPrefixText */ -fun TextInputLayout.setPrefixText( +public fun TextInputLayout.setPrefixText( prefixText: AString, -) = setPrefixText( +): Unit = setPrefixText( prefixText(context), ) @@ -82,9 +82,9 @@ fun TextInputLayout.setPrefixText( * Sets a content description for the start icon * @see TextInputLayout.setStartIconContentDescription */ -fun TextInputLayout.setStartIconContentDescription( +public fun TextInputLayout.setStartIconContentDescription( startIconContentDescription: AString, -) = setStartIconContentDescription( +): Unit = setStartIconContentDescription( startIconContentDescription(context), ) @@ -92,8 +92,8 @@ fun TextInputLayout.setStartIconContentDescription( * Sets the suffix text * @see TextInputLayout.setSuffixText */ -fun TextInputLayout.setSuffixText( +public fun TextInputLayout.setSuffixText( suffixText: AString, -) = setSuffixText( +): Unit = setSuffixText( suffixText(context), ) diff --git a/extension/material/src/test/java/xyz/tynn/astring/material/AStringMaterialAlertDialogBuilderTest.java b/extension/material/src/test/java/xyz/tynn/astring/material/AStringMaterialAlertDialogBuilderTest.java index dc08b27..765bb0b 100644 --- a/extension/material/src/test/java/xyz/tynn/astring/material/AStringMaterialAlertDialogBuilderTest.java +++ b/extension/material/src/test/java/xyz/tynn/astring/material/AStringMaterialAlertDialogBuilderTest.java @@ -3,6 +3,10 @@ package xyz.tynn.astring.material; +import static org.junit.Assert.assertSame; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import android.content.DialogInterface.OnClickListener; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -14,10 +18,6 @@ import xyz.tynn.astring.AString; import xyz.tynn.astring.appcompat.AStringAlertDialogBuilder; -import static org.junit.Assert.assertSame; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringMaterialAlertDialogBuilderTest { @MockK diff --git a/extension/material/src/test/java/xyz/tynn/astring/material/AStringSnackbarTest.java b/extension/material/src/test/java/xyz/tynn/astring/material/AStringSnackbarTest.java index dc15631..abdf336 100644 --- a/extension/material/src/test/java/xyz/tynn/astring/material/AStringSnackbarTest.java +++ b/extension/material/src/test/java/xyz/tynn/astring/material/AStringSnackbarTest.java @@ -3,6 +3,16 @@ package xyz.tynn.astring.material; +import static com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG; +import static org.junit.Assert.assertSame; +import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.prepare; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; +import static xyz.tynn.astring.testing.mockk.MockkMaterialKt.mockkAStringInvoke; +import static xyz.tynn.astring.testing.mockk.MockkMaterialKt.mockkGetMainLooper; +import static xyz.tynn.astring.testing.mockk.MockkMaterialKt.mockkSnackbarMake; + import android.os.Looper; import android.view.View; import android.view.View.OnClickListener; @@ -16,16 +26,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG; -import static org.junit.Assert.assertSame; -import static xyz.tynn.astring.material.MockkDefinitionsKt.mockkAStringInvoke; -import static xyz.tynn.astring.material.MockkDefinitionsKt.mockkGetMainLooper; -import static xyz.tynn.astring.material.MockkDefinitionsKt.mockkSnackbarMake; -import static xyz.tynn.astring.testing.mockk.MockKt.clearAll; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.prepare; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringSnackbarTest { @MockK diff --git a/extension/material/src/test/java/xyz/tynn/astring/material/AStringTextInputLayoutTest.java b/extension/material/src/test/java/xyz/tynn/astring/material/AStringTextInputLayoutTest.java index eb2dc10..6f40090 100644 --- a/extension/material/src/test/java/xyz/tynn/astring/material/AStringTextInputLayoutTest.java +++ b/extension/material/src/test/java/xyz/tynn/astring/material/AStringTextInputLayoutTest.java @@ -3,6 +3,9 @@ package xyz.tynn.astring.material; +import static xyz.tynn.astring.testing.mockk.MockKt.init; +import static xyz.tynn.astring.testing.mockk.MockKt.verify; + import com.google.android.material.textfield.TextInputLayout; import org.junit.Before; @@ -11,9 +14,6 @@ import io.mockk.impl.annotations.MockK; import xyz.tynn.astring.AString; -import static xyz.tynn.astring.testing.mockk.MockKt.init; -import static xyz.tynn.astring.testing.mockk.MockKt.verify; - public class AStringTextInputLayoutTest { @MockK diff --git a/extension/material/src/test/java/xyz/tynn/astring/material/MockkDefinitions.kt b/extension/material/src/test/java/xyz/tynn/astring/testing/mockk/MockkMaterial.kt similarity index 50% rename from extension/material/src/test/java/xyz/tynn/astring/material/MockkDefinitions.kt rename to extension/material/src/test/java/xyz/tynn/astring/testing/mockk/MockkMaterial.kt index 3d9796c..9e1c388 100644 --- a/extension/material/src/test/java/xyz/tynn/astring/material/MockkDefinitions.kt +++ b/extension/material/src/test/java/xyz/tynn/astring/testing/mockk/MockkMaterial.kt @@ -1,27 +1,28 @@ // Copyright 2021 Christian Schmitz // SPDX-License-Identifier: Apache-2.0 -package xyz.tynn.astring.material +package xyz.tynn.astring.testing.mockk -import android.os.Looper +import android.os.Looper.getMainLooper import com.google.android.material.snackbar.Snackbar +import com.google.android.material.snackbar.Snackbar.make import io.mockk.every import io.mockk.mockk import xyz.tynn.astring.AString -fun mockkGetMainLooper() = every { - Looper.getMainLooper() +public fun mockkGetMainLooper(): Any = every { + getMainLooper() } returns mockk() -fun mockkSnackbarMake( +public fun mockkSnackbarMake( snackbar: Snackbar, -) = every { - Snackbar.make(any(), any(), any()) +): Any = every { + make(any(), any(), any()) } returns snackbar -fun mockkAStringInvoke( +public fun mockkAStringInvoke( string: AString, value: CharSequence?, -) = every { +): Any = every { string(any()) } returns value diff --git a/library.gradle b/library.gradle new file mode 100644 index 0000000..74dd847 --- /dev/null +++ b/library.gradle @@ -0,0 +1,28 @@ +android { + libraryVariants.all { + it.generateBuildConfigProvider.configure { + enabled = false + } + } +} + +pluginManager.withPlugin('org.jetbrains.kotlin.android') { + android { + kotlinOptions { + freeCompilerArgs += [ + '-Xno-call-assertions', + '-Xno-param-assertions', + '-Xno-receiver-assertions', + '-Xexplicit-api=strict', + ] + } + } +} + +tasks.withType(GenerateModuleMetadata).configureEach { + enabled = false +} + +dependencies { + compileOnly 'org.jetbrains.kotlin:kotlin-stdlib' +}