title: Sharing a cold flow of MutableStateFlow in ViewModel between two fragments
body: <p>I've got a problem with a MutableStateFlow property shared between two fragments.</p>
  <p>To make it understandable:</p>
  <p>I have a <code>BasicViewModel</code> which should be always one instance for both of the fragments because of the nav graph implementation</p>
  <pre><code>private val basicViewModel: basicViewModel by navGraphViewModels(R.id.basic_graph) { defaultViewModelProviderFactory }
  </code></pre>
  <p>This ViewModel have a <code>MutableStateFlow</code> property declared like this</p>
  <pre><code>    private val _basicProperty = MutableStateFlow&lt;BasicClass?&gt;(null)
      val basicProperty : Flow&lt;BasicClass?&gt; = _basicId
          .filterNotNull()
          .flatMapConcat { someRepository.getBasicProperty(it) }
          .onEach { _basicProperty.value = it }
          .catch {  }
  </code></pre>
  <p>Then, I have <code>FragmentA</code> and <code>FragmentB</code> declared in navigation using nav graphs which calls the property similarly, like this</p>
  <pre><code>        basicViewModel.basicProperty
          .filterNotNull()
          .mapNotNull { it.innerProperty}
          .onEach { doSomething(it) }
          .launchIn(viewLifecycleOwner.lifecycleScope)
  </code></pre>
  <p>It all looks fine, but when I navigate to <code>FragmentA</code> the flow of BasicProperty loads (data loads from WebApi) then, I navigate to <code>FragmentB</code> <strong>and the flow loads again instead of calling already loaded data</strong> which in App it looks kinda lagging because of the <strong>reload</strong></p>
  <p>Question: What should I do/change to get the already existing data from <code>BasicViewModel</code> in <code>FragmentB</code>?</p>