diff options
Diffstat (limited to 'Client')
7 files changed, 301 insertions, 68 deletions
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 d1ec76b..e1c2f80 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 @@ -3,9 +3,12 @@ package com.example.brzodolokacije.Activities  import android.content.Intent  import android.graphics.Color  import android.graphics.drawable.ColorDrawable +import android.media.Image  import android.os.Bundle  import android.preference.PreferenceManager +import android.provider.ContactsContract.CommonDataKinds.Im  import android.util.Log +import android.widget.ImageButton  import android.widget.TextView  import android.widget.Toast  import androidx.appcompat.app.AppCompatActivity @@ -66,6 +69,9 @@ class ActivitySinglePost : AppCompatActivity() {          setRatingListeners()          translateOwnerIdToName(post.ownerId) +        val alreadyrated= RatingReceive(starNumber.toInt(),post._id) +        requestAddRating(alreadyrated) +          binding.tvUser.setOnClickListener {              val intent: Intent = Intent(this@ActivitySinglePost,ActivityUserProfile::class.java)              var b= Bundle() @@ -115,13 +121,29 @@ class ActivitySinglePost : AppCompatActivity() {          recyclerViewComments!!.adapter= adapterComments      } -    fun setRatingListeners(){ -        val emptyStar=R.drawable.empty_star -        val fullStar=R.drawable.full_star -        //var starlist:List<ImageButton> = mutableListOf() +    fun setRatingListeners() { +            val emptyStar = R.drawable.empty_star +            val fullStar = R.drawable.full_star +            /*var starlist: ArrayList<ImageButton> = arrayListOf() +            starlist.add(findViewById(R.id.rateStar1) as ImageButton) +            starlist.add(findViewById(R.id.rateStar2) as ImageButton) +            starlist.add(findViewById(R.id.rateStar3) as ImageButton) +            starlist.add(findViewById(R.id.rateStar4) as ImageButton) +            starlist.add(findViewById(R.id.rateStar5) as ImageButton) +            for (i in 0..4) { +                starlist[i].setOnClickListener { +                    for (j in 1..i) { +                        starlist[j].setImageResource(fullStar) +                    } +                    for (k in i..5) { +                        starlist[k].setImageResource(emptyStar) +                    } +                    starNumber = i+1; +                } +            }*/          binding.rateStar1.setOnClickListener { -            Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show() +            //Toast.makeText(this,"kliknuta prva zvezdica",Toast.LENGTH_SHORT).show()              binding.rateStar1.setImageResource(fullStar)              binding.rateStar2.setImageResource(emptyStar)              binding.rateStar3.setImageResource(emptyStar) @@ -130,7 +152,7 @@ class ActivitySinglePost : AppCompatActivity() {              starNumber=1          }          binding.rateStar2.setOnClickListener { -            Toast.makeText(this,"kliknuta druga zvezdica",Toast.LENGTH_SHORT).show() +            //Toast.makeText(this,"kliknuta druga zvezdica",Toast.LENGTH_SHORT).show()              binding.rateStar1.setImageResource(fullStar)              binding.rateStar2.setImageResource(fullStar)              binding.rateStar3.setImageResource(emptyStar) @@ -139,7 +161,7 @@ class ActivitySinglePost : AppCompatActivity() {              starNumber=2          }          binding.rateStar3.setOnClickListener { -            Toast.makeText(this,"kliknuta treca zvezdica",Toast.LENGTH_SHORT).show() +            //Toast.makeText(this,"kliknuta treca zvezdica",Toast.LENGTH_SHORT).show()              binding.rateStar1.setImageResource(fullStar)              binding.rateStar2.setImageResource(fullStar)              binding.rateStar3.setImageResource(fullStar) @@ -148,7 +170,7 @@ class ActivitySinglePost : AppCompatActivity() {              starNumber=3          }          binding.rateStar4.setOnClickListener { -            Toast.makeText(this,"kliknuta cetvrta zvezdica",Toast.LENGTH_SHORT).show() +            //Toast.makeText(this,"kliknuta cetvrta zvezdica",Toast.LENGTH_SHORT).show()              binding.rateStar1.setImageResource(fullStar)              binding.rateStar2.setImageResource(fullStar)              binding.rateStar3.setImageResource(fullStar) @@ -157,7 +179,7 @@ class ActivitySinglePost : AppCompatActivity() {              starNumber=4          }          binding.rateStar5.setOnClickListener { -            Toast.makeText(this,"kliknuta peta zvezdica",Toast.LENGTH_SHORT).show() +            //Toast.makeText(this,"kliknuta peta zvezdica",Toast.LENGTH_SHORT).show()              binding.rateStar1.setImageResource(fullStar)              binding.rateStar2.setImageResource(fullStar)              binding.rateStar3.setImageResource(fullStar) @@ -194,6 +216,7 @@ class ActivitySinglePost : AppCompatActivity() {          request.enqueue(object : retrofit2.Callback<CommentSend?> {              override fun onResponse(call: Call<CommentSend?>, response: Response<CommentSend?>) {                  if(response.isSuccessful){ +                      var newComment=response.body()!!                      requestGetComments(newComment)                      binding.NewComment.text.clear() @@ -251,15 +274,31 @@ class ActivitySinglePost : AppCompatActivity() {          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<ResponseBody?> { -            override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) { +        request.enqueue(object : retrofit2.Callback<RatingData?> { +            override fun onResponse(call: Call<RatingData?>, response: Response<RatingData?>) {                  if(response.isSuccessful){ -                    //zasad hardkodovano, zameniti te vrednosti sa brojem ocena kada se doda -                    post.ratings=((post.ratings)*10+rating.rating)/11 -                    binding.tvRating.text=String.format("%.2f",post.ratings) -                    Toast.makeText( -                        this@ActivitySinglePost, "prosao zahtev", Toast.LENGTH_LONG -                    ).show() +                    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()) +                    when(data.myrating){ +                        1->binding.rateStar1.performClick() +                        2->binding.rateStar2.performClick() +                        3->binding.rateStar3.performClick() +                        4->binding.rateStar4.performClick() +                        5->binding.rateStar5.performClick() +                        else->{ +                            val emptyStar = R.drawable.empty_star +                            binding.rateStar1.setImageResource(emptyStar) +                            binding.rateStar2.setImageResource(emptyStar) +                            binding.rateStar3.setImageResource(emptyStar) +                            binding.rateStar4.setImageResource(emptyStar) +                            binding.rateStar5.setImageResource(emptyStar) +                        } +                    } +                    /*Toast.makeText( +                            this@ActivitySinglePost, "prosao zahtev", Toast.LENGTH_LONG +                    ).show()*/                  }else{                      if(response.errorBody()!=null)                          Log.d("main1",response.errorBody().toString()) @@ -268,7 +307,7 @@ class ActivitySinglePost : AppCompatActivity() {              } -            override fun onFailure(call: Call<ResponseBody?>, t: Throwable) { +            override fun onFailure(call: Call<RatingData?>, t: Throwable) {                  Log.d("main2",t.message.toString())              }          }) @@ -284,7 +323,7 @@ class ActivitySinglePost : AppCompatActivity() {              tvLocationParent.invalidate()              tvRating.text=post.ratings.toString()              tvRating.invalidate() -            tvNumberOfRatings.text=post.ratings.toString() +            tvNumberOfRatings.text=post.ratingscount.toString()              tvNumberOfRatings.invalidate()              tvDescription.text=post.description              tvDescription.invalidate() 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 c03dbd3..5119da9 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 @@ -1,17 +1,15 @@  package com.example.brzodolokacije.Activities  import android.annotation.SuppressLint -import android.graphics.Color -import android.graphics.PorterDuff -import android.graphics.drawable.Drawable  import android.os.Bundle  import android.util.Log  import android.widget.*  import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment +import androidx.core.view.isVisible +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction  import com.bumptech.glide.Glide -import com.example.brzodolokacije.Fragments.FragmentShowUserPosts +import com.example.brzodolokacije.Fragments.FragmentUserPostsProfileActivity  import com.example.brzodolokacije.Models.UserReceive  import com.example.brzodolokacije.R  import com.example.brzodolokacije.R.* @@ -21,7 +19,6 @@ import com.google.gson.Gson  import retrofit2.Call  import retrofit2.Callback  import retrofit2.Response -import java.security.AccessController.getContext  class ActivityUserProfile : AppCompatActivity() { @@ -35,9 +32,9 @@ class ActivityUserProfile : AppCompatActivity() {      private lateinit var fragmentContainer: FrameLayout      private lateinit var userObject:UserReceive      private lateinit var openChat:ImageButton +    private lateinit var unfollowUser:Button -    private lateinit var followersList: MutableList<UserReceive> -    private lateinit var followingList: MutableList<UserReceive> +    private var follow:Boolean=false      override fun onCreate(savedInstanceState: Bundle?) {          super.onCreate(savedInstanceState) @@ -49,6 +46,7 @@ class ActivityUserProfile : AppCompatActivity() {          followingNumber=findViewById(id.tvActivityUserProfileFollowNo)          profilePicture=findViewById(id.tvActivityProfileProfilePicture)          followUser=findViewById(id.btnActivityUserProfileFollow) +        unfollowUser=findViewById(id.btnActivityUserProfileUnFollow)          showUserPosts=findViewById(id.btnActivityUserProfileShowPosts)          fragmentContainer=findViewById(id.flActivityProfileFragmentContainer)          openChat=findViewById(id.activityUserProfileOpenChat) @@ -74,42 +72,79 @@ class ActivityUserProfile : AppCompatActivity() {              }          } +          checkIfAlreadyFollow() +        updateUserData()          followUser.setOnClickListener{ +                val api = RetrofitHelper.getInstance() +                val token = SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile) +                var data = api.addFollower("Bearer " + token, userObject._id); +                data.enqueue(object : Callback<Boolean> { +                    override fun onResponse( +                        call: Call<Boolean>, +                        response: Response<Boolean> +                    ) { +                        unfollowUser.isVisible=true +                        unfollowUser.isClickable=true +                        unfollowUser.isEnabled=true +                        followUser.isVisible=false +                        followUser.isClickable=false +                        followUser.isEnabled=false +                        updateUserData() + +                        Toast.makeText( +                            this@ActivityUserProfile, "PRATITE KORISNIKA", Toast.LENGTH_LONG +                        ).show(); +                    } + +                    override fun onFailure(call: Call<Boolean>, t: Throwable) { +                        Toast.makeText( +                            this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG +                        ).show(); +                    } +                }) -            checkIfAlreadyFollow() - +        } +        unfollowUser.setOnClickListener { +                val api = RetrofitHelper.getInstance() +                val token = SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile) +                var data = api.unfollow("Bearer " + token, userObject._id); +                data.enqueue(object : Callback<Boolean> { +                    override fun onResponse( +                        call: Call<Boolean>, +                        response: Response<Boolean> +                    ) { +                        unfollowUser.isVisible=false +                        unfollowUser.isClickable=false +                        unfollowUser.isEnabled=false +                        followUser.isVisible=true +                        followUser.isClickable=true +                        followUser.isEnabled=true +                        updateUserData() +                        Toast.makeText( +                            this@ActivityUserProfile, "VIŠE NE PRATITE KORISNIKA", Toast.LENGTH_LONG +                        ).show(); +                    } + +                    override fun onFailure(call: Call<Boolean>, t: Throwable) { +                        Toast.makeText( +                            this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG +                        ).show(); +                    } +                }) -            val api = RetrofitHelper.getInstance() -            val token= SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile) -            var data=api.addFollower("Bearer "+token,userObject._id); -            data.enqueue(object : Callback<Boolean> { -                override fun onResponse( -                    call: Call<Boolean>, -                    response: Response<Boolean> -                ) { -                    Toast.makeText( -                        this@ActivityUserProfile, "PRATITE KORISNIKA", Toast.LENGTH_LONG -                    ).show(); -                } -                override fun onFailure(call: Call<Boolean>, t: Throwable) { -                    Toast.makeText( -                        this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG -                    ).show(); -                } -            })          }          showUserPosts.setOnClickListener { -            val bundle = Bundle() -            bundle.putString("user", Gson().toJson(userObject)) -            val fragment = Fragment() -            fragment.arguments = bundle -            getSupportFragmentManager().beginTransaction() -                .replace(id.flActivityProfileFragmentContainer,FragmentShowUserPosts()).commit() - +            var fm: FragmentTransaction =supportFragmentManager.beginTransaction() +            val fragment = FragmentUserPostsProfileActivity() +            val b = Bundle() +            b.putString("userId", userObject._id.toString()) +            fragment.arguments = b +            fm.replace(R.id.flActivityProfileFragmentContainer, fragment) +            fm.commit()          }      } @@ -132,15 +167,34 @@ class ActivityUserProfile : AppCompatActivity() {                  }                  var follow = response.body()!!                  if(follow){ +                      Log.d("success","follow") -                    followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_remove_24,0,0,0) +                    /*followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_remove_24,0,0,0)                      followUser.text="Ne prati više" - +                    follow=false +                    */ +                    unfollowUser.isVisible=true +                    unfollowUser.isClickable=true +                    unfollowUser.isEnabled=true +                    followUser.isVisible=false +                    followUser.isClickable=false +                    followUser.isEnabled=false                  } -                if(!follow){ +                else{                      Log.d("success","not follow") -                    followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_add_alt_24,0,0,0) +                    /*followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_add_alt_24,0,0,0)                      followUser.text="Prati" +                    follow=true +                    */ + +                    unfollowUser.isVisible=false +                    unfollowUser.isClickable=false +                    unfollowUser.isEnabled=false +                    followUser.isVisible=true +                    followUser.isClickable=true +                    followUser.isEnabled=true + +                  }              } @@ -148,7 +202,28 @@ class ActivityUserProfile : AppCompatActivity() {      } -    fun checkIfAlreadyFollowChangeButton(){ +    fun updateUserData(){ +        val api = RetrofitHelper.getInstance() +        val token = SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile) +        var data = api.getProfileFromId("Bearer " + token, userObject._id); +        data.enqueue(object : Callback<UserReceive> { +            override fun onResponse( +                call: Call<UserReceive>, +                response: Response<UserReceive> +            ) { +                var userData=response.body()!! +                name.text=userData.name +                postsNumber.text=userData.postNumber.toString() +                followersNumber.text=userData.followersCount.toString() +                followingNumber.text=userData.followingCount.toString() +            } +            override fun onFailure(call: Call<UserReceive>, t: Throwable) { +                Toast.makeText( +                    this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG +                ).show(); +            } +        })      } +  }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt new file mode 100644 index 0000000..d841430 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt @@ -0,0 +1,64 @@ +package com.example.brzodolokacije.Fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.MyPostsAdapter +import com.example.brzodolokacije.Adapters.ShowPostsHomePageAdapter +import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + + +class FragmentUserPostsProfileActivity : Fragment() { +    private lateinit var recyclerView: RecyclerView +    override fun onCreateView( +        inflater: LayoutInflater, container: ViewGroup?, +        savedInstanceState: Bundle? +    ): View? { +        // Inflate the layout for this fragment +        var view =inflater.inflate(R.layout.fragment_user_posts_profile_activity, container, false) + +        recyclerView=view.findViewById(R.id.rvFragmentUserPostsProfileActivity) + +        val bundle = arguments +        val userId = bundle!!.getString("userId") + +        val api = RetrofitHelper.getInstance() +        val token = SharedPreferencesHelper.getValue("jwt", requireActivity()) +        var data = api.getUsersPosts("Bearer " + token, userId!!); +        data.enqueue(object : Callback<MutableList<PostPreview>> { +            override fun onResponse( +                call: Call<MutableList<PostPreview>>, +                response: Response<MutableList<PostPreview>> +            ) { +                if (response.body() == null) { +                    return +                } +                var posts = response.body()!!.toMutableList<PostPreview>() +                recyclerView.apply { +                    layoutManager= GridLayoutManager(requireContext(),3, +                        GridLayoutManager.VERTICAL,false) +                    adapter= MyPostsAdapter(requireActivity(),posts) +                } +            } + +            override fun onFailure(call: Call<MutableList<PostPreview>>, t: Throwable) { +            } +        }) + + +        return view +    } + + +}
\ 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 ce8d7e3..f753f43 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 @@ -38,7 +38,7 @@ interface IBackendApi {                                                              ,@Part("tags") tags:RequestBody                                                              ):Call<PostPreview>      @POST("api/Post/posts/{id}/addrating") -    fun addRating(@Header("Authorization") authHeader:String,@Path("id") id:String,@Body rating: RatingReceive):Call<ResponseBody> +    fun addRating(@Header("Authorization") authHeader:String,@Path("id") id:String,@Body rating: RatingReceive):Call<RatingData>      @POST("api/Post/posts/{id}/addcomment")      fun addComment(@Header("Authorization") authHeader:String,@Path("id") id:String,@Body rating: CommentReceive):Call<CommentSend>      @GET("api/Post/posts/{id}/listcomments") @@ -101,4 +101,9 @@ interface IBackendApi {      @GET("/api/user/{id}/checkIfAlreadyFollow")      fun checkIfAlreadyFollow(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<Boolean> +    @GET("/api/user/{id}/unfollow") +    fun unfollow(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<Boolean> + +    @GET("api/Post/posts/{id}/getUserPosts") +    fun getUsersPosts(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<MutableList<PostPreview>>  }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/RatingData.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/RatingData.kt new file mode 100644 index 0000000..630c325 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/RatingData.kt @@ -0,0 +1,11 @@ +package com.example.brzodolokacije.Models + +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +@Parcelize +data class RatingData( +    var ratings:Double, +    var ratingscount:Int, +    var myrating:Int +):Parcelable
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml index a446f9a..bb917cf 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml @@ -128,7 +128,7 @@              app:layout_constraintHorizontal_bias="0.0"              app:layout_constraintStart_toStartOf="parent"              app:layout_constraintTop_toTopOf="@+id/divider" -            app:layout_constraintVertical_bias="1.0"></FrameLayout> +            app:layout_constraintVertical_bias="0.0"></FrameLayout>          <TableLayout @@ -228,22 +228,44 @@                      <Button                          android:id="@+id/btnActivityUserProfileFollow" -                        android:layout_width="0dp" +                        android:layout_width="280dp"                          android:layout_height="30dp"                          android:layout_marginStart="16dp" -                        android:layout_marginEnd="8dp" +                        android:clickable="true"                          android:drawableLeft="@drawable/ic_outline_person_add_alt_24" -                        android:text="PRATI"                          android:insetTop="0dp"                          android:insetBottom="0dp" +                        android:backgroundTint="@color/button_main" +                        android:text="PRATI" +                        android:visibility="visible" +                        app:layout_constraintBottom_toBottomOf="parent" +                        app:layout_constraintStart_toStartOf="parent" +                        app:layout_constraintTop_toTopOf="parent" +                        app:layout_constraintVertical_bias="0.13"                          app:shapeAppearanceOverlay="@style/Circular" +                        tools:ignore="TouchTargetSizeCheck" /> + +                    <Button + +                        android:id="@+id/btnActivityUserProfileUnFollow" +                        android:layout_width="280dp" +                        android:layout_height="30dp" +                        android:layout_marginStart="16dp" +                        android:clickable="false" +                        android:drawableLeft="@drawable/ic_outline_person_remove_24" +                        android:insetTop="0dp" +                        android:insetBottom="0dp" +                        android:text="NE PRATI više" +                        android:backgroundTint="@color/unfollow" +                          app:layout_constraintBottom_toBottomOf="parent" -                        app:layout_constraintEnd_toStartOf="@+id/activityUserProfileOpenChat"                          app:layout_constraintStart_toStartOf="parent"                          app:layout_constraintTop_toTopOf="parent"                          app:layout_constraintVertical_bias="0.13" +                        app:shapeAppearanceOverlay="@style/Circular"                          tools:ignore="TouchTargetSizeCheck" /> +                      <ImageButton                          android:id="@+id/activityUserProfileOpenChat"                          android:layout_width="35dp" @@ -252,11 +274,10 @@                          android:layout_marginEnd="16dp"                          android:height="40dp"                          android:background="@drawable/rounded_button" -                        android:backgroundTint="#4DB6AC" +                        android:backgroundTint="@color/button_main"                          android:src="@drawable/ic_round_message_24"                          app:layout_constraintBottom_toBottomOf="parent"                          app:layout_constraintEnd_toEndOf="parent" -                        app:layout_constraintStart_toEndOf="@+id/btnActivityUserProfileFollow"                          app:layout_constraintTop_toTopOf="parent"                          app:layout_constraintVertical_bias="0.0"                          app:shapeAppearanceOverlay="@style/Circular" diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml new file mode 100644 index 0000000..2c5012e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:tools="http://schemas.android.com/tools" +    android:layout_width="match_parent" +    android:layout_height="match_parent" +    tools:context=".Fragments.FragmentUserPostsProfileActivity"> + +    <!-- TODO: Update blank fragment layout --> +    <TextView +        android:layout_width="match_parent" +        android:layout_height="match_parent" /> + +    <androidx.recyclerview.widget.RecyclerView +        android:id="@+id/rvFragmentUserPostsProfileActivity" +        android:layout_width="match_parent" +        android:layout_height="match_parent" /> + +</FrameLayout>
\ No newline at end of file  | 
