From c8568d0fdb752c1330e7b35b25a4813f8b44e7f8 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Sat, 12 Nov 2022 21:15:13 +0100 Subject: Dodato ocenjivanje objava na klijentu #30 --- .../Activities/ActivitySinglePost.kt | 98 +++++- .../brzodolokacije/Interfaces/IBackendApi.kt | 5 +- .../java/com/example/brzodolokacije/Models/Post.kt | 5 + .../app/src/main/res/drawable/empty_star.webp | Bin 0 -> 5506 bytes .../app/src/main/res/drawable/full_star.png | Bin 0 -> 10261 bytes .../src/main/res/layout/activity_single_post.xml | 351 +++++++++++---------- 6 files changed, 288 insertions(+), 171 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/empty_star.webp create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/full_star.png (limited to 'Client') 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 32cb3ef..69a2bed 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,16 +1,28 @@ package com.example.brzodolokacije.Activities +import android.content.res.Resources import android.os.Bundle import android.os.Handler import android.os.Looper +import android.util.Log +import android.widget.ImageButton +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity 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.PostImage import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.Models.Rating +import com.example.brzodolokacije.Models.RatingReceive import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.ActivitySinglePostBinding +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class ActivitySinglePost : AppCompatActivity() { @@ -19,6 +31,7 @@ class ActivitySinglePost : AppCompatActivity() { private var adapterVar: RecyclerView.Adapter? = null private var recyclerView: RecyclerView?=null private lateinit var post:PostPreview + private var starNumber:Number=0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -36,10 +49,91 @@ class ActivitySinglePost : AppCompatActivity() { recyclerView?.layoutManager = layoutManagerVar recyclerView?.adapter = adapterVar loadTextComponents() + setRatingListeners() } - private fun loadImages(){ + fun setRatingListeners(){ + val emptyStar=R.drawable.empty_star + val fullStar=R.drawable.full_star + + binding.rateStar1.setOnClickListener { + Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show() + binding.rateStar1.setImageResource(fullStar) + binding.rateStar2.setImageResource(emptyStar) + binding.rateStar3.setImageResource(emptyStar) + binding.rateStar4.setImageResource(emptyStar) + binding.rateStar5.setImageResource(emptyStar) + starNumber=1 + } + binding.rateStar2.setOnClickListener { + Toast.makeText(this,"kliknuta druga zvezdica",Toast.LENGTH_SHORT).show() + binding.rateStar1.setImageResource(fullStar) + binding.rateStar2.setImageResource(fullStar) + binding.rateStar3.setImageResource(emptyStar) + binding.rateStar4.setImageResource(emptyStar) + binding.rateStar5.setImageResource(emptyStar) + starNumber=2 + } + binding.rateStar3.setOnClickListener { + Toast.makeText(this,"kliknuta treca zvezdica",Toast.LENGTH_SHORT).show() + binding.rateStar1.setImageResource(fullStar) + binding.rateStar2.setImageResource(fullStar) + binding.rateStar3.setImageResource(fullStar) + binding.rateStar4.setImageResource(emptyStar) + binding.rateStar5.setImageResource(emptyStar) + starNumber=3 + } + binding.rateStar4.setOnClickListener { + Toast.makeText(this,"kliknuta cetvrta zvezdica",Toast.LENGTH_SHORT).show() + binding.rateStar1.setImageResource(fullStar) + binding.rateStar2.setImageResource(fullStar) + binding.rateStar3.setImageResource(fullStar) + binding.rateStar4.setImageResource(fullStar) + binding.rateStar5.setImageResource(emptyStar) + starNumber=4 + } + binding.rateStar5.setOnClickListener { + Toast.makeText(this,"kliknuta peta zvezdica",Toast.LENGTH_SHORT).show() + binding.rateStar1.setImageResource(fullStar) + binding.rateStar2.setImageResource(fullStar) + binding.rateStar3.setImageResource(fullStar) + binding.rateStar4.setImageResource(fullStar) + binding.rateStar5.setImageResource(fullStar) + starNumber=5 + } + binding.submitRating.setOnClickListener{ + if(starNumber.toInt()>0){ + val rating= RatingReceive(starNumber.toInt(),post._id) + requestAddRating(rating) + Toast.makeText(this,"poslato",Toast.LENGTH_SHORT).show() + } + } + + } + + fun requestAddRating(rating:RatingReceive){ + val postApi= RetrofitHelper.getInstance() + val token= SharedPreferencesHelper.getValue("jwt", this@ActivitySinglePost) + val request=postApi.addRating("Bearer "+token,post._id,rating) + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful){ + Toast.makeText( + this@ActivitySinglePost, "prosao zahtev", Toast.LENGTH_LONG + ).show() + }else{ + if(response.errorBody()!=null) + Log.d("main1",response.errorBody().toString()) + } + + + } + + override fun onFailure(call: Call, t: Throwable) { + Log.d("main2",t.message.toString()) + } + }) } private fun loadTextComponents() { @@ -59,4 +153,4 @@ class ActivitySinglePost : AppCompatActivity() { } } -} \ No newline at end of file +} 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 c712597..ac13bca 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 @@ -6,6 +6,8 @@ import com.example.brzodolokacije.Models.Auth.Register import com.example.brzodolokacije.Models.Auth.ResetPass import com.example.brzodolokacije.Models.Location import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.Models.Rating +import com.example.brzodolokacije.Models.RatingReceive import okhttp3.MultipartBody import okhttp3.Request import okhttp3.RequestBody @@ -36,7 +38,8 @@ interface IBackendApi { ,@Part("description") description:RequestBody ,@Part("locationId") locationId:RequestBody ):Call - + @POST("api/Post/posts/{id}/addrating") + fun addRating(@Header("Authorization") authHeader:String,@Path("id") id:String,@Body rating: RatingReceive):Call //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt index 9b9afaa..f24e72f 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt @@ -49,4 +49,9 @@ data class Comment ( data class Rating( var useridval :String, var rating:Int +) + +data class RatingReceive( + var rating:Int, + var postId:String ) \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/empty_star.webp b/Client/BrzoDoLokacije/app/src/main/res/drawable/empty_star.webp new file mode 100644 index 0000000..cea48aa Binary files /dev/null and b/Client/BrzoDoLokacije/app/src/main/res/drawable/empty_star.webp differ diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/full_star.png b/Client/BrzoDoLokacije/app/src/main/res/drawable/full_star.png new file mode 100644 index 0000000..e3f605d Binary files /dev/null and b/Client/BrzoDoLokacije/app/src/main/res/drawable/full_star.png differ 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 436784e..9c30136 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 @@ -1,4 +1,6 @@ + + - - + + + + + + + + + + + + + android:layout_marginTop="20dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvLocationParent"> - + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + app:layout_constraintEnd_toStartOf="@+id/tvNumberOfRatings" + tools:layout_editor_absoluteY="4dp" /> + android:text="(10,500)" + app:layout_constraintEnd_toEndOf="parent" + tools:layout_editor_absoluteY="4dp" /> - - - - - - - - - - - - - + android:background="@drawable/rounded_picture_background" + android:elevation="5dp" + android:padding="@dimen/component_padding" + app:layout_constraintTop_toBottomOf="@+id/linearLayout" + tools:layout_editor_absoluteX="0dp"> + android:text="Opis" + android:textStyle="bold" /> + android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" + app:layout_constraintTop_toBottomOf="@+id/tvDescriptionLabel" /> + - - - - - - - - + + + + + + - - - - - - - - - - - -