boorujelly/app/src/main/java/com/example/testes/ImageGridFragment.kt

75 lines
2.7 KiB
Kotlin
Raw Normal View History

2022-02-06 18:12:27 +00:00
package com.example.testes
2022-02-22 21:06:28 +00:00
import android.content.Context
2022-02-22 21:32:28 +00:00
import android.content.Intent
2022-02-06 18:12:27 +00:00
import android.os.Bundle
2022-02-22 21:32:28 +00:00
import android.util.Log
2022-02-06 18:12:27 +00:00
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
2022-02-22 21:06:28 +00:00
import android.widget.ImageView
import androidx.core.content.ContextCompat
2022-02-08 22:38:09 +00:00
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
2022-02-22 21:06:28 +00:00
import com.bumptech.glide.Glide
2022-02-06 18:12:27 +00:00
2022-02-08 22:38:09 +00:00
class ImageGridFragment(val images: List<BooruImage>) : Fragment() {
2022-02-06 18:12:27 +00:00
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
2022-02-08 22:38:09 +00:00
val layoutView = inflater.inflate(R.layout.fragment_image_grid, container, false)
val recyclerView : RecyclerView = layoutView.findViewById(R.id.imageGridRecV)
recyclerView.adapter = ImageGridAdapter(images)
recyclerView.layoutManager = GridLayoutManager(layoutView.context, 3)
2022-02-06 18:12:27 +00:00
2022-02-08 22:38:09 +00:00
return layoutView
2022-02-06 18:12:27 +00:00
}
2022-02-22 21:06:28 +00:00
inner class ImageGridAdapter(val imageList: List<BooruImage>) :
RecyclerView.Adapter<ImageGridAdapter.ViewHolder>() {
lateinit var context: Context;
/* Creates and inflates view and return FlowerViewHolder. */
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
context = parent.context;
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.image_grid_item, parent, false)
return ViewHolder(view)
}
/* Gets current flower and uses it to bind view. */
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
Glide.with(context)
.load(imageList[position].preview_url)
.placeholder(ContextCompat.getDrawable(context, R.drawable.ic_launcher_foreground))
.into(holder.imageview)
2022-02-22 21:32:28 +00:00
holder.image = imageList[position]
2022-02-22 21:32:28 +00:00
holder.imageview.setOnClickListener(holder)
2022-02-22 21:06:28 +00:00
}
2022-02-22 21:32:28 +00:00
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
2022-02-22 21:06:28 +00:00
var imageview: ImageView = itemView.findViewById(R.id.image)
lateinit var image: BooruImage
2022-02-22 21:32:28 +00:00
override fun onClick(view: View?) {
val intent = Intent(view?.context, ImageViewerActivity::class.java)
ImageViewerActivity.image = this.image
2022-02-22 21:32:28 +00:00
startActivity(intent)
}
2022-02-22 21:06:28 +00:00
}
override fun getItemCount(): Int = imageList.size
}
2022-02-06 18:12:27 +00:00
}