Skip to content
Snippets Groups Projects
Commit f6c4f253 authored by scimmiamorta's avatar scimmiamorta
Browse files

First Commit

parent 06ad0ae6
No related branches found
No related tags found
No related merge requests found
......@@ -53,6 +53,7 @@ dependencies {
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
implementation(libs.androidx.swiperefreshlayout)
implementation(libs.androidx.media3.common.ktx)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
......
......@@ -21,13 +21,12 @@ class EditProfileFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
): View {
binding = FragmentEditProfileBinding.inflate(inflater, container, false)
firebaseAuth = FirebaseAuth.getInstance()
firestore = FirebaseFirestore.getInstance()
loadUserProfile()
binding.buttonSaveProfile.setOnClickListener {
......@@ -60,7 +59,12 @@ class EditProfileFragment : Fragment() {
}
}
?.addOnFailureListener {
Toast.makeText(context, "Errore nel caricamento dei dati", Toast.LENGTH_SHORT).show()
Toast.makeText(
context,
getString(R.string.error_fetching_data),
Toast.LENGTH_SHORT
)
.show()
}
}
}
......@@ -74,7 +78,7 @@ class EditProfileFragment : Fragment() {
val skills = binding.editTextSkills.text.toString().trim()
if (firstName.isEmpty() || lastName.isEmpty() || street.isEmpty() || skills.isEmpty()) {
Toast.makeText(context, "Compila tutti i campi", Toast.LENGTH_SHORT).show()
Toast.makeText(context, getString(R.string.fill_all_field), Toast.LENGTH_SHORT).show()
return
}
......@@ -91,10 +95,14 @@ class EditProfileFragment : Fragment() {
?.document(it)
?.set(userData)
?.addOnSuccessListener {
Toast.makeText(context, "Profilo aggiornato", Toast.LENGTH_SHORT).show()
Toast.makeText(context, getString(R.string.profile_updated), Toast.LENGTH_SHORT).show()
}
?.addOnFailureListener {
Toast.makeText(context, "Errore nell'aggiornamento del profilo", Toast.LENGTH_SHORT).show()
Toast.makeText(
context,
getString((R.string.error_updating_profile)),
Toast.LENGTH_SHORT
).show()
}
}
}
......
......@@ -62,10 +62,8 @@ class LoginFragment : Fragment() {
binding.username.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
val email = binding.username.text.toString()
val pass = binding.password.text.toString()
when {
email.isEmpty() || pass.isEmpty() -> {
Toast.makeText(
......@@ -73,7 +71,6 @@ class LoginFragment : Fragment() {
Toast.LENGTH_SHORT
).show()
}
else -> {
loginUser(email, pass)
}
......@@ -95,7 +92,6 @@ class LoginFragment : Fragment() {
Toast.LENGTH_SHORT
).show()
}
else -> {
loginUser(email, pass)
}
......@@ -161,6 +157,7 @@ class LoginFragment : Fragment() {
editor.putString("user", userJson)
editor.apply()
}
private fun saveUserRoleLocally(role: String?) {
val sharedPreferences =
requireContext().getSharedPreferences("TaskManagerPrefs", Context.MODE_PRIVATE)
......
......@@ -2,7 +2,6 @@ package com.example.taskmanagement.auth
import android.content.Context
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -55,20 +54,32 @@ class RegisterFragment : Fragment() {
private fun validateInputs(email: String, pass: String, verifyPass: String): Boolean {
return when {
email.isEmpty() || pass.isEmpty() || verifyPass.isEmpty() -> {
showToast("Per favore, completa tutti i campi.")
Toast.makeText(
requireContext(),
getString(R.string.fill_all_field),
Toast.LENGTH_SHORT
).show()
false
}
!isPasswordStrong(pass) -> {
showToast(getString(R.string.password_not_strong_enough))
Toast.makeText(
requireContext(),
getString(R.string.password_not_strong_enough),
Toast.LENGTH_SHORT
).show()
false
}
pass != verifyPass -> {
showToast(getString(R.string.passwords_do_not_match))
Toast.makeText(
requireContext(),
getString(R.string.passwords_do_not_match),
Toast.LENGTH_SHORT
).show()
false
}
else -> true
}
}
......@@ -82,25 +93,23 @@ class RegisterFragment : Fragment() {
private fun registerUser(email: String, pass: String) {
mAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d("RegisterFragment", "SONO in registerUser")
val userId = mAuth.currentUser?.uid
val user = User(email = email, password = pass)
userId?.let {
FirebaseFirestore.getInstance().collection("users")
.document(it)
.set(user)
.addOnSuccessListener {
saveUserLocally(user)
showToast(getString(R.string.registration_success))
Toast.makeText(requireContext(), getString(R.string.registration_success), Toast.LENGTH_SHORT).show()
findNavController().navigate(R.id.action_registerFragment_to_loginFragment)
}
.addOnFailureListener { e ->
showToast("Errore nel salvataggio dei dati: ${e.message}")
.addOnFailureListener {
Toast.makeText(requireContext(), getString(R.string.error_fetching_data), Toast.LENGTH_SHORT).show()
}
}
} else {
showToast(task.exception?.message ?: "Errore sconosciuto.")
Toast.makeText(requireContext(), getString(R.string.error_fetching_data), Toast.LENGTH_SHORT).show()
}
}
}
......@@ -115,7 +124,4 @@ class RegisterFragment : Fragment() {
editor.apply()
}
private fun showToast(message: String) {
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
}
}
package com.example.taskmanagement.auth
data class User(val email: String = "", val password: String = "", val role: String="Dev")
\ No newline at end of file
data class User(val email: String = "", val password: String = "", val role: String = "Dev")
\ No newline at end of file
package com.example.taskmanagement.auth
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -40,7 +41,7 @@ class WelcomeFragment : Fragment() {
try {
findNavController().navigate(R.id.action_welcomeFragment_to_loginFragment)
} catch (e: Exception) {
android.util.Log.e("WelcomeFragment", "Errore durante la navigazione", e)
Log.e("WelcomeFragment", "Errore durante la navigazione", e)
}
}
......@@ -48,7 +49,7 @@ class WelcomeFragment : Fragment() {
try {
findNavController().navigate(R.id.action_welcomeFragment_to_registerFragment)
} catch (e: Exception) {
android.util.Log.e("WelcomeFragment", "Errore durante la navigazione", e)
Log.e("WelcomeFragment", "Errore durante la navigazione", e)
}
}
}
......
......@@ -167,4 +167,7 @@
<string name="only_pm_can_edit_tasks">Solo i PM possono modificare i task!</string>
<string name="assigned_tasks">Tasks assegnati</string>
<string name="statistics">Statistiche</string>
<string name="fill_all_field">Completa tutti i campi</string>
<string name="profile_updated">Profilo aggiornato con successo</string>
<string name="error_updating_profile">Errore aggiornamento profilo</string>
</resources>
\ No newline at end of file
......@@ -188,6 +188,8 @@
<string name="number" translatable="false">0</string>
<string name="assigned_tasks">Assigned Tasks</string>
<string name="statistics">Statics</string>
<string name="fill_all_field">Fill in all fields</string>
<string name="profile_updated">Profile updated successfully</string>
<string name="error_updating_profile">Error updating profile</string>
</resources>
\ No newline at end of file
......@@ -16,6 +16,7 @@ firebaseAuthKtx = "23.1.0"
navigationFragmentKtx = "2.8.5"
navigationUiKtx = "2.8.5"
swiperefreshlayout = "1.1.0"
media3CommonKtx = "1.5.1"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
......@@ -32,6 +33,7 @@ firebase-auth-ktx = { group = "com.google.firebase", name = "firebase-auth-ktx",
androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" }
androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" }
androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swiperefreshlayout" }
androidx-media3-common-ktx = { group = "androidx.media3", name = "media3-common-ktx", version.ref = "media3CommonKtx" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment