Не отображается список при первом пуске приложения

Возникла такая ситуация: цель - запись в БД (room) данных каждые 15 минут через WorkManager. Список RecyclerView заполняется данными из БД. При первом пуске приложения список остается пустым, хотя данные попадают в БД. Если, перезапустить приложение или эмулятор - то данные отображаются в списке. В чем может быть проблема?

class UploadMovieWorker(private val context: Context, workerParameters: WorkerParameters) :
CoroutineWorker(context, workerParameters) {

@Suppress("EXPERIMENTAL_API_USAGE")
override suspend fun doWork(): Result = withContext(Dispatchers.IO)
{
    Log.d("uploadWork", "It is working")
   return@withContext  runCatching {
        val repository = MovieRepo(context = applicationContext)
        repository.addNewAndGetUpdated()
        repository.allMovies.asLiveData().value
        //val movieDao = MovieDataBase.create(applicationContext).moviesDao
        //  movieDao.getAllMovies()
        Log.d("work", "doWork: Success function called")
        val dateNow = Calendar.getInstance().time
        println("Work Manager works! $dateNow")
        Toast.makeText(context, "Filmed", Toast.LENGTH_LONG).show()
        Result.success()
    }.getOrElse { Result.failure() }
}

}

Fragment:

class FragmentMoviesList : Fragment() {
private val workRepository = WorkRepository()
private var _binding: FragmentMoviesListBinding? = null
private val binding get() = _binding!!

@ExperimentalSerializationApi
private val viewModel: MovieViewModel by viewModels { MovieViewModelFactory((requireActivity() as MainActivity).repository) }
private var movieListRecycler: RecyclerView? = null
private lateinit var adapter: MovieListAdapter
override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View {
    _binding = FragmentMoviesListBinding.inflate(inflater, container, false)
    val view = binding.root
    return view
}

override fun onDestroy() {
    movieListRecycler = null
    // scope.cancel()
    super.onDestroy()
}


@SuppressLint("NotifyDataSetChanged")
@ExperimentalSerializationApi
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    movieListRecycler = binding.listRecyclerView
    movieListRecycler?.layoutManager = GridLayoutManager(context, 2)
    adapter = MovieListAdapter(clickListener = listener)
    movieListRecycler?.adapter = adapter
    movieListRecycler?.addOnScrollListener(object : RecyclerView.OnScrollListener() {
        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
            when {
                !recyclerView.canScrollVertically(1) -> { //1 for down
                    viewModel.loadMore()
                }
            }
        }
    })

    viewModel.allMovies.observe(this.viewLifecycleOwner) { films ->
        films.let { adapter.submitList(it) }
    }
    WorkManager.getInstance(requireContext()).enqueueUniquePeriodicWork("MovieUpload", ExistingPeriodicWorkPolicy.REPLACE,workRepository.periodicWork)


    // viewModel.insert()
}

private fun doOnClick(movie: MovieEntity) {
    movieListRecycler?.let { rv ->
        Snackbar.make(
            rv,
            "You chose: {${movie.title}}",
            Snackbar.LENGTH_SHORT
        ).show()
    }
}

private val listener = object : OnRecyclerItemClicked {
    override fun onClick(movie: MovieEntity) {
        val fragment: Fragment = FragmentMoviesDetails()
        val fragmentManager: FragmentManager = requireActivity().supportFragmentManager
        val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
        val args = Bundle()
        args.putParcelable("key", movie)

        fragment.arguments = args
        fragmentTransaction.add(R.id.fragment, fragment)
        fragmentTransaction.addToBackStack(null)
        fragmentTransaction.commit()
        doOnClick(movie)
    }
}

companion object {
    fun newInstance() = FragmentMoviesList()
}

Ответы (0 шт):