-
Notifications
You must be signed in to change notification settings - Fork 562
Add the ability to get the parent Activity of a View #593
base: master
Are you sure you want to change the base?
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here (e.g. What to do if you already signed the CLAIndividual signers
Corporate signers
|
I signed it! |
CLAs look good, thanks! |
Need #582 to be merged otherwise CI won't pass |
Why do you need this? Accessing the activity from a view is a generally discouraged pattern as it creates a bad coupling that prevents reuse. |
@JakeWharton Most of the time, I use it in BindingAdapters in order to put the Observer process out of the Activity to avoid boilerplate code in Activity which is often the same. For example: /**
* Sets a mutable visibility to the View. When the value of the LiveData changes, the visibility of
* the View will change as well.
* @param view the View to which to set the mutableVisibility
* @param visibility the visibility LiveData the View should observe
*/
@BindingAdapter("mutableVisibility")
fun setMutableVisibility(view: View, visibility: MutableLiveData<Int>?) {
val parentActivity: AppCompatActivity? = view.getParentActivity()
if(parentActivity != null && visibility != null) {
visibility.observe(parentActivity, Observer { value -> view.visibility = value?: View.VISIBLE})
}
} Then all you have to do is to set |
b371ca8
to
adea039
Compare
Rebased on #582 as it has been merged to let CI pass |
Does someone understand the error of instrumented tests and how to solve it? |
Adding the ability to get the parent Activity of a View.