diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-11-08 02:17:09 +0100 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-11-08 02:17:09 +0100 |
commit | 89a71eb6cdc732f3553a161ec0e35df617047e4f (patch) | |
tree | fe4f9947ab4002e1afc63d09625f8daace1104f9 | |
parent | 2ea875b6b70d870a764a8815b5afb14c5fa0ce15 (diff) | |
parent | 0d8b9bd4f3e266d9e300bce427ba718d19cfec48 (diff) |
Merge branch 'develop' of http://gitlab.pmf.kg.ac.rs/BrzoDoLokacije2022/odyssey/brzodolokacije into develop
12 files changed, 68 insertions, 41 deletions
diff --git a/Backend/Api/Api/Controllers/PostController.cs b/Backend/Api/Api/Controllers/PostController.cs index 27823bc..3857ce0 100644 --- a/Backend/Api/Api/Controllers/PostController.cs +++ b/Backend/Api/Api/Controllers/PostController.cs @@ -58,7 +58,7 @@ namespace Api.Controllers } [HttpGet("image/{id}")] - [Authorize(Roles = "User")] + //[Authorize(Roles = "User")] public async Task<ActionResult> getImage(string id) { Models.File f =await _fileService.getById(id); diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle index fa85692..72f1f0d 100644 --- a/Client/BrzoDoLokacije/app/build.gradle +++ b/Client/BrzoDoLokacije/app/build.gradle @@ -56,4 +56,7 @@ dependencies { //JWT implementation 'com.auth0.android:jwtdecode:2.0.1' + //Glide + implementation 'com.github.bumptech.glide:glide:4.12.0' + annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' }
\ 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 6a5dfe3..32cb3ef 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 @@ -15,7 +15,6 @@ import com.example.brzodolokacije.databinding.ActivitySinglePostBinding class ActivitySinglePost : AppCompatActivity() { private lateinit var binding: ActivitySinglePostBinding - private var images : MutableList<PostImage> = mutableListOf() private var layoutManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: RecyclerView.Adapter<PostImageAdapter.ViewHolder>? = null private var recyclerView: RecyclerView?=null @@ -24,18 +23,18 @@ class ActivitySinglePost : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding=ActivitySinglePostBinding.inflate(layoutInflater) - setContentView(R.layout.activity_single_post) + setContentView(binding.root) post= intent.extras?.getParcelable("selectedPost")!! - /*//load data for the list + //load data for the list //instantiate adapter and linearLayout - adapterVar= PostImageAdapter(images) - layoutManagerVar= LinearLayoutManager(this) + adapterVar= PostImageAdapter(this@ActivitySinglePost, post.images as MutableList<PostImage>) + layoutManagerVar= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) recyclerView = binding.rvMain // set recyclerView attributes recyclerView?.setHasFixedSize(true) recyclerView?.layoutManager = layoutManagerVar - recyclerView?.adapter = adapterVar*/ + recyclerView?.adapter = adapterVar loadTextComponents() } @@ -55,6 +54,8 @@ class ActivitySinglePost : AppCompatActivity() { tvRating.invalidate() tvNumberOfRatings.text=post.ratings.toString() tvNumberOfRatings.invalidate() + tvDescription.text=post.description + tvDescription.invalidate() } } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt index 3d2bf46..655b717 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt @@ -1,16 +1,19 @@ package com.example.brzodolokacije.Adapters +import android.app.Activity import android.graphics.BitmapFactory import android.media.Image import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import com.example.brzodolokacije.Models.Post import com.example.brzodolokacije.Models.PostImage +import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.databinding.PostImageBinding import com.example.brzodolokacije.databinding.PostPreviewBinding -class PostImageAdapter(val items : MutableList<PostImage>) +class PostImageAdapter(val activity: Activity, val items : MutableList<PostImage>) : RecyclerView.Adapter<PostImageAdapter.ViewHolder>(){ //constructer has one argument - list of objects that need to be displayed //it is bound to xml of single item @@ -28,7 +31,11 @@ class PostImageAdapter(val items : MutableList<PostImage>) inner class ViewHolder(itemView : PostImageBinding) : RecyclerView.ViewHolder(itemView.root){ fun bind(item : PostImage){ binding.apply { - //locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream())) + if(item!=null) { + Glide.with(activity) + .load(RetrofitHelper.baseUrl + "/api/post/image/" + item._id) + .into(locationImage) + } } } } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index 134b665..bbcf9e4 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -9,6 +9,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import com.example.brzodolokacije.Activities.ActivitySinglePost import com.example.brzodolokacije.Interfaces.IBackendApi import com.example.brzodolokacije.Models.LocationType @@ -61,33 +62,11 @@ class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPrevie tvTitle.text = item.location.name tvLocationParent.text = item.location.country tvLocationType.text = "TODO" - - val request=imageApi.getImage("Bearer "+token,item.images[0]._id) - - request.enqueue(object : retrofit2.Callback<ResponseBody?> { - override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) { - if (response.isSuccessful) { - val image: ResponseBody = response.body()!! - binding.locationImage.setImageBitmap(BitmapFactory.decodeStream(image.byteStream())) - Toast.makeText( - activity, "prosao zahtev", Toast.LENGTH_LONG - ).show() - } else { - if (response.errorBody() != null) - Toast.makeText( - activity, - response.errorBody()!!.string(), - Toast.LENGTH_LONG - ).show(); - } - } - - override fun onFailure(call: Call<ResponseBody?>, t: Throwable) { - Toast.makeText( - activity, t.toString(), Toast.LENGTH_LONG - ).show(); - } - }) + if(item.images.isNotEmpty()) { + Glide.with(activity) + .load(RetrofitHelper.baseUrl + "/api/post/image/" + item.images[0]._id) + .into(locationImage) + } } } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt index 45cd0fe..928a128 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt @@ -46,6 +46,7 @@ class FragmentMyProfileInfo : Fragment() { logout=view.findViewById<View>(R.id.buttonLogOut) as Button logout.setOnClickListener{ logOut() + } return view @@ -56,6 +57,7 @@ class FragmentMyProfileInfo : Fragment() { { val intent= Intent(requireActivity(), ActivityLoginRegister::class.java) startActivity(intent) + requireActivity().finish() } } }
\ 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 49dda46..131233c 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 @@ -22,9 +22,6 @@ interface IBackendApi { fun resetpass(@Body obj:ResetPass):Call<ResponseBody> @GET("/api/post") fun getPosts(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>> - @Streaming - @GET("/api/post/image/{id}") - fun getImage(@Header("Authorization") authHeader:String,@Path("id") obj:String):Call<ResponseBody> //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post> }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt index 0245e9b..0c43088 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt @@ -10,6 +10,7 @@ import com.example.brzodolokacije.Activities.ActivityLoginRegister import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper +import com.example.brzodolokacije.Services.authCheck import retrofit2.Call import retrofit2.Response diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/MyAppGlideModule.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/MyAppGlideModule.kt new file mode 100644 index 0000000..cee5f12 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/MyAppGlideModule.kt @@ -0,0 +1,8 @@ +package com.example.brzodolokacije.Services + +import com.bumptech.glide.annotation.GlideModule +import com.bumptech.glide.module.AppGlideModule +@GlideModule +class MyAppGlideModule: AppGlideModule() { + +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/authCheck.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/authCheck.kt new file mode 100644 index 0000000..bfd3975 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/authCheck.kt @@ -0,0 +1,31 @@ +package com.example.brzodolokacije.Services + +import android.app.Activity +import androidx.fragment.app.FragmentActivity +import com.auth0.android.jwt.JWT + +object authCheck { + + + + fun isLoggedIn(act:Activity):Boolean{ + var jwtString=SharedPreferencesHelper.getValue("jwt",act) + if(jwtString==null) + return false + var jwt: JWT = JWT(jwtString) + if(jwt.isExpired(30)) + return false + return true + + } + fun isLoggedIn(act:FragmentActivity):Boolean{ + var jwtString=SharedPreferencesHelper.getValue("jwt",act) + if(jwtString==null) + return false + var jwt: JWT = JWT(jwtString) + if(jwt.isExpired(30)) + return false + return true + + } +}
\ 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 d323d0c..00d3460 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 @@ -11,7 +11,6 @@ android:id="@+id/rvMain" android:layout_width="match_parent" android:layout_height="443dp" - android:orientation="horizontal" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml index 7283931..dafd3b9 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml @@ -16,7 +16,6 @@ android:layout_height="250dp" android:outlineProvider="background" android:scaleType="centerCrop" - android:src="@drawable/b1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" |