aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOgnjen Cirkovic <ciraboxkg@gmail.com>2022-11-19 19:50:05 +0100
committerOgnjen Cirkovic <ciraboxkg@gmail.com>2022-11-19 19:50:05 +0100
commitaeb0e6e1dd22e31f45aafaab60c22a5317f73adb (patch)
treee579f5f9458b103f5a45b592809df72962c929a6
parent665f88ab3bcc5520d33276d2787cf986f6ce1d9b (diff)
Dodat izbor lokacije kada korisnik dodaje post slikom sa kamere. Dodate provere da li je query za lokaciju uspesan. Promenjen bottom sheet dialog.
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt67
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt11
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt11
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_close_24.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml1
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml15
8 files changed, 107 insertions, 17 deletions
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 18195d0..f79769d 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
@@ -11,6 +11,7 @@ import android.util.Log
import android.view.View
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.widget.AppCompatImageView
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
@@ -139,8 +140,11 @@ class ActivityAddPost : AppCompatActivity() {
description.hint="Unesite lokaciju"
description.setHintTextColor(Color.RED)
}
+ if(longitude!=incorectCoord && latitude!=incorectCoord){
+ Toast.makeText(this,"Unesite lokaciju klikom na dugme",Toast.LENGTH_LONG)
+ }
- if(!locationString.isEmpty() && !descriptionString.isEmpty() && longitude!=incorectCoord && latitude!=incorectCoord){
+ if(!locationString.isEmpty() && !descriptionString.isEmpty() && longitude!=incorectCoord && latitude!=incorectCoord && uploadedImages!!.size>0){
sendPost()
}
}
@@ -195,6 +199,12 @@ class ActivityAddPost : AppCompatActivity() {
val api =RetrofitHelper.getInstance()
var geocoder=GeocoderHelper.getInstance()
var loc1=geocoder!!.getFromLocation(latitude,longitude,1)
+ if(loc1==null ||loc1.size<=0)
+ {
+ progressDialog!!.dismiss()
+ Toast.makeText(this,"Lokacija ne postoji",Toast.LENGTH_LONG);
+ return
+ }
var countryName=loc1[0].countryName
var address="todo not possible in query"
var city=loc1[0].adminArea//not possible
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 e2dbb7c..9a36c2f 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
@@ -1,6 +1,7 @@
package com.example.brzodolokacije.Activities
import android.Manifest
+import android.app.ProgressDialog
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Bitmap
@@ -23,6 +24,7 @@ import com.example.brzodolokacije.Models.Location
import com.example.brzodolokacije.Models.LocationType
import com.example.brzodolokacije.Models.PostPreview
import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.GeocoderHelper
import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
import okhttp3.MediaType.Companion.toMediaTypeOrNull
@@ -46,6 +48,13 @@ class ActivityCapturePost : AppCompatActivity() {
private lateinit var post: Button
private lateinit var showImage: ImageView
private var uploadedImages: Uri? = null
+ private lateinit var addLocation:Button
+
+ val incorectCoord:Double=1000.0
+ val LOCATIONREQCODE=123
+ var longitude:Double=incorectCoord
+ var latitude:Double=incorectCoord
+ var progressDialog: ProgressDialog?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -55,6 +64,13 @@ class ActivityCapturePost : AppCompatActivity() {
post = findViewById<View>(R.id.btnActivityCapturePostPost) as Button
showImage = findViewById<View>(R.id.ivActivityCapturePostImage) as ImageView
takePhoto = findViewById<View>(R.id.btnActivityCapturePostCaptureVisible) as Button
+ addLocation=findViewById<View>(R.id.btnActivityCapturePostAddLocation) as Button
+
+ progressDialog= ProgressDialog(this)
+ progressDialog!!.setMessage("Molimo sacekajte!!!")
+ progressDialog!!.setCancelable(false)
+ progressDialog!!.setCanceledOnTouchOutside(false)
+
//dodavanje sa kamere
@@ -101,6 +117,12 @@ class ActivityCapturePost : AppCompatActivity() {
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ addLocation.setOnClickListener {
+ val myIntent = Intent(this, MapsActivity::class.java)
+ startActivityForResult(myIntent,LOCATIONREQCODE)
+ }
+
takePhoto.setOnClickListener {
val APP_TAG = "BrzoDoLokacije"
@@ -136,7 +158,7 @@ class ActivityCapturePost : AppCompatActivity() {
if (descriptionString.isEmpty()) {
description.hint = "Unesite opis"
description.setHintTextColor(Color.RED)
- }else if(f!=null){
+ }else if(f!=null && longitude!=incorectCoord && latitude!=incorectCoord){
uploadLocation()
}
@@ -145,7 +167,14 @@ class ActivityCapturePost : AppCompatActivity() {
}
}
-
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if(requestCode==LOCATIONREQCODE && resultCode== RESULT_OK){
+ var bundle=data!!.extras
+ longitude=bundle!!.getDouble("longitude",incorectCoord)
+ latitude=bundle!!.getDouble("latitude",incorectCoord)
+ }
+ }
var f:File?=null
private val cameraActivityResultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
@@ -168,27 +197,42 @@ class ActivityCapturePost : AppCompatActivity() {
}
fun uploadLocation() {
- val api = RetrofitHelper.getInstance()
- var loc: Location = Location("",locationString,"","","",0.0,0.0, LocationType.GRAD)
+ //TO DO SEARCH EXISTING LOCATION FROM DB
+ //IF NOT EXISTS ADD NEW LOCATION
+ progressDialog!!.show()
+ val api =RetrofitHelper.getInstance()
+ var geocoder= GeocoderHelper.getInstance()
+ var loc1=geocoder!!.getFromLocation(latitude,longitude,1)
+ if(loc1==null ||loc1.size<=0)
+ {
+ progressDialog!!.dismiss()
+ Toast.makeText(this,"Lokacija ne postoji",Toast.LENGTH_LONG);
+ return
+ }
+ var countryName=loc1[0].countryName
+ var address="todo not possible in query"
+ var city=loc1[0].adminArea//not possible
+ var loc:Location=Location("",locationString,city,countryName,address,latitude,longitude,LocationType.GRAD)
var jwtString= SharedPreferencesHelper.getValue("jwt",this)
var data=api.addLocation("Bearer "+jwtString,loc)
-
data.enqueue(object : retrofit2.Callback<Location?> {
override fun onResponse(call: Call<Location?>, response: Response<Location?>) {
if(response.isSuccessful()){
+
+ uploadPost(response.body()!!._id)
Toast.makeText(
applicationContext, "USPEH", Toast.LENGTH_LONG
).show();
- uploadPost(response.body()!!._id)
- Log.d("MAIN","RADI")
- Log.d("MAIN","RADI")
}else {
+ progressDialog!!.dismiss()
if (response.errorBody() != null) {
Log.d("Main",response.errorBody()!!.string())
+ Log.d("Main",response.message())
}
+ Log.d("Main",response.errorBody()!!.string())
Log.d("Main",response.message())
}
@@ -196,7 +240,11 @@ class ActivityCapturePost : AppCompatActivity() {
}
override fun onFailure(call: Call<Location?>, t: Throwable) {
+ Toast.makeText(
+ applicationContext, t.toString(), Toast.LENGTH_LONG
+ ).show();
Log.d("Main",t.toString())
+ progressDialog!!.dismiss()
}
})
}
@@ -223,10 +271,12 @@ class ActivityCapturePost : AppCompatActivity() {
data.enqueue(object : retrofit2.Callback<PostPreview?> {
override fun onResponse(call: Call<PostPreview?>, response: Response<PostPreview?>) {
if(response.isSuccessful()){
+ progressDialog!!.dismiss()
Toast.makeText(
applicationContext, "USPEH", Toast.LENGTH_LONG
).show();
}else {
+ progressDialog!!.dismiss()
if (response.errorBody() != null) {
Toast.makeText(
@@ -242,6 +292,7 @@ class ActivityCapturePost : AppCompatActivity() {
}
override fun onFailure(call: Call<PostPreview?>, t: Throwable) {
+ progressDialog!!.dismiss()
Toast.makeText(
applicationContext, t.toString(), Toast.LENGTH_LONG
).show();
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 b9e3b08..1ac8bd2 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
@@ -218,11 +218,16 @@ class MapsActivity : AppCompatActivity() {
//Log.d("Main",geocoder!!.getFromLocationName("Paris",1)[0].countryName)
var locString=searchBar.text.toString().trim()
if(locString==null || locString=="")
- Toast.makeText(this,"Unesite naziv lokacije", Toast.LENGTH_SHORT)
+ Toast.makeText(this,"Unesite naziv lokacije", Toast.LENGTH_LONG)
else{
- var result=geocoder!!.getFromLocationName(locString,1)[0]
+ var temp=geocoder!!.getFromLocationName(locString,1)
+ if(temp.size<=0) {
+ Toast.makeText(this,"Nepostojeca lokacija",Toast.LENGTH_LONG)
+ return
+ }
+ var result=temp[0]
if(result==null)
- Toast.makeText(this,"Nepostojeca lokacija", Toast.LENGTH_SHORT)
+ Toast.makeText(this,"Nepostojeca lokacija", Toast.LENGTH_LONG)
else{
//Move to spot
val searchPoint = GeoPoint(result.latitude,result.longitude)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt
index 604b373..180b59d 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt
@@ -37,7 +37,7 @@ class NavigationActivity : AppCompatActivity() {
R.id.navHomePage->setCurrentFragment(fragmentHomePage)
R.id.navAllPosts->setCurrentFragment(fragmentShowPosts)
//R.id.navAddPost->setCurrentFragment(addPostFragment)
- R.id.navAddPost->showBottomSheetAddNew()
+ R.id.navAddPost->showBottomSheetAddPost()
R.id.navBrowse->setCurrentFragment(browseFragment)
R.id.navProfile->setCurrentFragment(profileFragment)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
index 5ba3785..a21ffe0 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
@@ -166,11 +166,16 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) {
//Log.d("Main",geocoder!!.getFromLocationName("Paris",1)[0].countryName)
var locString=searchBar.text.toString().trim()
if(locString==null || locString=="")
- Toast.makeText(requireContext(),"Unesite naziv lokacije",Toast.LENGTH_SHORT)
+ Toast.makeText(requireContext(),"Unesite naziv lokacije",Toast.LENGTH_LONG)
else{
- var result=geocoder!!.getFromLocationName(locString,1)[0]
+ var temp=geocoder!!.getFromLocationName(locString,1)
+ if(temp.size<=0) {
+ Toast.makeText(requireContext(),"Nepostojeca lokacija",Toast.LENGTH_LONG)
+ return
+ }
+ var result=temp[0]
if(result==null)
- Toast.makeText(requireContext(),"Nepostojeca lokacija",Toast.LENGTH_SHORT)
+ Toast.makeText(requireContext(),"Nepostojeca lokacija",Toast.LENGTH_LONG)
else{
//move to spot
val searchPoint = GeoPoint(result.latitude,result.longitude)
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_close_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_close_24.xml
new file mode 100644
index 0000000..42a6279
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_close_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#666666"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
+</vector>
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 6c9b40f..21dce5e 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
@@ -96,6 +96,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/etActivityAddPostLocation" />
+
<TextView
android:id="@+id/tvActivityAddPostDescriptiontext"
android:layout_width="match_parent"
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
index 23d34ee..c3d42a5 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
@@ -49,7 +49,7 @@
<EditText
android:id="@+id/etActivityCapturePostLocation"
- android:layout_width="match_parent"
+ android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginTop="4dp"
@@ -63,6 +63,19 @@
app:layout_constraintTop_toBottomOf="@+id/tvActivityCapturePostLocationtext"
tools:ignore="DuplicateSpeakableTextCheck,TextContrastCheck"
android:importantForAutofill="no" />
+ <Button
+ android:id="@+id/btnActivityCapturePostAddLocation"
+ android:layout_width="wrap_content"
+ android:layout_height="50dp"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
+ android:background="@drawable/rounded_cyan_button"
+ android:backgroundTint="#1C789A"
+ android:text="Dodaj lokaciju"
+ app:layout_constraintBottom_toTopOf="@+id/tvActivityCapturePostDescriptiontext"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/etActivityCapturePostLocation" />
+
<TextView
android:id="@+id/tvActivityCapturePostDescriptiontext"