aboutsummaryrefslogtreecommitdiff
path: root/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt
diff options
context:
space:
mode:
Diffstat (limited to 'Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt')
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt261
1 files changed, 182 insertions, 79 deletions
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 4962006..0bbcf79 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
@@ -4,25 +4,34 @@ import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.util.Log
+import android.view.View
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
+import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
-import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
+import com.auth0.android.jwt.JWT
import com.bumptech.glide.Glide
+import com.exam.DBHelper
+import com.example.brzodolokacije.FragmentProfileStatistics
import com.example.brzodolokacije.Fragments.FragmentUserPostsProfileActivity
import com.example.brzodolokacije.Models.UserReceive
import com.example.brzodolokacije.R
-import com.example.brzodolokacije.R.*
+import com.example.brzodolokacije.R.id
+import com.example.brzodolokacije.R.layout
import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import com.example.brzodolokacije.UserPostsMapFragment
import com.google.gson.Gson
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
-class ActivityUserProfile : AppCompatActivity() {
+class ActivityUserProfile : AppCompatActivity(),OnRefreshListener {
+ private lateinit var swipeRefreshLayout: SwipeRefreshLayout
private lateinit var name:TextView
private lateinit var postsNumber:TextView
private lateinit var followersNumber:TextView
@@ -34,6 +43,10 @@ class ActivityUserProfile : AppCompatActivity() {
private lateinit var userObject:UserReceive
private lateinit var openChat:ImageButton
private lateinit var unfollowUser:Button
+ private lateinit var btnSendMessage:ImageButton
+ private lateinit var followChatRow:ConstraintLayout
+ private lateinit var mapButton:Button
+ private lateinit var statisticsButton:Button
private lateinit var showFollowers:Button
private lateinit var showFollowing:Button
@@ -56,6 +69,10 @@ class ActivityUserProfile : AppCompatActivity() {
openChat=findViewById(id.activityUserProfileOpenChat)
showFollowing=findViewById(id.tvActivityUserProfileFollow)
showFollowers=findViewById(R.id.tvActivityUserProfileFollowers)
+ btnSendMessage=findViewById(R.id.activityUserProfileOpenChat)
+ followChatRow=findViewById(R.id.clActivityUserProfileFollow_Chat_Row)
+ mapButton=findViewById(R.id.btnFragmentUserProfileShowData)
+ statisticsButton=findViewById(R.id.btnFragmentUserProfileShowRecensions)
val jsonMyObject: String
@@ -65,85 +82,68 @@ class ActivityUserProfile : AppCompatActivity() {
//val myObject: UserReceive = Gson().fromJson(jsonMyObject, UserReceive::class.java)
userObject= Gson().fromJson(jsonMyObject, UserReceive::class.java)
+ updateUserData()
- 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@ActivityUserProfile)
- .load(RetrofitHelper.baseUrl + "/api/post/image/" + userObject.pfp!!._id)
- .circleCrop()//Round image
- .into(profilePicture)
- }
+ }
+ else{
+ finish()
}
- checkIfAlreadyFollow()
- updateUserData()
+ showFollowers.setOnClickListener {
+ val bundle = Bundle()
+ bundle.putString("userId", userObject._id.toString())
+ bundle.putString("show","followers")
+ bundle.putString("showMy","no")
+ val intent = Intent(this@ActivityUserProfile,ActivityShowFollowersAndFollowing::class.java)
+ intent.putExtras(bundle)
+ startActivity(intent)
- 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
+ }
+ mapButton.setOnClickListener {
+ val bundle = Bundle()
- updateUserData()
+ bundle.putString("id", userObject._id)
+ bundle.putString("other","true")
+ val userMapFragment = UserPostsMapFragment()
+ userMapFragment.setArguments(bundle)
+ var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+ fm.replace(R.id.flActivityProfileFragmentContainer, userMapFragment)
+ fm.commit()
- 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();
- }
- })
+ }
+ statisticsButton.setOnClickListener{
+
+
+ var fragment: FragmentProfileStatistics = FragmentProfileStatistics()
+ val bundle = Bundle()
+ bundle.putString("username", userObject.username)
+ fragment.arguments=bundle
+ var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+ fm.replace(R.id.flActivityProfileFragmentContainer, fragment)
+ fm.commit()
}
- 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();
- }
- })
+ showFollowing.setOnClickListener {
+ val bundle = Bundle()
+ bundle.putString("userId", userObject._id.toString())
+ bundle.putString("show","following")
+ bundle.putString("showMy","no")
+ val intent = Intent(this@ActivityUserProfile,ActivityShowFollowersAndFollowing::class.java)
+ intent.putExtras(bundle)
+ startActivity(intent)
}
- showFollowers.setOnClickListener {
+ setFollowerChatRow()
+
+ showUserPosts.setOnClickListener {
+ showUserPostsFragment()
+ }
+
+ followersNumber.setOnClickListener {
val bundle = Bundle()
bundle.putString("userId", userObject._id.toString())
bundle.putString("show","followers")
@@ -154,7 +154,7 @@ class ActivityUserProfile : AppCompatActivity() {
}
- showFollowing.setOnClickListener {
+ followingNumber.setOnClickListener {
val bundle = Bundle()
bundle.putString("userId", userObject._id.toString())
bundle.putString("show","following")
@@ -164,19 +164,112 @@ class ActivityUserProfile : AppCompatActivity() {
startActivity(intent)
}
+ swipeRefreshLayout = findViewById<View>(R.id.ProfileSwipeRefresh) as SwipeRefreshLayout
+ swipeRefreshLayout.setOnRefreshListener(this@ActivityUserProfile)
+ swipeRefreshLayout.setColorSchemeResources(
+ R.color.purple_200,
+ R.color.teal_200,
+ R.color.dark_blue_transparent,
+ R.color.purple_700
+ )
+ }
+ fun setFollowerChatRow(){
+ if(userObject._id != SharedPreferencesHelper.getValue("jwt",this@ActivityUserProfile)
+ ?.let { it1 -> JWT(it1).claims["id"]?.asString() }){
+ followChatRow.visibility=View.VISIBLE
+ followChatRow.forceLayout()
+
+
+ btnSendMessage.setOnClickListener{
+ val intent: Intent = Intent(this@ActivityUserProfile, ChatActivityConversation::class.java)
+ intent.putExtra("userId",userObject._id)
+ intent.putExtra("username",userObject.username)
+ intent.putExtra("pfp",userObject.pfp?._id)
+ DBHelper.getInstance(this).readContact(userObject._id)
+ this.startActivity(intent)
+ }
+
+ 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>
+ ) {
+ if(response.body()==true) {
+ unfollowUser.isVisible = true
+ unfollowUser.isClickable = true
+ unfollowUser.isEnabled = true
+ followUser.isVisible = false
+ followUser.isClickable = false
+ followUser.isEnabled = false
+
+ updateUserData()
+ }
+ }
- showUserPosts.setOnClickListener {
- 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()
+ override fun onFailure(call: Call<Boolean>, t: Throwable) {
+ Toast.makeText(
+ this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+
+ }
+ 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>
+ ) {
+ if(response.body()==true) {
+ unfollowUser.isVisible = false
+ unfollowUser.isClickable = false
+ unfollowUser.isEnabled = false
+ followUser.isVisible = true
+ followUser.isClickable = true
+ followUser.isEnabled = true
+ updateUserData()
+ }
+ }
+
+ override fun onFailure(call: Call<Boolean>, t: Throwable) {
+ Toast.makeText(
+ this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+ }
}
}
+ override fun onRefresh() {
+ onResume()
+ }
+
+ override fun onResume(){
+ super.onResume()
+ checkIfAlreadyFollow()
+ updateUserData()
+ showUserPostsFragment()
+ }
+ fun showUserPostsFragment(){
+ 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()
+ swipeRefreshLayout.isRefreshing=false
+ }
+
fun checkIfAlreadyFollow(){
val api = RetrofitHelper.getInstance()
val token= SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile)
@@ -186,6 +279,7 @@ class ActivityUserProfile : AppCompatActivity() {
override fun onFailure(call: Call<Boolean>, t: Throwable) {;
Log.d("fail","faillllllllllllllllllllllllllllllllllllllllllllllllllllllll")
Log.d("fail",t.toString())
+ swipeRefreshLayout.isRefreshing=false
}
@SuppressLint("ResourceAsColor")
@@ -195,6 +289,7 @@ class ActivityUserProfile : AppCompatActivity() {
return
}
var follow = response.body()!!
+ swipeRefreshLayout.isRefreshing=false
if(follow){
Log.d("success","follow")
@@ -234,7 +329,7 @@ class ActivityUserProfile : AppCompatActivity() {
fun updateUserData(){
val api = RetrofitHelper.getInstance()
val token = SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile)
- var data = api.getProfileFromId("Bearer " + token, userObject._id);
+ var data = api.getProfile("Bearer " + token, userObject.username);
data.enqueue(object : Callback<UserReceive> {
override fun onResponse(
call: Call<UserReceive>,
@@ -243,15 +338,23 @@ class ActivityUserProfile : AppCompatActivity() {
var userData=response.body()!!
name.text=userData.name
- postsNumber.text=userData.postNumber.toString()
+ postsNumber.text=userData.postcount.toString()
followersNumber.text=userData.followersCount.toString()
followingNumber.text=userData.followingCount.toString()
+ swipeRefreshLayout.isRefreshing=false
+ if(userData.pfp!=null) {
+ Glide.with(this@ActivityUserProfile)
+ .load(RetrofitHelper.baseUrl + "/api/post/image/" + userData.pfp!!._id)
+ .circleCrop()//Round image
+ .into(profilePicture)
+ }
}
override fun onFailure(call: Call<UserReceive>, t: Throwable) {
Toast.makeText(
this@ActivityUserProfile, t.toString(), Toast.LENGTH_LONG
).show();
+ swipeRefreshLayout.isRefreshing=false
}
})
}