From f7e16147ecb993af365c6d132f2782b73255fe2c Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Tue, 6 Dec 2022 15:13:32 +0100 Subject: Prepravljen activitySinglePost. Povezan prikaz komentara. Povezan prikaz opisa. --- .../app/src/main/AndroidManifest.xml | 1 + .../Activities/ActivitySinglePost.kt | 77 +++++++------ .../Activities/ActivityUserProfile.kt | 1 + .../Fragments/FragmentSinglePostComments.kt | 31 +++-- .../Fragments/FragmentSinglePostDescription.kt | 127 +++++++++++---------- .../src/main/res/layout/activity_single_post.xml | 6 +- .../res/layout/fragment_single_post_comments.xml | 5 +- .../layout/fragment_single_post_description.xml | 25 ++-- .../app/src/main/res/layout/post_image.xml | 14 +-- 9 files changed, 153 insertions(+), 134 deletions(-) diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index a059c5b..49e17d8 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -91,6 +91,7 @@ android:screenOrientation="portrait" /> ) layoutManagerImages= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) recyclerViewImages = binding.rvMain + //DODATI SLIKE + recyclerViewImages?.setHasFixedSize(true) + recyclerViewImages?.layoutManager = layoutManagerImages + recyclerViewImages?.adapter = adapterImages loadTextComponents() - /* - buildRecyclerViewComments() - requestGetComments() + var fm: FragmentTransaction =supportFragmentManager.beginTransaction() + val fragment = FragmentSinglePostDescription() + val b = Bundle() + b.putString("post", Gson().toJson(post)) + fragment.arguments = b + fm.replace(R.id.flSinglePostFragmentContainer, fragment) + fm.commit() + + /* favouriteImage=binding.ivFavourite // set recyclerView attributes - recyclerViewImages?.setHasFixedSize(true) - recyclerViewImages?.layoutManager = layoutManagerImages - recyclerViewImages?.adapter = adapterImages - - setRatingListeners() - translateOwnerIdToName(post.ownerId) loadFavourite() - val alreadyrated= RatingReceive(starNumber.toInt(),post._id) - requestAddRating(alreadyrated) + */ + translateOwnerIdToName(post.ownerId) + binding.tvUser.setOnClickListener { val intent: Intent = Intent(this@ActivitySinglePost,ActivityUserProfile::class.java) - var args= Bundle() - args.putString("post", Gson().toJson(post)) + var b= Bundle() + intent.putExtra("user", Gson().toJson(userData)) this.startActivity(intent) } - binding.tvLocationType.setOnClickListener{ - getMap() - - } - + //DATA CONTAINER PROMENA VISINE btnChangeHeightUp.setOnClickListener { btnChangeHeightUp.isVisible=false btnChangeHeightUp.isGone=true @@ -126,6 +131,10 @@ class ActivitySinglePost : AppCompatActivity() { linearLayout2.setMinHeight(0); linearLayout2.setMinimumHeight(0); linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; + recyclerViewImages?.setHasFixedSize(true) + recyclerViewImages?.layoutManager = layoutManagerImages + recyclerViewImages?.adapter = adapterImages + } btnChangeHeightDown.setOnClickListener { btnChangeHeightDown.isVisible=false @@ -137,6 +146,10 @@ class ActivitySinglePost : AppCompatActivity() { linearLayout2.setMinHeight(0); linearLayout2.setMinimumHeight(0); linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.WRAP_CONTENT; + recyclerViewImages?.setHasFixedSize(true) + recyclerViewImages?.layoutManager = layoutManagerImages + recyclerViewImages?.adapter = adapterImages + } /*favouriteImage!!.setOnClickListener{ @@ -202,11 +215,6 @@ class ActivitySinglePost : AppCompatActivity() { */ fun getMap(){ - /*val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) - mapDialogue.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.argb(100, 0, 0, 0))) - mapDialogue.setContentView(R.layout.map_dialogue) - mapDialogue.setCancelable(true) - mapDialogue.setCanceledOnTouchOutside(true)*/ var map: MapView? = null Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this)); map=findViewById(R.id.MapDialogueMapView) @@ -233,22 +241,22 @@ class ActivitySinglePost : AppCompatActivity() { binding.apply { tvTitle.text= post.location.name tvTitle.invalidate() - tvLocationType.text="Otvorite Mapu" - tvLocationType.setTextColor(Color.BLUE) + tvLocationType.text=post.location.country.toString() tvLocationType.invalidate() - tvLocationParent.text="TODO" + tvLocationParent.text=post.location.city.toString() tvLocationParent.invalidate() tvRating.text=post.ratings.toString() tvRating.invalidate() tvNumberOfRatings.text=post.ratingscount.toString() tvNumberOfRatings.invalidate() - tvDescription.text=post.description - tvDescription.invalidate() + //tvRating.text=String.format("%.2f",data.ratings) + //tvNumberOfRatings.text=String.format("%d",data.ratingscount) + } } - /* + fun addView() { var token= SharedPreferencesHelper.getValue("jwt", this).toString() val Api= RetrofitHelper.getInstance() @@ -271,12 +279,12 @@ class ActivitySinglePost : AppCompatActivity() { val request= api.getProfileFromId("Bearer " + token, id) request.enqueue(object : retrofit2.Callback { override fun onResponse(call: Call, - response: Response) { + response: Response + ) { if (response.body() == null) { return } userData = response.body()!! - binding.tvUser.text= userData!!.username.toString() } @@ -286,5 +294,4 @@ class ActivitySinglePost : AppCompatActivity() { }) } -*/ } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt index 85e342c..4962006 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt @@ -57,6 +57,7 @@ class ActivityUserProfile : AppCompatActivity() { showFollowing=findViewById(id.tvActivityUserProfileFollow) showFollowers=findViewById(R.id.tvActivityUserProfileFollowers) + val jsonMyObject: String val extras = intent.extras if (extras != null) { diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostComments.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostComments.kt index 43c1967..45fbcba 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostComments.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostComments.kt @@ -11,6 +11,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import android.widget.ImageView import android.widget.TextView +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Adapters.CommentsAdapter @@ -56,6 +57,20 @@ class FragmentSinglePostComments : Fragment() { newComment=view.findViewById(R.id.NewComment) postComment=view.findViewById(R.id.btnPostComment) + buildRecyclerViewComments() + requestGetComments() + + postComment.setOnClickListener { + if(newComment.text.isNotEmpty()){ + val comment=CommentReceive(newComment.text.toString(),"") + requestAddComment(comment) + + + } + else{ + Toast.makeText(requireActivity(),"Unesite tekst komentara.",Toast.LENGTH_LONG).show() + } + } return view } @@ -68,10 +83,10 @@ class FragmentSinglePostComments : Fragment() { override fun onResponse(call: Call, response: Response) { if(response.isSuccessful){ - var newComment=response.body()!! - requestGetComments(newComment) - //newComment.text.clear() - //hideKeyboard(newComment) + var newComment1=response.body()!! + requestGetComments(newComment1) + newComment.text.clear() + hideKeyboard(newComment) }else{ if(response.errorBody()!=null) @@ -130,10 +145,10 @@ class FragmentSinglePostComments : Fragment() { recyclerViewComments!!.layoutManager=layoutManagerComments recyclerViewComments!!.adapter= adapterComments } - /*fun hideKeyboard(item: EditText){ - var imm: InputMethodManager =this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + fun hideKeyboard(item: EditText){ + var imm: InputMethodManager =activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(item.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) - }*/ + } fun countComments(comments:List):Int{ var count:Int=0 @@ -145,7 +160,7 @@ class FragmentSinglePostComments : Fragment() { return count } - public fun addedComment(){ + fun addedComment(){ commentsCount.text=(Integer.parseInt(commentsCount.text.toString())+1).toString() commentsCount.invalidate() } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt index 63e7b6a..877fbc4 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt @@ -5,6 +5,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageButton import android.widget.ImageView import android.widget.TextView import android.widget.Toast @@ -37,6 +38,8 @@ class FragmentSinglePostDescription : Fragment() { var view=inflater.inflate(R.layout.fragment_single_post_description, container, false) + + //uzmi post prosledjen iz single post var args = arguments var jsonPostObject = args!!.getString("post") @@ -53,66 +56,70 @@ class FragmentSinglePostDescription : Fragment() { star4=view.findViewById(R.id.rateStar4) star5=view.findViewById(R.id.rateStar5) - fun setRatingListeners() { - val emptyStar = R.drawable.ic_round_star_outline_24 - val fullStar = R.drawable.ic_baseline_star_rate_24 - - star1.setOnClickListener { - //Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show() - star1.setImageResource(fullStar) - star2.setImageResource(emptyStar) - star3.setImageResource(emptyStar) - star4.setImageResource(emptyStar) - star5.setImageResource(emptyStar) - starNumber=1 - rate(starNumber) - } - star1.setOnClickListener { - //Toast.makeText(this,"kliknuta druga zvezdica",Toast.LENGTH_SHORT).show() - star1.setImageResource(fullStar) - star2.setImageResource(fullStar) - star3.setImageResource(emptyStar) - star4.setImageResource(emptyStar) - star5.setImageResource(emptyStar) - starNumber=2 - rate(starNumber) - } - star1.setOnClickListener { - //Toast.makeText(this,"kliknuta treca zvezdica",Toast.LENGTH_SHORT).show() - star1.setImageResource(fullStar) - star2.setImageResource(fullStar) - star3.setImageResource(fullStar) - star4.setImageResource(emptyStar) - star5.setImageResource(emptyStar) - starNumber=3 - rate(starNumber) - } - star1.setOnClickListener { - Toast.makeText(requireActivity(),"kliknuta cetvrta zvezdica",Toast.LENGTH_SHORT).show() - star1.setImageResource(fullStar) - star2.setImageResource(fullStar) - star3.setImageResource(fullStar) - star4.setImageResource(fullStar) - star5.setImageResource(emptyStar) - starNumber=4 - rate(starNumber) - } - star1.setOnClickListener { - //Toast.makeText(this,"kliknuta peta zvezdica",Toast.LENGTH_SHORT).show() - star1.setImageResource(fullStar) - star2.setImageResource(fullStar) - star3.setImageResource(fullStar) - star4.setImageResource(fullStar) - star5.setImageResource(fullStar) - starNumber=5 - rate(starNumber) - } + setRatingListeners() + val alreadyrated= RatingReceive(starNumber.toInt(),post._id) + requestAddRating(alreadyrated) - } - return view } + fun setRatingListeners() { + val emptyStar = R.drawable.ic_round_star_outline_24 + val fullStar = R.drawable.ic_baseline_star_rate_24 + + star1.setOnClickListener { + //Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show() + star1.setImageResource(fullStar) + star2.setImageResource(emptyStar) + star3.setImageResource(emptyStar) + star4.setImageResource(emptyStar) + star5.setImageResource(emptyStar) + starNumber=1 + rate(starNumber) + } + star1.setOnClickListener { + //Toast.makeText(this,"kliknuta druga zvezdica",Toast.LENGTH_SHORT).show() + star1.setImageResource(fullStar) + star2.setImageResource(fullStar) + star3.setImageResource(emptyStar) + star4.setImageResource(emptyStar) + star5.setImageResource(emptyStar) + starNumber=2 + rate(starNumber) + } + star1.setOnClickListener { + //Toast.makeText(this,"kliknuta treca zvezdica",Toast.LENGTH_SHORT).show() + star1.setImageResource(fullStar) + star2.setImageResource(fullStar) + star3.setImageResource(fullStar) + star4.setImageResource(emptyStar) + star5.setImageResource(emptyStar) + starNumber=3 + rate(starNumber) + } + star1.setOnClickListener { + Toast.makeText(requireActivity(),"kliknuta cetvrta zvezdica",Toast.LENGTH_SHORT).show() + star1.setImageResource(fullStar) + star2.setImageResource(fullStar) + star3.setImageResource(fullStar) + star4.setImageResource(fullStar) + star5.setImageResource(emptyStar) + starNumber=4 + rate(starNumber) + } + star1.setOnClickListener { + //Toast.makeText(this,"kliknuta peta zvezdica",Toast.LENGTH_SHORT).show() + star1.setImageResource(fullStar) + star2.setImageResource(fullStar) + star3.setImageResource(fullStar) + star4.setImageResource(fullStar) + star5.setImageResource(fullStar) + starNumber=5 + rate(starNumber) + } + + + } fun rate(starNumber:Number){ if(starNumber.toInt()>0){ @@ -125,12 +132,10 @@ class FragmentSinglePostDescription : Fragment() { val postApi = RetrofitHelper.getInstance() val token = SharedPreferencesHelper.getValue("jwt", requireActivity()) val request = postApi.addRating("Bearer " + token, post._id, rating) - request.enqueue(object : retrofit2.Callback { - override fun onResponse(call: Call, response: Response) { + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { var data = response.body()!! - //binding.tvRating.text=String.format("%.2f",data.ratings) - //binding.tvNumberOfRatings.text=String.format("%d",data.ratingscount) Log.d( "--------------", data.ratings.toString() + " " + data.ratingscount.toString() @@ -161,7 +166,7 @@ class FragmentSinglePostDescription : Fragment() { } - override fun onFailure(call: Call, t: Throwable) { + override fun onFailure(call: Call, t: Throwable) { Log.d("main2", t.message.toString()) } }) 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 108e1cf..cf5327a 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 @@ -24,12 +24,12 @@ + app:layout_constraintTop_toBottomOf="@+id/postCommentLayout"> @@ -55,7 +56,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - app:layout_constraintBottom_toBottomOf="parent"> + app:layout_constraintTop_toBottomOf="@+id/constraintLayout"> - - + app:layout_constraintTop_toTopOf="parent" /> + android:padding="5dp"> - \ No newline at end of file -- cgit v1.2.3