package com.example.testes import android.content.Context import android.content.Intent import android.os.Bundle import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide class ImageGridFragment(val images: List) : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment 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) return layoutView } inner class ImageGridAdapter(val imageList: List) : RecyclerView.Adapter() { 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) holder.image = imageList[position] holder.imageview.setOnClickListener(holder) } inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener { var imageview: ImageView = itemView.findViewById(R.id.image) lateinit var image: BooruImage override fun onClick(view: View?) { val intent = Intent(view?.context, ImageViewerActivity::class.java) ImageViewerActivity.image = this.image startActivity(intent) } } override fun getItemCount(): Int = imageList.size } }