From 1746d8d5df71d905b0c4949a0056e518c57ced98 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Fri, 4 Nov 2022 23:08:40 +0100 Subject: Dodata singleton konekcija. --- .../com/example/brzodolokacije/Fragments/FragmentLogin.kt | 2 +- .../example/brzodolokacije/Fragments/FragmentRegister.kt | 2 +- .../com/example/brzodolokacije/Services/RetrofitHelper.kt | 15 +++++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index b9568df..b2c8bf5 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -84,7 +84,7 @@ class FragmentLogin : Fragment() { if(!emailString.isEmpty() && !passwordString.isEmpty()&& checkPassword(passwordString)==true && checkEmail(emailString)==true) { var loginData= Login(emailString,passwordString) - val authApi= RetrofitHelper.getInstance().create(IAuthApi::class.java) + val authApi= RetrofitHelper.getInstanceNoAuth() val request=authApi.login(loginData) request.enqueue(object : retrofit2.Callback { diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt index c9102ab..2201128 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt @@ -81,7 +81,7 @@ class FragmentRegister : Fragment() { var registerData=Register(nameString,usernameString,emailString,passwordString) - val authApi=RetrofitHelper.getInstance().create(IAuthApi::class.java) + val authApi=RetrofitHelper.getInstanceNoAuth() val request=authApi.register(registerData) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt index cc7eb56..4e9e0e6 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt @@ -1,5 +1,6 @@ package com.example.brzodolokacije.Services +import com.example.brzodolokacije.Interfaces.IAuthApi import com.google.gson.GsonBuilder import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory @@ -7,13 +8,23 @@ import retrofit2.converter.gson.GsonConverterFactory object RetrofitHelper { val baseUrl="http://10.0.2.2:5279" - fun getInstance():Retrofit{ + + private var retrofit_noauth: IAuthApi? = null + + + fun getInstanceNoAuth():IAuthApi{ + if(retrofit_noauth==null) + retrofit_noauth= createInstanceNoAuth() + return retrofit_noauth as IAuthApi + } + private fun createInstanceNoAuth():IAuthApi{ val gson = GsonBuilder() .setLenient() .create() return Retrofit.Builder().baseUrl(baseUrl) .addConverterFactory(GsonConverterFactory.create(gson)) - .build() + .build().create(IAuthApi::class.java) + } } //Usage -- cgit v1.2.3 From 93f3ab2aa55a57000cdff1cddf4955b5329978b0 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Fri, 4 Nov 2022 23:21:47 +0100 Subject: Dodat primer upita sa auth header-om. --- .../java/com/example/brzodolokacije/Fragments/FragmentLogin.kt | 2 +- .../com/example/brzodolokacije/Fragments/FragmentRegister.kt | 2 +- .../java/com/example/brzodolokacije/Interfaces/IAuthApi.kt | 5 +++++ .../java/com/example/brzodolokacije/Services/RetrofitHelper.kt | 10 ++++++---- 4 files changed, 13 insertions(+), 6 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index b2c8bf5..6e6e368 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -84,7 +84,7 @@ class FragmentLogin : Fragment() { if(!emailString.isEmpty() && !passwordString.isEmpty()&& checkPassword(passwordString)==true && checkEmail(emailString)==true) { var loginData= Login(emailString,passwordString) - val authApi= RetrofitHelper.getInstanceNoAuth() + val authApi= RetrofitHelper.getInstance() val request=authApi.login(loginData) request.enqueue(object : retrofit2.Callback { diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt index 2201128..cce3d04 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt @@ -81,7 +81,7 @@ class FragmentRegister : Fragment() { var registerData=Register(nameString,usernameString,emailString,passwordString) - val authApi=RetrofitHelper.getInstanceNoAuth() + val authApi=RetrofitHelper.getInstance() val request=authApi.register(registerData) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt index bd430a8..22935a5 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt @@ -2,9 +2,11 @@ package com.example.brzodolokacije.Interfaces import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.Models.Auth.Register +import com.example.brzodolokacije.Models.Post import okhttp3.ResponseBody import retrofit2.Call import retrofit2.http.Body +import retrofit2.http.Header import retrofit2.http.POST interface IAuthApi { @@ -12,4 +14,7 @@ interface IAuthApi { fun login(@Body obj:Login): Call @POST("/api/auth/register") fun register(@Body obj:Register):Call + + //@POST("putanja") + //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt index 4e9e0e6..5f7e8d3 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt @@ -2,6 +2,8 @@ package com.example.brzodolokacije.Services import com.example.brzodolokacije.Interfaces.IAuthApi import com.google.gson.GsonBuilder +import okhttp3.OkHttpClient +import okhttp3.Request import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory @@ -10,14 +12,14 @@ object RetrofitHelper { val baseUrl="http://10.0.2.2:5279" private var retrofit_noauth: IAuthApi? = null + private var retrofit_auth: IAuthApi? = null - - fun getInstanceNoAuth():IAuthApi{ + fun getInstance():IAuthApi{ if(retrofit_noauth==null) - retrofit_noauth= createInstanceNoAuth() + retrofit_noauth= createInstance() return retrofit_noauth as IAuthApi } - private fun createInstanceNoAuth():IAuthApi{ + private fun createInstance():IAuthApi{ val gson = GsonBuilder() .setLenient() .create() -- cgit v1.2.3 From 146a732982f096bfdb3e3ed56300233736f90c21 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Sat, 5 Nov 2022 00:08:35 +0100 Subject: Dodato refreshovanje jwt-a na clientskom delu aplikacije. --- .../brzodolokacije/Fragments/FragmentLogin.kt | 1 - .../example/brzodolokacije/Interfaces/IAuthApi.kt | 3 +- .../com/example/brzodolokacije/MainActivity.kt | 42 ++++++++++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index 6e6e368..b68a04f 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -94,7 +94,6 @@ class FragmentLogin : Fragment() { Toast.makeText( activity, token, Toast.LENGTH_LONG ).show(); - //TODO(navigate to main page) SharedPreferencesHelper.addValue("jwt",token,activity!!) val intent= Intent(activity!!, NavigationActivity::class.java) startActivity(intent) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt index 22935a5..57e7e82 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt @@ -14,7 +14,8 @@ interface IAuthApi { fun login(@Body obj:Login): Call @POST("/api/auth/register") fun register(@Body obj:Register):Call - + @POST("/api/auth/refreshJwt") + fun refreshJwt(@Header("Authorization") authHeader:String): Call //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ 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 1208564..e55da11 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 @@ -3,10 +3,15 @@ package com.example.brzodolokacije import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log +import android.widget.Toast import com.auth0.android.jwt.JWT 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 retrofit2.Call +import retrofit2.Response class MainActivity : AppCompatActivity() { @@ -17,8 +22,9 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.activity_main) val intent:Intent - if(checkLoggedIn()) - intent= Intent(this, NavigationActivity::class.java) + if(checkLoggedIn()) { + intent = Intent(this, NavigationActivity::class.java) + } else intent= Intent(this, ActivityLoginRegister::class.java) @@ -33,10 +39,42 @@ class MainActivity : AppCompatActivity() { var jwt:JWT=JWT(jwtString) if(jwt.isExpired(30)) return false + refreshJwt(jwtString) return true + } + + fun refreshJwt(token:String){ + Log.d("Main","RIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP") + if(token==null) + return + var refreshJwt= RetrofitHelper.getInstance().refreshJwt("Bearer "+token) + refreshJwt.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful()){ + val newToken=response.body().toString() + Toast.makeText( + applicationContext, token, Toast.LENGTH_LONG + ).show(); + SharedPreferencesHelper.addValue("jwt",newToken,this@MainActivity) + }else{ + if(response.errorBody()!=null) + Toast.makeText(applicationContext, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); + } + + + } + + override fun onFailure(call: Call, t: Throwable) { + Toast.makeText( + applicationContext, t.toString(), Toast.LENGTH_LONG + ).show(); + } + }) + + } } \ No newline at end of file -- cgit v1.2.3 From bf2b7accb869db760ee04c2f33f93f08164b8993 Mon Sep 17 00:00:00 2001 From: "branislav.radivojevic" Date: Sat, 5 Nov 2022 14:51:17 +0100 Subject: reset sifre na app-u --- Backend/Api/Api/Services/PostService.cs | 10 +--- .../Activities/ActivityForgottenPassword.kt | 56 ++++++++++++++++++++-- .../Activities/ActivityForgottenPasswordVerify.kt | 56 ++++++++++++++++++++-- .../example/brzodolokacije/Interfaces/IAuthApi.kt | 7 +++ .../brzodolokacije/Models/Auth/ResetPass.kt | 4 ++ 5 files changed, 115 insertions(+), 18 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt (limited to 'Client') diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs index 2f29366..0a12f39 100644 --- a/Backend/Api/Api/Services/PostService.cs +++ b/Backend/Api/Api/Services/PostService.cs @@ -23,7 +23,7 @@ namespace Api.Services { Post p = new Post(); p._id = ""; - p.ownerId = _httpContext.HttpContext.User.FindFirstValue("id"); + p.ownerId = _httpContext.HttpContext.User.FindFirstValue("id").ToString(); p.locationId = post.locationId; p.description = post.description; @@ -63,14 +63,6 @@ namespace Api.Services } await _posts.InsertOneAsync(p); - - - - - - - - return postToPostSend(p); } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt index e7c9836..b0b7f5e 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt @@ -1,27 +1,73 @@ package com.example.brzodolokacije.Activities import android.content.Intent +import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log import android.view.View import android.widget.Button +import android.widget.EditText import android.widget.Toast +import com.example.brzodolokacije.Models.Auth.JustMail +import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class ActivityForgottenPassword : AppCompatActivity() { private lateinit var sendCode: Button + private lateinit var email: EditText + private lateinit var emailString:String + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_forgotten_password) sendCode=findViewById(R.id.forgottenPasswordSendCode) as Button - + email=findViewById(R.id.editTextTextPersonName) as EditText sendCode.setOnClickListener{ - intent= Intent(this, ActivityForgottenPasswordVerify::class.java) - startActivity(intent) - } + emailString=email.text.toString().trim() - } + if(!emailString.isEmpty() && checkEmail(emailString)==true) { + + var emailData= JustMail(emailString) + val authApi= RetrofitHelper.getInstance() + val request=authApi.forgotpass(emailData) + val cont=this + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + Log.d("main",response.code().toString()) + Log.d("main",response.body().toString()) + if(response.code()==200){ + val intent = Intent(cont, ActivityForgottenPasswordVerify::class.java) + intent.putExtra("email", emailString) + startActivity(intent) + } + } + override fun onFailure(call: Call, t: Throwable) { + } + }) + } + } + } + //from fragment login + fun checkEmail(emailString:String):Boolean{ + val emailRegex = "^[A-Za-z](.*)([@]{1})(.{1,})(\\.)(.{1,})" + if(!(emailRegex.toRegex().matches(emailString))){ + Toast.makeText( + this, "Email adresa nije validna, pokušajte ponovo", Toast.LENGTH_LONG + ).show(); + email.setHintTextColor(Color.RED) + return false + } + else{ + return true + } + } } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt index 6533237..a1db97f 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt @@ -5,24 +5,72 @@ import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button +import android.widget.EditText import android.widget.Toast import com.example.brzodolokacije.MainActivity +import com.example.brzodolokacije.Models.Auth.Login +import com.example.brzodolokacije.Models.Auth.ResetPass import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class ActivityForgottenPasswordVerify : AppCompatActivity() { private lateinit var changePassword: Button + private lateinit var pw:EditText + private lateinit var pwchk:EditText + private lateinit var kod:EditText override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_forgotten_password_verify) + kod=findViewById(R.id.editTextTextPersonName) as EditText + pw=findViewById(R.id.editTextoldPassword) as EditText + pwchk =findViewById(R.id.editTextTextPassword) as EditText changePassword=findViewById(R.id.btnChangePassword) as Button changePassword.setOnClickListener{ + + var email =intent.getStringExtra("email") + var pwstr=pw.text.toString().trim() + var pwchkstr=pwchk.text.toString().trim() + var kodstr=kod.text.toString().trim() + + if(!kodstr.isEmpty() && checkPassword(pwstr,pwchkstr)){ + var resetData= ResetPass(email!!,kodstr,pwstr) + val authApi= RetrofitHelper.getInstance() + val request=authApi.resetpass(resetData) + val cont=this + request.enqueue(object : retrofit2.Callback { + override fun onResponse(call: Call, response: Response) { + if(response.code()==200){ + intent = Intent(cont, ActivityLoginRegister::class.java) + startActivity(intent) + } + } + override fun onFailure(call: Call, t: Throwable) { + } + }) + } + } + } + + //from fragment login + fun checkPassword(passwordString:String,passwordConfirm:String):Boolean{ + + if(passwordString.length<6){ Toast.makeText( - this, "Lozinka je uspešno promenjena.", Toast.LENGTH_LONG + this, "Lozinke su prekratke", Toast.LENGTH_LONG ).show(); - - intent= Intent(this, ActivityLoginRegister::class.java) - startActivity(intent) + return false + } + if(!passwordString.equals(passwordConfirm)){ + Toast.makeText( + this, "Lozinke su se ne poklapaju", Toast.LENGTH_LONG + ).show(); + return false } + return true } } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt index 57e7e82..25f18a3 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt @@ -1,7 +1,9 @@ package com.example.brzodolokacije.Interfaces +import com.example.brzodolokacije.Models.Auth.JustMail import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.Models.Auth.Register +import com.example.brzodolokacije.Models.Auth.ResetPass import com.example.brzodolokacije.Models.Post import okhttp3.ResponseBody import retrofit2.Call @@ -16,6 +18,11 @@ interface IAuthApi { fun register(@Body obj:Register):Call @POST("/api/auth/refreshJwt") fun refreshJwt(@Header("Authorization") authHeader:String): Call + @POST("/api/auth/forgotpass") + fun forgotpass(@Body obj:JustMail):Call + @POST("/api/auth/resetpass") + fun resetpass(@Body obj:ResetPass):Call + //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt new file mode 100644 index 0000000..945c8d1 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt @@ -0,0 +1,4 @@ +package com.example.brzodolokacije.Models.Auth + +data class ResetPass(var email:String,var kod:String,var newpass:String) +data class JustMail(var email:String) \ No newline at end of file -- cgit v1.2.3 From fb5f9f0b90eff107cf9b171a46e8ac53e633788f Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Sat, 5 Nov 2022 21:28:36 +0100 Subject: Dodati fragmenti za dodavanje objave i lokacije. Ispravljen konflikt. --- .../Activities/NavigationActivity.kt | 2 +- .../Fragments/FragmentAddLocation.kt | 60 +++++++++++++++++++ .../brzodolokacije/Fragments/FragmentAddNew.kt | 59 ++++++++++++++++++ .../brzodolokacije/Fragments/FragmentAddPost.kt | 7 +-- .../brzodolokacije/Fragments/FragmentProfile.kt | 11 +--- .../src/main/res/layout/fragment_add_location.xml | 14 +++++ .../app/src/main/res/layout/fragment_add_new.xml | 69 ++++++++++++++++++++++ 7 files changed, 207 insertions(+), 15 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddLocation.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_location.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml (limited to 'Client') 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 d36dbae..baa83ee 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 @@ -16,7 +16,7 @@ class NavigationActivity : AppCompatActivity() { val fragmentShowPosts=FragmentShowPosts() val browseFragment=FragmentBrowse() - val addPostFragment=FragmentAddPost() + val addPostFragment= FragmentAddNew() val profileFragment=FragmentProfile() val bottomNav=findViewById(R.id.bottomNavigationView) as BottomNavigationView setCurrentFragment(fragmentShowPosts) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddLocation.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddLocation.kt new file mode 100644 index 0000000..2d0a3bd --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddLocation.kt @@ -0,0 +1,60 @@ +package com.example.brzodolokacije.Fragments + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.example.brzodolokacije.R + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [FragmentAddLocation.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentAddLocation : Fragment() { + // TODO: Rename and change types of parameters + private var param1: String? = null + private var param2: String? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + param1 = it.getString(ARG_PARAM1) + param2 = it.getString(ARG_PARAM2) + } + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_add_location, container, false) + } + + companion object { + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment FragmentAddLocation. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentAddLocation().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt new file mode 100644 index 0000000..b1b257b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt @@ -0,0 +1,59 @@ +package com.example.brzodolokacije.Fragments + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import androidx.fragment.app.FragmentTransaction +import com.example.brzodolokacije.R + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [FragmentAddNew.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentAddNew : Fragment() { + // TODO: Rename and change types of parameters + + private lateinit var addNewPost: Button + private lateinit var addNewLocation: Button + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + val view:View=inflater.inflate(R.layout.fragment_add_new, container, false) + addNewPost=view.findViewById(R.id.btnFragmentAddNewNewPost) as Button + addNewLocation=view.findViewById(R.id.btnFragmentAddNewNewLocation) as Button + + + addNewPost.setOnClickListener{ + + var fm: FragmentTransaction =childFragmentManager.beginTransaction() + + fm.replace(R.id.flFragmentAddNewFragmentContainer, FragmentAddPost()) + fm.commit() + } + + + addNewLocation.setOnClickListener{ + + var fm: FragmentTransaction =childFragmentManager.beginTransaction() + + fm.replace(R.id.flFragmentAddNewFragmentContainer, FragmentAddLocation()) + fm.commit() + } + + return view + } + + +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt index 7fca83b..66141dd 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt @@ -7,6 +7,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import androidx.core.content.ContextCompat.startActivity import com.example.brzodolokacije.Activities.ActivityLoginRegister import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.R @@ -28,11 +29,7 @@ class FragmentAddPost : Fragment(R.layout.fragment_add_post) { savedInstanceState: Bundle? ): View? { val view:View=inflater.inflate(R.layout.fragment_add_post, container, false) - // Inflate the layout for this fragment - /*val logOutButton=view.findViewById(R.id.btnFragmentAddLogOut) as Button - logOutButton.setOnClickListener{ - logOut() - }*/ + return view; } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt index c9ce8cc..c10afbb 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt @@ -1,21 +1,14 @@ package com.example.brzodolokacije.Fragments import android.os.Bundle -import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button -import android.widget.EditText import android.widget.TextView import androidx.fragment.app.FragmentTransaction import com.example.brzodolokacije.R -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -54,8 +47,8 @@ class FragmentProfile : Fragment(R.layout.fragment_profile) { followersCount = view.findViewById(R.id.tvFragmentProfileFollowersNo) as TextView followingCount = view.findViewById(R.id.tvFragmentProfileFollowNo) as TextView - showMyPosts=view.findViewById(R.id.btnFragmentProfileShowMyPosts) as Button - showMyData=view.findViewById(R.id.btnFragmentProfileShowMyData) as Button + showMyPosts=view.findViewById(R.id.btnFragmentAddNewNewPost) as Button + showMyData=view.findViewById(R.id.btnFragmentAddNewNewLocation) as Button showMyRecensions=view.findViewById(R.id.btnFragmentProfileShowMyRecensions) as Button //podaci iz baze diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_location.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_location.xml new file mode 100644 index 0000000..bfc1edb --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_location.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml new file mode 100644 index 0000000..5cfda04 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml @@ -0,0 +1,69 @@ + + + + + + + +