diff options
| -rw-r--r-- | app/build.gradle | 7 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/MainActivity.kt | 4 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/topanime/TopAnimeAdapter.kt | 36 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/topmanga/TopMangaAdapter.kt | 35 | ||||
| -rw-r--r-- | app/src/main/res/layout/item_layout.xml | 30 | 
5 files changed, 35 insertions, 77 deletions
| diff --git a/app/build.gradle b/app/build.gradle index 4a23638..4dd9f20 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,8 +48,8 @@ dependencies {      //Recycleview      implementation "androidx.recyclerview:recyclerview:1.1.0"      //Retrofit -    implementation 'com.squareup.retrofit2:retrofit:2.6.0' -    implementation 'com.squareup.retrofit2:converter-gson:2.6.0' +    implementation 'com.squareup.retrofit2:retrofit:2.9.0' +    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'      // Required for local unit tests (JUnit 4 framework)      testImplementation 'junit:junit:4.13.2' @@ -58,5 +58,8 @@ dependencies {      androidTestImplementation 'com.android.support:support-annotations:28.0.0'      androidTestImplementation 'com.android.support.test:runner:1.0.2' +    //to display images +    implementation 'com.github.bumptech.glide:glide:4.12.0' +    annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'  }
\ No newline at end of file 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)      }  } diff --git a/app/src/main/res/layout/item_layout.xml b/app/src/main/res/layout/item_layout.xml index 8d7a792..5ef1c19 100644 --- a/app/src/main/res/layout/item_layout.xml +++ b/app/src/main/res/layout/item_layout.xml @@ -1,6 +1,5 @@  <?xml version="1.0" encoding="utf-8"?> -<androidx.cardview.widget.CardView -    xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto"      android:id="@+id/cv_cardView"      android:layout_width="match_parent" @@ -9,30 +8,30 @@      android:clickable="true"      android:focusable="true"      android:foreground="?selectableItemBackground" -    app:cardCornerRadius="10dp"      app:cardBackgroundColor="@color/black" -    > +    app:cardCornerRadius="13dp"> +    <!--android:onClick="fromListToDetail"-->      <androidx.constraintlayout.widget.ConstraintLayout          android:layout_width="match_parent"          android:layout_height="match_parent" -        android:padding="10dp" -        > +        android:padding="10dp">          <ImageView              android:id="@+id/iv_image"              android:layout_width="wrap_content"              android:layout_height="wrap_content" -            app:layout_constraintTop_toTopOf="parent" +            android:contentDescription="@string/rv_image" +            android:src="@mipmap/ic_launcher"              app:layout_constraintBottom_toBottomOf="parent"              app:layout_constraintStart_toStartOf="parent" -            android:src="@mipmap/ic_launcher" -            android:contentDescription="@string/rv_image" /> +            app:layout_constraintTop_toTopOf="parent" />          <TextView              android:id="@+id/tv_title"              android:layout_width="0dp"              android:layout_height="match_parent" +            android:layout_marginHorizontal="10sp"              android:fontFamily="@font/bangers"              android:text="@string/rv_title"              android:textAlignment="center" @@ -41,32 +40,29 @@              app:layout_constraintBottom_toBottomOf="parent"              app:layout_constraintEnd_toEndOf="parent"              app:layout_constraintStart_toEndOf="@id/iv_image" -            app:layout_constraintTop_toTopOf="parent" -            android:layout_marginHorizontal="10sp"/> +            app:layout_constraintTop_toTopOf="parent" />          <TextView              android:id="@+id/tv_rank"              android:layout_width="wrap_content"              android:layout_height="wrap_content" -            android:background="@color/very_dark_purple"              android:text="@string/rv_rank"              android:textColor="@color/slightly_desaturated_magenta"              android:textSize="20sp" +            app:layout_constraintBottom_toTopOf="@id/tv_title"              app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintTop_toTopOf="parent" -            app:layout_constraintBottom_toTopOf="@id/tv_title"/> +            app:layout_constraintTop_toTopOf="parent" />          <TextView              android:id="@+id/tv_score"              android:layout_width="wrap_content"              android:layout_height="wrap_content" -            android:background="@color/very_dark_purple"              android:text="@string/rv_score"              android:textColor="@color/slightly_desaturated_magenta"              android:textSize="20sp" -            app:layout_constraintEnd_toEndOf="parent"              app:layout_constraintBottom_toBottomOf="parent" -            app:layout_constraintTop_toBottomOf="@id/tv_title"/> +            app:layout_constraintEnd_toEndOf="parent" +            app:layout_constraintTop_toBottomOf="@id/tv_title" />      </androidx.constraintlayout.widget.ConstraintLayout>  </androidx.cardview.widget.CardView>
\ No newline at end of file | 
