aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-20 23:45:29 +0100
committerJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-20 23:45:29 +0100
commitf7a12cb67dd4d9e041534a04633d633582f6e0a2 (patch)
tree3f73af9131b9deaeb8ca615655f9b8ade421f40f
parent688987e855a1a5adbf319759b9d0eea813104cbf (diff)
parentf101c0461ac1ff0b0a910313bdde155fbb61f8bd (diff)
Merge branch 'develop' of http://gitlab.pmf.kg.ac.rs/BrzoDoLokacije2022/odyssey/brzodolokacije into develop
-rw-r--r--Backend/Api/Api/Controllers/UserController.cs10
-rw-r--r--Backend/Api/Api/Interfaces/IPostService.cs1
-rw-r--r--Backend/Api/Api/Models/Location.cs5
-rw-r--r--Backend/Api/Api/Services/ChatHub.cs7
-rw-r--r--Backend/Api/Api/Services/PostService.cs16
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml27
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/strings.xml41
12 files changed, 145 insertions, 12 deletions
diff --git a/Backend/Api/Api/Controllers/UserController.cs b/Backend/Api/Api/Controllers/UserController.cs
index 94e4b41..1bc395f 100644
--- a/Backend/Api/Api/Controllers/UserController.cs
+++ b/Backend/Api/Api/Controllers/UserController.cs
@@ -64,5 +64,15 @@ namespace Api.Controllers
return Ok(rez);
return BadRequest();
}
+ [HttpGet("history")]
+ [Authorize(Roles = "User")]
+ public async Task<ActionResult<List<PostSend>>> ViewHistory()
+ {
+ var id = await _userService.UserIdFromJwt();
+ var rez = await _postService.UserHistory(id);
+ if (rez != null)
+ return Ok(rez);
+ return BadRequest();
+ }
}
}
diff --git a/Backend/Api/Api/Interfaces/IPostService.cs b/Backend/Api/Api/Interfaces/IPostService.cs
index fc2ae03..12a5fe8 100644
--- a/Backend/Api/Api/Interfaces/IPostService.cs
+++ b/Backend/Api/Api/Interfaces/IPostService.cs
@@ -18,5 +18,6 @@ namespace Api.Interfaces
Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1);
int DateEnumToDays(int filterdate);
Task<List<PostSend>> GetUsersPosts(string id);
+ Task<List<PostSend>> UserHistory(string userid);
}
} \ No newline at end of file
diff --git a/Backend/Api/Api/Models/Location.cs b/Backend/Api/Api/Models/Location.cs
index 3402f6c..b2f0aad 100644
--- a/Backend/Api/Api/Models/Location.cs
+++ b/Backend/Api/Api/Models/Location.cs
@@ -22,8 +22,9 @@ namespace Api.Models
public enum LocationType
{
GRAD,ULICA,JEZERO,REKA,PLAZA,OKEAN, MORE, MOREUZ, MOST,BANJA,
- PLANINA, VISORAVAN, PIRAMIDA, LIVADA, SELO, OSTRVO, POLUOSTRVO, KLISURA, ARHIPELAG,
- ADA, DELTA, FJORD, GEJZIR, IZVOR, KOTLINA, MINERALNI_IZVOR, PECINA ,SUMA, VODOPAD,VULKAN
+ PLANINA, VISORAVAN, PIRAMIDA, LIVADA, SELO, OSTRVO, POLUOSTRVO, KLISURA, ARHIPELAG,
+ ADA, DELTA, FJORD, GEJZIR, IZVOR, KOTLINA, MINERALNI_IZVOR, PECINA ,SUMA, VODOPAD,VULKAN,
+ MUZEJ,ZAMAK,TRG,SPOMENIK,PARK,ZGRADA
}
public class Coords
diff --git a/Backend/Api/Api/Services/ChatHub.cs b/Backend/Api/Api/Services/ChatHub.cs
index 4092d8f..e0bf5df 100644
--- a/Backend/Api/Api/Services/ChatHub.cs
+++ b/Backend/Api/Api/Services/ChatHub.cs
@@ -1,12 +1,13 @@
-using Microsoft.AspNetCore.SignalR;
+using Api.Interfaces;
+using Microsoft.AspNetCore.SignalR;
namespace Api.Services
{
public class ChatHub:Hub
{
static public readonly Dictionary<string, string> Users = new Dictionary<string, string>();
- private readonly JwtService _jwtService;
- public ChatHub(JwtService jwtService)
+ private readonly IJwtService _jwtService;
+ public ChatHub(IJwtService jwtService)
{
_jwtService = jwtService;
}
diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs
index 2d62f49..cc4d064 100644
--- a/Backend/Api/Api/Services/PostService.cs
+++ b/Backend/Api/Api/Services/PostService.cs
@@ -349,5 +349,21 @@ namespace Api.Services
}
return tosend;
}
+ public async Task<List<PostSend>> UserHistory(string userid)
+ {
+ var posts = await _posts.Find(_ => true).ToListAsync();
+ if (posts == null)
+ return null;
+ var tosend = new List<PostSend>();
+ foreach (var post in posts)
+ {
+ if (post.views.Any(x => x.Equals(userid)))
+ {
+ var x = await postToPostSend(post);
+ tosend.Add(x);
+ }
+ }
+ return tosend;
+ }
}
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
index f79769d..c4b5a60 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt
@@ -44,6 +44,9 @@ class ActivityAddPost : AppCompatActivity() {
private lateinit var descriptionString:String
private lateinit var post:Button
private lateinit var addLocation:Button
+ private lateinit var tagLayout:LinearLayout
+ private lateinit var tagButtons:List<Button>
+ private lateinit var tagAutoText: AutoCompleteTextView
val incorectCoord:Double=1000.0
val LOCATIONREQCODE=123
var longitude:Double=incorectCoord
@@ -70,6 +73,12 @@ class ActivityAddPost : AppCompatActivity() {
post=findViewById<View>(R.id.btnActivityAddPostPost) as Button
addLocation=findViewById<View>(R.id.btnActivityAddPostAddLocation) as Button
+ val tags=resources.getStringArray(R.array.Tags)
+ //Log.d("Main",tags[0].toString())
+ val tagadapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,tags)
+ tagAutoText= findViewById(R.id.acTags) as AutoCompleteTextView
+ tagAutoText.setAdapter(tagadapter)
+
progressDialog= ProgressDialog(this)
progressDialog!!.setMessage("Molimo sacekajte!!!")
progressDialog!!.setCancelable(false)
@@ -83,6 +92,8 @@ class ActivityAddPost : AppCompatActivity() {
imgView}
addLocation.setOnClickListener {
val myIntent = Intent(this, MapsActivity::class.java)
+ if(location.text!=null && !location.text.trim().equals(""))
+ myIntent.putExtra("search",location.text.toString())
startActivityForResult(myIntent,LOCATIONREQCODE)
}
@@ -186,6 +197,9 @@ class ActivityAddPost : AppCompatActivity() {
var bundle=data!!.extras
longitude=bundle!!.getDouble("longitude",incorectCoord)
latitude=bundle!!.getDouble("latitude",incorectCoord)
+ var locName=bundle!!.getString("name")
+ if(location.text.toString().trim().equals("") && locName!=null && !locName.toString().trim().equals(""))
+ location.setText(locName,TextView.BufferType.EDITABLE)
}
}
private fun sendPost(){
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
index 9a36c2f..7f2c264 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
@@ -11,10 +11,7 @@ import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.view.View
-import android.widget.Button
-import android.widget.EditText
-import android.widget.ImageView
-import android.widget.Toast
+import android.widget.*
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
@@ -120,6 +117,8 @@ class ActivityCapturePost : AppCompatActivity() {
addLocation.setOnClickListener {
val myIntent = Intent(this, MapsActivity::class.java)
+ if(location.text!=null && !location.text.trim().equals(""))
+ myIntent.putExtra("search",location.text.toString())
startActivityForResult(myIntent,LOCATIONREQCODE)
}
@@ -173,6 +172,9 @@ class ActivityCapturePost : AppCompatActivity() {
var bundle=data!!.extras
longitude=bundle!!.getDouble("longitude",incorectCoord)
latitude=bundle!!.getDouble("latitude",incorectCoord)
+ var locName=bundle!!.getString("name")
+ if(location.text.toString().trim().equals("") && locName!=null && !locName.toString().trim().equals(""))
+ location.setText(locName, TextView.BufferType.EDITABLE)
}
}
var f:File?=null
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 1ac8bd2..1ff07f6 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
@@ -15,6 +15,7 @@ import android.util.Log
import android.view.KeyEvent
import android.view.MotionEvent
import android.view.View
+import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
@@ -90,6 +91,13 @@ class MapsActivity : AppCompatActivity() {
}
false
})
+ val extras = intent.extras
+ if (extras != null) {
+ val value = extras.getString("search")
+ Log.d("Main",value!!)
+ searchBar.setText(value,TextView.BufferType.EDITABLE)
+ searchMap()
+ }
@@ -99,6 +107,8 @@ class MapsActivity : AppCompatActivity() {
val bundle = Bundle()
bundle.putDouble("longitude", locLongitude!!)
bundle.putDouble("latitude", locLatitude!!)
+ if(searchBar.text!=null && !searchBar.text.toString().equals(""))
+ bundle.putString("name", searchBar.text.toString())
intent.putExtras(bundle)
setResult(RESULT_OK, intent)
finish()
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 cf16689..e09cd06 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
@@ -13,6 +13,7 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.example.brzodolokacije.Activities.ActivitySinglePost
+import com.example.brzodolokacije.Activities.NavigationActivity
import com.example.brzodolokacije.Interfaces.IBackendApi
import com.example.brzodolokacije.Models.LocationType
import com.example.brzodolokacije.Models.PostPreview
@@ -63,6 +64,19 @@ class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPrevie
val intent:Intent = Intent(activity,ActivitySinglePost::class.java)
var b=Bundle()
//getItem(position)!!.location.type=LocationType.ADA
+ //--------------------------------------------------------------- call back to add view tick
+ val Api= RetrofitHelper.getInstance()
+ val request=Api.addView("Bearer "+token,getItem(position)!!._id)
+ request.enqueue(object : retrofit2.Callback<PostPreview?> {
+ override fun onResponse(call: Call<PostPreview?>, response: Response<PostPreview?>) {
+
+ }
+
+ override fun onFailure(call: Call<PostPreview?>, t: Throwable) {
+
+ }
+ })
+ //---------------------------------------------------------------
b.putParcelable("selectedPost",getItem(position)!!)
intent.putExtras(b)
activity.startActivity(intent)
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 6d09251..9d94013 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
@@ -26,6 +26,8 @@ interface IBackendApi {
fun resetpass(@Body obj:ResetPass):Call<ResponseBody>
@GET("/api/post")
fun getPosts(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>>
+ @GET("/api/Post/posts/{id}")
+ fun addView(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<PostPreview>
@POST("/api/Location/add")
fun addLocation(@Header("Authorization") authHeader:String,@Body obj: Location ):Call<Location>
@Multipart
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
index 21dce5e..c0b1ab7 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml
@@ -19,7 +19,7 @@
<Button
android:id="@+id/nextImage"
android:layout_width="78dp"
- android:layout_height="499dp"
+ android:layout_height="0dp"
android:background="@drawable/rounded_transparent_button"
android:gravity="right"
android:padding="30dp"
@@ -33,7 +33,7 @@
<Button
android:id="@+id/previousImage"
android:layout_width="70dp"
- android:layout_height="497dp"
+ android:layout_height="0dp"
android:background="@drawable/rounded_transparent_button"
android:gravity="left"
@@ -117,7 +117,7 @@
android:ems="10"
android:hint="Reykjavik, Iceland"
android:inputType="textEmailAddress"
- app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostPost"
+ app:layout_constraintBottom_toTopOf="@+id/llTags"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@@ -149,5 +149,26 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/isActivityAddPostSwitcher" />
+ <LinearLayout
+ android:id="@+id/llTags"
+ android:layout_width="0dp"
+ android:layout_height="50dp"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:orientation="horizontal"
+ app:layout_constraintBottom_toTopOf="@+id/acTags"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"></LinearLayout>
+
+ <AutoCompleteTextView
+ android:id="@+id/acTags"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="20dp"
+ android:minHeight="48dp"
+ android:hint="Dodaj tag"
+ app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostPost"
+ app:layout_constraintStart_toStartOf="parent" />
+
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml b/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml
index a969148..fef04ac 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml
@@ -6,4 +6,45 @@
<string name="title_activity_maps">MapsActivity</string>
<string name="dodaj_objavu">Dodaj objavu</string>
<string name="todo">TODO</string>
+
+
+ <!-- example lista tagova, make actual list for app -->
+ <string-array name="Tags">
+ <item>GRAD</item>
+ <item>ULICA</item>
+ <item>JEZERO</item>
+ <item>REKA</item>
+ <item>PLAZA</item>
+ <item>OKEAN</item>
+ <item>MORE</item>
+ <item>MOREUZ</item>
+ <item>MOST</item>
+ <item>BANJA</item>
+ <item>PLANINA</item>
+ <item>VISORAVAN</item>
+ <item>PIRAMIDA</item>
+ <item>LIVADA</item>
+ <item>SELO</item>
+ <item>OSTRVO</item>
+ <item>POLUOSTRVO</item>
+ <item>KLISURA</item>
+ <item>ARHIPELAG</item>
+ <item>ADA</item>
+ <item>DELTA</item>
+ <item>FJORD</item>
+ <item>GEJZIR</item>
+ <item>IZVOR</item>
+ <item>KOTLINA</item>
+ <item>MINERALNI_IZVOR</item>
+ <item>PECINA</item>
+ <item>SUMA</item>
+ <item>VODOPAD</item>
+ <item>VULKAN</item>
+ <item>MUZEJ</item>
+ <item>ZAMAK</item>
+ <item>TRG</item>
+ <item>SPOMENIK</item>
+ <item>PARK</item>
+ <item>ZGRADA</item>
+ </string-array>
</resources> \ No newline at end of file