From 80c38e7aa9ce1c184ad40ab3ffd17e4ecdd46c04 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sun, 6 Nov 2022 00:47:50 +0100 Subject: Dodato ucitavanje svih objava zahtevom, bez ucitavanja slika #17 --- .../brzodolokacije/Adapters/ShowPostsAdapter.kt | 6 +- .../brzodolokacije/Fragments/FragmentShowPosts.kt | 70 ++++++++++++++++------ .../brzodolokacije/Interfaces/IBackendApi.kt | 5 +- 3 files changed, 59 insertions(+), 22 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index 56220d5..5f11ded 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -1,15 +1,17 @@ package com.example.brzodolokacije.Adapters +import android.graphics.BitmapFactory import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Models.ListItemModel import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.databinding.ListItemBinding import com.example.brzodolokacije.databinding.PostPreviewBinding import java.io.Console -class ShowPostsAdapter (val items : MutableList) +class ShowPostsAdapter (val items : MutableList) : RecyclerView.Adapter(){ //constructer has one argument - list of objects that need to be displayed //it is bound to xml of single item @@ -30,7 +32,7 @@ class ShowPostsAdapter (val items : MutableList) } override fun getItemCount() = items.size inner class ViewHolder(itemView : PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root){ - fun bind(item : Post){ + fun bind(item : PostPreview){ binding.apply { tvTitle.text=item.location.name tvLocationParent.text=item.location.country 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 6bc9d12..1b7cb09 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 @@ -1,26 +1,31 @@ package com.example.brzodolokacije.Fragments +import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Adapters.SampleAdapter import com.example.brzodolokacije.Adapters.ShowPostsAdapter -import com.example.brzodolokacije.Models.ListItemModel -import com.example.brzodolokacije.Models.Location -import com.example.brzodolokacije.Models.LocationType -import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.Models.* import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.FragmentHomeBinding +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class FragmentShowPosts : Fragment() { private lateinit var binding: FragmentShowPosts - private var posts : MutableList = mutableListOf() + private var posts : MutableList = mutableListOf() private var layoutManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: RecyclerView.Adapter? = null private var recyclerView: RecyclerView?=null @@ -28,30 +33,57 @@ class FragmentShowPosts : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //load data for the list - loadData() + //loadData() //instantiate adapter and linearLayout + val postApi= RetrofitHelper.getInstance() + val token=SharedPreferencesHelper.getValue("jwt", requireActivity()) + val request=postApi.getPosts("Bearer "+token) + + request.enqueue(object : retrofit2.Callback?> { + override fun onResponse(call: Call?>, response: Response?>) { + if(response.isSuccessful){ + posts=response.body()!! + recyclerView?.adapter=ShowPostsAdapter(posts) + Toast.makeText( + activity, "prosao zahtev", Toast.LENGTH_LONG + ).show() + }else{ + if(response.errorBody()!=null) + Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); + } + + + } + + override fun onFailure(call: Call?>, t: Throwable) { + Toast.makeText( + activity, t.toString(), Toast.LENGTH_LONG + ).show(); + } + }) + adapterVar=ShowPostsAdapter(posts) layoutManagerVar= LinearLayoutManager(activity) } private fun loadData() { - posts.add(Post("123", + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - } + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt index 0bbf72e..bcb6e13 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt @@ -4,9 +4,11 @@ import com.example.brzodolokacije.Models.Auth.JustMail import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.Models.Auth.Register import com.example.brzodolokacije.Models.Auth.ResetPass +import com.example.brzodolokacije.Models.PostPreview import okhttp3.ResponseBody import retrofit2.Call import retrofit2.http.Body +import retrofit2.http.GET import retrofit2.http.Header import retrofit2.http.POST @@ -21,7 +23,8 @@ interface IBackendApi { fun forgotpass(@Body obj:JustMail):Call @POST("/api/auth/resetpass") fun resetpass(@Body obj:ResetPass):Call - + @GET("/api/post") + fun getPosts(@Header("Authorization") authHeader:String):Call> //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ No newline at end of file -- cgit v1.2.3 From 395f7c642cb54760a47af4a8e5db93fcd0bd1c7f Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sun, 6 Nov 2022 01:21:33 +0100 Subject: dodati osnovni elementi prikaza pojedinacne objave #16 --- .../app/src/main/res/layout/fragment_post.xml | 115 ++++++++++++++++++++- 1 file changed, 112 insertions(+), 3 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml index 0b37348..90f37d5 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml @@ -1,6 +1,7 @@ + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3 From 006b513dc0356884e5cc5a66fed5e6b2983e178b Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sun, 6 Nov 2022 20:08:20 +0100 Subject: Prikaz jedne objave koji je pre bio fragment je prebacen u aktivnost #16 --- .../app/src/main/AndroidManifest.xml | 8 ++ .../Activities/ActivitySinglePost.kt | 41 +++++++ .../brzodolokacije/Fragments/FragmentPost.kt | 50 -------- .../src/main/res/layout/activity_single_post.xml | 128 +++++++++++++++++++++ .../app/src/main/res/layout/fragment_post.xml | 128 --------------------- 5 files changed, 177 insertions(+), 178 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt delete mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml delete mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 00ee960..886666d 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + + + + diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt new file mode 100644 index 0000000..137277f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt @@ -0,0 +1,41 @@ +package com.example.brzodolokacije.Activities + +import android.content.Context +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.PostImageAdapter +import com.example.brzodolokacije.R +import com.example.brzodolokacije.databinding.ActivitySinglePostBinding + +class ActivitySinglePost : AppCompatActivity() { + private lateinit var binding: ActivitySinglePostBinding + private var images : MutableList = mutableListOf() + private var layoutManagerVar: RecyclerView.LayoutManager? = null + private var adapterVar: RecyclerView.Adapter? = null + private var recyclerView: RecyclerView?=null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_single_post) + //load data for the list + loadData() + //instantiate adapter and linearLayout + adapterVar= PostImageAdapter(images) + layoutManagerVar= LinearLayoutManager(this) + recyclerView = binding.rvMain + // set recyclerView attributes + recyclerView?.setHasFixedSize(true) + recyclerView?.layoutManager = layoutManagerVar + recyclerView?.adapter = adapterVar + } + + private fun loadData() { + } + +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt deleted file mode 100644 index 82835f2..0000000 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.example.brzodolokacije.Fragments - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import com.example.brzodolokacije.Adapters.PostImageAdapter -import com.example.brzodolokacije.Adapters.ShowPostsAdapter -import com.example.brzodolokacije.Models.Post -import com.example.brzodolokacije.R -import com.example.brzodolokacije.databinding.FragmentPostBinding - - -class FragmentPost : Fragment() { - - private lateinit var binding: FragmentPostBinding - private var images : MutableList = mutableListOf() - private var layoutManagerVar: RecyclerView.LayoutManager? = null - private var adapterVar: RecyclerView.Adapter? = null - private var recyclerView: RecyclerView?=null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - //load data for the list - loadData() - //instantiate adapter and linearLayout - adapterVar=PostImageAdapter(images) - layoutManagerVar= LinearLayoutManager(activity) - } - - private fun loadData() { - } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - val rootView = inflater?.inflate(R.layout.fragment_post, container, false) - recyclerView = rootView?.findViewById(R.id.rvMain) - // set recyclerView attributes - recyclerView?.setHasFixedSize(true) - recyclerView?.layoutManager = layoutManagerVar - recyclerView?.adapter = adapterVar - return rootView - } - -} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml new file mode 100644 index 0000000..5688acd --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml deleted file mode 100644 index 90f37d5..0000000 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file -- cgit v1.2.3 From 40066cc6ec4039517766906e8e31e98c298244e1 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sun, 6 Nov 2022 20:10:05 +0100 Subject: Dodat onclick dogadjaj na klik objave, treba odraditi logiku za prelayak na objavu #17 --- .../brzodolokacije/Adapters/ShowPostsAdapter.kt | 39 +++++++++++----------- .../brzodolokacije/Fragments/FragmentShowPosts.kt | 9 ++--- 2 files changed, 25 insertions(+), 23 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index 5f11ded..9da0014 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -1,42 +1,43 @@ package com.example.brzodolokacije.Adapters -import android.graphics.BitmapFactory +import android.app.Activity +import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.RecyclerView -import com.example.brzodolokacije.Models.ListItemModel -import com.example.brzodolokacije.Models.Post import com.example.brzodolokacije.Models.PostPreview -import com.example.brzodolokacije.databinding.ListItemBinding import com.example.brzodolokacije.databinding.PostPreviewBinding -import java.io.Console -class ShowPostsAdapter (val items : MutableList) - : RecyclerView.Adapter(){ +class ShowPostsAdapter (val activity:Activity,val items : MutableList) + : RecyclerView.Adapter() { //constructer has one argument - list of objects that need to be displayed //it is bound to xml of single item private lateinit var binding: PostPreviewBinding override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val inflater = LayoutInflater.from(parent.context) - binding=PostPreviewBinding.inflate(inflater,parent,false) + binding = PostPreviewBinding.inflate(inflater, parent, false) return ViewHolder(binding) } - override fun onBindViewHolder(holder: ViewHolder, position: Int){ + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { //sets components of particular item holder.bind(items[position]) -/* holder.itemView.setOnClickListener { - fun listener(position: Int){ - binding.tvTitle.text="klik" - } - }*/ } + + override fun getItemCount() = items.size - inner class ViewHolder(itemView : PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root){ - fun bind(item : PostPreview){ + inner class ViewHolder(itemView: PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root) { + fun bind(item: PostPreview) { binding.apply { - tvTitle.text=item.location.name - tvLocationParent.text=item.location.country - tvLocationType.text=item.location.type.toString() + tvTitle.text = item.location.name + tvLocationParent.text = item.location.country + tvLocationType.text = item.location.type.toString() + + itemView.isClickable = true + itemView.setOnClickListener { + Toast.makeText(activity,item._id,Toast.LENGTH_LONG).show() + } } } } 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 1b7cb09..e9b4c08 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 @@ -1,5 +1,6 @@ package com.example.brzodolokacije.Fragments +import android.content.Context import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment @@ -33,7 +34,7 @@ class FragmentShowPosts : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //load data for the list - //loadData() + loadData() //instantiate adapter and linearLayout val postApi= RetrofitHelper.getInstance() val token=SharedPreferencesHelper.getValue("jwt", requireActivity()) @@ -42,8 +43,8 @@ class FragmentShowPosts : Fragment() { request.enqueue(object : retrofit2.Callback?> { override fun onResponse(call: Call?>, response: Response?>) { if(response.isSuccessful){ - posts=response.body()!! - recyclerView?.adapter=ShowPostsAdapter(posts) + //posts=response.body()!! + //recyclerView?.adapter=ShowPostsAdapter(requireActivity(),posts) Toast.makeText( activity, "prosao zahtev", Toast.LENGTH_LONG ).show() @@ -62,7 +63,7 @@ class FragmentShowPosts : Fragment() { } }) - adapterVar=ShowPostsAdapter(posts) + adapterVar=ShowPostsAdapter(requireActivity(),posts) layoutManagerVar= LinearLayoutManager(activity) } -- cgit v1.2.3 From 1f3810ae6a32ff65e757e72156df251830222105 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Sun, 6 Nov 2022 21:12:55 +0100 Subject: Ukoliko je korisnik ulogovan spreceno mu je da se vrati na main activity i login activity pritiskom na back button. --- .../src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt | 1 + .../app/src/main/java/com/example/brzodolokacije/MainActivity.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index 9092700..01b3f1d 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -95,6 +95,7 @@ class FragmentLogin : Fragment() { SharedPreferencesHelper.addValue("jwt",token,activity!!) val intent= Intent(activity!!, NavigationActivity::class.java) startActivity(intent) + activity!!.finish() }else{ if(response.errorBody()!=null) Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt index e55da11..0245e9b 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt @@ -30,6 +30,7 @@ class MainActivity : AppCompatActivity() { startActivity(intent) + finish() } fun checkLoggedIn():Boolean{ @@ -48,7 +49,6 @@ class MainActivity : AppCompatActivity() { } fun refreshJwt(token:String){ - Log.d("Main","RIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP") if(token==null) return var refreshJwt= RetrofitHelper.getInstance().refreshJwt("Bearer "+token) -- cgit v1.2.3 From 37f735cc805d63128263d417f8150e77b4b6272a Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sun, 6 Nov 2022 23:44:51 +0100 Subject: omogucen prelaz na klik na stranu objave, prenose se podaci o objavi, ali se ne prikazuju jos #16 --- Client/BrzoDoLokacije/app/build.gradle | 4 ++ .../app/src/main/AndroidManifest.xml | 11 +++++- .../Activities/ActivitySinglePost.kt | 43 ++++++++++++++++------ .../brzodolokacije/Adapters/PostImageAdapter.kt | 7 ++-- .../brzodolokacije/Adapters/ShowPostsAdapter.kt | 15 ++++++-- .../com/example/brzodolokacije/Models/Location.kt | 5 ++- .../java/com/example/brzodolokacije/Models/Post.kt | 11 ++++-- .../com/example/brzodolokacije/Models/PostImage.kt | 6 ++- .../src/main/res/layout/activity_single_post.xml | 22 +++++------ 9 files changed, 87 insertions(+), 37 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle index f6faf0d..fa85692 100644 --- a/Client/BrzoDoLokacije/app/build.gradle +++ b/Client/BrzoDoLokacije/app/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' + id 'org.jetbrains.kotlin.android.extensions' } android { @@ -34,6 +35,9 @@ android { buildFeatures { viewBinding true } + androidExtensions { + experimental = true + } } dependencies { diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 886666d..0397ee4 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> - + + + + + + diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt index 137277f..be4a73d 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt @@ -1,30 +1,32 @@ package com.example.brzodolokacije.Activities -import android.content.Context -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager +import android.os.Handler +import android.os.Looper +import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Adapters.PostImageAdapter +import com.example.brzodolokacije.Models.PostImage +import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.R import com.example.brzodolokacije.databinding.ActivitySinglePostBinding + class ActivitySinglePost : AppCompatActivity() { private lateinit var binding: ActivitySinglePostBinding - private var images : MutableList = mutableListOf() + private var images : MutableList = mutableListOf() private var layoutManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: RecyclerView.Adapter? = null private var recyclerView: RecyclerView?=null + private lateinit var post:PostPreview override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + binding=ActivitySinglePostBinding.inflate(layoutInflater) setContentView(R.layout.activity_single_post) - //load data for the list - loadData() + post= intent.extras?.getParcelable("selectedPost")!! + /*//load data for the list + //instantiate adapter and linearLayout adapterVar= PostImageAdapter(images) layoutManagerVar= LinearLayoutManager(this) @@ -32,10 +34,27 @@ class ActivitySinglePost : AppCompatActivity() { // set recyclerView attributes recyclerView?.setHasFixedSize(true) recyclerView?.layoutManager = layoutManagerVar - recyclerView?.adapter = adapterVar + recyclerView?.adapter = adapterVar*/ + loadTextComponents() + } + + private fun loadImages(){ + } - private fun loadData() { + private fun loadTextComponents() { + binding.apply { + tvTitle.text= post.location.name + tvTitle.invalidate() + tvLocationType.text=post.location.type.name + tvLocationType.invalidate() + tvLocationParent.text=post.location.country + tvLocationParent.invalidate() + tvRating.text=post.ratings.toString() + tvRating.invalidate() + tvNumberOfRatings.text=post.ratings.toString() + tvNumberOfRatings.invalidate() + } } } \ 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 b2eaa30..3d2bf46 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 @@ -6,10 +6,11 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.Models.PostImage import com.example.brzodolokacije.databinding.PostImageBinding import com.example.brzodolokacije.databinding.PostPreviewBinding -class PostImageAdapter(val items : MutableList) +class PostImageAdapter(val items : MutableList) : RecyclerView.Adapter(){ //constructer has one argument - list of objects that need to be displayed //it is bound to xml of single item @@ -25,9 +26,9 @@ class PostImageAdapter(val items : MutableList) } override fun getItemCount() = items.size inner class ViewHolder(itemView : PostImageBinding) : RecyclerView.ViewHolder(itemView.root){ - fun bind(item : java.io.File){ + fun bind(item : PostImage){ binding.apply { - locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream())) + //locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream())) } } } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index 9da0014..8e6093e 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -2,10 +2,13 @@ package com.example.brzodolokacije.Adapters import android.app.Activity import android.content.Context +import android.content.Intent +import android.os.Bundle import android.view.LayoutInflater import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Activities.ActivitySinglePost import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.databinding.PostPreviewBinding @@ -23,6 +26,14 @@ class ShowPostsAdapter (val activity:Activity,val items : MutableList ) -data class PostPreview( +@Parcelize +data class PostPreview ( var _id:String, var ownerId:String, var location:Location, @@ -32,16 +35,16 @@ data class PostPreview( var ratings:Float, var comments:List, var images:List -) - +):Parcelable +@Parcelize data class Comment ( var userId:String, var comment:String, var parent:Comment, var timeStamp: LocalDateTime -) +):Parcelable data class Rating( var useridval :String, diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt index d024272..93326b3 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt @@ -1,6 +1,10 @@ package com.example.brzodolokacije.Models +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +@Parcelize data class PostImage ( var _id:String, var path:String - ) \ No newline at end of file + ): Parcelable \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml index 5688acd..d323d0c 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml @@ -23,20 +23,20 @@ android:orientation="vertical"> @@ -51,35 +51,35 @@ android:orientation="horizontal">