Since I updated my project to SDK version 27 and gradle plugins for the support library to version 27.0.0
I needed to change my code.
With 26.1.0
I can just use getContext()
(with Kotlin context
) in my Fragment
(android.support.v4.app
) and I have no nullability issues, but since I use Kotlin I have a problem with version 27.0.0
, all my context
calls did not work anymore, I needed a safety operator, like context!!
, but since I personally find it to be a hustle to do that every time I just made myself I workaround function
override fun getContext() = super.getContext()!!
Another thing that change (suddenly and that is why I am asking) are the methods onCreateView()
and onViewCreated()
. In onCreateView
the inflater is not possibly null anymore, so I needed to change my function signature to properly override from onCreateView(inflater: LayoutInflater?...)
to onCreateView(inflater: LayoutInflater...)
and the same for the createdView
parameter in onViewCreated
.
So now I was wondering why, especially the (for Kotlin) very ugly getContext()
change was made and headed over to https://developer.android.com/sdk/support_api_diff/27.0.0/changes.html.
But wait, apparently they did not change it? So now my question is if I am doing something wrong or if they really changed it and if so I might ask them why?
By the way, same applies for getActivity()
, I think the mHost == null
check was added and the getActivity
method is even final, so I cannot use my workaround there, which makes it very very ugly. Actually in the source files the methods look like the same, but 26.1.0
has Kotlin return type Context!
and 27.0.0
return type Context?
.