Skip to content

Releases: skydoves/WhatIf

1.2.1

22 Oct 03:23
Compare
Choose a tag to compare

Full Changelog: 1.2.0...1.2.1

1.2.0

15 Oct 13:55
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.1.4...1.2.0

1.1.4

08 Oct 08:17
88d74b9
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.1.3...1.1.4

1.1.3

16 Jul 06:34
7cc2684
Compare
Choose a tag to compare

What's Changed

  • Update Kotlin to 1.8.22, AGO to 7.4.2, Coroutines, and other dependencies by @skydoves in #15

Full Changelog: 1.1.2...1.1.3

1.1.2

25 Jan 12:53
e02a22d
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.1.1...1.1.2

1.1.1

27 Nov 05:42
2aab1c4
Compare
Choose a tag to compare

What's Changed

Introduce

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: 1.1.0...1.1.1

1.1.0

07 Apr 10:40
a5dead1
Compare
Choose a tag to compare

🎉 Released a new version 1.1.0! 🎉

What's New?

  • Added new function whatIfFindFragment for FragmentActivity.
    An expression for invoking [whatIf] when the [FragmentActivity] has an attached fragment [T].
.whatIfFindFragment<MainTestFragment>(fragment_id) {
  // do something
}
whatIfFindFragment<MainTestFragment>(MainTestFragment.TAG) { 
  // do something
}
  • Added new function whatIfFindParentInterface for finding a parent interface for Fragment.
  • Added new function whatIfHasDeepLinkUri for invoking whatIf when the Activity's intent deep link URI is not null and not empty.
  • Changed WhatIfInlineOnly to internal.

1.0.9

04 Dec 15:46
92ec158
Compare
Choose a tag to compare

🎉 Released a new version 1.0.9! 🎉

What's New?

  • Added WhatIfMap and deprecated whatIfLet.
    The basic concept is the same as whatIf. An expression for invoking whatIf when the target object is not null.
    It is useful when the receiver and the result should be different.
val length = nullableString.whatIfMap(
  whatIf = { it.length },
  whatIfNot = {
    log("$it, nullableString is null.")
    -1
  }
)
  • Added WhatIfAnd and WhatIfOr expressions for the nullable-Boolean iterables.
  • Added some expressions for collections.
    We can use default value instead of the 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.

  • whatIfNotNullOrEmpty: An expression for invoking whatIf when the List is not null and not empty.
  • addWhatIfNotNull: An expression for adding an element and invoking whatIf when the element is not null.
  • addAllWhatIfNotNull: An expression for adding an element and invoking whatIf when the element is not null.
  • removeWhatIfNotNull: An expression for removing an element and invoking whatIf when the element is not null.
  • removeAllWhatIfNotNull: An expression for removing a collection of element and invoking whatIf when the element is not null.

1.0.8

21 Nov 07:34
58beec3
Compare
Choose a tag to compare

🎉 Released a new version 1.0.8! 🎉

What's New?

  • Update whatIfHasSerializableExtra using whatIfNotNullAs. (e3bafdc)
  • Added return types to the whatIf expressions. (1c89e35)
  • Removed generating the buildConfig from whatif-android module
  • Added paramter documentations to the extensions.
  • Updated kotlin 1.4.20 internally.

1.0.7

26 Oct 15:54
e195da9
Compare
Choose a tag to compare

🎉 Released a new version 1.0.7! 🎉

What's New?

  • Added whatIfHasStringExtra, whatIfHasParcelableExtra, whatIfHasSerializableExtra functions in the whatIf-android module.
  • Updated gradle build tool version and gradle wrapper version internally.
  • Hide kotlin lambda functionalities in Java APIs.
  • Updated kotlin version to 1.4.10 stable.
  • removed unused dependencies internally.