diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-19 19:50:05 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-19 19:50:05 +0100 |
commit | aeb0e6e1dd22e31f45aafaab60c22a5317f73adb (patch) | |
tree | e579f5f9458b103f5a45b592809df72962c929a6 | |
parent | 665f88ab3bcc5520d33276d2787cf986f6ce1d9b (diff) |
Dodat izbor lokacije kada korisnik dodaje post slikom sa kamere. Dodate provere da li je query za lokaciju uspesan. Promenjen bottom sheet dialog.
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" |