From 1eb274dcaaf1ee5f79505da935afcd89856e21fd Mon Sep 17 00:00:00 2001
From: Clyhtsuriva <aimeric@adjutor.xyz>
Date: Sat, 20 Feb 2021 16:43:50 +0100
Subject: Implementation of Glide. Replace the current way by Glide for more
 stability. Also allows to keep the images with sharedpreferences.

---
 .../main/java/xyz/adjutor/aniki/MainActivity.kt    |  4 +--
 .../xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt  | 36 +++++-----------------
 .../xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt  | 35 +++++----------------
 3 files changed, 17 insertions(+), 58 deletions(-)

(limited to 'app/src/main/java/xyz')

diff --git a/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt b/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt
index 50cd24f..a195f97 100644
--- a/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt
+++ b/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt
@@ -1,11 +1,9 @@
 package xyz.adjutor.aniki
 
 import android.os.Bundle
-import com.google.android.material.floatingactionbutton.FloatingActionButton
-import com.google.android.material.snackbar.Snackbar
-import androidx.appcompat.app.AppCompatActivity
 import android.view.Menu
 import android.view.MenuItem
+import androidx.appcompat.app.AppCompatActivity
 
 class MainActivity : AppCompatActivity() {
 
diff --git a/app/src/main/java/xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt
index 68a2c7b..4953939 100644
--- a/app/src/main/java/xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt
+++ b/app/src/main/java/xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt
@@ -2,20 +2,15 @@
 
 package xyz.adjutor.aniki.topanime
 
-import android.annotation.SuppressLint
-import android.graphics.Bitmap
-import android.graphics.BitmapFactory
-import android.os.AsyncTask
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.ImageView
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.request.RequestOptions
 import xyz.adjutor.aniki.R
-import xyz.adjutor.aniki.topanime.TopAnime
-import xyz.adjutor.aniki.topanime.TopAnimeAdapter
 
 class TopAnimeAdapter(val animeList: List<TopAnime>) :
         RecyclerView.Adapter<TopAnimeAdapter.AnimeViewHolder>() {
@@ -26,7 +21,6 @@ class TopAnimeAdapter(val animeList: List<TopAnime>) :
         val animeRank: TextView = itemView.findViewById(R.id.tv_rank)
         val animeScore: TextView = itemView.findViewById(R.id.tv_score)
         val animeImage: ImageView = itemView.findViewById(R.id.iv_image)
-
     }
 
     // Returns a new ViewHolder
@@ -48,27 +42,13 @@ class TopAnimeAdapter(val animeList: List<TopAnime>) :
         holder.animeTitle.text = currentAnime.title
         holder.animeRank.text = currentAnime.rank.toString()
         holder.animeScore.text = currentAnime.score.toString()
-        DownloadImageFromInternet(holder.animeImage).execute(currentAnime.image_url)
+        val image : String = currentAnime.image_url.toString()
+        Glide
+            .with(holder.itemView.context)
+            .load(image)
+            .apply(RequestOptions().override(400))
+            .into(holder.animeImage)
     }
 
-    @SuppressLint("StaticFieldLeak")
-    private inner class DownloadImageFromInternet(var imageView: ImageView) : AsyncTask<String, Void, Bitmap?>() {
-        override fun doInBackground(vararg urls: String): Bitmap? {
-            val imageURL = urls[0]
-            var image: Bitmap? = null
-            try {
-                val `in` = java.net.URL(imageURL).openStream()
-                image = BitmapFactory.decodeStream(`in`)
-            }
-            catch (e: Exception) {
-                Log.e("Error Message", e.message.toString())
-                e.printStackTrace()
-            }
-            return image
-        }
-        override fun onPostExecute(result: Bitmap?) {
-            imageView.setImageBitmap(result)
-        }
-    }
 }
 
diff --git a/app/src/main/java/xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt
index 22872b2..f5a2bd2 100644
--- a/app/src/main/java/xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt
+++ b/app/src/main/java/xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt
@@ -2,17 +2,14 @@
 
 package xyz.adjutor.aniki.topmanga
 
-import android.annotation.SuppressLint
-import android.graphics.Bitmap
-import android.graphics.BitmapFactory
-import android.os.AsyncTask
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.ImageView
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.bumptech.glide.request.RequestOptions
 import xyz.adjutor.aniki.R
 
 class TopMangaAdapter(val mangaList: List<TopManga>) :
@@ -24,7 +21,6 @@ class TopMangaAdapter(val mangaList: List<TopManga>) :
         val mangaRank: TextView = itemView.findViewById(R.id.tv_rank)
         val mangaScore: TextView = itemView.findViewById(R.id.tv_score)
         val mangaImage: ImageView = itemView.findViewById(R.id.iv_image)
-
     }
 
     // Returns a new ViewHolder
@@ -46,27 +42,12 @@ class TopMangaAdapter(val mangaList: List<TopManga>) :
         holder.mangaTitle.text = currentManga.title
         holder.mangaRank.text = currentManga.rank.toString()
         holder.mangaScore.text = currentManga.score.toString()
-        DownloadImageFromInternet(holder.mangaImage).execute(currentManga.image_url)
-    }
-
-    @SuppressLint("StaticFieldLeak")
-    private inner class DownloadImageFromInternet(var imageView: ImageView) : AsyncTask<String, Void, Bitmap?>() {
-        override fun doInBackground(vararg urls: String): Bitmap? {
-            val imageURL = urls[0]
-            var image: Bitmap? = null
-            try {
-                val `in` = java.net.URL(imageURL).openStream()
-                image = BitmapFactory.decodeStream(`in`)
-            }
-            catch (e: Exception) {
-                Log.e("Error Message", e.message.toString())
-                e.printStackTrace()
-            }
-            return image
-        }
-        override fun onPostExecute(result: Bitmap?) {
-            imageView.setImageBitmap(result)
-        }
+        val image : String = currentManga.image_url.toString()
+        Glide
+                .with(holder.itemView.context)
+                .load(image)
+                .apply(RequestOptions().override(400))
+                .into(holder.mangaImage)
     }
 }
 
-- 
cgit v1.2.3