title: How to use hilt instead of using factory to init the argument in viewModel
body: <p>Now I using the viewModelFactory to init the argument for viewModel in fragment.</p>
  <pre><code>class MyFragment : Fragment() {
      override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                                savedInstanceState: Bundle?): View? {
          val binding = FragmentMyBinding.inflate(inflater)
          binding.lifecycleOwner = this
          val argument = MyFragmentArgs.fromBundle(requireArgument()).myArgument
          val viewModelFactory = MyViewModelFactory(myArgument, application)
          binding.viewModel = ViewModelProvider(
                  this, viewModelFactory).get(MyViewModel::class.java)
          return binding.root
      }
  }
  
  class MyViewModelFactory(
          private val myArgument: MyArgument,
          private val application: Application) : ViewModelProvider.Factory {
      @Suppress(&quot;unchecked_cast&quot;)
      override fun &lt;T : ViewModel?&gt; create(modelClass: Class&lt;T&gt;): T {
          if (modelClass.isAssignableFrom(MyViewModel::class.java)) {
              return MyViewModel(myArgument, application) as T
          }
          throw IllegalArgumentException(&quot;Unknown ViewModel class&quot;)
      }
  }
  </code></pre>
  <p>Compare to the hilt dependency inject way, is there a way to pass argument to viewModel directly?</p>