diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 56e31de..fc15d69 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,7 @@
+
@@ -15,8 +16,12 @@
+
+
+ tools:targetApi="31"
+ >
+
+
+
+
@@ -94,4 +106,4 @@
android:resource="@array/preloaded_fonts" />
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/adapter/AdapterProduto.kt b/app/src/main/java/com/example/projetosaveit/adapter/AdapterProduto.kt
index 6d7afcc..f775124 100644
--- a/app/src/main/java/com/example/projetosaveit/adapter/AdapterProduto.kt
+++ b/app/src/main/java/com/example/projetosaveit/adapter/AdapterProduto.kt
@@ -3,6 +3,7 @@ package com.example.projetosaveit.adapter
import android.app.AlertDialog
import android.content.Intent
import android.os.Bundle
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import java.util.Date
@@ -19,13 +20,13 @@ import com.example.projetosaveit.R
import com.example.projetosaveit.adapter.recycleView.Produto
import com.example.projetosaveit.api.repository.EstoqueRepository
import com.example.projetosaveit.api.repository.LoteRepository
-import com.example.projetosaveit.api.repository.ProdutoRepository
import com.example.projetosaveit.api.repository.VitrineRepository
import com.example.projetosaveit.model.EstoqueDTO
import com.example.projetosaveit.model.ProdutoInfoDTO
import com.example.projetosaveit.model.VitrineDTO
import com.example.projetosaveit.model.VitrineInsertDTO
import com.example.projetosaveit.ui.TelaEstoque
+import com.example.projetosaveit.util.NotificaoUtils
import com.google.android.material.appbar.MaterialToolbar
import okhttp3.ResponseBody
import java.text.SimpleDateFormat
@@ -38,7 +39,7 @@ class AdapterProduto : RecyclerView.Adapter() {
var listProdutos = listOf()
var repository : LoteRepository = LoteRepository()
var repositoryVitrine : VitrineRepository = VitrineRepository()
- var produtoRepository : ProdutoRepository = ProdutoRepository()
+ var repositoryEstoque : EstoqueRepository = EstoqueRepository()
override fun onCreateViewHolder(
parent: ViewGroup,
@@ -85,7 +86,10 @@ class AdapterProduto : RecyclerView.Adapter() {
cancelBtn.setOnClickListener { dialog.dismiss() }
saveBtn.setOnClickListener {
val quantidade = editQuantidade.text.toString().toInt()
- val vitrineInsert : VitrineInsertDTO = VitrineInsertDTO("", produto.batchId, quantidade, Date())
+ val sdf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.getDefault())
+ val currentDate = sdf.format(Date())
+
+ val vitrineInsert = VitrineInsertDTO("", produto.batchId, quantidade, currentDate)
repositoryVitrine.postVitrine(vitrineInsert).enqueue(object : retrofit2.Callback {
override fun onResponse(
@@ -93,29 +97,32 @@ class AdapterProduto : RecyclerView.Adapter() {
response: retrofit2.Response
) {
if (response.isSuccessful) {
- Toast.makeText(holder.itemView.context, "Produto adicionado à vitrine com sucesso!", Toast.LENGTH_LONG).show()
- val updates = mapOf("quatity" to produto.quantity.toInt() - quantidade)
- repository.patchProdutoId(produto.id, updates).enqueue(object : retrofit2.Callback {
+
+ val apenasNumero = produto.quantity.filter { it.isDigit() }
+ val quantidadeAtual = apenasNumero.toInt()
+
+ NotificaoUtils.notificarProdutoAdicionado(
+ holder.itemView.context,
+ produto.name
+ )
+
+ var estoque : EstoqueDTO = EstoqueDTO(0, 0, quantidadeAtual - quantidade, produto.batchId, produto.id, 0, "", currentDate)
+ repositoryEstoque.postEstoque(estoque).enqueue(object : retrofit2.Callback {
override fun onResponse(
call: retrofit2.Call,
response: retrofit2.Response
) {
if (response.isSuccessful) {
- var estoque : EstoqueDTO = EstoqueDTO(0, 0, produto.quantity.toInt() - quantidade, produto.batchId, produto.id, 0, "", LocalDateTime.now())
- produtoRepository.postProduto(estoque).enqueue(object : retrofit2.Callback {
- override fun onResponse(
- call: retrofit2.Call,
- response: retrofit2.Response
- ) {
- if (response.isSuccessful) {
- Toast.makeText(holder.itemView.context, "O estoque foi atualizado junto com inserção na vitrine", Toast.LENGTH_LONG).show()
- }
- }
-
- override fun onFailure(call: retrofit2.Call, t: Throwable) {
- Toast.makeText(holder.itemView.context, "Erro ao atualizar estoque: ${t.message}", Toast.LENGTH_LONG).show()
- }
- })
+ Toast.makeText(holder.itemView.context, "O estoque foi atualizado junto com inserção na vitrine", Toast.LENGTH_LONG).show()
+ }else {
+ val errorBodyString = try {
+ response.errorBody()?.string()
+ } catch (e: Exception) {
+ "Erro desconhecido ao ler o corpo de erro"
+ }
+
+ Log.e("API_ERROR", "Erro na API: $errorBodyString")
+ Toast.makeText(context, errorBodyString ?: "Erro desconhecido", Toast.LENGTH_LONG).show()
}
}
@@ -123,6 +130,15 @@ class AdapterProduto : RecyclerView.Adapter() {
Toast.makeText(holder.itemView.context, "Erro ao atualizar estoque: ${t.message}", Toast.LENGTH_LONG).show()
}
})
+ }else {
+ val errorBodyString = try {
+ response.errorBody()?.string()
+ } catch (e: Exception) {
+ "Erro desconhecido ao ler o corpo de erro"
+ }
+
+ Log.e("API_ERROR", "Erro na API: $errorBodyString")
+ Toast.makeText(context, errorBodyString ?: "Erro desconhecido", Toast.LENGTH_LONG).show()
}
}
@@ -140,7 +156,7 @@ class AdapterProduto : RecyclerView.Adapter() {
}
else -> {
- repository.getProdutoId(produto.id).enqueue(object : retrofit2.Callback {
+ repository.getProdutoId(produto.batchId).enqueue(object : retrofit2.Callback {
override fun onResponse(
call: retrofit2.Call,
response: retrofit2.Response
@@ -174,6 +190,7 @@ class AdapterProduto : RecyclerView.Adapter() {
bundle.putString("quantidadeMostrada", produto?.batchResponseDTO?.quantity.toString())
bundle.putString("marcaProduto", produto?.productResponseDTO?.brand)
bundle.putString("skuProduto", produto?.batchResponseDTO?.batchCode)
+ bundle.putLong("idProduto", produto?.productResponseDTO?.id!!)
val intent : Intent = Intent(holder.itemView.context, TelaEstoque::class.java)
intent.putExtras(bundle)
diff --git a/app/src/main/java/com/example/projetosaveit/adapter/AdapterVitrine.kt b/app/src/main/java/com/example/projetosaveit/adapter/AdapterVitrine.kt
index 45b3fb6..c3ae3f7 100644
--- a/app/src/main/java/com/example/projetosaveit/adapter/AdapterVitrine.kt
+++ b/app/src/main/java/com/example/projetosaveit/adapter/AdapterVitrine.kt
@@ -49,6 +49,7 @@ class AdapterVitrine() : RecyclerView.Adapter() {
val intent = Intent(context, ProdutoVitrine::class.java)
val bundle : Bundle = Bundle()
+ bundle.putLong("idEmpresa", response.body()?.enterpriseId ?: 0L)
bundle.putLong("idVitrine", itemVitrine.id)
bundle.putString("nomeVitrine", itemVitrine.name)
bundle.putString("imagemVitrine", itemVitrine.image)
diff --git a/app/src/main/java/com/example/projetosaveit/adapter/recycleView/Produto.kt b/app/src/main/java/com/example/projetosaveit/adapter/recycleView/Produto.kt
index eede569..1664483 100644
--- a/app/src/main/java/com/example/projetosaveit/adapter/recycleView/Produto.kt
+++ b/app/src/main/java/com/example/projetosaveit/adapter/recycleView/Produto.kt
@@ -2,11 +2,11 @@ package com.example.projetosaveit.adapter.recycleView
import java.util.Date
-class Produto(
+data class Produto(
var name : String,
var quantity : String,
var expirationDate : Date,
var image : String,
var batchId : Long,
var id : Long
-) {}
\ No newline at end of file
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/api/network/ApiService.kt b/app/src/main/java/com/example/projetosaveit/api/network/ApiService.kt
index f5e9561..dc1c406 100644
--- a/app/src/main/java/com/example/projetosaveit/api/network/ApiService.kt
+++ b/app/src/main/java/com/example/projetosaveit/api/network/ApiService.kt
@@ -3,17 +3,22 @@ package com.example.projetosaveit.api.network
import com.example.projetosaveit.adapter.recycleView.Produto
import com.example.projetosaveit.adapter.recycleView.Vitrine
import com.example.projetosaveit.model.ChatDTO
+import com.example.projetosaveit.model.ChatRequest
+import com.example.projetosaveit.model.ChatResponse
import com.example.projetosaveit.model.EmpresaDTO
import com.example.projetosaveit.model.EmpresaInsertDTO
import com.example.projetosaveit.model.EstoqueDTO
-import com.example.projetosaveit.model.EstoqueInsertDTO
import com.example.projetosaveit.model.FuncionarioDTO
import com.example.projetosaveit.model.FuncionarioInsertDTO
+import com.example.projetosaveit.model.HistoricoResponse
import com.example.projetosaveit.model.ImagemDTO
+import com.example.projetosaveit.model.IniciarChatRequest
+import com.example.projetosaveit.model.IniciarChatResponse
import com.example.projetosaveit.model.LoteDTO
import com.example.projetosaveit.model.LoteInsertDTO
import com.example.projetosaveit.model.ProdutoInfoDTO
import com.example.projetosaveit.model.RelatorioDTO
+import com.example.projetosaveit.model.RelatorioProdutoDTO
import com.example.projetosaveit.model.VitrineDTO
import com.example.projetosaveit.model.VitrineInsertDTO
import okhttp3.ResponseBody
@@ -30,8 +35,18 @@ interface ApiService {
// API de SQL
- @POST("api/product/inserir")
- fun postProduto(@Body estoque : EstoqueDTO) : Call
+ @GET("api/stock/relatorioProdutoPorProduto/{enterpriseId}/{productId}")
+ fun getRelatorioProduto(@Path("enterpriseId") enterpriseId: Long, @Path("productId") productId: Long
+ ): Call>
+
+ @GET("api/stock/relatorioProduto/{enterpriseId}")
+ fun getRelatorioProdutos(@Path("enterpriseId") idEmpresa : Long): Call>
+
+ @POST("/api/stock/inserir")
+ fun postEstoque(@Body estoque : EstoqueDTO) : Call
+
+ @GET("/api/batch/selecionarSku/{sku}")
+ fun getBatchSku(@Path("sku") sku : String) : Call
@GET("api/batch/listarProdutosLote/{enterpriseId}")
fun getProdutos(@Path("enterpriseId") idEmpresa : Long): Call>
@@ -81,34 +96,41 @@ interface ApiService {
@GET("api/employee/buscarPorEmail/{email}")
fun getFuncionarioEmail(@Path("email") email : String): Call
- @GET("api/stock/relatorioProduto/{enterpriseId}")
- fun getRelatorioProdutos(@Path("enterpriseId") idEmpresa : Long): Call>
+ @GET("api/showcase/novos")
+ fun getVitrinesNovas(
+ @Query("ultimoCheck") ultimoCheck: String
+ ): Call>
- @GET("api/batch/selecionarSku/{sku}")
- fun getBatchSku(@Path("sku") sku : String): Call
+// API de Mongo/WebSocket
- @POST("api/stock/inserir")
- fun postEstoque(@Body estoque : EstoqueInsertDTO) : Call
-
-// API de Mongo
-
- @GET("chats/enterprise/{enterpriseId}")
+ @GET("chats/empresa/{enterpriseId}")
fun getChatsEmpresa(
@Path("enterpriseId") idEmpresa: Long
): Call>
- @GET("chats/ultimamensagem")
+ @GET("chats/ultimaMensagemDoChat")
fun getChatUltimaMensagem(
@Query("chatId") idChat: Long, @Query("enterpriseId") idEmpresa: Long
): Call
- @GET("chats/outraempresa")
+ @GET("chats/buscarOutraEmpresa")
fun getChatOutraEmpresa(
@Query("chatId") idChat: Long, @Query("enterpriseId") idEmpresa: Long
): Call
- @GET("chats/buscarchatweb")
+ @GET("chats/buscarChatWebSocket")
fun getChatsHistorico(
@Query("chatId") idChat: Long
): Call>
+
+// API de Chatbot
+
+ @POST("iniciar_chat")
+ fun iniciarChat(@Body request: IniciarChatRequest): Call
+
+ @POST("executar_fluxo")
+ fun enviarMensagem(@Body request: ChatRequest): Call
+
+ @GET("obter_historico")
+ fun obterHistorico(@Query("session_id") sessionId: String): Call
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/api/network/RetrofitClientSql.kt b/app/src/main/java/com/example/projetosaveit/api/network/RetrofitClientSql.kt
index e476829..66fc763 100644
--- a/app/src/main/java/com/example/projetosaveit/api/network/RetrofitClientSql.kt
+++ b/app/src/main/java/com/example/projetosaveit/api/network/RetrofitClientSql.kt
@@ -6,7 +6,7 @@ import okhttp3.OkHttpClient
object RetrofitClientSql {
- private const val BASE_URL = "https://apisaveit.onrender.com/"
+ private const val BASE_URL = "https://apisaveit.onrender.com"
private const val API_TOKEN = "essentiasaveit-193812-paoea-oei"
private val client = OkHttpClient.Builder()
@@ -28,4 +28,4 @@ object RetrofitClientSql {
val instance: ApiService by lazy {
retrofit.create(ApiService::class.java)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/example/projetosaveit/api/repository/EstoqueRepository.kt b/app/src/main/java/com/example/projetosaveit/api/repository/EstoqueRepository.kt
index 49b9a19..f0f81a1 100644
--- a/app/src/main/java/com/example/projetosaveit/api/repository/EstoqueRepository.kt
+++ b/app/src/main/java/com/example/projetosaveit/api/repository/EstoqueRepository.kt
@@ -5,6 +5,7 @@ import com.example.projetosaveit.api.network.RetrofitClientSql
import com.example.projetosaveit.model.EstoqueDTO
import com.example.projetosaveit.model.EstoqueInsertDTO
import com.example.projetosaveit.model.RelatorioDTO
+import com.example.projetosaveit.model.RelatorioProdutoDTO
import okhttp3.Response
import okhttp3.ResponseBody
import retrofit2.Call
@@ -15,7 +16,11 @@ class EstoqueRepository {
return RetrofitClientSql.instance.getRelatorioProdutos(enterpriseId)
}
- fun postEstoque(estoque: EstoqueInsertDTO) : Call {
+ fun postEstoque(estoque: EstoqueDTO) : Call {
return RetrofitClientSql.instance.postEstoque(estoque)
}
+
+ fun getRelatorioProduto(enterpriseId : Long, productId : Long) : Call> {
+ return RetrofitClientSql.instance.getRelatorioProduto(enterpriseId, productId)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/api/repository/ProdutoRepository.kt b/app/src/main/java/com/example/projetosaveit/api/repository/ProdutoRepository.kt
index 1be77e1..8717238 100644
--- a/app/src/main/java/com/example/projetosaveit/api/repository/ProdutoRepository.kt
+++ b/app/src/main/java/com/example/projetosaveit/api/repository/ProdutoRepository.kt
@@ -10,7 +10,5 @@ import retrofit2.Response
class ProdutoRepository {
- fun postProduto(estoque : EstoqueDTO) : Call {
- return RetrofitClientSql.instance.postProduto(estoque)
- }
+ // por enquanto nada...
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/api/repository/VitrineRepository.kt b/app/src/main/java/com/example/projetosaveit/api/repository/VitrineRepository.kt
index 923eee3..810f6ad 100644
--- a/app/src/main/java/com/example/projetosaveit/api/repository/VitrineRepository.kt
+++ b/app/src/main/java/com/example/projetosaveit/api/repository/VitrineRepository.kt
@@ -12,4 +12,6 @@ class VitrineRepository {
fun getVitrineEmpresa(enterpriseId : Long) = RetrofitClientSql.instance.getVitrinesEmpresa(enterpriseId)
fun postVitrine(showcase : VitrineInsertDTO) = RetrofitClientSql.instance.postVitrine(showcase)
+
+ fun getVitrineNovas(ultimoCheck: String) = RetrofitClientSql.instance.getVitrinesNovas(ultimoCheck)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/model/EstoqueDTO.kt b/app/src/main/java/com/example/projetosaveit/model/EstoqueDTO.kt
index 5562c63..1ad1e30 100644
--- a/app/src/main/java/com/example/projetosaveit/model/EstoqueDTO.kt
+++ b/app/src/main/java/com/example/projetosaveit/model/EstoqueDTO.kt
@@ -10,5 +10,5 @@ class EstoqueDTO (
var productId : Long,
var discardQuantity : Int,
var discardReason : String,
- var createdAt : LocalDateTime
+ var createdAt : String
)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/model/RelatorioProdutoDTO.kt b/app/src/main/java/com/example/projetosaveit/model/RelatorioProdutoDTO.kt
new file mode 100644
index 0000000..b2c4d69
--- /dev/null
+++ b/app/src/main/java/com/example/projetosaveit/model/RelatorioProdutoDTO.kt
@@ -0,0 +1,7 @@
+package com.example.projetosaveit.model
+
+data class RelatorioProdutoDTO(
+ val totalOutput: Int,
+ val mouthInput: Int
+) {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/model/VitrineDTO.kt b/app/src/main/java/com/example/projetosaveit/model/VitrineDTO.kt
index 573682e..5e30156 100644
--- a/app/src/main/java/com/example/projetosaveit/model/VitrineDTO.kt
+++ b/app/src/main/java/com/example/projetosaveit/model/VitrineDTO.kt
@@ -5,13 +5,12 @@ class VitrineDTO(
var name: String,
var description: String,
var image: String,
- var price: Double,
- var productId: Long,
var loteId: Long,
var tipoPeso: String,
var quantidadeGeral: Int,
var empresa: String,
var localizacao: String,
- var validade: String
+ var validade: String,
+ var enterpriseId: Long
) {
}
diff --git a/app/src/main/java/com/example/projetosaveit/model/VitrineInsertDTO.kt b/app/src/main/java/com/example/projetosaveit/model/VitrineInsertDTO.kt
index e4f7749..f76929d 100644
--- a/app/src/main/java/com/example/projetosaveit/model/VitrineInsertDTO.kt
+++ b/app/src/main/java/com/example/projetosaveit/model/VitrineInsertDTO.kt
@@ -6,6 +6,6 @@ class VitrineInsertDTO(
var description : String,
var batchId : Long,
var quantityShowcase : Int,
- var entranceDate : Date
+ var entranceDate : String
) {
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/ui/AdicionarProduto.kt b/app/src/main/java/com/example/projetosaveit/ui/AdicionarProduto.kt
index 448698d..9357986 100644
--- a/app/src/main/java/com/example/projetosaveit/ui/AdicionarProduto.kt
+++ b/app/src/main/java/com/example/projetosaveit/ui/AdicionarProduto.kt
@@ -216,6 +216,10 @@ class AdicionarProduto : AppCompatActivity() {
inserirProduto(lote)
}
}
+
+ findViewById(R.id.btVoltarAdicaoProduto).setOnClickListener {
+ finish()
+ }
}
@@ -332,6 +336,7 @@ class AdicionarProduto : AppCompatActivity() {
},
onError = { e ->
Toast.makeText(this@AdicionarProduto, "Erro no upload: ${e.message}", Toast.LENGTH_SHORT).show()
+ Log.d(ContentValues.TAG, "Erro no upload: ${e.message}")
}
)
}
@@ -410,8 +415,13 @@ class AdicionarProduto : AppCompatActivity() {
}
private fun openGallery() {
- val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
- startActivityForResult(intent, REQUEST_IMAGE_PICK)
+ if (ContextCompat.checkSelfPermission(this@AdicionarProduto, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ requestCameraPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
+ return
+ } else {
+ val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
+ startActivityForResult(intent, REQUEST_IMAGE_PICK)
+ }
}
private fun openCamera() {
diff --git a/app/src/main/java/com/example/projetosaveit/ui/AdicionarProdutoVitrine.kt b/app/src/main/java/com/example/projetosaveit/ui/AdicionarProdutoVitrine.kt
index ad8f318..1576013 100644
--- a/app/src/main/java/com/example/projetosaveit/ui/AdicionarProdutoVitrine.kt
+++ b/app/src/main/java/com/example/projetosaveit/ui/AdicionarProdutoVitrine.kt
@@ -1,11 +1,14 @@
package com.example.projetosaveit.ui
import android.app.AlertDialog
+import android.content.pm.PackageManager
+import android.os.Build
import android.widget.Toast
import android.os.Bundle
import android.view.WindowManager
import android.widget.Button
import android.widget.EditText
+import android.widget.ImageView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
@@ -27,6 +30,13 @@ class AdicionarProdutoVitrine : AppCompatActivity() {
val objAutenticar: FirebaseAuth = FirebaseAuth.getInstance()
var idEmpresa : Long = 0
+ private val PERMISSION_REQUEST_CODE = 1001
+
+ override fun onStart() {
+ super.onStart()
+ pedirPermissaoNotificacao()
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
@@ -60,6 +70,10 @@ class AdicionarProdutoVitrine : AppCompatActivity() {
}
}
+ findViewById(R.id.btVoltarAdicaoVitrine).setOnClickListener {
+ finish()
+ }
+
}
private fun carregarProdutos(idEmpresa: Long) {
@@ -78,4 +92,30 @@ class AdicionarProdutoVitrine : AppCompatActivity() {
}
})
}
+
+ private fun pedirPermissaoNotificacao() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ if (checkSelfPermission(android.Manifest.permission.POST_NOTIFICATIONS)
+ != PackageManager.PERMISSION_GRANTED
+ ) {
+ requestPermissions(
+ arrayOf(android.Manifest.permission.POST_NOTIFICATIONS),
+ PERMISSION_REQUEST_CODE
+ )
+ }
+ }
+ }
+
+ override fun onRequestPermissionsResult(
+ requestCode: Int, permissions: Array, grantResults: IntArray
+ ) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults)
+ if (requestCode == PERMISSION_REQUEST_CODE) {
+ if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
+ Toast.makeText(this, "Permissão de notificações concedida", Toast.LENGTH_SHORT).show()
+ } else {
+ Toast.makeText(this, "Permissão de notificações negada", Toast.LENGTH_SHORT).show()
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/projetosaveit/ui/AtualizarNome.kt b/app/src/main/java/com/example/projetosaveit/ui/AtualizarNome.kt
new file mode 100644
index 0000000..d29c8f0
--- /dev/null
+++ b/app/src/main/java/com/example/projetosaveit/ui/AtualizarNome.kt
@@ -0,0 +1,70 @@
+package com.example.projetosaveit.ui
+
+import android.os.Bundle
+import android.util.Log
+import android.widget.Button
+import android.widget.EditText
+import android.widget.ImageView
+import android.widget.Toast
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.example.projetosaveit.R
+import com.example.projetosaveit.api.repository.EmpresaRepository
+import com.example.projetosaveit.util.GetEmpresa
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+
+class AtualizarNome : AppCompatActivity() {
+ private val empresaRepository = EmpresaRepository()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_atualizar_nome)
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+ insets
+ }
+
+ findViewById