Advertisement
Guest User

StackRemoteFactory

a guest
Feb 25th, 2020
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. internal class MovieStackRemoteViewFactory(private val context: Context) : RemoteViewsService.RemoteViewsFactory{
  2. private lateinit var movieHelper: MovieHelper
  3. private var movies = ArrayList<Movie>()
  4.  
  5. override fun onCreate() {
  6. }
  7.  
  8. override fun onDataSetChanged() {
  9. val identityToken = Binder.clearCallingIdentity()
  10. movieHelper = MovieHelper.getInstance(context)
  11. movieHelper.open()
  12. movies = movieHelper.getByFavorite("iya")
  13. movieHelper.close()
  14. Binder.restoreCallingIdentity(identityToken)
  15. }
  16.  
  17. override fun onDestroy() {}
  18.  
  19. override fun getCount(): Int {
  20. return movies.size
  21.  
  22. }
  23.  
  24. override fun getViewAt(position: Int): RemoteViews? {
  25. val remoteViews =
  26. RemoteViews(context.getPackageName(), R.layout.widget_item)
  27. if (!movies.isEmpty()) {
  28. val size = movies.size.toString()
  29. val movie: Movie = movies.get(position)
  30. try {
  31. val imageBitmap: Bitmap = Glide.with(context)
  32. .asBitmap()
  33. .load(movie.poster)
  34. .submit()
  35. .get()
  36. remoteViews.setImageViewBitmap(R.id.img_favorite_widget, imageBitmap)
  37. remoteViews.setTextViewText(R.id.tv_size, size)
  38. } catch (e: ExecutionException) {
  39. e.printStackTrace()
  40. } catch (e: InterruptedException) {
  41. e.printStackTrace()
  42. }
  43. val intent = Intent()
  44. intent.putExtra(MovieFavoriteWidget.EXTRA_ITEM, movie)
  45. remoteViews.setOnClickFillInIntent(R.id.img_favorite_widget, intent)
  46. }
  47. return remoteViews
  48. }
  49.  
  50. override fun getLoadingView(): RemoteViews? {
  51. return null
  52. }
  53.  
  54. override fun getViewTypeCount(): Int {
  55. return 1
  56. }
  57.  
  58. override fun getItemId(i: Int): Long {
  59. return 0
  60. }
  61.  
  62. override fun hasStableIds(): Boolean {
  63. return false
  64. }
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement