From d149eb04958dd1f2ecd123c9ce765ec06c7505e5 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Fri, 9 Dec 2022 01:48:40 +0100 Subject: Dodata aktivnost za otvaranje slika u punoj velicini na strani objave, omoguceno skrolovanje kroz slike #83 --- .../app/src/main/AndroidManifest.xml | 10 ++++- .../Activities/ActivityOpenedImages.kt | 51 ++++++++++++++++++++++ .../Adapters/OpenedPostImageAdapter.kt | 46 +++++++++++++++++++ .../brzodolokacije/Adapters/PostImageAdapter.kt | 12 +++-- .../src/main/res/layout/activity_opened_images.xml | 47 ++++++++++++++++++++ .../app/src/main/res/layout/opened_post_image.xml | 14 ++++++ 6 files changed, 175 insertions(+), 5 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index d672708..1ec64ec 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -37,6 +37,14 @@ android:theme="@style/Theme.BrzoDoLokacije" android:usesCleartextTraffic="true" tools:targetApi="31"> + + + @@ -130,7 +138,7 @@ + android:windowSoftInputMode="stateAlwaysHidden|adjustResize" /> diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt new file mode 100644 index 0000000..183f460 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt @@ -0,0 +1,51 @@ +package com.example.brzodolokacije.Activities + +import android.os.Build +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.PagerSnapHelper +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.SnapHelper +import com.example.brzodolokacije.Adapters.OpenedPostImageAdapter +import com.example.brzodolokacije.Models.PostImage +import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.databinding.ActivityOpenedImagesBinding + +class ActivityOpenedImages : AppCompatActivity() { + lateinit var binding:ActivityOpenedImagesBinding + var rvImages: RecyclerView?=null + var linearLayout:LinearLayoutManager?=null + var adapter:OpenedPostImageAdapter?=null + var images:List?=null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding= ActivityOpenedImagesBinding.inflate(layoutInflater) + setContentView(binding.root) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + images=(intent.extras?.getParcelable("post",PostPreview::class.java) as PostPreview).images + } + else{ + images=(intent.extras?.getParcelable("post") as PostPreview?)?.images + } + + setRecyclerView() + } + + fun setListeners(){ + + } + + fun setRecyclerView(){ + rvImages=binding.rvImages + linearLayout= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) + adapter= OpenedPostImageAdapter(images,this) + rvImages!!.setHasFixedSize(true) + var snap:SnapHelper=PagerSnapHelper() + snap.attachToRecyclerView(rvImages) + rvImages!!.layoutManager=linearLayout + rvImages!!.adapter=adapter + } + +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt new file mode 100644 index 0000000..53f2a37 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt @@ -0,0 +1,46 @@ +package com.example.brzodolokacije.Adapters + +import android.app.Activity +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.example.brzodolokacije.Models.PostImage +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.databinding.OpenedPostImageBinding + +class OpenedPostImageAdapter(val items:List?,val activity:Activity): RecyclerView.Adapter() { + lateinit var binding:OpenedPostImageBinding + + inner class ViewHolder(itemView: OpenedPostImageBinding) : RecyclerView.ViewHolder(itemView.root) { + fun bind(item:PostImage){ + binding.apply { + if(item!=null) { + Glide.with(activity) + .load(RetrofitHelper.baseUrl + "/api/post/image/compress/" + item._id) + .into(ivOpenedImage) + } + } + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + binding= OpenedPostImageBinding.inflate(inflater,parent,false) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(items!![position]) + } + + override fun getItemCount(): Int { + if(items==null){ + return 0 + } + else{ + return items.size + } + } + +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt index 74bfd92..f3a8345 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt @@ -1,17 +1,16 @@ package com.example.brzodolokacije.Adapters import android.app.Activity -import android.graphics.BitmapFactory -import android.media.Image +import android.content.Intent import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide -import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.Activities.ActivityOpenedImages +import com.example.brzodolokacije.Activities.ActivitySinglePost import com.example.brzodolokacije.Models.PostImage import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.databinding.PostImageBinding -import com.example.brzodolokacije.databinding.PostPreviewBinding class PostImageAdapter(val activity: Activity, val items : MutableList) : RecyclerView.Adapter(){ @@ -37,6 +36,11 @@ class PostImageAdapter(val activity: Activity, val items : MutableList + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml new file mode 100644 index 0000000..739e557 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file -- cgit v1.2.3