From 36af732a9f2caf3cadff7694f40b0789ec53dc4e Mon Sep 17 00:00:00 2001 From: Dendy Date: Tue, 22 Feb 2022 22:13:01 +0000 Subject: [PATCH] Implement image viewing with static member --- app/src/main/java/com/example/testes/BooruImage.kt | 5 +++++ .../java/com/example/testes/ImageGridFragment.kt | 4 ++++ .../java/com/example/testes/ImageViewerActivity.kt | 12 ++++++++++++ app/src/main/java/com/example/testes/MainActivity.kt | 1 + app/src/main/res/layout/activity_image_viewer.xml | 1 + 5 files changed, 23 insertions(+) diff --git a/app/src/main/java/com/example/testes/BooruImage.kt b/app/src/main/java/com/example/testes/BooruImage.kt index c51603e..c8c4fc9 100644 --- a/app/src/main/java/com/example/testes/BooruImage.kt +++ b/app/src/main/java/com/example/testes/BooruImage.kt @@ -12,6 +12,11 @@ data class BooruImage ( var file_url: String, var preview_url: String, ) { + + fun clone(): BooruImage { + return BooruImage(id, rating, tags, file_url, preview_url) + } + companion object { @Throws(JSONException::class) fun imageFromJson(json: JSONObject): BooruImage { diff --git a/app/src/main/java/com/example/testes/ImageGridFragment.kt b/app/src/main/java/com/example/testes/ImageGridFragment.kt index acb5bce..e52db4c 100644 --- a/app/src/main/java/com/example/testes/ImageGridFragment.kt +++ b/app/src/main/java/com/example/testes/ImageGridFragment.kt @@ -54,14 +54,18 @@ class ImageGridFragment(val images: List) : Fragment() { .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) } } diff --git a/app/src/main/java/com/example/testes/ImageViewerActivity.kt b/app/src/main/java/com/example/testes/ImageViewerActivity.kt index 89d2284..dcba2bf 100644 --- a/app/src/main/java/com/example/testes/ImageViewerActivity.kt +++ b/app/src/main/java/com/example/testes/ImageViewerActivity.kt @@ -3,15 +3,27 @@ package com.example.testes import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.LayoutInflater +import androidx.core.content.ContextCompat +import com.bumptech.glide.Glide import com.example.testes.databinding.ActivityImageViewerBinding import com.example.testes.databinding.ActivityMainBinding class ImageViewerActivity : AppCompatActivity() { lateinit var binding: ActivityImageViewerBinding + lateinit var local_image: BooruImage + + companion object { + lateinit var image: BooruImage + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityImageViewerBinding.inflate(layoutInflater) setContentView(binding.root) + local_image = image.clone() + Glide.with(this) + .load(local_image.file_url) + .placeholder(ContextCompat.getDrawable(this, R.drawable.ic_launcher_foreground)) + .into(binding.image) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/testes/MainActivity.kt b/app/src/main/java/com/example/testes/MainActivity.kt index 0999033..3760e2b 100644 --- a/app/src/main/java/com/example/testes/MainActivity.kt +++ b/app/src/main/java/com/example/testes/MainActivity.kt @@ -76,6 +76,7 @@ class MainActivity : AppCompatActivity() { private fun loadGrid(images: List) { val fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.replace(R.id.imageGridRecV, ImageGridFragment(images)) + fragmentTransaction.addToBackStack(null) fragmentTransaction.commit() } diff --git a/app/src/main/res/layout/activity_image_viewer.xml b/app/src/main/res/layout/activity_image_viewer.xml index 0a354a0..b04190d 100644 --- a/app/src/main/res/layout/activity_image_viewer.xml +++ b/app/src/main/res/layout/activity_image_viewer.xml @@ -7,6 +7,7 @@ tools:context=".ImageViewerActivity">