Yes, we can do that, EASILY!
By using: DI (Hilt) | FUN, right?
Let's check the snapshot::
We have an abstract class "ActivityAdapter" that takes "Context" as a parameter and contain an Single API "
getCoroutineScope()" to get the Activity's LifecycleScope (Force Casting) as a callback.
We are receiving the "Context" in the "TestAdapter" with the help of "DI, THE SAVIOUR" :D and adapter is extended from "ActivityAdapter". Now we can access the LifecycleScope of foreground activity's in the Adapter or ViewHolder in runtime.
Third (Final Step),
Register the "TestAdapter" in the any module which is bound to Activity lifecyle or annotated with "@InstallIn(ActivityComponent::class)". This module make sure that "TestAdapter" receive the foreground activity context as a parameter when client "@Inject" "TestAdapter" in an Activity or a Fragment.