diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-12-11 23:28:28 +0100 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-12-11 23:28:28 +0100 |
commit | eeb13f4819195afc7e3ab08b4f19f76fbaf035b2 (patch) | |
tree | 8118c65515a8e2cbd28d4aba8c045081f7a3fa83 /Client | |
parent | a72ebb82220a6d0434118b7b2d90c92a905499c7 (diff) |
Dodata kartica za prikaz objave kada je prikazan grid view. Dodat adapter za prikaz. Izmena kartice za prikaz objava na početnoj strani.
Diffstat (limited to 'Client')
4 files changed, 107 insertions, 11 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsGridViewAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsGridViewAdapter.kt new file mode 100644 index 0000000..dbe9e7d --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsGridViewAdapter.kt @@ -0,0 +1,59 @@ +package com.example.brzodolokacije.Adapters + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.example.brzodolokacije.Activities.ActivitySinglePost +import com.example.brzodolokacije.Models.LocationType +import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper + +class ShowPostsGridViewAdapter(var postPreview:MutableList<PostPreview>, val activity: Activity): + RecyclerView.Adapter<ShowPostsGridViewAdapter.PostViewHolder1>() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PostViewHolder1 { + val view= + LayoutInflater.from(parent.context).inflate(R.layout.post_item_grid_view,parent,false) + return PostViewHolder1(view) + } + override fun onBindViewHolder(holder: ShowPostsGridViewAdapter.PostViewHolder1, position: Int) { + holder.itemView.setOnClickListener { + val intent: Intent = Intent(activity, ActivitySinglePost::class.java) + var b= Bundle() + postPreview[position].location.type= LocationType.ADA + b.putParcelable("selectedPost", postPreview[position]) + intent.putExtras(b) + activity.startActivity(intent) + } + return holder.bindView(postPreview[position] ) + } + override fun getItemCount(): Int { + return postPreview.size + } + inner class PostViewHolder1(view: View): RecyclerView.ViewHolder(view){ + private val background:com.google.android.material.imageview.ShapeableImageView=view.findViewById( + R.id.postItemGridViewImage) + private val multipleImageIcon: ImageView =view.findViewById(R.id.ivPostItemMultipleImagesIcon) + + fun bindView(postPreview: PostPreview){ + if(postPreview.images.isNotEmpty()) { + Glide.with(activity) + .load(RetrofitHelper.baseUrl + "/api/post/image/compress/" + postPreview.images[0]._id) + .into(background) + } + if(postPreview.images.size>1) + multipleImageIcon.visibility= View.VISIBLE + + } + } + + +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt index f0f5244..df307dc 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt @@ -21,6 +21,7 @@ import com.example.brzodolokacije.Activities.ActivityAddPost import com.example.brzodolokacije.Activities.ChatActivity import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Adapters.ShowPostsAdapter +import com.example.brzodolokacije.Adapters.ShowPostsGridViewAdapter import com.example.brzodolokacije.Models.Location import com.example.brzodolokacije.Models.SearchParams import com.example.brzodolokacije.R @@ -48,7 +49,7 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { private var linearManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: ShowPostsAdapter? = null private var recyclerView: RecyclerView?=null - private var gridManagerVar: RecyclerView.LayoutManager?=null + // private var gridManagerVar: RecyclerView.LayoutManager?=null private var swipeRefreshLayout:SwipeRefreshLayout?=null private lateinit var searchButton: MaterialButton private lateinit var searchPostsViewModel:SearchPostsViewModel @@ -66,7 +67,7 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { //instantiate adapter and linearLayout adapterVar=ShowPostsAdapter(requireActivity()) linearManagerVar= LinearLayoutManager(activity) - gridManagerVar=GridLayoutManager(activity,2) + //gridManagerVar=GridLayoutManager(activity,2) } fun searchText(){ if(searchBar.text==null || searchBar.text.toString().trim()=="") @@ -138,8 +139,11 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { fun setUpListeners(rootView: View?){ rootView?.findViewById<ImageButton>(R.id.btnGridLayout)?.setOnClickListener() { - if(recyclerView?.layoutManager!=gridManagerVar){ - recyclerView?.layoutManager=gridManagerVar + /*if(recyclerView?.layoutManager!=gridManagerVar){ + recyclerView?.layoutManager=gridManagerVar*/ + recyclerView?.apply { + layoutManager= GridLayoutManager(activity,2) + //adapter= ShowPostsGridViewAdapter(posts,requireActivity()) } Log.d("main","klik") } diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_grid_view.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_grid_view.xml new file mode 100644 index 0000000..a347ca5 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_grid_view.xml @@ -0,0 +1,33 @@ +<?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"> + + <com.google.android.material.imageview.ShapeableImageView + android:id="@+id/postItemGridViewImage" + android:layout_width="170dp" + android:layout_height="170dp" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:elevation="5dp" + android:scaleType="centerCrop" + android:src="@color/white" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:shapeAppearanceOverlay="@style/Circular" /> + + <ImageView + android:id="@+id/ivPostItemMultipleImagesIcon" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:elevation="10dp" + android:src="@drawable/ic_baseline_multiple_images_24" + android:visibility="invisible" + app:layout_constraintEnd_toEndOf="@+id/postItemGridViewImage" + app:layout_constraintTop_toTopOf="@+id/postItemGridViewImage" /> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml index d403c97..7471321 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml @@ -8,7 +8,7 @@ <com.google.android.material.imageview.ShapeableImageView android:id="@+id/imageView9" android:layout_width="170dp" - android:layout_height="215dp" + android:layout_height="210dp" android:layout_marginStart="8dp" android:layout_marginTop="4dp" android:layout_marginEnd="8dp" @@ -23,20 +23,20 @@ <ImageView android:id="@+id/ivMultipleImagesIcon" - android:layout_width="18dp" - android:layout_height="17dp" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" android:elevation="10dp" - android:visibility="invisible" - android:layout_marginRight="5dp" - android:layout_marginTop="5dp" android:src="@drawable/ic_baseline_multiple_images_24" + android:visibility="invisible" app:layout_constraintEnd_toEndOf="@+id/ivPIHPBackground" app:layout_constraintTop_toTopOf="@+id/imageView9" /> <com.google.android.material.imageview.ShapeableImageView android:id="@+id/ivPIHPBackground" android:layout_width="170dp" - android:layout_height="175dp" + android:layout_height="170dp" android:layout_marginStart="1dp" android:layout_marginEnd="1dp" android:elevation="3dp" |