aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
Diffstat (limited to 'Client')
-rw-r--r--Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt3
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt127
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt18
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt8
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/colors.xml2
11 files changed, 131 insertions, 51 deletions
diff --git a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml
index 6d9839f..394c76a 100644
--- a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml
+++ b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml
@@ -12,6 +12,6 @@
</deviceKey>
</Target>
</targetSelectedWithDropDown>
- <timeTargetWasSelectedWithDropDown value="2022-11-27T22:12:40.688602400Z" />
+ <timeTargetWasSelectedWithDropDown value="2022-11-28T13:21:51.009462400Z" />
</component>
</project> \ No newline at end of file
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 569ab89..b788b93 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
@@ -305,6 +305,7 @@ class ActivitySinglePost : AppCompatActivity() {
}
fun translateOwnerIdToName(id:String) {
+ //binding.tvUser.text="proba"
var token= SharedPreferencesHelper.getValue("jwt", this).toString()
val api= RetrofitHelper.getInstance()
val request= api.getProfileFromId("Bearer " + token, id)
@@ -315,6 +316,7 @@ class ActivitySinglePost : AppCompatActivity() {
return
}
userData = response.body()!!
+
binding.tvUser.text= userData!!.username.toString()
}
@@ -324,4 +326,5 @@ 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 2d290db..c03dbd3 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,26 +1,28 @@
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.widget.Button
-import android.widget.FrameLayout
-import android.widget.ImageButton
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.annotation.DrawableRes
+import android.util.Log
+import android.widget.*
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.bumptech.glide.Glide
import com.example.brzodolokacije.Fragments.FragmentShowUserPosts
-import com.example.brzodolokacije.Models.PostPreview
-import com.example.brzodolokacije.Models.User
import com.example.brzodolokacije.Models.UserReceive
import com.example.brzodolokacije.R
+import com.example.brzodolokacije.R.*
import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
import com.google.gson.Gson
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
+import java.security.AccessController.getContext
+
class ActivityUserProfile : AppCompatActivity() {
private lateinit var name:TextView
@@ -28,58 +30,125 @@ class ActivityUserProfile : AppCompatActivity() {
private lateinit var followersNumber:TextView
private lateinit var followingNumber:TextView
private lateinit var profilePicture:ImageView
- private lateinit var followUser: ImageButton
+ private lateinit var followUser: Button
private lateinit var showUserPosts: Button
private lateinit var fragmentContainer: FrameLayout
- private lateinit var myObject:UserReceive
+ private lateinit var userObject:UserReceive
+ private lateinit var openChat:ImageButton
+
+ private lateinit var followersList: MutableList<UserReceive>
+ private lateinit var followingList: MutableList<UserReceive>
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_user_profile)
+ setContentView(layout.activity_user_profile)
- name=findViewById(R.id.tvActivityUserProfileName)
- postsNumber=findViewById(R.id.tvActivityUserProfilePostsNo)
- followersNumber=findViewById(R.id.tvActivityUserProfileFollowersNo)
- followingNumber=findViewById(R.id.tvActivityUserProfileFollowNo)
- profilePicture=findViewById(R.id.tvActivityProfileProfilePicture)
- followUser=findViewById(R.id.btnActivityUserProfileFollow)
- showUserPosts=findViewById(R.id.btnActivityUserProfileShowPosts)
- fragmentContainer=findViewById(R.id.flActivityProfileFragmentContainer)
+ name=findViewById(id.tvActivityUserProfileName)
+ postsNumber=findViewById(id.tvActivityUserProfilePostsNo)
+ followersNumber=findViewById(id.tvActivityUserProfileFollowersNo)
+ followingNumber=findViewById(id.tvActivityUserProfileFollowNo)
+ profilePicture=findViewById(id.tvActivityProfileProfilePicture)
+ followUser=findViewById(id.btnActivityUserProfileFollow)
+ showUserPosts=findViewById(id.btnActivityUserProfileShowPosts)
+ fragmentContainer=findViewById(id.flActivityProfileFragmentContainer)
+ openChat=findViewById(id.activityUserProfileOpenChat)
val jsonMyObject: String
val extras = intent.extras
if (extras != null) {
jsonMyObject = extras.getString("user")!!
- myObject= Gson().fromJson(jsonMyObject, UserReceive::class.java)
+ //val myObject: UserReceive = Gson().fromJson(jsonMyObject, UserReceive::class.java)
- name.text=myObject.name
- postsNumber.text=myObject.postNumber.toString()
- followersNumber.text=myObject.followers.toString()
- followingNumber.text=myObject.following.toString()
+ userObject= Gson().fromJson(jsonMyObject, UserReceive::class.java)
- if(myObject.pfp!=null) {
+ name.text=userObject.name
+ postsNumber.text=userObject.postNumber.toString()
+ followersNumber.text=userObject?.followersCount.toString()
+ followingNumber.text=userObject?.followingCount.toString()
+
+ if(userObject.pfp!=null) {
Glide.with(this)
- .load(RetrofitHelper.baseUrl + "/api/post/image/" + myObject.pfp!!._id)
+ .load(RetrofitHelper.baseUrl + "/api/post/image/" + userObject.pfp!!._id)
.circleCrop()//Round image
.into(profilePicture)
}
}
+ checkIfAlreadyFollow()
+
followUser.setOnClickListener{
+
+ checkIfAlreadyFollow()
+
+
val api = RetrofitHelper.getInstance()
val token= SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile)
- api.addFollower("Bearer "+token,myObject._id);
+ 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(myObject))
+ bundle.putString("user", Gson().toJson(userObject))
val fragment = Fragment()
fragment.arguments = bundle
getSupportFragmentManager().beginTransaction()
- .replace(R.id.flActivityProfileFragmentContainer,FragmentShowUserPosts()).commit()
+ .replace(id.flActivityProfileFragmentContainer,FragmentShowUserPosts()).commit()
}
}
+ fun checkIfAlreadyFollow(){
+ val api = RetrofitHelper.getInstance()
+ val token= SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile)
+ var data=api.checkIfAlreadyFollow("Bearer "+token,userObject._id);
+ data.enqueue(object : Callback<Boolean> {
+
+ override fun onFailure(call: Call<Boolean>, t: Throwable) {;
+ Log.d("fail","faillllllllllllllllllllllllllllllllllllllllllllllllllllllll")
+ Log.d("fail",t.toString())
+ }
+
+ @SuppressLint("ResourceAsColor")
+ override fun onResponse(call: Call<Boolean>, response: Response<Boolean>) {
+ Log.d("success","successsssssssssssssssssss")
+ if (response.body() == null) {
+ return
+ }
+ var follow = response.body()!!
+ if(follow){
+ Log.d("success","follow")
+ followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_remove_24,0,0,0)
+ followUser.text="Ne prati više"
+
+ }
+ if(!follow){
+ Log.d("success","not follow")
+ followUser.setCompoundDrawablesWithIntrinsicBounds(drawable.ic_outline_person_add_alt_24,0,0,0)
+ followUser.text="Prati"
+ }
+
+ }
+ })
+
+ }
+
+ fun checkIfAlreadyFollowChangeButton(){
+
+ }
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
index faaa3b4..fa3f06b 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt
@@ -233,7 +233,7 @@ class MapsActivity : AppCompatActivity() {
responseLocations=response.body()!!
var tempList=mutableListOf<String>()
if(existingLocation!=null && existingLocation.size>0)
- for(loc in existingLocation!!){
+ for(loc in existingLocation!!){
spinnerAdapter!!.remove(loc.name)
}
for(loc in responseLocations!!){
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
index f1d9321..7450134 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
@@ -44,7 +44,7 @@ class FragmentFollowers : Fragment() {
).show();
}
- getFollowers()
+ //getFollowers()
btnBack.setOnClickListener {
val fragmentProfile = FragmentProfile()
@@ -56,7 +56,7 @@ class FragmentFollowers : Fragment() {
return view
}
- fun getFollowers(){
+ /* fun getFollowers(){
val api = RetrofitHelper.getInstance()
val data=api.getFollowers(userId)
data.enqueue(object : Callback<MutableList<UserReceive>> {
@@ -80,5 +80,5 @@ class FragmentFollowers : Fragment() {
).show();
}
})
- }
+ }*/
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
index b7a40dc..6f2ce65 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
@@ -38,7 +38,7 @@ class FragmentFollowing : Fragment() {
).show();
}
- getFollowing()
+ //getFollowing()
back.setOnClickListener {
val fragmentProfile = FragmentProfile()
@@ -50,7 +50,7 @@ class FragmentFollowing : Fragment() {
return view
}
- fun getFollowing(){
+ /*fun getFollowing(){
val api = RetrofitHelper.getInstance()
val data=api.getFollowers(userId)
data.enqueue(object : Callback<MutableList<UserReceive>> {
@@ -74,5 +74,5 @@ class FragmentFollowing : Fragment() {
).show();
}
})
- }
+ }*/
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
index 3427658..669b978 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
@@ -214,8 +214,8 @@ class FragmentProfile : Fragment(com.example.brzodolokacije.R.layout.fragment_pr
username.setText("@"+user.username)
postsCount.setText(user.postcount.toString())
- followersCount.setText(user.followersNumber.toString())
- followingCount.setText(user.followingNumber.toString())
+ followersCount.setText(user.followersCount.toString())
+ followingCount.setText(user.followingCount.toString())
userId=user._id
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 8556047..fc2d24f 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
@@ -72,14 +72,14 @@ interface IBackendApi {
//@POST("putanja")
//fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post>
- @POST("/api/user/{id}/followers")
- fun getFollowers(@Path("id") id:String):Call <MutableList<UserReceive>>
+ @GET("/api/user/{id}/followers")
+ fun getFollowers(@Header("Authorization") authHeader:String,@Path("id") id:String):Call <MutableList<UserReceive>>
- @POST("/api/user{id}/following")
- fun getFollowing(@Path("id") id:String):Call <MutableList<UserReceive>>
+ @GET("/api/user/{id}/following")
+ fun getFollowing(@Header("Authorization") authHeader:String,@Path("id") id:String):Call <MutableList<UserReceive>>
- @POST("/api/user{id}/addFollower")
- fun addFollower(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<UserReceive>
+ @GET("/api/user/{id}/addFollower")
+ fun addFollower(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<Boolean>
@GET("/api/user/{id}/id/profile")
fun getProfileFromId(@Header("Authorization") authHeader:String,@Path("id") username:String):Call<UserReceive>
@@ -95,4 +95,10 @@ interface IBackendApi {
@GET("api/Location/search")
fun searchLocationsQuery(@Header("Authorization") authHeader:String,@Query("query") query: String):Call<MutableList<Location>>
+ @GET("/api/user/{id}/myFollowings")
+ fun getMyFollowings(@Header("Authorization") authHeader:String):Call <MutableList<UserReceive>>
+
+ @GET("/api/user/{id}/checkIfAlreadyFollow")
+ fun checkIfAlreadyFollow(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<Boolean>
+
} \ 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 47e581d..f0f67a7 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
@@ -37,8 +37,8 @@ data class PostPreview (
var comments:List<CommentSend>?,
var images:List<PostImage>,
var ratingscount:Int,
- var createdAt:LocalDateTime,
- var lastViewed: LocalDateTime?, //samo za istoriju pregleda
+ var createdAt:Date,
+ var lastViewed: Date?, //samo za istoriju pregleda
var tags:List<String>?
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt
index 46338b3..6e282a9 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt
@@ -29,10 +29,10 @@ data class UserReceive(
var creationDate: Date,
var pfp:PostImage?,
var postcount:Int,
- var followers:List<User>,
- var followersNumber:Int,
- var following:List<User>,
- var followingNumber:Int,
+ var followers:List<String>,
+ var followersCount:Int,
+ var following:List<String>,
+ var followingCount:Int,
var postIds:List<Int>,
var postNumber:Int
) \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml
index 0d4da4f..fe34814 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml
@@ -7,5 +7,7 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
+ <color name="unfollow">#c4c4c4</color>
<color name="dark_blue_transparent">#DE093A4C</color>
+ <color name="button_main">#183e4b</color>
</resources> \ No newline at end of file