Код: Выделить всё
http:// api.themoviedb.org/3/discover/movie?sort_by=popularity.desc&api_key=#################
Код: Выделить всё
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory
class MovieListFragment : Fragment() {
private val viewModel: MovieListViewModel by viewModels {
val logging = HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY }
val httpClient = OkHttpClient.Builder().addInterceptor(logging).build()
val moshi = Moshi.Builder().build()
val movieService = Retrofit.Builder()
.baseUrl("http://api.themoviedb.org/3")
.addConverterFactory(MoshiConverterFactory.create(moshi))
.client(httpClient)
.build()
.create(MovieService::class.java)
val repository = MovieRepository(movieService)
MovieListViewModelFactory(repository)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_movie_list, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view)
recyclerView.layoutManager = LinearLayoutManager(requireContext())
val adapter = MovieListAdapter(requireContext())
recyclerView.adapter = adapter
Log.d("MovieListFragment", "Test log to check if logging works")
viewModel.movies.observe(viewLifecycleOwner, Observer { movies ->
adapter.submitList(movies)
})
viewModel.error.observe(viewLifecycleOwner, Observer { error ->
print(error)
})
if (NetworkUtils.isNetworkAvailable(requireContext())) {
viewModel.fetchPopularMovies()
} else {
print("No internet..")
}
}
}
interface MovieService {
@GET("/discover/movie")
suspend fun getPopularMovies(
@Query("api_key") apiKey: String,
@Query("sort_by") sortBy: String
): MovieResponse
}
class MovieRepository(private val movieService: MovieService) {
suspend fun getPopularMovies(): MovieResponse {
return movieService.getPopularMovies("##################", "popularity.desc")
}
}
Код: Выделить всё
api.themoviedb.org

Подробнее здесь: https://stackoverflow.com/questions/785 ... oid-studio
Мобильная версия