Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal class MovieStackRemoteViewFactory(private val context: Context) : RemoteViewsService.RemoteViewsFactory{
- private lateinit var movieHelper: MovieHelper
- private var movies = ArrayList<Movie>()
- override fun onCreate() {
- }
- override fun onDataSetChanged() {
- val identityToken = Binder.clearCallingIdentity()
- movieHelper = MovieHelper.getInstance(context)
- movieHelper.open()
- movies = movieHelper.getByFavorite("iya")
- movieHelper.close()
- Binder.restoreCallingIdentity(identityToken)
- }
- override fun onDestroy() {}
- override fun getCount(): Int {
- return movies.size
- }
- override fun getViewAt(position: Int): RemoteViews? {
- val remoteViews =
- RemoteViews(context.getPackageName(), R.layout.widget_item)
- if (!movies.isEmpty()) {
- val size = movies.size.toString()
- val movie: Movie = movies.get(position)
- try {
- val imageBitmap: Bitmap = Glide.with(context)
- .asBitmap()
- .load(movie.poster)
- .submit()
- .get()
- remoteViews.setImageViewBitmap(R.id.img_favorite_widget, imageBitmap)
- remoteViews.setTextViewText(R.id.tv_size, size)
- } catch (e: ExecutionException) {
- e.printStackTrace()
- } catch (e: InterruptedException) {
- e.printStackTrace()
- }
- val intent = Intent()
- intent.putExtra(MovieFavoriteWidget.EXTRA_ITEM, movie)
- remoteViews.setOnClickFillInIntent(R.id.img_favorite_widget, intent)
- }
- return remoteViews
- }
- override fun getLoadingView(): RemoteViews? {
- return null
- }
- override fun getViewTypeCount(): Int {
- return 1
- }
- override fun getItemId(i: Int): Long {
- return 0
- }
- override fun hasStableIds(): Boolean {
- return false
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement