aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-12-09 01:48:40 +0100
committerJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-12-09 01:48:40 +0100
commitd149eb04958dd1f2ecd123c9ce765ec06c7505e5 (patch)
tree2025e4404a48e7b2a7371fc17f2ed3981c62ac4f
parentdca89c6a85515bf819247b7fc63336d650cd875e (diff)
Dodata aktivnost za otvaranje slika u punoj velicini na strani objave, omoguceno skrolovanje kroz slike #83
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt51
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt46
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml47
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml14
6 files changed, 175 insertions, 5 deletions
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
@@ -38,6 +38,14 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
+ android:name=".Activities.ActivityOpenedImages"
+ android:screenOrientation="portrait"
+ android:exported="false">
+ <meta-data
+ android:name="android.app.lib_name"
+ android:value="" />
+ </activity>
+ <activity
android:name=".Activities.ActivityChangePassword"
android:exported="false">
<meta-data
@@ -130,7 +138,7 @@
<activity
android:name=".Activities.NavigationActivity"
android:screenOrientation="portrait"
- android:windowSoftInputMode="stateAlwaysHidden|adjustResize"/>
+ android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
<activity
android:name=".MainActivity"
android:screenOrientation="portrait" />
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<PostImage>?=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<PostImage>?,val activity:Activity): RecyclerView.Adapter<OpenedPostImageAdapter.ViewHolder>() {
+ 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<PostImage>)
: RecyclerView.Adapter<PostImageAdapter.ViewHolder>(){
@@ -37,6 +36,11 @@ class PostImageAdapter(val activity: Activity, val items : MutableList<PostImage
.into(locationImage)
}
}
+ itemView.setOnClickListener {
+ val intent: Intent = Intent(activity, ActivityOpenedImages::class.java)
+ intent.putExtra("post",(activity as ActivitySinglePost).post)
+ activity.startActivity(intent)
+ }
}
}
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml
new file mode 100644
index 0000000..2d3de20
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Activities.ActivityOpenedImages"
+ android:background="@color/design_default_color_background">
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="40dp"
+ android:elevation="5dp"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ android:id="@+id/clImageHeader">
+ <ImageButton
+ android:layout_width="35dp"
+ android:layout_height="35dp"
+ app:layout_constraintStart_toStartOf="parent"
+ android:foregroundGravity="center_vertical"
+ android:background="@color/design_default_color_background"
+ android:src="@drawable/ic_baseline_arrow_back"
+ android:id="@+id/btnBackToPost"/>
+
+ <ImageButton
+ android:layout_width="35dp"
+ android:layout_height="35dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:foregroundGravity="center_vertical"
+ android:background="@color/design_default_color_background"
+ android:src="@drawable/ic_baseline_arrow_back"
+ android:id="@+id/btnDownload"/>
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ android:id="@+id/rvParent">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/rvImages"/>
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ 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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <ImageView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ android:id="@+id/ivOpenedImage"/>
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file