android / socialite

Apache License 2.0
346 stars 60 forks source link

Can you tell me why Application Context is used in ViewModel? #19

Open easyhooon opened 7 months ago

easyhooon commented 7 months ago

https://github.com/android/socialite/blob/main/app/src/main/java/com/google/android/samples/socialite/ui/camera/CameraViewModel.kt https://github.com/android/socialite/blob/main/app/src/main/java/com/google/android/samples/socialite/ui/videoedit/VideoEditScreenViewModel.kt

I'm curious about the reason for directly handling Toast message events in the ViewModel by injecting the Application Context, especially since it's possible to handle these events in the view using Channel, SharedFlow, or StateFlow.(Using a method of emitting and collecting to events)

As this approach is used in the official Android sample repository, does it imply that injecting the Application Context into the ViewModel and handling context-required operations directly within the ViewModel is more recommended than the previously mentioned three methods?

hoc081098 commented 7 months ago

I have the same think. Toast should be showed in the View side

donovanfm commented 7 months ago

Hi, thanks for taking a look at our sample! I will update the ViewModels to move away from passing in the Context. Great catch!