-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can you tell me why Application Context is used in ViewModel? #19
Comments
I have the same think. |
Hi, thanks for taking a look at our sample! I will update the ViewModels to move away from passing in the Context. Great catch! |
@easyhooon why are you closing this? |
@Jaehwa-Noh I came back after a while to check if it was resolved, and when I looked at the code, I thought the issue was fixed since it seemed the Toast calling method had been changed to not inject the Application Context into the viewModel. If it's still not resolved, I'll keep it open! I see that it's still not resolved for the VideoEditScreenViewModel |
I beriefly check it and can't find toast logic, but it still passed application context into ViewModel. |
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?
The text was updated successfully, but these errors were encountered: