diff options
Diffstat (limited to 'Client')
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"  | 
