From f78e1b517442e51e091ae409b83f000ed37f275f Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Tue, 22 Nov 2022 14:32:55 +0100 Subject: Dodati podaci o korisniku u objavi. Omogućen prikaz profila korisnika iz objave. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/src/main/AndroidManifest.xml | 15 +- .../Activities/ActivitySinglePost.kt | 39 +++- .../Activities/ActivityUserProfile.kt | 49 ++++ .../src/main/res/layout/activity_single_post.xml | 70 +++--- .../src/main/res/layout/activity_user_profile.xml | 252 +++++++++++++++++++++ 5 files changed, 391 insertions(+), 34 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index bb2d712..0c412d8 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -36,20 +36,31 @@ android:theme="@style/Theme.BrzoDoLokacije" android:usesCleartextTraffic="true" tools:targetApi="31"> + + + + android:windowSoftInputMode="stateVisible|adjustPan" + android:screenOrientation="portrait" > + android:exported="true" + android:screenOrientation="portrait" > + ?=mutableListOf() private var starNumber:Number=0 + private lateinit var userData:UserReceive + private lateinit var user:TextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -53,6 +55,14 @@ class ActivitySinglePost : AppCompatActivity() { recyclerViewImages?.adapter = adapterImages loadTextComponents() setRatingListeners() + translateOwnerIdToName(post.ownerId) + + binding.tvUser.setOnClickListener { + val intent: Intent = Intent(this@ActivitySinglePost,ActivityUserProfile::class.java) + var b= Bundle() + intent.putExtra("user", Gson().toJson(userData)) + this.startActivity(intent) + } } fun buildRecyclerViewComments(){ @@ -228,7 +238,9 @@ class ActivitySinglePost : AppCompatActivity() { tvNumberOfRatings.invalidate() tvDescription.text=post.description tvDescription.invalidate() + } + } fun addView() { var token= SharedPreferencesHelper.getValue("jwt", this).toString() @@ -245,5 +257,24 @@ class ActivitySinglePost : AppCompatActivity() { }) } + fun translateOwnerIdToName(id:String) { + var token= SharedPreferencesHelper.getValue("jwt", this).toString() + val api= RetrofitHelper.getInstance() + val request= api.getProfileFromId("Bearer " + token, id) + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, + response: Response) { + if (response.body() == null) { + return + } + userData = response.body()!! + binding.tvUser.text= userData!!.username.toString() + } + + override fun onFailure(call: Call, t: Throwable) { + + } + }) + } } 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 new file mode 100644 index 0000000..50c2b0e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt @@ -0,0 +1,49 @@ +package com.example.brzodolokacije.Activities + +import android.os.Bundle +import android.widget.ImageView +import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import com.bumptech.glide.Glide +import com.example.brzodolokacije.Models.UserReceive +import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.google.gson.Gson + +class ActivityUserProfile : AppCompatActivity() { + private lateinit var name:TextView + private lateinit var postsNumber:TextView + private lateinit var followersNumber:TextView + private lateinit var followingNumber:TextView + private lateinit var profilePicture:ImageView + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.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) + val jsonMyObject: String + val extras = intent.extras + if (extras != null) { + jsonMyObject = extras.getString("user")!! + val myObject: UserReceive = Gson().fromJson(jsonMyObject, UserReceive::class.java) + + name.text=myObject.name + postsNumber.text=myObject.postNumber.toString() + followersNumber.text="0" + followingNumber.text="0" + + if(myObject.pfp!=null) { + Glide.with(this) + .load(RetrofitHelper.baseUrl + "/api/post/image/" + myObject.pfp!!._id) + .circleCrop()//Round image + .into(profilePicture) + } + } + + } +} \ No newline at end of file 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 a8a03aa..e3cabb5 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 @@ -41,8 +41,8 @@ android:gravity="top|start" android:padding="@dimen/text_padding" android:text="Drzava, grad" - app:layout_constraintTop_toBottomOf="@+id/tvLocationType" - tools:layout_editor_absoluteX="0dp" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvLocationType" /> + android:textStyle="bold" + app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvTitle" /> + + @@ -161,6 +174,7 @@ android:layout_height="wrap_content" android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" app:layout_constraintTop_toBottomOf="@+id/tvDescriptionLabel" /> +