☔ Fluent syntactic sugar of Kotlin for handling single if-else statements, nullable, collections, and booleans.
APACHE-2.0 License
Bot releases are hidden (Show)
Full Changelog: https://github.com/skydoves/WhatIf/compare/1.1.3...1.1.4
Published by skydoves over 1 year ago
Full Changelog: https://github.com/skydoves/WhatIf/compare/1.1.2...1.1.3
Published by skydoves over 1 year ago
Full Changelog: https://github.com/skydoves/WhatIf/compare/1.1.1...1.1.2
Published by skydoves almost 3 years ago
whatif
relevant functions use Contracts internally by @skydoves in https://github.com/skydoves/WhatIf/pull/11
Since 1.1.1
, every whatIf
relevant functions use the Contracts as AT_MOST_ONCE
internally.
It improving the variable initialization analysis in the presence of high-order functions:
val string: String
nullableString.whatIfNotNull {
string = it
// do something //
}
Full Changelog: https://github.com/skydoves/WhatIf/compare/1.1.0...1.1.1
Published by skydoves over 3 years ago
🎉 Released a new version 1.1.0
! 🎉
whatIfFindFragment
for FragmentActivity
..whatIfFindFragment<MainTestFragment>(fragment_id) {
// do something
}
whatIfFindFragment<MainTestFragment>(MainTestFragment.TAG) {
// do something
}
whatIfFindParentInterface
for finding a parent interface for Fragment
.whatIfHasDeepLinkUri
for invoking whatIf
when the Activity
's intent deep link URI is not null and not empty.WhatIfInlineOnly
to internal.Published by skydoves almost 4 years ago
🎉 Released a new version 1.0.9
! 🎉
WhatIfMap
and deprecated whatIfLet
.whatIf
. An expression for invoking whatIf
when the target object is not null.val length = nullableString.whatIfMap(
whatIf = { it.length },
whatIfNot = {
log("$it, nullableString is null.")
-1
}
)
WhatIfAnd
and WhatIfOr
expressions for the nullable-Boolean iterables.whatIfNot
and can be omitted the whatIfNot
.val length = nullableString.whatIfMap(
default = -1
) {
log("$it, length can not over than 5.")
5
}
We can use some expressions for List, Map, and Set.
whatIf
when the List
is not null and not empty.whatIf
when the element is not null.whatIf
when the element is not null.whatIf
when the element is not null.whatIf
when the element is not null.Published by skydoves almost 4 years ago
🎉 Released a new version 1.0.8
! 🎉
whatIfHasSerializableExtra
using whatIfNotNullAs
. (e3bafdc)Published by skydoves almost 4 years ago
🎉 Released a new version 1.0.7
! 🎉
whatIfHasStringExtra
, whatIfHasParcelableExtra
, whatIfHasSerializableExtra
functions in the whatIf-android
module.Published by skydoves about 4 years ago
🎉 Released a new version 1.0.6
! 🎉
whatIf
and whatIf-android
.whatIf
module can be used in the kotlin project (non-Android project).whatIf-android
module is related to Android extensions.Published by skydoves about 4 years ago
🎉 Released a new version 1.0.5
! 🎉
nullableBoolean.whatIfElse {
log("nullableBoolean is not null and false")
}
nullableBoolean.whatIfAnd(predicate) {
log("nullableBoolean is true and the predicate is also true")
}
nullableBoolean.whatIfOr(predicate) {
log("nullableBoolean is true or the predicate is true")
}
class WhatIfFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
whatIfNotNullContext {
Toast.makeText(it, "context is not null!", Toast.LENGTH_SHORT).show()
}
}
}
An expression for invoking whatIf when the Fragment.getArguments is not null.
whatIfNotNullArguments {
it.getString("name").whatIfNotNull {
log("my name is $it")
}
}
whatIfNotNullActivity { activity ->
activity.supportFragmentManager.addOnBackStackChangedListener {
// .. //
}
}
Published by skydoves about 5 years ago
Released version 1.0.4
.
An expression for invoking whatIf lambda when the Activity's intent extras is not null and not empty.
var foo: String? = null
[email protected] {
foo = "${it.getString("foo")}"
}
And we can handle the null case.
[email protected](
whatIf = { foo = "${it.getString("foo")}" },
whatIfNot = { log("intent extras is null or empty.") }
)
Published by skydoves about 5 years ago
Released version 1.0.3
.
Implemented whatIfNotNullOrEmpty
for string type.
We can execute a single lambda if the string is not null and not empty.
val nullableString: String? = "NotNullOrEmpty"
nullableString.whatIfNotNullOrEmpty {
log("$it is not null and not empty")
}
Or we can handle the null or empty case.
nullableString.whatIfNotNullOrEmpty(
whatIf = { nullableString = it },
whatIfNot = { nullableString = "NullOrEmpty" }
)
Published by skydoves about 5 years ago
Version 1.0.2
is released.
Changed whatIfNotNullOrEmpty
collections separated toList
and Set
.
In whatIfNotNullOrEmpty
, whatIf lambda will receive not-null type collection type.
Implemented whatIfNotNullAs
.
If the target is not null, the receiver will get a casted type.
var nullableIntList: MutableList<Int>? = null
nullableIntList.whatIfNotNullAs<List<Int>> {
nullableInt = it.size
}
Published by skydoves about 5 years ago
Version 1.0.1 is released.
Implemented below functionality extensions.
whatIfNotNullOrEmpty
for array type and collections.Array type : Array, ByteArray, ShortArray, IntArray, LongArray, FloatArray, DoubleArray, BooleanArray, CharArray
Collections: List, Map, Set
Published by skydoves about 5 years ago
🎉🎉Published first version 1.0.0
.🎉🎉