diff --git a/.github/workflows/petJournalAndroid.yml b/.github/workflows/petJournalAndroid.yml
index 69484275..c1b2acac 100644
--- a/.github/workflows/petJournalAndroid.yml
+++ b/.github/workflows/petJournalAndroid.yml
@@ -66,7 +66,7 @@ jobs:
# JAVA_HOME: /opt/hostedtoolcache/Java_1.8.0
# - name: Run unit tests
- # run: ./gradlew test
+ # run: ./gradlew test
# working-directory: petJournal
# - name: Upload unit tests report
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 26173778..3617d00e 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -48,4 +48,4 @@
-
\ No newline at end of file
+
diff --git a/README.md b/README.md
index 0f0ffdc7..77cf1e88 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ Ao entrar em nosso projeto voluntário, valorizamos sua contribuição e entusia
## 4. Telas e seus diagramas de funcionamento
-Nesta seção, você encontrará informações detalhadas sobre as diferentes telas do nosso aplicativo e sobre seus funcionamentos.
+Nesta seção, você encontrará informações detalhadas sobre as diferentes telas do nosso aplicativo e sobre seus funcionamentos.
- [Splash](doc/screens/splash_screen.md)
- [Login](doc/screens/login.md)
- [Cadastro](doc/screens/cadastro.md)
@@ -52,7 +52,7 @@ Nesta seção, você encontrará informações detalhadas sobre as diferentes te
## 5. Padrões de Design e Melhores Práticas
- Utilizamos os recursos a baixo em nosso app, o que torna importante conhecer tais padrões.
+ Utilizamos os recursos a baixo em nosso app, o que torna importante conhecer tais padrões.
- [FormEvent](doc/pattern/FormEvent.md)
- [FormState](doc/pattern/FormState.md)
- [FormState e FormEvent](doc/pattern/FormStateAndFormEvent.md)
diff --git a/doc/architecture/architecture.md b/doc/architecture/architecture.md
index 18f9d6dc..fb4b68b9 100644
--- a/doc/architecture/architecture.md
+++ b/doc/architecture/architecture.md
@@ -1,20 +1,20 @@
- **Visão Geral da Arquitetura**: MVVM para separação da lógica de negócios e interface do usuário.
-
+

-
+
- **Diagrama da Arquitetura expandido**:
-
+

-
+
- **Organização das pastas:**
- **Modulos** :

-
+
- **App, Domain, Data, Database** :
-
-
+
+
diff --git a/doc/pattern/FormEvent.md b/doc/pattern/FormEvent.md
index 86bad7c9..fd14bd8d 100644
--- a/doc/pattern/FormEvent.md
+++ b/doc/pattern/FormEvent.md
@@ -26,12 +26,12 @@ Para utilizar um padrão semelhante em outras telas, siga estas etapas:
val error: String? = null
)
```
-
+
```kotlin
class ScreenViewModel : ViewModel() {
private val _state = MutableLiveData()
val state: LiveData = _state
-
+
fun onEvent(event: ScreenEvent) {
when (event) {
is ScreenEvent.EventA -> {
@@ -46,7 +46,7 @@ Para utilizar um padrão semelhante em outras telas, siga estas etapas:
}
}
}
-
+
```
3. **Emita eventos a partir da UI**: Na interface do usuário, emita os eventos apropriados em resposta às ações do usuário.
```kotlin
@@ -75,4 +75,4 @@ Usar `FormEvent` ajuda a manter uma arquitetura clara e reativa, facilitando o g
---
-Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
\ No newline at end of file
+Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
diff --git a/doc/pattern/FormState.md b/doc/pattern/FormState.md
index 68064fb0..35608a14 100644
--- a/doc/pattern/FormState.md
+++ b/doc/pattern/FormState.md
@@ -67,4 +67,4 @@ Utilizar o `FormState` ajuda a manter seu código organizado, facilita a leitura
---
-Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
\ No newline at end of file
+Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
diff --git a/doc/pattern/FormStateAndFormFormEvent.md b/doc/pattern/FormStateAndFormFormEvent.md
index d0319ea2..ab9c7b60 100644
--- a/doc/pattern/FormStateAndFormFormEvent.md
+++ b/doc/pattern/FormStateAndFormFormEvent.md
@@ -85,4 +85,4 @@ A integração de `FormState` e `FormEvent` oferece uma maneira organizada e efi
---
-Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
\ No newline at end of file
+Nota: Sinta-se à vontade para adaptar ou expandir este texto conforme necessário para nossa documentação!
diff --git a/doc/screens/Screens.md b/doc/screens/Screens.md
index 35f7202a..95cf3a00 100644
--- a/doc/screens/Screens.md
+++ b/doc/screens/Screens.md
@@ -4,81 +4,81 @@
- **Fluxo de Navegação**: Transição para a tela de Login.
- **Componentes Principais**: Logo do app e animação.
- **UX/Design:**
-
+
-
+
- **Login:**
- **Descrição**: Tela para autenticação do usuário.
- **Componentes Principais**: Campos de email e senha, botões de login.
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
+
- **Cadastro:**
- **Descrição**: Tela para cadastrar uma nova conta.
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
-
+
+
- **Esqueceu a senha:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
-
+
+
- **Aguardando código:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
+
- **Troque a senha:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
- **Ambiente do usuário:**
- **Diagrama UML:**
-
- 
+
+ 
- **UX/Design:**
-
+
- **Tela padrão inicial:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
+
- **Tela padrão espécie:**
- **Diagrama UML:**
- **UX/Design:**
diff --git a/doc/screens/aguardando_codigo.md b/doc/screens/aguardando_codigo.md
index 12d8f620..ace549b6 100644
--- a/doc/screens/aguardando_codigo.md
+++ b/doc/screens/aguardando_codigo.md
@@ -1,9 +1,8 @@
- **Aguardando código:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
\ No newline at end of file
diff --git a/doc/screens/ambiente_do_usuario.md b/doc/screens/ambiente_do_usuario.md
index 9fc9c53d..31102c90 100644
--- a/doc/screens/ambiente_do_usuario.md
+++ b/doc/screens/ambiente_do_usuario.md
@@ -1,8 +1,8 @@
- **Ambiente do usuário:**
- **Diagrama UML:**
-
- 
+
+ 
- **UX/Design:**
-
+
diff --git a/doc/screens/cadastro.md b/doc/screens/cadastro.md
index ffb2e15d..c940e812 100644
--- a/doc/screens/cadastro.md
+++ b/doc/screens/cadastro.md
@@ -1,10 +1,9 @@
- **Cadastro:**
- **Descrição**: Tela para cadastrar uma nova conta.
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
\ No newline at end of file
diff --git a/doc/screens/esqueceu_a_senha.md b/doc/screens/esqueceu_a_senha.md
index 82cf9090..8698f104 100644
--- a/doc/screens/esqueceu_a_senha.md
+++ b/doc/screens/esqueceu_a_senha.md
@@ -1,10 +1,8 @@
- **Esqueceu a senha:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
-
\ No newline at end of file
diff --git a/doc/screens/login.md b/doc/screens/login.md
index 5dd9d266..a9e64f6a 100644
--- a/doc/screens/login.md
+++ b/doc/screens/login.md
@@ -2,10 +2,9 @@
- **Descrição**: Tela para autenticação do usuário.
- **Componentes Principais**: Campos de email e senha, botões de login.
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
+
-
diff --git a/doc/screens/splash_screen.md b/doc/screens/splash_screen.md
index ba7a2b3f..553adcf4 100644
--- a/doc/screens/splash_screen.md
+++ b/doc/screens/splash_screen.md
@@ -3,6 +3,5 @@
- **Fluxo de Navegação**: Transição para a tela de Login.
- **Componentes Principais**: Logo do app e animação.
- **UX/Design:**
-
+
-
\ No newline at end of file
diff --git a/doc/screens/tela_padrao_especie.md b/doc/screens/tela_padrao_especie.md
index 32d962f7..ec38cc75 100644
--- a/doc/screens/tela_padrao_especie.md
+++ b/doc/screens/tela_padrao_especie.md
@@ -1,7 +1,7 @@
- **Tela padrão espécie:**
- **Diagrama UML:**
-
+
- **UX/Design:**
-
+
diff --git a/doc/screens/tela_padrao_inicial.md b/doc/screens/tela_padrao_inicial.md
index 768c6c09..6b3d4963 100644
--- a/doc/screens/tela_padrao_inicial.md
+++ b/doc/screens/tela_padrao_inicial.md
@@ -1,8 +1,8 @@
- **Tela padrão inicial:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
-
\ No newline at end of file
+
+
diff --git a/doc/screens/tela_padrao_raca_e_porte.md b/doc/screens/tela_padrao_raca_e_porte.md
index 17f04dd2..8730e844 100644
--- a/doc/screens/tela_padrao_raca_e_porte.md
+++ b/doc/screens/tela_padrao_raca_e_porte.md
@@ -5,4 +5,4 @@
- **UX/Design:**
-
\ No newline at end of file
+
diff --git a/doc/screens/troque_a_senha.md b/doc/screens/troque_a_senha.md
index 787d89a7..d9f77a59 100644
--- a/doc/screens/troque_a_senha.md
+++ b/doc/screens/troque_a_senha.md
@@ -1,9 +1,8 @@
- **Troque a senha:**
- **Diagrama UML:**
-
+

-
+
- **UX/Design:**
-
-
+
diff --git a/petJournal/.gitignore b/petJournal/.gitignore
index 994c4777..0f8e3c9b 100644
--- a/petJournal/.gitignore
+++ b/petJournal/.gitignore
@@ -16,4 +16,4 @@ petJournal/.idea/discord.xml
petJournal/.idea/gradle.xml
petJournal/.idea/inspectionProfiles/Project_Default.xml
petJournal/.idea/vcs.xml
-/.idea/workspace.xml
\ No newline at end of file
+/.idea/workspace.xml
diff --git a/petJournal/.pre-commit-config.yaml b/petJournal/.pre-commit-config.yaml
new file mode 100644
index 00000000..56f2b364
--- /dev/null
+++ b/petJournal/.pre-commit-config.yaml
@@ -0,0 +1,16 @@
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.6.0
+ hooks:
+ - id: mixed-line-ending
+ - id: trailing-whitespace
+ - id: end-of-file-fixer
+
+ # - repo: local
+ # hooks:
+ # - id: ktlint
+ # name: Ktlint
+ # entry: cmd /c gradlew.bat ktlintCheck
+ # language: system
+ # types: [kotlin]
+ # pass_filenames: false
diff --git a/petJournal/app/.gitignore b/petJournal/app/.gitignore
index 42afabfd..796b96d1 100644
--- a/petJournal/app/.gitignore
+++ b/petJournal/app/.gitignore
@@ -1 +1 @@
-/build
\ No newline at end of file
+/build
diff --git a/petJournal/app/build.gradle.kts b/petJournal/app/build.gradle.kts
index 567b704f..fc10a067 100644
--- a/petJournal/app/build.gradle.kts
+++ b/petJournal/app/build.gradle.kts
@@ -7,12 +7,12 @@ plugins {
android {
namespace = "com.soujunior.petjournal"
- compileSdk = 34
+ compileSdk = 36
defaultConfig {
applicationId = "com.soujunior.petjournal"
minSdk = 27
- targetSdk = 34
+ targetSdk = 36
versionCode = 6
versionName = "1.0.6"
@@ -55,6 +55,7 @@ dependencies {
implementation(project(":domain"))
implementation(project(":database"))
implementation(project(":data"))
+ implementation("androidx.compose.runtime:runtime-android:1.9.5")
val composeUiVersion = "1.4.2"
@@ -98,7 +99,7 @@ dependencies {
// MATERIAL 3 - STATUS BAR
implementation("com.google.accompanist:accompanist-systemuicontroller:0.30.1")
implementation("androidx.navigation:navigation-compose:2.6.0-beta01")
- implementation("androidx.compose.material3:material3:1.1.2")
+ implementation("androidx.compose.material3:material3:1.2.1")
// COMPOSE
implementation("androidx.activity:activity-compose:1.7.1")
implementation("androidx.compose.ui:ui:$composeUiVersion")
@@ -120,11 +121,12 @@ dependencies {
androidTestImplementation("androidx.test:runner:1.5.2")
androidTestImplementation("androidx.arch.core:core-testing:2.1.0")
- testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2")
+ androidTestImplementation("io.mockk:mockk-android:1.12.0")
+ androidTestImplementation("io.mockk:mockk-agent:1.12.0")
testImplementation("junit:junit:4.13.2")
testImplementation("io.mockk:mockk:1.12.0")
testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/proguard-rules.pro b/petJournal/app/proguard-rules.pro
index ff59496d..2f9dc5a4 100644
--- a/petJournal/app/proguard-rules.pro
+++ b/petJournal/app/proguard-rules.pro
@@ -18,4 +18,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ExampleInstrumentedTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ExampleInstrumentedTest.kt
index c619ae1c..7a43b002 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ExampleInstrumentedTest.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ExampleInstrumentedTest.kt
@@ -16,4 +16,4 @@
// val appContext = InstrumentationRegistry.getInstrumentation().targetContext
// assertEquals("com.soujunior.petjournal", appContext.packageName)
// }
-//}
\ No newline at end of file
+//}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/componentes/PetFilterListTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/componentes/PetFilterListTest.kt
new file mode 100644
index 00000000..359d3c7f
--- /dev/null
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/componentes/PetFilterListTest.kt
@@ -0,0 +1,90 @@
+package com.soujunior.petjournal.componentes
+
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.hasParent
+import androidx.compose.ui.test.hasTestTag
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithTag
+import androidx.compose.ui.test.performClick
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import androidx.compose.ui.res.painterResource
+import com.soujunior.petjournal.R // Para carregar imagens de preview
+import com.soujunior.petjournal.ui.components.PetFilterList
+import com.soujunior.petjournal.ui.components.Pets
+import io.mockk.mockk
+import org.mockito.Mockito.verify
+
+@RunWith(AndroidJUnit4::class)
+class PetFilterListTest {
+
+ @get:Rule
+ val composeTestRule = createComposeRule()
+
+ private val mockOnSelectedPet: (String) -> Unit = mockk(relaxed = true)
+
+ private val dummyPetList = listOf(
+ Pets(
+ id = 1,
+ imageRes = null,
+ name = "Jujuba"
+ ),
+ Pets(
+ id = 2,
+ imageRes = null,
+ name = "Alfredo"
+ )
+ )
+
+ @Before
+ fun setUp() {
+ composeTestRule.setContent {
+ val listWithPainters = dummyPetList.map {
+ it.copy(imageRes = painterResource(id = R.drawable.penguim))
+ }
+
+ PetFilterList(
+ listPet = listWithPainters,
+ onSelectedPet = mockOnSelectedPet
+ )
+ }
+ }
+
+ @Test
+ fun test_PetFilterList_DisplaysItems() {
+ composeTestRule.onNodeWithTag("PetItem_Todos").assertIsDisplayed()
+ composeTestRule.onNodeWithTag("PetItem_Jujuba").assertIsDisplayed()
+ composeTestRule.onNodeWithTag("PetItem_Alfredo").assertIsDisplayed()
+ }
+
+ @Test
+ fun test_PetFilterList_SelectsAndDeselectsPet() {
+ val jujubaSelectedIconMatcher =
+ hasParent(hasTestTag("PetItem_Jujuba")) and hasTestTag("SelectedIcon")
+
+ composeTestRule.onNode(jujubaSelectedIconMatcher).assertDoesNotExist()
+
+ composeTestRule.onNodeWithTag("PetItem_Jujuba").performClick()
+
+ composeTestRule.onNode(jujubaSelectedIconMatcher).assertIsDisplayed()
+
+ composeTestRule.onNodeWithTag("PetItem_Jujuba").performClick()
+
+ composeTestRule.onNode(jujubaSelectedIconMatcher).assertDoesNotExist()
+ }
+
+ @Test
+ fun test_PetFilterList_CallbackIsCalledOnSelection() {
+ composeTestRule.onNodeWithTag("PetItem_Alfredo").performClick()
+
+ verify { mockOnSelectedPet("Alfredo") }
+
+ composeTestRule.onNodeWithTag("PetItem_Todos").performClick()
+
+ verify { mockOnSelectedPet("Todos") }
+ }
+}
\ No newline at end of file
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/login/LoginAccountConfirmationDialogTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/login/LoginAccountConfirmationDialogTest.kt
index ec48dcc6..7555cac8 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/login/LoginAccountConfirmationDialogTest.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/login/LoginAccountConfirmationDialogTest.kt
@@ -40,4 +40,4 @@ class LoginAccountConfirmationDialogTest {
composeTestRule.onNodeWithText("Confirmação do E-mail").assertDoesNotExist()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/nameGenderScreen/NameGenderInstrumentedTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/nameGenderScreen/NameGenderInstrumentedTest.kt
index 60688232..976fd1c5 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/nameGenderScreen/NameGenderInstrumentedTest.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/nameGenderScreen/NameGenderInstrumentedTest.kt
@@ -136,4 +136,4 @@ class NameGenderInstrumentedTest {
composeTestRule.onNodeWithTag("button3_test").performClick()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/NavHostMainContentInstrumentedTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/NavHostMainContentInstrumentedTest.kt
index 537cd419..042824a4 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/NavHostMainContentInstrumentedTest.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/NavHostMainContentInstrumentedTest.kt
@@ -94,4 +94,4 @@ class NavHostMainContentInstrumentedTest {
assertEquals(navController.currentDestination?.route, "pets/nameAndGender/{arg}")
assertEquals(navController.currentBackStackEntry?.arguments?.getString("arg"), "Gato")
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/navHostMock.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/navHostMock.kt
index fed4cb72..bc32bc78 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/navHostMock.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/navigation/navHostMock.kt
@@ -25,4 +25,4 @@ fun navHostMock(navController: NavHostController, startDestination: String) {
composable("pets/nameAndGender/{arg}") { backStackEntry -> PetNameAndGenderScreen(backStackEntry.arguments?.getString("arg"), navController) }
composable("pets/RaceAndSize/{arg}") { navBackStackEntry -> PetRaceAndSizeScreen( idPetInformation = navBackStackEntry.arguments?.getString("arg"), navController = navController ) }
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/screen_pets/RegisterPetScreenTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/screen_pets/RegisterPetScreenTest.kt
index 8c302940..c622009a 100644
--- a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/screen_pets/RegisterPetScreenTest.kt
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/screen_pets/RegisterPetScreenTest.kt
@@ -60,10 +60,10 @@ class RegisterPetScreenTest {
composeTestRule.setContent {
InputText(
- titleText = stringResource(R.string.pet_name),
placeholderText = stringResource(R.string.placeholder_name_pet),
+ titleText = stringResource(R.string.pet_name),
textValue = actualText,
- onEvent = { actualText = it }
+ onEvent = { actualText = it },
)
}
@@ -81,9 +81,9 @@ class RegisterPetScreenTest {
InputText(
titleText = stringResource(R.string.pet_name),
textValue = "",
- onEvent = {},
isError = true,
textError = listOf(errorMessage),
+ onEvent = {},
)
}
@@ -464,4 +464,4 @@ class RegisterPetScreenTest {
assertTrue(petCastrate)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTaskTest.kt b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTaskTest.kt
new file mode 100644
index 00000000..1970ae55
--- /dev/null
+++ b/petJournal/app/src/androidTest/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTaskTest.kt
@@ -0,0 +1,427 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.registerTaskScreen.components
+
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.hasSetTextAction
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithTag
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.compose.ui.test.performTextInput
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.soujunior.petjournal.ui.components.GroupSelectableButton
+import com.soujunior.petjournal.ui.components.InputText
+import com.soujunior.petjournal.ui.components.PetFilterList
+import com.soujunior.petjournal.ui.components.Pets
+import com.soujunior.petjournal.ui.components.SelectableButtonInfo
+import com.soujunior.petjournal.ui.components.TextFieldCustom
+import com.soujunior.petjournal.ui.components.TransactionTypeSelector
+import com.soujunior.petjournal.ui.components.task.OneOffTask
+import com.soujunior.petjournal.ui.components.task.RecurringTask
+import com.soujunior.petjournal.ui.theme.ColorCustom
+import com.soujunior.petjournal.ui.util.TransactionType
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class ScreenRegisterTaskTest {
+
+ @get:Rule
+ val composeTestRule = createComposeRule()
+
+ private val pets = listOf(
+ Pets(id = 1, name = "Rex"),
+ Pets(id = 2, name = "Mia"),
+ Pets(id = 3, name = "Thor")
+ )
+
+ private val sampleListOfTasks = listOf(
+ SelectableButtonInfo("Vacinas", ColorCustom.color_selectable_button_1),
+ SelectableButtonInfo("Consultas", ColorCustom.color_selectable_button_2),
+ SelectableButtonInfo("Remédios", ColorCustom.color_selectable_button_3)
+ )
+
+ @Test
+ fun groupSelectableButton_displaysTitleCorrectly() {
+ composeTestRule.setContent {
+ GroupSelectableButton(
+ listOfTasks = sampleListOfTasks,
+ onSelection = {}
+ )
+ }
+
+ composeTestRule.onNodeWithText("Essa tarefa é...")
+ .assertIsDisplayed()
+ }
+
+ @Test
+ fun groupSelectableButton_displaysAllButtons() {
+ composeTestRule.setContent {
+ GroupSelectableButton(
+ listOfTasks = sampleListOfTasks,
+ onSelection = {}
+ )
+ }
+
+ sampleListOfTasks.forEach { buttonInfo ->
+ composeTestRule.onNodeWithText(buttonInfo.title).assertIsDisplayed()
+ }
+ }
+
+ @Test
+ fun groupSelectableButton_selectsAndDeselectsButtonCorrectly() {
+ composeTestRule.setContent {
+ GroupSelectableButton(
+ listOfTasks = sampleListOfTasks,
+ onSelection = {}
+ )
+ }
+
+ val firstButton = sampleListOfTasks[0]
+
+ composeTestRule.onNodeWithText(firstButton.title).performClick()
+
+ composeTestRule.onNodeWithText(firstButton.title).performClick()
+ }
+
+ @Test
+ fun groupSelectableButton_selectsOnlyOneButtonAtATime_ifLogicImpliesThat() {
+ composeTestRule.setContent {
+ GroupSelectableButton(
+ listOfTasks = sampleListOfTasks,
+ onSelection = {}
+ )
+ }
+
+ val firstButton = sampleListOfTasks[0]
+ val secondButton = sampleListOfTasks[1]
+
+ composeTestRule.onNodeWithText(firstButton.title).performClick()
+
+ composeTestRule.onNodeWithText(secondButton.title).performClick()
+
+ }
+
+ @Test
+ fun inputText_displaysTitleCorrectly() {
+ val testTitle = "Nome da Tarefa"
+ composeTestRule.setContent {
+ InputText(
+ titleText = testTitle,
+ textValue = "",
+ onEvent = {},
+ )
+ }
+
+ composeTestRule.onNodeWithText(testTitle).assertIsDisplayed()
+ }
+
+ @Test
+ fun inputText_displaysPlaceholder_whenTextValueIsEmptyAndNotMasked() {
+ val testPlaceholder = "Digite o nome da tarefa"
+ composeTestRule.setContent {
+ InputText(
+ placeholderText = testPlaceholder,
+ textValue = "",
+ onEvent = {},
+ )
+ }
+
+ composeTestRule.onNodeWithText(testPlaceholder).assertIsDisplayed()
+ }
+
+ @Test
+ fun inputText_doesNotDisplayPlaceholder_whenTextValueIsNotEmpty() {
+ val testPlaceholder = "Digite o nome da tarefa"
+ composeTestRule.setContent {
+ InputText(
+ placeholderText = testPlaceholder,
+ textValue = "Minha Tarefa",
+ onEvent = {},
+ )
+ }
+
+ composeTestRule.onNodeWithText(testPlaceholder).assertDoesNotExist()
+ }
+
+ @Test
+ fun inputText_displaysErrorMessages_whenTextErrorIsProvided() {
+ val errorMessages = listOf("Nome muito curto", "Nome inválido")
+ composeTestRule.setContent {
+ InputText(
+ textValue = "Ops",
+ isError = true,
+ textError = errorMessages,
+ onEvent = {},
+ )
+ }
+ errorMessages.forEach { errorMessage ->
+ composeTestRule.onNodeWithText(errorMessage).assertIsDisplayed()
+ }
+ }
+
+ private val title = "Descrição"
+ private val placeholder = "Digite a descrição aqui..."
+
+ @Test
+ fun shouldDisplayTitleAndPlaceholder() {
+ composeTestRule.setContent {
+ TextFieldCustom(
+ title = title,
+ placeholder = placeholder,
+ value = "",
+ onValueChange = {}
+ )
+ }
+
+ composeTestRule.onNodeWithText(title).assertIsDisplayed()
+
+ composeTestRule.onNodeWithText(placeholder).assertIsDisplayed()
+ }
+
+ @Test
+ fun shouldUpdateTextWhenTyping() {
+ var textValue = ""
+ composeTestRule.setContent {
+ TextFieldCustom(
+ title = title,
+ placeholder = placeholder,
+ value = textValue,
+ onValueChange = { textValue = it }
+ )
+ }
+
+ val inputText = "Descrição do produto"
+
+ composeTestRule.onNode(
+ hasSetTextAction()
+ ).performTextInput(inputText)
+
+ assert(textValue == inputText)
+ }
+
+ @Test
+ fun shouldDisplayTitleAndAllOption() {
+ composeTestRule.setContent {
+ PetFilterList(listPet = pets)
+ }
+
+ composeTestRule.onNodeWithText("Quais pets precisam dessa tarefa?").assertIsDisplayed()
+
+ composeTestRule.onNodeWithText("Todos").assertIsDisplayed()
+ }
+
+ @Test
+ fun shouldDisplayAllPetsFromList() {
+ composeTestRule.setContent {
+ PetFilterList(listPet = pets)
+ }
+
+ pets.forEach { pet ->
+ composeTestRule.onNodeWithText(pet.name!!).assertIsDisplayed()
+ }
+ }
+
+ @Test
+ fun shouldSelectAndUnselectPet() {
+ var selected: String? = null
+ composeTestRule.setContent {
+ PetFilterList(
+ listPet = pets,
+ onSelectedPet = { selected = it }
+ )
+ }
+
+ composeTestRule.onNodeWithText("Rex").performClick()
+ assert(selected == "Rex")
+
+ composeTestRule.onNodeWithText("Rex").performClick()
+ assert(selected == "")
+ }
+
+ @Test
+ fun shouldSelectAllOption() {
+ var selected: String? = null
+ composeTestRule.setContent {
+ PetFilterList(
+ listPet = pets,
+ onSelectedPet = { selected = it }
+ )
+ }
+
+ composeTestRule.onNodeWithText("Todos").performClick()
+ assert(selected == "Todos")
+
+ composeTestRule.onNodeWithText("Todos").performClick()
+ assert(selected == "")
+ }
+
+ @Test
+ fun shouldShowRecurringTaskWhenRecurrentSelected() {
+ composeTestRule.setContent {
+ var selectedType: TransactionType? = null
+
+ Column {
+ TransactionTypeSelector(
+ onSelectionChanged = { type ->
+ selectedType = type
+ }
+ )
+
+ when (selectedType) {
+ TransactionType.Recurrent -> {
+ RecurringTask(
+ setOf(),
+ onAmPmSelector = {},
+ onTime = { _, _ -> },
+ onWeekDaySelected = {},
+ onDaySelected = {}
+ )
+ }
+
+ TransactionType.OneOff -> {
+ OneOffTask(
+ onDateSelected = {},
+ onAmPmSelector = {},
+ onTime = { _, _ -> }
+ )
+ }
+
+ null -> {}
+ }
+ }
+ }
+
+ composeTestRule.onNodeWithText("Recorrente").performClick()
+ }
+
+ @Test
+ fun test_TransactionTypeSelector_TogglesConditionalUI_Correctly() {
+
+ composeTestRule.setContent {
+ var selectedType: TransactionType? = null
+
+ Column {
+ TransactionTypeSelector(
+ onSelectionChanged = { type ->
+ selectedType = type
+ }
+ )
+
+ when (selectedType) {
+ TransactionType.Recurrent -> {
+ Box(modifier = Modifier.testTag("RecurringTaskComponent")) {
+ RecurringTask(
+ setOf(),
+ onAmPmSelector = {},
+ onTime = { _, _ -> },
+ onWeekDaySelected = {},
+ onDaySelected = {}
+ )
+ }
+ }
+
+ TransactionType.OneOff -> {
+ Box(modifier = Modifier.testTag("OneOffTaskComponent")) {
+ OneOffTask(
+ onDateSelected = {},
+ onAmPmSelector = {},
+ onTime = { _, _ -> }
+ )
+ }
+ }
+
+ null -> {}
+ }
+ }
+ }
+
+ composeTestRule.onNodeWithTag("RecurringTaskComponent").assertDoesNotExist()
+ composeTestRule.onNodeWithTag("OneOffTaskComponent").assertDoesNotExist()
+
+ composeTestRule.onNodeWithTag("TaskRecurrent").performClick()
+
+ composeTestRule.onNodeWithTag("RecurringTaskComponent").assertIsDisplayed()
+ composeTestRule.onNodeWithTag("OneOffTaskComponent").assertDoesNotExist()
+
+ composeTestRule.onNodeWithTag("TaskOneOff").performClick()
+
+ composeTestRule.onNodeWithTag("RecurringTaskComponent").assertDoesNotExist()
+ composeTestRule.onNodeWithTag("OneOffTaskComponent").assertIsDisplayed()
+ }
+
+ @Test
+ fun shouldShowOneOffTaskWhenOneOffSelected() {
+ composeTestRule.setContent {
+ var selectedType: TransactionType? = null
+
+ Column {
+ TransactionTypeSelector(
+ onSelectionChanged = { type ->
+ selectedType = type
+ }
+ )
+
+ when (selectedType) {
+ TransactionType.Recurrent -> {
+ RecurringTask(
+ setOf(),
+ onAmPmSelector = {},
+ onTime = { _, _ -> },
+ onWeekDaySelected = {},
+ onDaySelected = {}
+ )
+ }
+
+ TransactionType.OneOff -> {
+ OneOffTask(
+ onDateSelected = {},
+ onAmPmSelector = {},
+ onTime = { _, _ -> }
+ )
+ }
+
+ null -> {}
+ }
+ }
+ }
+
+ composeTestRule.onNodeWithText("Pontual").performClick()
+ }
+
+ @Test
+ fun shouldUpdateObservationText() {
+ composeTestRule.setContent {
+ val ob = remember { mutableStateOf("") }
+
+ TextFieldCustom(
+ title = "Observação",
+ placeholder = "Digite aqui a sua observação",
+ value = ob.value,
+ onValueChange = { ob.value = it },
+ )
+ }
+
+ composeTestRule.onNodeWithText("Digite aqui a sua observação").assertIsDisplayed()
+
+ val text = "Precisa dar o remédio às 14h"
+ composeTestRule.onNodeWithText("Digite aqui a sua observação").performTextInput(text)
+ }
+
+ @Test
+ fun test_TransactionTypeSelector_ShowsConditionalUI() {
+ composeTestRule.onNodeWithTag("RecurringTaskComponent").assertDoesNotExist()
+
+ composeTestRule.onNodeWithTag("TaskRecurrent").performClick()
+
+ composeTestRule.onNodeWithTag("RecurringTaskComponent").assertIsDisplayed()
+ composeTestRule.onNodeWithTag("OneOffTaskComponent").assertDoesNotExist()
+ }
+
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/application/PetJournalApplicationKoin.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/application/PetJournalApplicationKoin.kt
index a38b20ad..9be7ac8e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/application/PetJournalApplicationKoin.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/application/PetJournalApplicationKoin.kt
@@ -23,4 +23,4 @@ class PetJournalApplicationKoin : Application() {
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/MainActivity.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/MainActivity.kt
index e4db3ebb..651c5e25 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/MainActivity.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/MainActivity.kt
@@ -7,8 +7,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.graphics.Color
import androidx.core.view.WindowCompat
+import androidx.navigation.compose.rememberNavController
import com.google.accompanist.systemuicontroller.rememberSystemUiController
-import com.soujunior.petjournal.ui.components.ActiveMonthsComponent
+import com.soujunior.petjournal.ui.screens_app.screens_pets.registerTaskScreen.components.ScreenRegisterTask
import com.soujunior.petjournal.ui.theme.PetJournalTheme
class MainActivity : ComponentActivity() {
@@ -17,8 +18,7 @@ class MainActivity : ComponentActivity() {
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
ChangeSystemBars()
-// PresentationManager()
- ActiveMonthsComponent(activeMonths = setOf("Jan", "Mar", "Mai"))
+ PresentationManager()
}
}
}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/NavHostElements.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/NavHostElements.kt
index 75918754..0e46cb42 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/NavHostElements.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/navigation/NavHostElements.kt
@@ -55,8 +55,7 @@ fun NavHostMainContent() {
composable("account_manager") { AccountManager() }
composable("tutorScreen") { TutorScreen(navController) }
composable("pets/introRegisterPet") { IntroRegisterPetScreen(navController) }
-// composable("pets/introRegisterPet") { RegisterPetScreen(navController) }
- composable("pets/petList") { PetListScreen(navController) }
+ composable("pets/petListScreen") { PetListScreen(navController) }
composable("pets/registerPet") { RegisterPetScreen(navController) }
composable("pets/speciesChoice") { SpeciesChoiceScreen(navController) }
@@ -82,5 +81,3 @@ fun NavHostMainContent() {
}
}
}
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ActiveMonthsComponent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ActiveMonthsComponent.kt
index 5a83c5b6..36ad6244 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ActiveMonthsComponent.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ActiveMonthsComponent.kt
@@ -74,7 +74,8 @@ fun ActiveMonthsComponent(activeMonths: Set) {
Text(
text = month,
style = MaterialTheme.typography.labelLarge,
- color = if (isActive) MaterialTheme.colorScheme.onPrimary else ColorCustom.color_border_dialog,
+ //todo: corrigir ColorCustom.color_border_dialog,
+ color = if (isActive) MaterialTheme.colorScheme.onPrimary else ColorCustom.error_color,
fontWeight = FontWeight(400)
)
}
@@ -104,7 +105,8 @@ fun ActiveMonthsComponent(activeMonths: Set) {
) {
Text(
text = month,
- color = if (isActive) MaterialTheme.colorScheme.onPrimary else ColorCustom.color_border_dialog,
+ //todo: corrigir ColorCustom.color_border_dialog,
+ color = if (isActive) MaterialTheme.colorScheme.onPrimary else ColorCustom.error_color,
fontWeight = FontWeight(400)
)
}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/AmPmSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/AmPmSelector.kt
index acb20413..7b7101e2 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/AmPmSelector.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/AmPmSelector.kt
@@ -103,4 +103,4 @@ fun AmPmSelectorPreview() {
onPeriodSelected = {},
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Breadcrumb.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Breadcrumb.kt
index 684dc853..5a06af8e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Breadcrumb.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Breadcrumb.kt
@@ -105,4 +105,4 @@ private fun buildString(screens: List, index: Int): AnnotatedString{
@Composable
private fun PreviewScreenIndicator(){
Breadcrumb(index = 2)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button.kt
index de255fc6..62e1bb98 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button.kt
@@ -87,4 +87,4 @@ fun ButtonPreview() {
Button2(submit = { /*TODO*/ }, enableButton = false)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button2.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button2.kt
index a87cf217..9d5b44dc 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button2.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Button2.kt
@@ -70,4 +70,4 @@ fun Button2(
@Composable
fun Button2Preview() {
Button2(submit = { /*TODO*/ }, enableButton = true, text = "Macho")
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CardButton.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CardButton.kt
index 25257e8f..23d068a9 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CardButton.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CardButton.kt
@@ -41,6 +41,3 @@ fun CardButton(
}
}
}
-
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CreateTitleAndImageLogo.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CreateTitleAndImageLogo.kt
index a43da3bb..b6062ae6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CreateTitleAndImageLogo.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/CreateTitleAndImageLogo.kt
@@ -159,4 +159,4 @@ fun TesteImage() {
.padding(top = 20.dp),
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DashedInputText.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DashedInputText.kt
index 7c1c0a65..c2373d07 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DashedInputText.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DashedInputText.kt
@@ -214,4 +214,4 @@ fun DashedInputText(
@Composable
fun DashedInputTextPreview() {
DashedInputText(Modifier, onEvent = {}, textValue = "")
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DateInputText.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DateInputText.kt
index e1d48763..9d682bf2 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DateInputText.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DateInputText.kt
@@ -47,6 +47,7 @@ import ir.kaaveh.sdpcompose.ssp
@Composable
fun DateInputText(
modifier: Modifier = Modifier,
+ textTitleModifier: Modifier = Modifier,
textInputModifier: Modifier = Modifier,
placeholderText: String = "Placeholder",
titleText: String = "Title",
@@ -67,9 +68,9 @@ fun DateInputText(
color = MaterialTheme.colorScheme.scrim,
style = MaterialTheme.typography.bodyMedium,
fontWeight = FontWeight(500),
- modifier = Modifier
+ modifier = textTitleModifier
.fillMaxWidth()
- .padding(start = 24.sdp, end = 24.sdp)
+ .padding(end = 24.sdp)
)
}
Row {
@@ -179,6 +180,3 @@ fun DateInputText(
fun DateInputTextPreview() {
DateInputText(textValue = "", onEvent = {}, textError = null, placeholderText = "13/05/1996")
}
-
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DayButton.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DayButton.kt
index d9cc8507..72b28bbd 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DayButton.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DayButton.kt
@@ -73,4 +73,4 @@ fun DayButtonPreview() {
onDaySelected = {},
selectedDay = remember { mutableStateOf("Seg") }
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DropDown.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DropDown.kt
index e9dbf7e8..c75537cc 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DropDown.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DropDown.kt
@@ -47,6 +47,7 @@ import ir.kaaveh.sdpcompose.sdp
@Composable
fun DropDown(
modifier: Modifier = Modifier,
+ textTitleModifier: Modifier = Modifier,
textInputModifier: Modifier = Modifier,
placeholderText: String = "Porte do seu pet",
titleText: String = "Title",
@@ -66,9 +67,7 @@ fun DropDown(
color = MaterialTheme.colorScheme.scrim,
style = MaterialTheme.typography.bodyMedium,
fontWeight = FontWeight(500),
- modifier = Modifier
- .fillMaxWidth()
- .padding(start = 24.sdp, end = 24.sdp)
+ modifier = textTitleModifier.fillMaxWidth().padding(end = 24.sdp)
)
}
Row {
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DualActionButton.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DualActionButton.kt
index 5e752de0..889f29fb 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DualActionButton.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DualActionButton.kt
@@ -43,20 +43,7 @@ fun DualActionButton(
rightButtonTextColor: Color = MaterialTheme.colorScheme.primary,
isLoading: Boolean = false
) {
-
Column(modifier = modifier) {
- Row {
- Text(
- text = titleText,
- textAlign = TextAlign.Start,
- color = MaterialTheme.colorScheme.scrim,
- style = MaterialTheme.typography.bodyMedium,
- fontWeight = FontWeight(500),
- modifier = Modifier
- .fillMaxWidth()
- .padding(start = 24.sdp, end = 24.sdp)
- )
- }
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween,
@@ -132,4 +119,4 @@ fun DualActionButtonPreview() {
leftButtonText = "Macho",
rightButtonText = "Fêmea"
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/HeaderImageLogoImagePasswordAndTitle.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/HeaderImageLogoImagePasswordAndTitle.kt
index b774cef5..29d1c217 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/HeaderImageLogoImagePasswordAndTitle.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/HeaderImageLogoImagePasswordAndTitle.kt
@@ -172,4 +172,4 @@ fun TesteImages() {
.padding(top = 20.dp),
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImageLogo.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImageLogo.kt
index af5babb3..daa279d0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImageLogo.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImageLogo.kt
@@ -39,5 +39,3 @@ fun ImageLogo(
fun teste(){
ImageLogo()
}
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImagePet.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImagePet.kt
index 018e21ad..423eda1f 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImagePet.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ImagePet.kt
@@ -105,5 +105,3 @@ fun ImagePet(
fun ImagePetPreview() {
ImagePet()
}
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/IndeterminateCircularIndicator.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/IndeterminateCircularIndicator.kt
index c6a80d1e..94120cd1 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/IndeterminateCircularIndicator.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/IndeterminateCircularIndicator.kt
@@ -24,4 +24,4 @@ fun IndeterminateCircularIndicator(modifier: Modifier = Modifier) {
backgroundColor = MaterialTheme.colorScheme.primary,
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputSpecies.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputSpecies.kt
index 6c0067c0..8be383f3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputSpecies.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputSpecies.kt
@@ -102,4 +102,4 @@ fun InputSpecies(
)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputText.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputText.kt
index 0f8ab0ff..5b9140ff 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputText.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/InputText.kt
@@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
@@ -27,7 +28,6 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.geometry.CornerRadius
-import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.drawscope.Stroke
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
@@ -40,7 +40,6 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
import com.soujunior.petjournal.R
import com.soujunior.petjournal.ui.theme.ColorCustom
import com.soujunior.petjournal.ui.theme.ColorGrid
@@ -60,23 +59,24 @@ fun InputText(
onEvent: (String) -> Unit,
hasAMask: Boolean = false,
keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Text),
- visualTransformation: VisualTransformation = VisualTransformation.None
+ visualTransformation: VisualTransformation = VisualTransformation.None,
+ textTitleModifier: Modifier = Modifier
) {
var showPassword by remember { mutableStateOf(false) }
- Column(modifier = modifier.padding(top = 16.sdp)) {
+ Column(modifier = modifier) {
Row {
Text(
text = titleText,
textAlign = TextAlign.Start,
color = MaterialTheme.colorScheme.scrim,
- style = MaterialTheme.typography.bodyMedium,
fontWeight = FontWeight(500),
- modifier = modifier
+ style = MaterialTheme.typography.titleMedium,
+ modifier = textTitleModifier
.fillMaxWidth()
- .padding(start = 24.sdp, end = 24.sdp)
)
}
+ Spacer(modifier = Modifier.height(8.dp))
Row {
BasicTextField(
modifier = textInputModifier
@@ -90,7 +90,7 @@ fun InputText(
color = MaterialTheme.colorScheme.surface,
shape = RoundedCornerShape(size = 12.dp)
)
- .padding(2.sdp)
+ .padding(0.sdp)
.fillMaxWidth()
.testTag("inputField_test")
.drawBehind {
@@ -121,25 +121,21 @@ fun InputText(
else PasswordVisualTransformation()
} else visualTransformation,
keyboardOptions = keyboardOptions,
- decorationBox = {
+ decorationBox = { innerTextField ->
Row(
modifier = Modifier
- .background(Color.White)
- .padding(start = 14.sdp),
+ .padding(horizontal = 14.sdp),
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier.weight(1f)
) {
+ innerTextField()
if (textValue.isEmpty() && !hasAMask) {
Text(
text = placeholderText,
- style = TextStyle(
- fontSize = 14.sp,
- lineHeight = 21.sp,
- fontWeight = FontWeight(300),
- color = MaterialTheme.colorScheme.scrim,
- )
+ color = ColorCustom.color_placeholder,
+ style = MaterialTheme.typography.bodyMedium
)
}
}
@@ -194,5 +190,5 @@ fun InputText(
@Preview(showBackground = true, showSystemUi = false, device = "id:pixel_4_xl")
@Composable
fun InputTextPreview() {
- InputText(Modifier, onEvent = {}, textValue = "")
-}
\ No newline at end of file
+ InputText(textValue = "", onEvent = {},)
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/LoadingText.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/LoadingText.kt
index 1f66f29e..3e5d844b 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/LoadingText.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/LoadingText.kt
@@ -37,4 +37,4 @@ fun LoadingText(
modifier = modifierText
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/MenuRow.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/MenuRow.kt
index 7d071aba..504c0f19 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/MenuRow.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/MenuRow.kt
@@ -32,4 +32,4 @@ fun MenuRow(items: List>) {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBar.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBar.kt
index 1802bc9b..80c688ef 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBar.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBar.kt
@@ -89,4 +89,4 @@ fun NavigationBar(navController: NavController) {
fun NavigationBarPreview() {
val nav = rememberNavController()
NavigationBar(nav)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBarItems.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBarItems.kt
index 706ec91a..852d4803 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBarItems.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/NavigationBarItems.kt
@@ -25,7 +25,7 @@ sealed class NavigationBarItems(
object Pets : NavigationBarItems(
title = "Pets",
- route = "pets/introRegisterPet",
+ route = "pets/petListScreen",
icons = R.drawable.ic_pet,
group = "pets"
)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PeriodSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PeriodSelector.kt
new file mode 100644
index 00000000..8f79e586
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PeriodSelector.kt
@@ -0,0 +1,91 @@
+package com.soujunior.petjournal.ui.components
+
+import androidx.compose.foundation.Canvas
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.Path
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.soujunior.petjournal.ui.util.SelectedPeriodType
+
+@Composable
+fun PeriodSelector(
+ selected: SelectedPeriodType,
+ onSelectionChanged: (SelectedPeriodType) -> Unit
+) {
+ val items = listOf(SelectedPeriodType.Diária, SelectedPeriodType.Semanal, SelectedPeriodType.Mensal)
+
+ Row(
+ modifier = Modifier.fillMaxWidth(),
+ horizontalArrangement = Arrangement.SpaceEvenly
+ ) {
+ items.forEach { item ->
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ modifier = Modifier
+ .clickable { onSelectionChanged(item) }
+ .padding(horizontal = 8.dp)
+ ) {
+ Text(
+ text = item.name,
+ style = MaterialTheme.typography.bodyMedium,
+ color = if (selected == item) Color(0xFF8D4CD2) else Color.Black,
+ )
+ if (selected == item) {
+ TriangleIndicator()
+ } else {
+ Spacer(modifier = Modifier.height(6.dp))
+ }
+ }
+ }
+ }
+}
+
+@Composable
+fun TriangleIndicator(
+ //TODO: colocar na tabela de cores.
+ color: Color = Color(0xFF8D4CD2),
+ modifier: Modifier = Modifier
+ .width(60.dp)
+ .height(2.dp)
+) {
+ Canvas(modifier = modifier) {
+ val width = size.width
+ val height = size.height
+
+ val inset = width * 0.1f
+
+ val path = Path().apply {
+ moveTo(inset, 0f)
+ lineTo(width - inset, 0f)
+ lineTo(width, height)
+ lineTo(0f, height)
+ close()
+ }
+
+ drawPath(path = path, color = color)
+ }
+}
+
+
+@Preview(showBackground = true)
+@Composable
+fun PeriodSelectorPreview() {
+ var selectedPeriod = SelectedPeriodType.Diária
+ PeriodSelector(selected = selectedPeriod) {
+ selectedPeriod = it
+ }
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetItem.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetItem.kt
index 82ef1432..c7eba977 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetItem.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetItem.kt
@@ -70,4 +70,4 @@ fun PetItem(
@Composable
private fun previewPetItem(){
PetItem(modifier = Modifier, imageRes = "", name = "", onClick = {})
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetSelectorItem.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetSelectorItem.kt
index 7a2e0e89..cb2cbca0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetSelectorItem.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PetSelectorItem.kt
@@ -31,6 +31,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.vector.VectorPainter
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
@@ -56,7 +57,7 @@ fun PetIcon(
ambientColor = ColorCustom.color_spot_pet_icon
)
.padding(1.dp)
- .size(66.dp)
+ .size(55.dp)
.background(
color = backgroundColor,
shape = RoundedCornerShape(8.dp)
@@ -77,6 +78,7 @@ fun PetIcon(
modifier = Modifier
.size(32.dp)
.offset(y = 4.dp)
+ .testTag("SelectedIcon")
)
}
@@ -129,6 +131,7 @@ fun PetFilterItem(
modifier = Modifier
.padding(start = 8.dp, end = 8.dp)
.clickable { onSelect(name) }
+ .testTag("PetItem_$name")
) {
PetIcon(
imageRes = if (name == "Todos") painterResource(id = R.drawable.icon_pet_selected) else imageRes,
@@ -160,46 +163,56 @@ fun PetFilterList(
var selectedPets by remember { mutableStateOf(listOf()) }
- LazyRow(
- modifier = Modifier
- .fillMaxWidth()
- .padding(top = 20.dp),
- horizontalArrangement = Arrangement.spacedBy(8.dp)
- ) {
- item {
- PetFilterItem(
- name = "Todos",
- isSelected = selectedPets.contains(stringResource(R.string.label_all_pets)),
- imageRes = null,
- onSelect = { name ->
- selectedPets = if (selectedPets.contains(name)) {
- selectedPets - name
- } else {
- selectedPets + name
+ Column(modifier = Modifier) {
+ Text(
+ text = stringResource(R.string.which_pets_need_this_task),
+ color = MaterialTheme.colorScheme.scrim,
+ fontWeight = FontWeight(500),
+ style = MaterialTheme.typography.titleMedium
+ )
+
+ LazyRow(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(top = 8.dp, start = 10.dp),
+ horizontalArrangement = Arrangement.spacedBy(8.dp)
+ ) {
+ item {
+ PetFilterItem(
+ name = stringResource(R.string.label_all_pets),
+ isSelected = selectedPets.contains(stringResource(R.string.label_all_pets)),
+ imageRes = null,
+ onSelect = { name ->
+ selectedPets = if (selectedPets.contains(name)) {
+ selectedPets - name
+ } else {
+ selectedPets + name
+ }
+ onSelectedPet(if (selectedPets.contains(name)) name else "")
}
- onSelectedPet(if (selectedPets.contains(name)) name else "")
- }
- )
- }
- items(
- items = listPet,
- key = { it.id }
- ) { item ->
- PetFilterItem(
- name = item.name!!,
- isSelected = selectedPets.contains(item.name),
- imageRes = item.imageRes,
- onSelect = { name ->
- selectedPets = if (selectedPets.contains(name)) {
- selectedPets - name
- } else {
- selectedPets + name
+ )
+ }
+ items(
+ items = listPet,
+ key = { it.id }
+ ) { item ->
+ PetFilterItem(
+ name = item.name!!,
+ isSelected = selectedPets.contains(item.name),
+ imageRes = item.imageRes,
+ onSelect = { name ->
+ selectedPets = if (selectedPets.contains(name)) {
+ selectedPets - name
+ } else {
+ selectedPets + name
+ }
+ onSelectedPet(if (selectedPets.contains(name)) name else "")
}
- onSelectedPet(if (selectedPets.contains(name)) name else "")
- }
- )
+ )
+ }
}
}
+
}
@Preview(showBackground = true, showSystemUi = false, device = "id:pixel_4_xl")
@@ -215,11 +228,30 @@ fun PetFilterListPreview() {
id = 2,
imageRes = painterResource(R.drawable.image_alfredo),
name = "Alfredo"
- )
+ ),Pets(
+ id = 1423,
+ imageRes = painterResource(R.drawable.image_jujuba),
+ name = "Jujuba"
+ ),
+ Pets(
+ id = 245,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 1455,
+ imageRes = painterResource(R.drawable.image_jujuba),
+ name = "Jujuba"
+ ),
+ Pets(
+ id = 6452,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ )
)
PetFilterList(
listPet,
onSelectedPet = {}
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicy.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicy.kt
index 9968a92c..da8287a3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicy.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicy.kt
@@ -163,4 +163,4 @@ fun BoxWithPrivacyPolicyText() {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicyCheckbox.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicyCheckbox.kt
index d4a98291..0a0e548b 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicyCheckbox.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/PrivacyPolicyCheckbox.kt
@@ -93,4 +93,4 @@ fun PrivacyPolicyCheckbox(
if (showPrivacyPolicy) {
PrivacyPolicy()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RadioButtonWithText.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RadioButtonWithText.kt
index 20dc7c13..1c700ed6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RadioButtonWithText.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RadioButtonWithText.kt
@@ -44,4 +44,4 @@ fun RadioButtonWithText(
color = if (isDarkMode) MaterialTheme.colorScheme.primary else Color.Unspecified
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RoundedSquare.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RoundedSquare.kt
index d35f2543..b3a3ebc0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RoundedSquare.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/RoundedSquare.kt
@@ -170,4 +170,4 @@ fun RoundedSquare(
}
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ScaffoldCustom.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ScaffoldCustom.kt
index 1a68028b..f348f0b4 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ScaffoldCustom.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/ScaffoldCustom.kt
@@ -119,4 +119,4 @@ fun ScaffoldCustomPreview() {
showBottomBarNavigation = true,
bottomNavigationBar = { NavigationBar(nav) }
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/SelectableButtonData.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/SelectableButtonData.kt
index 8eb8733c..c2ab27ac 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/SelectableButtonData.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/SelectableButtonData.kt
@@ -1,6 +1,7 @@
package com.soujunior.petjournal.ui.components
import androidx.compose.foundation.BorderStroke
+import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.foundation.layout.FlowRow
@@ -8,6 +9,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -38,10 +40,9 @@ fun SelectableButton(
modifierSelectableButton: Modifier = Modifier,
onSelectionChanged: (String, Boolean) -> Unit
) {
- androidx.compose.material3.Button(
+ Button(
modifier = modifierSelectableButton
- .height(70.dp)
- .padding(top = 15.dp, end = 15.dp, bottom = 15.dp)
+ .height(40.dp)
.then(
if (isSelected) {
Modifier.shadow(
@@ -79,57 +80,35 @@ fun SelectableButton(
}
}
+
+
@OptIn(ExperimentalLayoutApi::class)
@Composable
fun GroupSelectableButton(
- onSelection: (String) -> Unit = {}
+ listOfTasks: List,
+ onSelection: (String) -> Unit = {},
+ modifier: Modifier = Modifier,
+ maxItemsInEachRow: Int = Int.MAX_VALUE
) {
- val buttons = listOf(
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_vaccines),
- ColorCustom.color_selectable_button_1
- ),
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_consultations),
- ColorCustom.color_selectable_button_2
- ),
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_medicine),
- ColorCustom.color_selectable_button_3
- ),
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_bath),
- ColorCustom.color_selectable_button_4
- ),
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_food),
- ColorCustom.color_selectable_button_5
- ),
- SelectableButtonInfo(
- stringResource(R.string.label_selectable_button_pet_walk),
- ColorCustom.color_selectable_button_6
- ),
- )
-
- val selectionState = remember { mutableStateListOf(*Array(buttons.size) { false }) }
+ val selectionState = remember { mutableStateListOf(*Array(listOfTasks.size) { false }) }
Column(
- modifier = Modifier
- .fillMaxWidth()
- .padding(16.dp)
+ modifier = modifier,
+ verticalArrangement = Arrangement.spacedBy(8.dp)
) {
Text(
text = stringResource(R.string.label_select_main_category),
- style = MaterialTheme.typography.titleLarge,
+ style = MaterialTheme.typography.titleMedium,
color = MaterialTheme.colorScheme.scrim,
fontWeight = FontWeight(500),
lineHeight = 24.sp
)
-
FlowRow(
- modifier = Modifier.fillMaxWidth()
+ modifier = Modifier.fillMaxWidth(),
+ horizontalArrangement = Arrangement.spacedBy(15.dp),
+ maxItemsInEachRow = maxItemsInEachRow
) {
- buttons.forEachIndexed { index, buttonInfo ->
+ listOfTasks.forEachIndexed { index, buttonInfo ->
SelectableButton(
titleButton = buttonInfo.title,
colorButton = buttonInfo.color,
@@ -142,7 +121,9 @@ fun GroupSelectableButton(
onSelection("")
}
},
- modifierSelectableButton = Modifier.adaptiveWidthForTitle(buttonInfo.title)
+ modifierSelectableButton = Modifier
+ .adaptiveWidthForTitle(buttonInfo.title)
+ .padding(bottom = 15.dp)
)
}
}
@@ -155,9 +136,34 @@ data class SelectableButtonInfo(
val color: Color
)
-
-@Preview(showBackground = true, showSystemUi = true, device = "id:pixel_4_xl")
+@Preview()
@Composable
-fun CustomSelectableButtonPreview() {
- GroupSelectableButton()
-}
\ No newline at end of file
+fun CustomSelectableButtonWithoutDevicePreview() {
+ val listOfTasks = listOf(
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_vaccines),
+ ColorCustom.color_selectable_button_1
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_consultations),
+ ColorCustom.color_selectable_button_2
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_medicine),
+ ColorCustom.color_selectable_button_3
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_bath),
+ ColorCustom.color_selectable_button_4
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_food),
+ ColorCustom.color_selectable_button_5
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_pet_walk),
+ ColorCustom.color_selectable_button_6
+ ),
+ )
+ GroupSelectableButton(listOfTasks)
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Shimmer.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Shimmer.kt
index fa7e47d8..777ccdde 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Shimmer.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/Shimmer.kt
@@ -44,4 +44,4 @@ fun Shimmer(modifier: Modifier = Modifier) {
)
)
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskCard.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskCard.kt
index ce4084fd..b204a51e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskCard.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskCard.kt
@@ -37,34 +37,35 @@ import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.soujunior.petjournal.R
import com.soujunior.petjournal.ui.components.data.TaskData
-import com.soujunior.petjournal.ui.components.data.TaskDummyData
+import com.soujunior.petjournal.ui.components.data.TaskFakeData
import ir.kaaveh.sdpcompose.sdp
import ir.kaaveh.sdpcompose.ssp
@Composable
fun TaskCard(
- taskData: TaskData
+ taskData: TaskData,
+ modifier: Modifier = Modifier,
+ expandValue: Boolean = false
) {
- var expanded by remember { mutableStateOf(false) }
+ var expanded by remember { mutableStateOf(expandValue) }
Box(
- modifier = Modifier.clip(RectangleShape)
+ modifier = modifier.clip(RectangleShape)
) {
Surface(
- shape = RoundedCornerShape(8.sdp),
+ shape = RoundedCornerShape(10.sdp),
tonalElevation = 2.dp,
modifier = Modifier
+ .fillMaxWidth()
.padding(2.sdp)
- .animateContentSize() // Animates the size change
+ .animateContentSize()
) {
- // Background icon when expanded - outside the Surface
if (expanded) {
Icon(
- painter = painterResource(id = taskData.tipo.iconeVector!!),
- contentDescription = "Ícone ${taskData.tipo.nome}",
- tint = taskData.tipo.cor.copy(alpha = .5f),
+ painter = painterResource(id = taskData.type.iconVector!!),
+ contentDescription = "Ícone ${taskData.type.name}",
+ tint = taskData.type.color.copy(alpha = .5f),
modifier = Modifier
.align(Alignment.BottomStart)
.padding(start = 2.sdp, bottom = 42.sdp)
@@ -73,15 +74,13 @@ fun TaskCard(
)
}
Column {
- // Main content: Title/Date on Start, Description on End
Row(
modifier = Modifier
.fillMaxWidth()
- .padding(4.sdp),
+ .padding(2.sdp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.Top
) {
- // Left side: Title and Date
Column(
modifier = Modifier
.padding(horizontal = 8.sdp)
@@ -89,22 +88,19 @@ fun TaskCard(
horizontalAlignment = Alignment.Start
) {
Text(
- text = taskData.titulo,
+ text = taskData.title,
modifier = Modifier.padding(bottom = 2.sdp),
style = MaterialTheme.typography.titleMedium,
fontSize = 15.ssp
)
Text(
- text = taskData.dataHora,
+ text = taskData.startAt,
style = MaterialTheme.typography.titleMedium,
color = Color.Gray,
fontSize = 10.ssp
)
- /**
- * Vai receber n ids de pets e vai criar a grid com as imagens dos respectivos pets
- * */
if (expanded) {
LazyVerticalGrid(
modifier = Modifier.fillMaxWidth(),
@@ -120,17 +116,16 @@ fun TaskCard(
}
}
- // Right side: Description
Column(
modifier = Modifier
.padding(horizontal = 8.sdp)
.weight(0.6f),
horizontalAlignment = Alignment.Start
) {
- val displayText = if (!expanded && taskData.descricaoResumida.length > 50) {
- taskData.descricaoResumida.take(50) + "..."
+ val displayText = if (!expanded && taskData.descriptionResumed.length > 50) {
+ taskData.descriptionResumed.take(50) + "..."
} else {
- taskData.descricaoResumida
+ taskData.descriptionResumed
}
Text(
@@ -143,7 +138,7 @@ fun TaskCard(
if (expanded) {
Text(
- text = taskData.descricaoCompleta,
+ text = taskData.descriptionCompleted,
style = MaterialTheme.typography.titleSmall,
modifier = Modifier
.fillMaxWidth(1f)
@@ -153,7 +148,6 @@ fun TaskCard(
}
}
- // Expanded content
if (expanded) {
Column(
modifier = Modifier
@@ -171,39 +165,30 @@ fun TaskCard(
),
shape = RoundedCornerShape(50.sdp),
colors = ButtonDefaults.buttonColors(MaterialTheme.colorScheme.background)
-
) {
- // TODO: AJUSTAR A COR DO BOTÃO PARA A COR DA TAREFA
Text(
text = "Editar Tarefa",
fontSize = 10.ssp,
- color = taskData.tipo.cor,
- style = MaterialTheme.typography.headlineLarge
+ color = taskData.type.color,
)
}
}
}
- // Bottom section: "Ver Mais" / "Ver Menos"
Box(
modifier = Modifier
.fillMaxWidth()
- .background(taskData.tipo.cor)
- .clickable { expanded = !expanded } // Toggles the expanded state
+ .height(20.sdp)
+ .background(taskData.type.color)
+ .clickable { expanded = !expanded },
) {
- Row(
+ Text(
+ text = if (expanded) "Ver Menos" else "Ver Mais",
+ fontSize = 10.ssp,
+ color = MaterialTheme.colorScheme.background,
modifier = Modifier
- .fillMaxWidth()
- .padding(vertical = 6.sdp),
- horizontalArrangement = Arrangement.Center
- ) {
- Text(
- text = if (expanded) "Ver Menos" else "Ver Mais",
- fontSize = 10.ssp,
- color = MaterialTheme.colorScheme.background,
- style = MaterialTheme.typography.displaySmall
- )
- }
+ .align(Alignment.Center)
+ )
}
}
}
@@ -215,15 +200,20 @@ fun TaskCard(
@Preview
@Composable
private fun TaskCardPreview() {
- Column(Modifier.padding(8.sdp)) {
+ Column(Modifier) {
+ TaskCard(
+ taskData = TaskFakeData.sampleTasks[0]
+ )
+ }
+}
+
+@Preview
+@Composable
+private fun TaskCardExpandedPreview() {
+ Column(Modifier) {
TaskCard(
- taskData = TaskDummyData.sampleTasks[0]
+ taskData = TaskFakeData.sampleTasks[0],
+ expandValue = true
)
-// TaskCard(
-// taskData = TaskDummyData.sampleTasks[1]
-// )
-// TaskCard(
-// taskData = TaskDummyData.sampleTasks[2]
-// )
}
}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskSuccessDialog.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskSuccessDialog.kt
index e8f3f655..35736250 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskSuccessDialog.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TaskSuccessDialog.kt
@@ -51,10 +51,13 @@ fun TaskSuccessDialog(
modifier = modifier
.shadow(
elevation = 3.dp,
- spotColor = ColorCustom.color_shadow_dialog,
- ambientColor = ColorCustom.color_shadow_dialog
+ //todo: Corrigir ColorCustom.color_shadow_dialog,
+ spotColor = ColorCustom.error_color,
+ //todo: Corrigir ColorCustom.color_shadow_dialog,
+ ambientColor = ColorCustom.error_color
)
- .border(2.dp, ColorCustom.color_border_dialog, RoundedCornerShape(16.dp))
+ //todo: Corrigir ColorCustom.color_border_dialog,
+ .border(2.dp, ColorCustom.error_color, RoundedCornerShape(16.dp))
.width(330.dp)
.height(338.dp)
.background(
@@ -90,7 +93,8 @@ fun TaskSuccessDialog(
.fillMaxWidth()
.padding(start = 16.dp, end = 16.dp),
onClick = onNewTaskClick,
- border = BorderStroke(1.dp, ColorCustom.color_background_button_dialog),
+ //todo: Corrigir ColorCustom.color_background_button_dialog,
+ border = BorderStroke(1.dp, ColorCustom.error_color),
shape = RoundedCornerShape(12.dp)
) {
Icon(
@@ -99,14 +103,16 @@ fun TaskSuccessDialog(
.height(24.dp),
imageVector = Icons.Default.Add,
contentDescription = null,
- tint = ColorCustom.color_background_button_dialog
+ //todo: Corrigir ColorCustom.color_background_button_dialog,
+ tint = ColorCustom.error_color
)
Spacer(modifier = Modifier.width(8.dp))
Text(
text = stringResource(R.string.label_new_task),
style = MaterialTheme.typography.titleMedium,
fontWeight = FontWeight(600),
- color = ColorCustom.color_border_dialog
+ //todo: Corrigir ColorCustom.color_border_dialog,
+ color = ColorCustom.error_color
)
}
@@ -115,7 +121,8 @@ fun TaskSuccessDialog(
.fillMaxWidth()
.padding(start = 16.dp, end = 16.dp, top = 6.dp),
onClick = onGoToHomeClick,
- colors = ButtonDefaults.buttonColors(containerColor = ColorCustom.color_border_dialog),
+ //todo: Corrigir ColorCustom.color_border_dialog,
+ colors = ButtonDefaults.buttonColors(containerColor = ColorCustom.error_color),
shape = RoundedCornerShape(12.dp)
) {
Text(
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DescriptionTextField.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TextFieldCustom.kt
similarity index 82%
rename from petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DescriptionTextField.kt
rename to petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TextFieldCustom.kt
index e018df07..d7ce79f6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/DescriptionTextField.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TextFieldCustom.kt
@@ -13,26 +13,26 @@ import androidx.compose.material3.OutlinedTextFieldDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.soujunior.petjournal.R
import com.soujunior.petjournal.ui.theme.ColorCustom
@Composable
-fun DescriptionTextField(
+fun TextFieldCustom(
+ title:String,
+ placeholder:String,
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier
) {
Column(
modifier = modifier
- .padding(16.dp)
) {
Text(
- text = stringResource(R.string.label_description),
- fontWeight = FontWeight.Bold,
+ text = title,
+ color = MaterialTheme.colorScheme.scrim,
+ fontWeight = FontWeight(500),
style = MaterialTheme.typography.titleMedium,
)
@@ -43,9 +43,9 @@ fun DescriptionTextField(
onValueChange = onValueChange,
placeholder = {
Text(
- text = stringResource(R.string.enter_the_task_description_here),
+ text = placeholder,
color = ColorCustom.color_placeholder,
- style = MaterialTheme.typography.bodySmall
+ style = MaterialTheme.typography.bodyMedium
)
},
modifier = Modifier
@@ -64,7 +64,9 @@ fun DescriptionTextField(
@Preview
@Composable
fun DescriptionTextFieldPreview() {
- DescriptionTextField(
+ TextFieldCustom(
+ title = "Título",
+ placeholder = "Descrição",
value = "",
onValueChange = {}
)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TransactionTypeSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TransactionTypeSelector.kt
new file mode 100644
index 00000000..898ad828
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/TransactionTypeSelector.kt
@@ -0,0 +1,147 @@
+package com.soujunior.petjournal.ui.components
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.soujunior.petjournal.R
+import com.soujunior.petjournal.ui.theme.ColorCustom
+import com.soujunior.petjournal.ui.util.TransactionType
+
+@Composable
+fun TransactionTypeSelector(
+ onSelectionChanged: (TransactionType?) -> Unit
+) {
+ var selectedType by remember { mutableStateOf(null) }
+
+ val selectedColor = ColorCustom.color_background_month_disabled
+ val unselectedColor = MaterialTheme.colorScheme.background
+ val borderColor = ColorCustom.color_border_button_transaction_type
+
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ modifier = Modifier
+ ) {
+ Row(
+ horizontalArrangement = Arrangement.spacedBy(16.dp),
+ verticalAlignment = Alignment.CenterVertically,
+ modifier = Modifier
+ ) {
+ ToggleButton(
+ text = stringResource(R.string.label_recurrent),
+ isSelected = selectedType == TransactionType.Recurrent,
+ onClick = {
+ val newType = TransactionType.Recurrent
+ selectedType = newType
+ onSelectionChanged(newType)
+ },
+ selectedColor = selectedColor,
+ unselectedColor = unselectedColor,
+ borderColor = if (selectedType == TransactionType.Recurrent) selectedColor else borderColor
+ )
+
+ ToggleButton(
+ text = stringResource(R.string.label_one_off),
+ isSelected = selectedType == TransactionType.OneOff,
+ onClick = {
+ val newType = TransactionType.OneOff
+ selectedType = newType
+ onSelectionChanged(newType)
+ },
+ selectedColor = selectedColor,
+ unselectedColor = unselectedColor,
+ borderColor = if (selectedType == TransactionType.OneOff) selectedColor else borderColor
+ )
+ }
+
+ if (selectedType == TransactionType.Recurrent) {
+ onSelectionChanged(selectedType)
+ } else {
+ onSelectionChanged(selectedType)
+ }
+ }
+}
+
+@Composable
+fun ToggleButton(
+ text: String,
+ isSelected: Boolean,
+ onClick: () -> Unit,
+ selectedColor: Color,
+ unselectedColor: Color,
+ borderColor: Color
+) {
+ val backgroundColor = if (isSelected) selectedColor else unselectedColor
+
+ Box(
+ contentAlignment = Alignment.Center,
+ modifier = Modifier
+ .width(130.dp).height(50.dp)
+ .clip(RoundedCornerShape(50))
+ .border(1.dp, borderColor, RoundedCornerShape(50))
+ .background(backgroundColor)
+ .clickable { onClick() }
+ .padding(horizontal = 24.dp, vertical = 12.dp)
+ ) {
+ Text(
+ text = text,
+ color = ColorCustom.color_text_button_transaction_type,
+ style = MaterialTheme.typography.titleMedium,
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun TransactionTypeSelectorPreview() {
+ TransactionTypeSelector(
+ onSelectionChanged = {}
+ )
+}
+
+@Preview(showBackground = true)
+@Composable
+fun ToggleButtonPreview() {
+ Column(modifier = Modifier.padding(16.dp)) {
+ ToggleButton(
+ text = stringResource(R.string.label_recurrent),
+ isSelected = true,
+ onClick = {},
+ selectedColor = ColorCustom.color_background_month_disabled,
+ unselectedColor = MaterialTheme.colorScheme.background,
+ borderColor = ColorCustom.color_border_button_transaction_type
+ )
+
+ ToggleButton(
+ text = stringResource(R.string.label_one_off),
+ isSelected = false,
+ onClick = {},
+ selectedColor = ColorCustom.color_background_month_disabled,
+ unselectedColor = MaterialTheme.colorScheme.background,
+ borderColor = ColorCustom.color_border_button_transaction_type
+ )
+ }
+
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/WeekDaySelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/WeekDaySelector.kt
index b3013bfe..80d78cbc 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/WeekDaySelector.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/WeekDaySelector.kt
@@ -56,4 +56,4 @@ fun WeekDaySelectorPreview() {
WeekDaySelector(
onDaySelected = {},
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/TimePickerWithPeriodSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/TimePickerWithPeriodSelector.kt
new file mode 100644
index 00000000..32ead607
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/TimePickerWithPeriodSelector.kt
@@ -0,0 +1,47 @@
+package com.soujunior.petjournal.ui.components.clock
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+import com.soujunior.petjournal.ui.components.AmPmSelector
+
+@Composable
+fun TimePickerWithPeriodSelector(
+ onAmPmSelector: (String) -> Unit,
+ onTime: (Int, Int) -> Unit
+) {
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(top = 16.dp),
+ horizontalArrangement = Arrangement.Center,
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+ AmPmSelector(
+ onPeriodSelected = { periodSelected ->
+ onAmPmSelector(periodSelected)
+ }
+ )
+ Box(
+ modifier = Modifier
+ .padding(start = 8.dp)
+ .height(150.dp)
+ .width(100.dp),
+ contentAlignment = Alignment.Center
+ ) {
+ WheelTimePicker(
+ onTimeChanged = { hour, minute ->
+ onTime(hour, minute)
+ }
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/WheelTimePicker.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/WheelTimePicker.kt
index ab19cec4..d25ee8e6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/WheelTimePicker.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/clock/WheelTimePicker.kt
@@ -32,6 +32,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import com.soujunior.petjournal.ui.theme.ColorCustom
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.filter
import kotlin.math.abs
@@ -59,7 +60,7 @@ fun WheelTimePicker(
initialMinute: Int = 0,
textStyle: TextStyle = MaterialTheme.typography.titleLarge,
focusedColor: Color = Color.Black,
- unfocusedColor: Color = Color.Gray,
+ unfocusedColor: Color = ColorCustom.color_unfocused_wheelTimePicker,
onTimeChanged: (hour: Int, minute: Int) -> Unit
) {
require(visibleItemsCount % 2 != 0) { "visibleItemsCount must be an odd number." }
@@ -162,8 +163,10 @@ private fun PickerColumn(
if (layoutInfo.visibleItemsInfo.isEmpty()) {
-1
} else {
- val viewportCenter = (layoutInfo.viewportStartOffset + layoutInfo.viewportEndOffset) / 2
- layoutInfo.visibleItemsInfo.minByOrNull { abs((it.offset + it.size / 2) - viewportCenter) }?.index ?: -1
+ val viewportCenter =
+ (layoutInfo.viewportStartOffset + layoutInfo.viewportEndOffset) / 2
+ layoutInfo.visibleItemsInfo.minByOrNull { abs((it.offset + it.size / 2) - viewportCenter) }?.index
+ ?: -1
}
}
}
@@ -176,12 +179,14 @@ private fun PickerColumn(
val layoutInfo = listState.layoutInfo
if (layoutInfo.visibleItemsInfo.isEmpty()) return@collect
- val viewportCenter = (layoutInfo.viewportStartOffset + layoutInfo.viewportEndOffset) / 2
+ val viewportCenter =
+ (layoutInfo.viewportStartOffset + layoutInfo.viewportEndOffset) / 2
val centralItem = layoutInfo.visibleItemsInfo.minByOrNull {
abs((it.offset + it.size / 2) - viewportCenter)
} ?: return@collect
- val itemDataIndex = (centralItem.index - halfVisibleItems).coerceIn(0, items.size - 1)
+ val itemDataIndex =
+ (centralItem.index - halfVisibleItems).coerceIn(0, items.size - 1)
val delta = (centralItem.offset + centralItem.size / 2) - viewportCenter
listState.animateScrollBy(delta.toFloat())
@@ -204,8 +209,14 @@ private fun PickerColumn(
items(items.size) { dataIndex ->
val lazyColumnIndex = dataIndex + halfVisibleItems
val isFocused = (lazyColumnIndex == centralLazyColumnIndex)
- val scale by animateFloatAsState(targetValue = if (isFocused) 1.2f else 1.0f, label = "scale")
- val alpha by animateFloatAsState(targetValue = if (isFocused) 1.0f else 0.5f, label = "alpha")
+ val scale by animateFloatAsState(
+ targetValue = if (isFocused) 1.2f else 1.0f,
+ label = "scale"
+ )
+ val alpha by animateFloatAsState(
+ targetValue = if (isFocused) 1.0f else 0.5f,
+ label = "alpha"
+ )
Box(
modifier = Modifier.height(itemHeight),
@@ -215,9 +226,9 @@ private fun PickerColumn(
text = items[dataIndex],
style = textStyle.copy(
color = if (isFocused) focusedColor else unfocusedColor,
- fontSize = textStyle.fontSize * scale
+ fontSize = 34.sp
),
- modifier = Modifier.alpha(alpha)
+ modifier = Modifier//.alpha(alpha)
)
}
}
@@ -248,4 +259,4 @@ fun TimePickerPreview() {
)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/CustomDatePicker.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/CustomDatePicker.kt
index 7bad1d38..5e1ecbb0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/CustomDatePicker.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/CustomDatePicker.kt
@@ -165,7 +165,7 @@ fun CustomDatePickerPreview() {
label = "Data de Nascimento",
value = selectedTimestamp,
onValueChange = { selectedTimestamp = it },
- modifier = customModifier,
+ modifier = customModifier,
textStyle = boldTextStyle,
colors = redBorderColors
)
@@ -182,4 +182,4 @@ fun CustomDatePickerPreview() {
modifier = Modifier.fillMaxWidth(0.6f)
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/DayPicker.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/DayPicker.kt
new file mode 100644
index 00000000..a5e3d4a4
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/DayPicker.kt
@@ -0,0 +1,98 @@
+package com.soujunior.petjournal.ui.components.data
+
+import androidx.compose.foundation.ExperimentalFoundationApi
+import androidx.compose.foundation.gestures.snapping.rememberSnapFlingBehavior
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.itemsIndexed
+import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.runtime.snapshotFlow
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import kotlinx.coroutines.flow.distinctUntilChanged
+import java.time.LocalDate
+
+@OptIn(ExperimentalFoundationApi::class)
+@Composable
+fun DayPicker(
+ onDaySelected: (Int) -> Unit
+) {
+ val currentDate = remember { LocalDate.now() }
+ val totalDays = remember { currentDate.lengthOfMonth() }
+
+ val days = remember { (1..totalDays).toList() }
+
+ val listState = rememberLazyListState(initialFirstVisibleItemIndex = currentDate.dayOfMonth - 1)
+
+ val flingBehavior = rememberSnapFlingBehavior(lazyListState = listState)
+
+ LaunchedEffect(listState) {
+ snapshotFlow { listState.firstVisibleItemIndex }
+ .distinctUntilChanged()
+ .collect { index ->
+ onDaySelected(days.getOrNull(index + 1) ?: days.last())
+ }
+ }
+
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ Text(text = "DIA", style = MaterialTheme.typography.bodySmall)
+
+ Box(
+ modifier = Modifier
+ .height(120.dp)
+ .width(60.dp),
+ contentAlignment = Alignment.Center
+ ) {
+ LazyColumn(
+ state = listState,
+ flingBehavior = flingBehavior,
+ contentPadding = PaddingValues(vertical = 40.dp),
+ horizontalAlignment = Alignment.CenterHorizontally,
+ modifier = Modifier.fillMaxHeight()
+ ) {
+ itemsIndexed(days) { index, day ->
+ val isSelected = listState.firstVisibleItemIndex == index
+ Text(
+ text = day.toString(),
+ fontSize = if (isSelected) 26.sp else 20.sp,
+ color = if (isSelected) Color.Black else Color.LightGray,
+ fontWeight = if (isSelected) FontWeight.Bold else FontWeight.Normal,
+ modifier = Modifier.padding(vertical = 4.dp)
+ )
+ }
+ }
+ }
+ }
+}
+
+
+@Preview
+@Composable
+fun DayPickerPreview(){
+ var selectedDay by remember { mutableStateOf(LocalDate.now().dayOfMonth) }
+
+ DayPicker(
+ onDaySelected = { selectedDay = it }
+ )
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/Mock.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/Mock.kt
new file mode 100644
index 00000000..551f167d
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/Mock.kt
@@ -0,0 +1,56 @@
+package com.soujunior.petjournal.ui.components.data
+
+data class FakePetData(
+ val id: String,
+ val imageRes: String = ""
+)
+
+object TaskFakeData {
+ private val samplePets = listOf(
+ FakePetData(id = "pet_001"),
+ FakePetData(id = "pet_002"),
+ FakePetData(id = "pet_003"),
+ FakePetData(id = "pet_004"),
+ FakePetData(id = "pet_005"),
+ FakePetData(id = "pet_006")
+ )
+
+ val sampleTasks = listOf(
+ TaskData(
+ id = "1",
+ title = "Carprofeno",
+ descriptionResumed = "Anti-inflamatorio não esteroide para alivio da dor e inflamação",
+ descriptionCompleted = "Medicamento anti-inflamatório não esteroide para alívio da dor e inflamação. Deve ser administrado com cuidado e seguindo as instruções veterinárias. Dosagem recomendada conforme peso do animal.",
+ startAt = "12/08/2025 - 10:30",
+ type = TaskTypes.MEDICAMENTOS,
+ pets = listOf(samplePets[0], samplePets[1], samplePets[2])
+ ),
+ TaskData(
+ id = "2",
+ title = "Vacina Antirrábica",
+ descriptionResumed = "Vacina obrigatória contra raiva para proteção do pet",
+ descriptionCompleted = "Vacina antirrábica anual obrigatória. Essencial para proteção contra a raiva e exigida por lei. Deve ser aplicada por veterinário e gera certificado de vacinação.",
+ startAt = "15/08/2025 - 14:00",
+ type = TaskTypes.VACINA,
+ pets = listOf(samplePets[0])
+ ),
+ TaskData(
+ id = "3",
+ title = "Consulta de Rotina",
+ descriptionResumed = "Check-up geral para avaliação da saúde do pet",
+ descriptionCompleted = "Consulta veterinária de rotina para avaliação geral da saúde, verificação de peso, exame físico completo e orientações sobre cuidados preventivos.",
+ startAt = "20/08/2025 - 09:15",
+ type = TaskTypes.CONSULTAS,
+ pets = listOf(samplePets[1], samplePets[3])
+ ),
+ TaskData(
+ id = "4",
+ title = "Ração Premium",
+ descriptionResumed = "Trocar para ração premium conforme orientação veterinária",
+ descriptionCompleted = "Mudança gradual para ração premium de alta qualidade. Fazer transição lenta misturando com a ração atual por 7 dias. Quantidade: 200g por dia dividida em 2 refeições.",
+ startAt = "18/08/2025 - 18:00",
+ type = TaskTypes.RACAO,
+ pets = listOf(samplePets[0], samplePets[2], samplePets[4], samplePets[5])
+ )
+ )
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskData.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskData.kt
new file mode 100644
index 00000000..be8090f2
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskData.kt
@@ -0,0 +1,12 @@
+package com.soujunior.petjournal.ui.components.data
+
+data class TaskData(
+ val id: String,
+ val title: String,
+ val descriptionResumed: String,
+ val descriptionCompleted: String,
+ val startAt: String,
+ val endAt: String = "",
+ val type: TaskType,
+ val pets: List = emptyList()
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskType.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskType.kt
new file mode 100644
index 00000000..8ac128f0
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskType.kt
@@ -0,0 +1,12 @@
+package com.soujunior.petjournal.ui.components.data
+
+import androidx.annotation.DrawableRes
+import androidx.compose.ui.graphics.Color
+
+data class TaskType(
+ val id: String,
+ val name: String,
+ val color: Color,
+ @DrawableRes val icon: Int? = null,
+ @DrawableRes val iconVector: Int? = null
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskTypes.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskTypes.kt
index 9e8cfe48..87aea5bd 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskTypes.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/data/TaskTypes.kt
@@ -1,71 +1,61 @@
package com.soujunior.petjournal.ui.components.data
-import androidx.annotation.DrawableRes
import androidx.compose.ui.graphics.Color
import com.soujunior.petjournal.R
-data class TaskType(
- val id: String,
- val nome: String,
- val cor: Color,
- @DrawableRes val icone: Int? = null, // Recebe um vetor drawable
- @DrawableRes val iconeVector: Int? = null // Recebe um drawable vector
-)
-
object TaskTypes {
val VACINA = TaskType(
id = "vacina",
- nome = "Vacina",
- cor = Color(0xFFFA680E),
- icone = R.drawable.icone_vacinas,
- iconeVector = R.drawable.icone_vacinas_vector
+ name = "Vacina",
+ color = Color(0xFFFA680E),
+ icon = R.drawable.icone_vacinas,
+ iconVector = R.drawable.icone_vacinas_vector
)
val CONSULTAS = TaskType(
id = "consultas",
- nome = "Consultas",
- cor = Color(0xFF20955E),
- icone = R.drawable.icone_consulta,
- iconeVector = R.drawable.icone_consultas_vector
+ name = "Consultas",
+ color = Color(0xFF20955E),
+ icon = R.drawable.icone_consulta,
+ iconVector = R.drawable.icone_consultas_vector
)
val RACAO = TaskType(
id = "racao",
- nome = "Ração",
- cor = Color(0xFF881803),
- icone = R.drawable.icone_racao,
- iconeVector = R.drawable.icone_racao_vector
+ name = "Ração",
+ color = Color(0xFF881803),
+ icon = R.drawable.icone_racao,
+ iconVector = R.drawable.icone_racao_vector
)
val MEDICAMENTOS = TaskType(
id = "medicamentos",
- nome = "Medicamentos",
- cor = Color(0xFF2F99E5),
- icone = R.drawable.icone_medicamento,
- iconeVector = R.drawable.icone_medicamentos_vector
+ name = "Medicamentos",
+ color = Color(0xFF2F99E5),
+ icon = R.drawable.icone_medicamento,
+ iconVector = R.drawable.icone_medicamentos_vector
)
val BANHOS = TaskType(
id = "banhos",
- nome = "Banhos",
- cor = Color(0xFFD03A94),
- icone = R.drawable.icone_banho,
- iconeVector = R.drawable.icone_banhos_vector
+ name = "Banhos",
+ color = Color(0xFFD03A94),
+ icon = R.drawable.icone_banho,
+ iconVector = R.drawable.icone_banhos_vector
)
val PASSEIO = TaskType(
id = "passeio",
- nome = "Passeio",
- cor = Color(0xFFB78AF7),
- icone = R.drawable.icone_passeio,
- iconeVector = R.drawable.icone_passeios_vector
+ name = "Passeio",
+ color = Color(0xFFB78AF7),
+ icon = R.drawable.icone_passeio,
+ iconVector = R.drawable.icone_passeios_vector
)
- // Lista com todos os tipos para facilitar iteração
val ALL_TYPES = listOf(
VACINA,
CONSULTAS,
@@ -75,79 +65,11 @@ object TaskTypes {
PASSEIO
)
- // Função para buscar tipo por ID
fun getTypeById(id: String): TaskType? {
return ALL_TYPES.find { it.id == id }
}
- // Função para buscar tipo por nome
fun getTypeByName(nome: String): TaskType? {
- return ALL_TYPES.find { it.nome.equals(nome, ignoreCase = true) }
+ return ALL_TYPES.find { it.name.equals(nome, ignoreCase = true) }
}
}
-
-data class PetData(
- val id: String,
- val imageRes: String = "" // String vazia por enquanto
-)
-
-data class TaskData(
- val id: String,
- val titulo: String,
- val descricaoResumida: String,
- val descricaoCompleta: String,
- val dataHora: String,
- val tipo: TaskType,
- val pets: List = emptyList()
-)
-
-// Dados dummy para exemplo/preview
-object TaskDummyData {
- private val samplePets = listOf(
- PetData(id = "pet_001"),
- PetData(id = "pet_002"),
- PetData(id = "pet_003"),
- PetData(id = "pet_004"),
- PetData(id = "pet_005"),
- PetData(id = "pet_006")
- )
-
- val sampleTasks = listOf(
- TaskData(
- id = "1",
- titulo = "Carprofeno",
- descricaoResumida = "Anti-inflamatorio não esteroide para alivio da dor e inflamação",
- descricaoCompleta = "Medicamento anti-inflamatório não esteroide para alívio da dor e inflamação. Deve ser administrado com cuidado e seguindo as instruções veterinárias. Dosagem recomendada conforme peso do animal.",
- dataHora = "12/08/2025 - 10:30",
- tipo = TaskTypes.MEDICAMENTOS,
- pets = listOf(samplePets[0], samplePets[1], samplePets[2])
- ),
- TaskData(
- id = "2",
- titulo = "Vacina Antirrábica",
- descricaoResumida = "Vacina obrigatória contra raiva para proteção do pet",
- descricaoCompleta = "Vacina antirrábica anual obrigatória. Essencial para proteção contra a raiva e exigida por lei. Deve ser aplicada por veterinário e gera certificado de vacinação.",
- dataHora = "15/08/2025 - 14:00",
- tipo = TaskTypes.VACINA,
- pets = listOf(samplePets[0])
- ),
- TaskData(
- id = "3",
- titulo = "Consulta de Rotina",
- descricaoResumida = "Check-up geral para avaliação da saúde do pet",
- descricaoCompleta = "Consulta veterinária de rotina para avaliação geral da saúde, verificação de peso, exame físico completo e orientações sobre cuidados preventivos.",
- dataHora = "20/08/2025 - 09:15",
- tipo = TaskTypes.CONSULTAS,
- pets = listOf(samplePets[1], samplePets[3])
- ),
- TaskData(
- id = "4",
- titulo = "Ração Premium",
- descricaoResumida = "Trocar para ração premium conforme orientação veterinária",
- descricaoCompleta = "Mudança gradual para ração premium de alta qualidade. Fazer transição lenta misturando com a ração atual por 7 dias. Quantidade: 200g por dia dividida em 2 refeições.",
- dataHora = "18/08/2025 - 18:00",
- tipo = TaskTypes.RACAO,
- pets = listOf(samplePets[0], samplePets[2], samplePets[4], samplePets[5])
- )
- )
-}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskDate.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskDate.kt
index a09909cd..423aff7b 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskDate.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskDate.kt
@@ -40,4 +40,4 @@ fun formatDate(text: AnnotatedString): TransformedText {
}
}
return TransformedText(annotatedString, dateOffsetTranslator)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskPhone.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskPhone.kt
index 29c4c178..78a05a37 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskPhone.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/mask/MaskPhone.kt
@@ -42,4 +42,4 @@ fun mobileNumberFilter(text: AnnotatedString): TransformedText {
}
}
return TransformedText(annotatedString, phoneNumberOffsetTranslator)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/OneOffTask.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/OneOffTask.kt
new file mode 100644
index 00000000..90fd3575
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/OneOffTask.kt
@@ -0,0 +1,51 @@
+package com.soujunior.petjournal.ui.components.task
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.soujunior.petjournal.ui.components.clock.TimePickerWithPeriodSelector
+import com.soujunior.petjournal.ui.components.data.CustomDatePicker
+
+@Composable
+fun OneOffTask(
+ onDateSelected: (Long?) -> Unit = {},
+ onAmPmSelector: (String?) -> Unit = {},
+ onTime: (Int, Int) -> Unit = { _, _ -> }
+) {
+ var selectedTimestamp by remember { mutableStateOf(null) }
+
+ Column(modifier = Modifier) {
+ CustomDatePicker(
+ label = "Data",
+ value = selectedTimestamp,
+ onValueChange = {
+ selectedTimestamp = it
+ onDateSelected(selectedTimestamp)
+ },
+ modifier = Modifier.fillMaxWidth()
+ )
+
+ TimePickerWithPeriodSelector(
+ onAmPmSelector = { amPmSelector ->
+ onAmPmSelector(amPmSelector)
+ },
+ onTime = { hour, minute ->
+ onTime(hour, minute)
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun OneOffTaskPreview() {
+ OneOffTask()
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/RecurrentTask.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/RecurrentTask.kt
new file mode 100644
index 00000000..06a2e449
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/components/task/RecurrentTask.kt
@@ -0,0 +1,137 @@
+package com.soujunior.petjournal.ui.components.task
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.soujunior.petjournal.ui.components.ActiveMonthsComponent
+import com.soujunior.petjournal.ui.components.AmPmSelector
+import com.soujunior.petjournal.ui.components.PeriodSelector
+import com.soujunior.petjournal.ui.components.WeekDaySelector
+import com.soujunior.petjournal.ui.components.clock.TimePickerWithPeriodSelector
+import com.soujunior.petjournal.ui.components.clock.WheelTimePicker
+import com.soujunior.petjournal.ui.components.data.DayPicker
+import com.soujunior.petjournal.ui.util.SelectedPeriodType
+
+@Composable
+fun RecurringTask(
+ activeMonths: Set = setOf(),
+ onAmPmSelector: (String?) -> Unit = {},
+ onTime: (Int?, Int?) -> Unit = { _, _ -> },
+ onWeekDaySelected: (String?) -> Unit = {},
+ onDaySelected: (Int?) -> Unit = {},
+) {
+ var selectedPeriod by remember { mutableStateOf(SelectedPeriodType.Diária) }
+ PeriodSelector(
+ selected = selectedPeriod,
+ onSelectionChanged = { selectedPeriod = it }
+ )
+
+ when (selectedPeriod) {
+ SelectedPeriodType.Diária -> {
+ TimePickerWithPeriodSelector(
+ onAmPmSelector = { amPmSelector ->
+ onAmPmSelector(amPmSelector)
+ },
+ onTime = { hour, minute ->
+ onTime(hour, minute)
+ }
+ )
+ }
+
+ SelectedPeriodType.Semanal -> {
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+// .padding(top = 16.dp)
+,
+ horizontalArrangement = Arrangement.Center,
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+
+ WeekDaySelector(
+ onDaySelected = { weekDaySelected ->
+ onWeekDaySelected(weekDaySelected)
+ }
+ )
+
+ AmPmSelector(
+ onPeriodSelected = { amPmSelector ->
+ onAmPmSelector(amPmSelector)
+ }
+ )
+ Box(
+ modifier = Modifier
+// .padding(start = 8.dp)
+ .height(150.dp)
+ .width(100.dp),
+ contentAlignment = Alignment.Center
+ ) {
+ WheelTimePicker(
+ onTimeChanged = { hour, minute ->
+ onTime(hour, minute)
+ }
+ )
+ }
+ }
+ }
+
+ SelectedPeriodType.Mensal -> {
+ Column {
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+// .padding(top = 16.dp)
+ ,
+ horizontalArrangement = Arrangement.Center,
+ verticalAlignment = Alignment.CenterVertically
+ ) {
+
+ DayPicker(
+ onDaySelected = { daySelected ->
+ onDaySelected(daySelected)
+ }
+ )
+ AmPmSelector(
+ onPeriodSelected = { amPmSelector ->
+ onAmPmSelector(amPmSelector)
+ }
+ )
+ Box(
+ modifier = Modifier
+ .height(150.dp)
+ .width(100.dp),
+ contentAlignment = Alignment.Center
+ ) {
+ WheelTimePicker(
+ onTimeChanged = { hour, minute ->
+ onTime(hour, minute)
+ }
+ )
+ }
+ }
+ ActiveMonthsComponent(activeMonths = activeMonths)
+ }
+
+ }
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun RecurringTaskPreview() {
+ RecurringTask()
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeFormEvent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeFormEvent.kt
index c0a53534..85cb46f4 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeFormEvent.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeFormEvent.kt
@@ -5,4 +5,4 @@ sealed class AwaitingCodeFormEvent {
data class EmailChanged(val email: String) : AwaitingCodeFormEvent()
object Submit : AwaitingCodeFormEvent()
object ResendCode : AwaitingCodeFormEvent()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeScreen.kt
index 25b8d247..efbf702c 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeScreen.kt
@@ -35,4 +35,3 @@ fun AwaitingCodeScreen(arg: String?, navController: NavController) {
}
Screen(navController, viewModel)
}
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeViewModel.kt
index 4e95fd04..7c296a39 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/AwaitingCodeViewModel.kt
@@ -21,4 +21,4 @@ abstract class AwaitingCodeViewModel : ViewModel() {
abstract fun success(resultPostAwaitingCode: String)
abstract fun onEvent(event: com.soujunior.petjournal.ui.screens_app.account_manager.awaitingCodeScreen.AwaitingCodeFormEvent)
abstract fun enableButton(): Boolean
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Footer.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Footer.kt
index 69e1e0e8..a59d717e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Footer.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Footer.kt
@@ -54,4 +54,4 @@ fun Footer(navController: NavController, viewModel: AwaitingCodeViewModel) {
isLoading = taskState is TaskState.Loading
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Header.kt
index 7bc398f1..b182c927 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Header.kt
@@ -18,4 +18,4 @@ fun Header() {
styleTitle = MaterialTheme.typography.bodyMedium
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/OTPTextField.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/OTPTextField.kt
index 2084d913..8ed732a4 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/OTPTextField.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/OTPTextField.kt
@@ -163,4 +163,4 @@ private fun TextFieldSingleView(index: Int, text: String, isError: Boolean = fal
color = Color.Black,
textAlign = TextAlign.Center
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Screen.kt
index 0e2a3b57..25d1877d 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/Screen.kt
@@ -96,4 +96,4 @@ fun Screen(navController: NavController, viewModel: AwaitingCodeViewModel) {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/VerificationCodeInput.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/VerificationCodeInput.kt
index dec03492..984b45d0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/VerificationCodeInput.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/awaitingCodeScreen/components/VerificationCodeInput.kt
@@ -57,4 +57,4 @@ fun VerificationCodeInput(viewModel: AwaitingCodeViewModel) {
}
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordScreen.kt
index 3260b876..70e0cbc3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordScreen.kt
@@ -29,4 +29,4 @@ fun ChangePasswordScreen(navController: NavController) {
}
}
Screen(viewModel, navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModel.kt
index 35d2dede..0bd6c2c3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModel.kt
@@ -25,4 +25,4 @@ abstract class ChangePasswordViewModel : ViewModel() {
abstract fun onEvent(event: ChangePasswordFormEvent)
abstract fun disconnectOtherDevices()
abstract fun enableButton(): Boolean
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModelImpl.kt
index d0869a8f..e7885e85 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/ChangePasswordViewModelImpl.kt
@@ -132,4 +132,4 @@ class ChangePasswordViewModelImpl(
_taskState.value = TaskState.Idle
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/components/LogoutDevicesChangingPassword.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/components/LogoutDevicesChangingPassword.kt
index 8fd3c8e6..69fbb8fa 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/components/LogoutDevicesChangingPassword.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/changePasswordScreen/components/LogoutDevicesChangingPassword.kt
@@ -82,4 +82,4 @@ fun LogoutDevicesChangingPassword(
if (showPrivacyPolicy) {
PrivacyPolicy()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordFormState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordFormState.kt
index 9b5cb705..b1a52641 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordFormState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordFormState.kt
@@ -3,4 +3,4 @@ package com.soujunior.petjournal.ui.screens_app.account_manager.forgotPasswordSc
data class ForgotPasswordFormState(
val email: String = "",
val emailError: List? = null
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordScreen.kt
index 666d115b..811f627d 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordScreen.kt
@@ -28,4 +28,4 @@ fun ForgotPasswordScreen(navController: NavController) {
}
}
Screen(navController, viewModel)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModel.kt
index 8e7109aa..769fd1fc 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModel.kt
@@ -23,4 +23,4 @@ abstract class ForgotPasswordViewModel : ViewModel() {
abstract fun submitData()
abstract fun onEvent(event: ForgotPasswordFormEvent)
abstract fun enableButton(): Boolean
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModelImpl.kt
index c66a846d..fe03be64 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/ForgotPasswordViewModelImpl.kt
@@ -87,4 +87,4 @@ class ForgotPasswordViewModelImpl(
val emailResult = validation.validateEmail(state.email)
return state.email.isNotBlank() && emailResult.errorMessage == null
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Footer.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Footer.kt
index 49f6364d..342e6a69 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Footer.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Footer.kt
@@ -108,4 +108,4 @@ fun FooterPreview() {
)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Screen.kt
index bdad9668..125dbe51 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/forgotPasswordScreen/components/Screen.kt
@@ -73,4 +73,4 @@ fun Screen(navController: NavController, viewModel: ForgotPasswordViewModel) {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginFormState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginFormState.kt
index c3d2f054..158a16c3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginFormState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginFormState.kt
@@ -6,4 +6,4 @@ data class LoginFormState(
val password: String = "",
val passwordError: List? = null,
val rememberPassword: Boolean = false
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginScreen.kt
index a8cab235..6b02ac4e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginScreen.kt
@@ -61,4 +61,4 @@ fun LoginScreen(navController: NavController) {
}
}
Screen(navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModel.kt
index 6f3e36e1..3952a8f5 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModel.kt
@@ -54,4 +54,4 @@ abstract class LoginViewModel : ViewModel() {
abstract fun submitData()
abstract fun enableButton(): Boolean
abstract fun onEvent(event: LoginFormEvent)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModelImpl.kt
index caa365f2..e2c262d9 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/LoginViewModelImpl.kt
@@ -140,4 +140,4 @@ class LoginViewModelImpl(
_taskState.value = TaskState.Idle
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/AccountConfirmationDialog.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/AccountConfirmationDialog.kt
index ea8e9c65..0279c460 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/AccountConfirmationDialog.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/AccountConfirmationDialog.kt
@@ -82,4 +82,4 @@ fun AccountConfirmationDialog(onDismiss: () -> Unit) {
@Composable
fun PreviewSimpleDialog() {
AccountConfirmationDialog(onDismiss = {})
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/Footer.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/Footer.kt
index 43afddf1..b6b6c68b 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/Footer.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/Footer.kt
@@ -84,4 +84,4 @@ fun Footer(
)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/RememberPasswordAndForgotSection.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/RememberPasswordAndForgotSection.kt
index 801cce33..a148ce73 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/RememberPasswordAndForgotSection.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/loginScreen/components/RememberPasswordAndForgotSection.kt
@@ -67,4 +67,4 @@ fun RememberPasswordAndForgotSection(navController: NavController, viewModel: Lo
})
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterFormEvent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterFormEvent.kt
index 1b3e40e5..9208e830 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterFormEvent.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterFormEvent.kt
@@ -9,4 +9,4 @@ sealed class RegisterFormEvent {
data class ConfirmPasswordChanged(val confirmPassword: String) : RegisterFormEvent()
data class PrivacyPolicyChanged(val privacyPolicy: Boolean) : RegisterFormEvent()
object Submit : RegisterFormEvent()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterScreen.kt
index 40502490..0761781e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterScreen.kt
@@ -28,4 +28,4 @@ fun RegisterScreen(navController: NavController) {
}
}
Screen( navController, viewModel)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModel.kt
index 7811ee0e..c541ddb5 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModel.kt
@@ -71,4 +71,4 @@ abstract class RegisterViewModel : ViewModel() {
repeatedPassword: String? = null,
privacy: Boolean? = null
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModelImpl.kt
index 938c217c..4d16e944 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/RegisterViewModelImpl.kt
@@ -176,4 +176,4 @@ class RegisterViewModelImpl(
_taskState.value = TaskState.Idle
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/components/Screen.kt
index 4e075c81..ce0966cf 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/components/Screen.kt
@@ -294,4 +294,4 @@ private fun RegisterScreenPreview() {
PetJournalTheme {
Screen(nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/state/StatesRegister.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/state/StatesRegister.kt
index cc8395dc..01f571d2 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/state/StatesRegister.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/account_manager/registerScreen/state/StatesRegister.kt
@@ -5,4 +5,4 @@ import androidx.compose.runtime.mutableStateOf
object StatesRegister {
var showPrivacyPolicy = compositionLocalOf { mutableStateOf(false) }
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeScreenViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeScreenViewModelImpl.kt
index 8e9789b4..067d11ea 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeScreenViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeScreenViewModelImpl.kt
@@ -66,4 +66,4 @@ class HomeScreenViewModelImpl(
logoutUseCase.doWork()
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeState.kt
index 4fce5475..91565755 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/HomeState.kt
@@ -3,4 +3,4 @@ package com.soujunior.petjournal.ui.screens_app.screen_home.homeScreen
data class HomeState(
val name : String = "",
val getNameError : Boolean = false
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Carousel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Carousel.kt
index 096b6cec..6a358714 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Carousel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Carousel.kt
@@ -73,4 +73,3 @@ fun Carousel(imageIds: List) {
}
}
}
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Menu.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Menu.kt
index a62e4773..64b952b9 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Menu.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Menu.kt
@@ -30,4 +30,3 @@ fun Menu(navController: NavController) {
)
}
}
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/NaturalModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/NaturalModel.kt
index 1945c1fb..8e6b0fab 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/NaturalModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/NaturalModel.kt
@@ -22,4 +22,4 @@ val natural = listOf(
5.0f,
"Decription Sample 3",
)
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Screen.kt
index 83e4315f..bd105b4d 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/Screen.kt
@@ -1,5 +1,6 @@
package com.soujunior.petjournal.ui.screens_app.screen_home.homeScreen.components
+import android.annotation.SuppressLint
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -48,8 +49,9 @@ import com.soujunior.petjournal.ui.util.ValidationEvent
import com.soujunior.petjournal.ui.util.capitalizeFirstLetter
import org.koin.androidx.compose.getViewModel
+@SuppressLint("ViewModelConstructorInComposable")
@Composable
-fun getHomeViewModelForPreview(): HomeScreenViewModel {
+fun getHomeViewModelForPreview2(): HomeScreenViewModel {
return if (LocalInspectionMode.current) {
FakeHomeViewModel()
} else {
@@ -60,7 +62,7 @@ fun getHomeViewModelForPreview(): HomeScreenViewModel {
@ExperimentalPagerApi
@Composable
fun Screen(navController: NavController) {
- val viewModel: HomeScreenViewModel = getHomeViewModelForPreview()
+ val viewModel: HomeScreenViewModel = getHomeViewModelForPreview2()
val showDropdownMenu = remember { mutableStateOf(false) }
val taskState by viewModel.taskState.collectAsState()
val name = remember { mutableStateOf(viewModel.name.value.firstName) }
@@ -181,4 +183,4 @@ fun HomeScreenPreview() {
PetJournalTheme {
Screen(nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/ScreenHomeImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/ScreenHomeImpl.kt
new file mode 100644
index 00000000..0333cb67
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_home/homeScreen/components/ScreenHomeImpl.kt
@@ -0,0 +1,186 @@
+package com.soujunior.petjournal.ui.screens_app.screen_home.homeScreen.components
+
+import android.annotation.SuppressLint
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.navigationBarsPadding
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Logout
+import androidx.compose.material3.DropdownMenu
+import androidx.compose.material3.DropdownMenuItem
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.collectAsState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.platform.LocalInspectionMode
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.navigation.NavController
+import androidx.navigation.compose.rememberNavController
+import com.google.accompanist.pager.ExperimentalPagerApi
+import com.google.accompanist.systemuicontroller.rememberSystemUiController
+import com.soujunior.petjournal.R
+import com.soujunior.petjournal.ui.components.NavigationBar
+import com.soujunior.petjournal.ui.components.ScaffoldCustom
+import com.soujunior.petjournal.ui.screens_app.screen_home.homeScreen.FakeHomeViewModel
+import com.soujunior.petjournal.ui.screens_app.screen_home.homeScreen.HomeScreenViewModel
+import com.soujunior.petjournal.ui.states.TaskState
+import com.soujunior.petjournal.ui.theme.PetJournalTheme
+import com.soujunior.petjournal.ui.util.ValidationEvent
+import com.soujunior.petjournal.ui.util.capitalizeFirstLetter
+import org.koin.androidx.compose.getViewModel
+
+@SuppressLint("ViewModelConstructorInComposable")
+@Composable
+fun getHomeViewModelForPreview(): HomeScreenViewModel {
+ return if (LocalInspectionMode.current) {
+ FakeHomeViewModel()
+ } else {
+ getViewModel()
+ }
+}
+
+@ExperimentalPagerApi
+@Composable
+fun ScreenHomeImpl(navController: NavController) {
+ val viewModel: HomeScreenViewModel = getHomeViewModelForPreview()
+ val showDropdownMenu = remember { mutableStateOf(false) }
+ val taskState by viewModel.taskState.collectAsState()
+ val name = remember { mutableStateOf(viewModel.name.value.firstName) }
+ val context = LocalContext.current
+ LaunchedEffect(key1 = context) {
+ viewModel.validationEvents.collect { event ->
+ when (event) {
+ is ValidationEvent.Success -> {
+ name.value = viewModel.name.value.firstName
+ }
+
+ is ValidationEvent.Failed -> {
+ name.value = "falha ao obter nome"
+ }
+ }
+ }
+ }
+
+ val systemUiController = rememberSystemUiController()
+ systemUiController.setSystemBarsColor(color = Color.Transparent, darkIcons = true)
+ systemUiController.setNavigationBarColor(Color.Black)
+ Column(modifier = Modifier.navigationBarsPadding()) {
+ ScaffoldCustom(
+ modifier = Modifier,
+ titleTopBar = stringResource(R.string.hello, name.value.capitalizeFirstLetter()),
+ isLoading = taskState is TaskState.Loading,
+// titleTopBarColor = MaterialTheme.colorScheme.scrim,
+// titleTopBarAligh = Alignment.CenterStart,
+ showActions = true,
+ shadowBelowTopBar = 0.dp,
+ showButtonToReturn = false,
+ navigationUp = navController,
+ showTopBar = true,
+ actions = {
+ Icon(
+ painter = painterResource(id = R.drawable.menu),
+ contentDescription = stringResource(R.string.menu_description),
+ tint = MaterialTheme.colorScheme.onSurface,
+ modifier = Modifier
+ .size(50.dp)
+ .padding(end = 16.dp)
+ .clickable {
+ showDropdownMenu.value = true
+ }
+ )
+ if (showDropdownMenu.value) {
+ DropdownMenu(
+ expanded = showDropdownMenu.value,
+ onDismissRequest = { showDropdownMenu.value = false },
+ modifier = Modifier.padding(end = 16.dp)
+ ) {
+ DropdownMenuItem(
+ onClick = {
+ showDropdownMenu.value = false
+ viewModel.logout()
+ navController.navigate("account_manager")
+ },
+ text = {
+ Text(text = stringResource(R.string.logout), fontSize = 18.sp)
+ },
+ trailingIcon = {
+ Icon(
+ imageVector = Icons.Default.Logout,
+ contentDescription = stringResource(R.string.logout)
+ )
+ }
+ )
+ }
+ }
+ },
+ showBottomBarNavigation = true,
+ bottomNavigationBar = { NavigationBar(navController) },
+ contentToUse = {
+ LazyColumn(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(start = 16.dp, end = 16.dp),
+ horizontalAlignment = Alignment.Start,
+ verticalArrangement = Arrangement.Top,
+ contentPadding = it
+ ) {
+ item {
+ val carouselImages = viewModel.carouselImages
+ Carousel(imageIds = carouselImages)
+ }
+ item { Spacer(modifier = Modifier.padding(top = 16.dp)) }
+ item {
+ Row {
+
+ Text(
+ text = stringResource(R.string.services),
+ modifier = Modifier.weight(0.8f),
+ color = MaterialTheme.colorScheme.onSurface,
+ style = MaterialTheme.typography.bodyLarge,
+ )
+ Text(
+ text = stringResource(R.string.see_more),
+ modifier = Modifier.clickable { },
+ color = MaterialTheme.colorScheme.onSurface,
+ style = MaterialTheme.typography.labelLarge
+ )
+ }
+ }
+ item { Spacer(modifier = Modifier.padding(top = 10.dp)) }
+ item {
+ Menu(navController)
+ }
+ }
+ })
+ }
+}
+
+@OptIn(ExperimentalPagerApi::class)
+@Preview(showBackground = true)
+@Composable
+fun HomeScreenHomeImplPreview() {
+ val nav = rememberNavController()
+ PetJournalTheme {
+ ScreenHomeImpl(nav)
+ }
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_tutor/tutorScreen/TutorScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_tutor/tutorScreen/TutorScreen.kt
index 3103bfd9..bc2346a6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_tutor/tutorScreen/TutorScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screen_tutor/tutorScreen/TutorScreen.kt
@@ -34,4 +34,4 @@ fun TutorScreen(navController: NavController) {
}
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashScreen.kt
index e38d3010..5a9f5f3a 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashScreen.kt
@@ -58,4 +58,4 @@ fun SplashScreen(navController: NavHostController) {
modifier = Modifier.align(Alignment.BottomCenter)
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashViewModel.kt
index 954c86eb..352d449a 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_apresentation/splashScreen/SplashViewModel.kt
@@ -36,4 +36,4 @@ class SplashViewModel(
else failure()
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetScreen.kt
index d0580c76..9ee594d0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetScreen.kt
@@ -7,4 +7,4 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.introRegisterPetScre
@Composable
fun IntroRegisterPetScreen(navController: NavController) {
Screen(navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModel.kt
index 53c0d9ef..edd8595e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModel.kt
@@ -41,4 +41,4 @@ abstract class IntroRegisterPetViewModel : ViewModel() {
abstract fun setWasViewed()
abstract fun getName()
abstract fun getWasViewed()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModelImpl.kt
index ecdc4565..1efe2b8f 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/IntroRegisterPetViewModelImpl.kt
@@ -84,4 +84,4 @@ class IntroRegisterPetViewModelImpl(
_taskState.value = TaskState.Idle
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/GridVectors.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/GridVectors.kt
index a266054e..d4ae3d2e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/GridVectors.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/GridVectors.kt
@@ -132,4 +132,4 @@ private fun calcDefault(sizeToMultiply: Int, quantity: Int): Dp {
private fun GridPrev() {
GridVectors()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Header.kt
index 7951b976..386f2311 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Header.kt
@@ -49,4 +49,4 @@ fun Header(name: String?) {
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Screen.kt
index d7712da9..76e562ab 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/introRegisterPetScreen/components/Screen.kt
@@ -132,4 +132,4 @@ fun IntroRegister(){
PetJournalTheme {
Screen(nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateFormState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateFormState.kt
index d49b2916..d2a71812 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateFormState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateFormState.kt
@@ -12,4 +12,3 @@ data class BirthDateFormState(
val castration: Boolean? = null,
val castrationError: List? = null
)
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModel.kt
index 76026435..9807c034 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModel.kt
@@ -62,4 +62,4 @@ abstract class BirthDateViewModel : ViewModel() {
abstract fun createPetInformation()
abstract fun successPetUpdate(unit: Unit)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModelImpl.kt
index 5db8b2ed..be57efd8 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/BirthDateViewModelImpl.kt
@@ -164,4 +164,4 @@ class BirthDateViewModelImpl(
return ""
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/PetBirthDateScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/PetBirthDateScreen.kt
index 24b42ab1..1c14dbfa 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/PetBirthDateScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/PetBirthDateScreen.kt
@@ -8,5 +8,3 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.petBirthDateScreen.c
fun PetBirthScreen(idPetInformation: String?, navController: NavController) {
Screen(idPetInformation, navController)
}
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/CastrationSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/CastrationSelector.kt
index a94b7ec0..da492142 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/CastrationSelector.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/CastrationSelector.kt
@@ -149,4 +149,4 @@ fun CastrationSelectorPreview() {
clearSelection = { true },
textError = null,
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Header.kt
index b96c2173..334db35a 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Header.kt
@@ -69,4 +69,4 @@ fun Header(
@Composable
private fun PreviewHeader() {
Header()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Screen.kt
index 1506d738..0f247d0e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petBirthDateScreen/components/Screen.kt
@@ -217,4 +217,4 @@ fun BirthDatePreview() {
PetJournalTheme {
Screen("1", nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListScreen.kt
index 8511a520..b4bde972 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListScreen.kt
@@ -7,4 +7,4 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.petListScreen.compon
@Composable
fun PetListScreen(navController: NavController) {
Screen(navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModel.kt
index 79d8f4f2..a065746b 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModel.kt
@@ -34,4 +34,4 @@ abstract class PetListViewModel : ViewModel() {
abstract fun success()
abstract fun failed(exception: Throwable?)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModelImpl.kt
index 106bde0f..c3e59007 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/PetListViewModelImpl.kt
@@ -34,4 +34,4 @@ class PetListViewModelImpl : PetListViewModel() {
validationEventChannel.send(ValidationEvent.Failed)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/PetItemMore.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/PetItemMore.kt
index 57be70d9..4a5ecbc3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/PetItemMore.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/PetItemMore.kt
@@ -54,4 +54,4 @@ fun PetItemMore(modifier: Modifier = Modifier, onClick: () -> Unit) {
fontSize = 16.ssp,
)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/Screen.kt
index 4f1221b5..e0b11bda 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petListScreen/components/Screen.kt
@@ -141,7 +141,11 @@ fun Screen(navController: NavController) {
)
}
item {
- PetItemMore(onClick = {})
+ PetItemMore(
+ onClick = {
+ navController.navigate("pets/registerPet")
+ }
+ )
}
}
@@ -159,4 +163,4 @@ fun PetListPrev() {
PetJournalTheme {
Screen(nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/NameGenderFormState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/NameGenderFormState.kt
index 3dc2398b..4aeb21a0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/NameGenderFormState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/NameGenderFormState.kt
@@ -8,4 +8,3 @@ data class NameGenderFormState(
val specie: String = "",
val idPetInformation: Long? = null
)
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/PetNameAndGenderScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/PetNameAndGenderScreen.kt
index e6c1182c..9ab80d36 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/PetNameAndGenderScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/PetNameAndGenderScreen.kt
@@ -8,5 +8,3 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.petNameAndGenderScre
fun PetNameAndGenderScreen(idPetInformation: String?, navController: NavController) {
Screen(idPetInformation, navController)
}
-
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGender.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGender.kt
index b41dd391..4576fc0c 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGender.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGender.kt
@@ -52,4 +52,4 @@ abstract class ViewModelNameGender : ViewModel() {
abstract fun getPetInformation(id: Long)
abstract fun updatePetInformation()
abstract fun successPetUpdate(unit: Unit)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGenderImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGenderImpl.kt
index b6a301a3..6e4b02c3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGenderImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/ViewModelNameGenderImpl.kt
@@ -128,4 +128,4 @@ class ViewModelNameGenderImpl(
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/GenderSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/GenderSelector.kt
index a1ffe373..1eb11716 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/GenderSelector.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/GenderSelector.kt
@@ -53,7 +53,7 @@ fun GenderSelector(
.fillMaxWidth()
.padding(20.sdp))
}
-
+
GenderButtons(selectedGender, clearSelection, textError)
})
}
@@ -134,4 +134,4 @@ fun GenderSelectorPreview(){
clearSelection = {true},
textError = null
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Header.kt
index 7d4d7171..f8a84045 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Header.kt
@@ -64,4 +64,4 @@ fun Header(species: String = "Gato") {
@Composable
private fun PreviewHeader() {
Header(species = "Cachorro")
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Screen.kt
index 49c95825..014d40c7 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petNameAndGenderScreen/components/Screen.kt
@@ -223,4 +223,4 @@ fun NameAndGenderPreview() {
PetJournalTheme {
Screen("1", nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/RaceSizeFormState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/RaceSizeFormState.kt
index 47448b5d..17d0a1be 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/RaceSizeFormState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/RaceSizeFormState.kt
@@ -17,4 +17,3 @@ data class RaceSizeFormState(
val listRace: List = emptyList(),
val listSizes: List = emptyList()
)
-
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSize.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSize.kt
index 517cfb6c..26b54576 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSize.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSize.kt
@@ -83,4 +83,4 @@ abstract class ViewModelRaceSize : ViewModel() {
abstract fun successPetUpdate(unit: Unit)
abstract suspend fun requestGetListSizes()
abstract suspend fun requestGetListRaces()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSizeImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSizeImpl.kt
index f1fcd186..7a2723ae 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSizeImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/ViewModelRaceSizeImpl.kt
@@ -225,4 +225,4 @@ class ViewModelRaceSizeImpl(
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Header.kt
index fa9e6572..58debcbe 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Header.kt
@@ -42,4 +42,4 @@ fun Header(modifier: Modifier = Modifier, petName: String = "Bolinha") {
@Composable
private fun PreviewHeader() {
Header()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Screen.kt
index b26f3d29..941d3c33 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/petRaceAndSizeScreen/components/Screen.kt
@@ -293,4 +293,4 @@ fun NameAndGenderPreview() {
PetJournalTheme {
Screen("1", nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/RegisterPetScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/RegisterPetScreen.kt
index 8da5f1e0..75795912 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/RegisterPetScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/RegisterPetScreen.kt
@@ -7,4 +7,4 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.registerPetScreen.co
@Composable
fun RegisterPetScreen(navController: NavController) {
Screen(navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/ViewModelRegisterPet.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/ViewModelRegisterPet.kt
index 2aa36333..24f2784e 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/ViewModelRegisterPet.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/ViewModelRegisterPet.kt
@@ -1,4 +1,4 @@
package com.soujunior.petjournal.ui.screens_app.screens_pets.registerPetScreen
interface ViewModelRegisterPet {
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/components/Screen.kt
index 14208cc3..3cc0bb74 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerPetScreen/components/Screen.kt
@@ -4,14 +4,20 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.AbsoluteAlignment
import androidx.compose.ui.Alignment
@@ -20,6 +26,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation.NavController
import androidx.navigation.compose.rememberNavController
@@ -39,7 +47,9 @@ import ir.kaaveh.sdpcompose.sdp
fun Screen(navController: NavController) {
Column(modifier = Modifier) {
ScaffoldCustom(
- modifier = Modifier,
+ modifier = Modifier
+ .navigationBarsPadding()
+ .fillMaxSize(),
navigationUp = navController,
showTopBar = true,
titleTopBar = stringResource(R.string.edit_pet_data),
@@ -54,31 +64,25 @@ fun Screen(navController: NavController) {
.offset(y = 300.sdp)
.align(AbsoluteAlignment.Left)
)
+
LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.Top,
+ verticalArrangement = Arrangement.spacedBy(12.sdp),
modifier = Modifier
.fillMaxSize()
.fillMaxHeight()
- .padding(
- top = it.calculateTopPadding() + 12.sdp,
- bottom = it.calculateBottomPadding() + 2.sdp
- )
+ .padding(it)
.background(Color.Transparent),
+ contentPadding = PaddingValues(horizontal = 24.sdp),
content = {
item {
ImagePet()
}
item {
InputText(
- textInputModifier = Modifier
- .testTag("inputField_test")
- .padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
+ modifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ textInputModifier = Modifier.testTag("inputField_test"),
placeholderText = stringResource(R.string.placeholder_name_pet),
titleText = stringResource(R.string.pet_name),
textValue = "",
@@ -87,12 +91,8 @@ fun Screen(navController: NavController) {
}
item {
DropDown(
- textInputModifier = Modifier.padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
placeholderText = stringResource(R.string.placeholder_breed),
titleText = stringResource(R.string.breed),
textValue = "",
@@ -101,12 +101,8 @@ fun Screen(navController: NavController) {
}
item {
DropDown(
- textInputModifier = Modifier.padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
placeholderText = stringResource(R.string.placeholder_size),
titleText = stringResource(R.string.size),
textValue = "",
@@ -115,44 +111,29 @@ fun Screen(navController: NavController) {
}
item {
DateInputText(
- textInputModifier = Modifier.padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
titleText = stringResource(R.string.pet_birth_date),
placeholderText = stringResource(R.string.placeholder_text_DD_MM_YYYY),
textValue = "",
onEvent = { },
- // Será necessário criar uma função para formatar a data
-// visualTransformation = { date ->
-// formatDate(date)
-// }
+ // visualTransformation = { date ->
+ // formatDate(date)
+ // }
)
}
item {
DropDown(
- textInputModifier = Modifier.padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
- placeholderText = stringResource(R.string.placeholder_weight),
- titleText = stringResource(R.string.weight),
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ placeholderText = stringResource(id = R.string.placeholder_weight),
+ titleText = stringResource(id = R.string.weight),
textValue = "",
onEvent = { }
)
}
item {
DropDown(
- textInputModifier = Modifier.padding(
- start = 24.sdp,
- end = 24.sdp,
- bottom = 12.sdp,
- top = 4.sdp
- ),
+ textInputModifier = Modifier.padding(top = 4.sdp),
placeholderText = stringResource(R.string.placeholder_type),
titleText = stringResource(R.string.type),
textValue = "",
@@ -160,40 +141,58 @@ fun Screen(navController: NavController) {
)
}
item {
- DualActionButton(
- buttonModifier = Modifier.padding(
- start = 32.sdp,
- end = 24.sdp,
- bottom = 32.sdp,
- top = 8.sdp
- ),
- titleText = stringResource(R.string.pet_sex),
- rightButtonSubmit = {},
- leftButtonSubmit = {},
- enableButton = true,
- leftButtonText = stringResource(R.string.male),
- rightButtonText = stringResource(R.string.female)
- )
+ Column{
+ Row {
+ Text(
+ text = stringResource(R.string.pet_sex),
+ textAlign = TextAlign.Start,
+ color = MaterialTheme.colorScheme.scrim,
+ style = MaterialTheme.typography.bodyMedium,
+ fontWeight = FontWeight(500),
+ modifier = Modifier
+ .padding(bottom = 8.sdp)
+ .fillMaxWidth()
+ )
+ }
+ DualActionButton(
+ buttonModifier = Modifier,
+ titleText = stringResource(R.string.pet_sex),
+ rightButtonSubmit = {},
+ leftButtonSubmit = {},
+ enableButton = true,
+ leftButtonText = stringResource(R.string.male),
+ rightButtonText = stringResource(R.string.female)
+ )
+ }
}
item {
- DualActionButton(
- buttonModifier = Modifier.padding(
- start = 32.sdp,
- end = 24.sdp,
- bottom = 32.sdp,
- top = 8.sdp
- ),
- titleText = stringResource(R.string.castrated),
- rightButtonSubmit = {},
- leftButtonSubmit = {},
- enableButton = true,
- leftButtonText = stringResource(R.string.yes),
- rightButtonText = stringResource(R.string.no),
- leftButtonColor = ButtonDefaults.buttonColors(androidx.compose.material3.MaterialTheme.colorScheme.background),
- rightButtonColor = ButtonDefaults.buttonColors(androidx.compose.material3.MaterialTheme.colorScheme.primary),
- leftButtonTextColor = androidx.compose.material3.MaterialTheme.colorScheme.primary,
- rightButtonTextColor = androidx.compose.material3.MaterialTheme.colorScheme.onPrimary,
- )
+ Column{
+ Row {
+ Text(
+ text = stringResource(R.string.pet_registration),
+ textAlign = TextAlign.Start,
+ color = MaterialTheme.colorScheme.scrim,
+ style = MaterialTheme.typography.bodyMedium,
+ fontWeight = FontWeight(500),
+ modifier = Modifier
+ .padding(bottom = 8.sdp)
+ .fillMaxWidth()
+ )
+ }
+ DualActionButton(
+ buttonModifier = Modifier,
+ titleText = stringResource(R.string.castrated),
+ rightButtonSubmit = {},
+ leftButtonSubmit = {},
+ enableButton = true,
+ leftButtonText = stringResource(R.string.yes),
+ rightButtonText = stringResource(R.string.no),
+ leftButtonColor = ButtonDefaults.buttonColors(MaterialTheme.colorScheme.background),
+ rightButtonColor = ButtonDefaults.buttonColors(MaterialTheme.colorScheme.primary),
+ leftButtonTextColor = MaterialTheme.colorScheme.primary,
+ rightButtonTextColor = MaterialTheme.colorScheme.onPrimary,
+ )
+ }
}
item {
Spacer(modifier = Modifier.height(20.sdp))
@@ -222,4 +221,172 @@ fun ScreenPreview() {
Screen(nav)
}
)
+}
+
+@Preview(showBackground = true)
+@Composable
+fun InputTextPreview() {
+ PetJournalTheme {
+ InputText(
+ modifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ textInputModifier = Modifier.testTag("inputField_test"),
+ placeholderText = stringResource(R.string.placeholder_name_pet),
+ titleText = stringResource(R.string.pet_name),
+ textValue = "",
+ onEvent = { }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DropDownBreedPreview() {
+ PetJournalTheme {
+ DropDown(
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ placeholderText = stringResource(R.string.placeholder_breed),
+ titleText = stringResource(R.string.breed),
+ textValue = "",
+ onEvent = { }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DropDownSizePreview() {
+ PetJournalTheme {
+ DropDown(
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ placeholderText = stringResource(R.string.placeholder_size),
+ titleText = stringResource(R.string.size),
+ textValue = "",
+ onEvent = { }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DateInputTextPreview() {
+ PetJournalTheme {
+ DateInputText(
+ textInputModifier = Modifier,
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ titleText = stringResource(R.string.pet_birth_date),
+ placeholderText = stringResource(R.string.placeholder_text_DD_MM_YYYY),
+ textValue = "",
+ onEvent = { },
+ // visualTransformation = { date ->
+ // formatDate(date)
+ // }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DropDownWeightPreview() {
+ PetJournalTheme {
+ DropDown(
+ textTitleModifier = Modifier.padding(bottom = 4.sdp),
+ placeholderText = stringResource(id = R.string.placeholder_weight),
+ titleText = stringResource(id = R.string.weight),
+ textValue = "",
+ onEvent = { }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DropDownTypePreview() {
+ PetJournalTheme {
+ DropDown(
+ textInputModifier = Modifier.padding(top = 4.sdp),
+ placeholderText = stringResource(R.string.placeholder_type),
+ titleText = stringResource(R.string.type),
+ textValue = "",
+ onEvent = { }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DualActionSexPreview() {
+ PetJournalTheme {
+ Column{
+ Row {
+ Text(
+ text = stringResource(R.string.pet_sex),
+ textAlign = TextAlign.Start,
+ color = MaterialTheme.colorScheme.scrim,
+ style = MaterialTheme.typography.bodyMedium,
+ fontWeight = FontWeight(500),
+ modifier = Modifier
+ .padding(bottom = 8.sdp)
+ .fillMaxWidth()
+ )
+ }
+ DualActionButton(
+ buttonModifier = Modifier,
+ titleText = stringResource(R.string.pet_sex),
+ rightButtonSubmit = {},
+ leftButtonSubmit = {},
+ enableButton = true,
+ leftButtonText = stringResource(R.string.male),
+ rightButtonText = stringResource(R.string.female)
+ )
+ }
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun DualActionCastratedPreview() {
+ PetJournalTheme {
+ Column{
+ Row {
+ Text(
+ text = stringResource(R.string.pet_registration),
+ textAlign = TextAlign.Start,
+ color = MaterialTheme.colorScheme.scrim,
+ style = MaterialTheme.typography.bodyMedium,
+ fontWeight = FontWeight(500),
+ modifier = Modifier
+ .padding(bottom = 8.sdp)
+ .fillMaxWidth()
+ )
+ }
+ DualActionButton(
+ buttonModifier = Modifier,
+ titleText = stringResource(R.string.castrated),
+ rightButtonSubmit = {},
+ leftButtonSubmit = {},
+ enableButton = true,
+ leftButtonText = stringResource(R.string.yes),
+ rightButtonText = stringResource(R.string.no),
+ leftButtonColor = ButtonDefaults.buttonColors(MaterialTheme.colorScheme.background),
+ rightButtonColor = ButtonDefaults.buttonColors(MaterialTheme.colorScheme.primary),
+ leftButtonTextColor = MaterialTheme.colorScheme.primary,
+ rightButtonTextColor = MaterialTheme.colorScheme.onPrimary,
+ )
+ }
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun Button3SavePreview() {
+ PetJournalTheme {
+ Button3(
+ submit = {},
+ enableButton = true,
+ text = stringResource(R.string.save)
+ )
+ }
}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/RegisterTaskScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/RegisterTaskScreen.kt
new file mode 100644
index 00000000..f5987a1b
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/RegisterTaskScreen.kt
@@ -0,0 +1,10 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.registerTaskScreen
+
+import androidx.compose.runtime.Composable
+import androidx.navigation.NavController
+import com.soujunior.petjournal.ui.screens_app.screens_pets.registerTaskScreen.components.ScreenRegisterTask
+
+@Composable
+fun RegisterTaskScreen(navController: NavController) {
+ ScreenRegisterTask(navController)
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTask.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTask.kt
new file mode 100644
index 00000000..bb3dd269
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/registerTaskScreen/components/ScreenRegisterTask.kt
@@ -0,0 +1,439 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.registerTaskScreen.components
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.offset
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.material.ModalDrawer
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.navigation.NavController
+import androidx.navigation.compose.rememberNavController
+import com.soujunior.petjournal.R
+import com.soujunior.petjournal.ui.components.Button3
+import com.soujunior.petjournal.ui.components.GroupSelectableButton
+import com.soujunior.petjournal.ui.components.InputText
+import com.soujunior.petjournal.ui.components.PetFilterList
+import com.soujunior.petjournal.ui.components.Pets
+import com.soujunior.petjournal.ui.components.ScaffoldCustom
+import com.soujunior.petjournal.ui.components.SelectableButtonInfo
+import com.soujunior.petjournal.ui.components.TextFieldCustom
+import com.soujunior.petjournal.ui.components.TransactionTypeSelector
+import com.soujunior.petjournal.ui.components.task.OneOffTask
+import com.soujunior.petjournal.ui.components.task.RecurringTask
+import com.soujunior.petjournal.ui.theme.ColorCustom
+import com.soujunior.petjournal.ui.theme.PetJournalTheme
+import com.soujunior.petjournal.ui.util.TransactionType
+import ir.kaaveh.sdpcompose.sdp
+
+@Composable
+fun ScreenRegisterTask(navController: NavController) {
+
+ val listOfTasks = listOf(
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_vaccines),
+ ColorCustom.color_selectable_button_1
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_consultations),
+ ColorCustom.color_selectable_button_2
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_medicine),
+ ColorCustom.color_selectable_button_3
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_bath),
+ ColorCustom.color_selectable_button_4
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_food),
+ ColorCustom.color_selectable_button_5
+ ),
+ SelectableButtonInfo(
+ stringResource(R.string.label_selectable_button_pet_walk),
+ ColorCustom.color_selectable_button_6
+ ),
+ )
+
+ val listPet = listOf(
+ Pets(
+ id = 1,
+ imageRes = painterResource(R.drawable.image_jujuba),
+ name = "Jujuba"
+ ),
+ Pets(
+ id = 2,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 3,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 4,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 5,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 6,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 7,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 8,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 9,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ )
+ )
+
+ val nameTask = remember { mutableStateOf("") }
+ val desc = remember { mutableStateOf("") }
+ val ob = remember { mutableStateOf("") }
+ var selectedType by remember { mutableStateOf(null) }
+
+ ScaffoldCustom(
+ modifier = Modifier,
+ navigationUp = navController,
+ showTopBar = true,
+ //todo: o valor desse Title bar precisa ser passado por parametro,
+ // assim ele se comportara tanto como "Nova tarefa" quanto "Editar tarefa".
+ titleTopBar = stringResource(R.string.label_new_task),
+ showBottomBarNavigation = true,
+ contentToUse = { paddingValues ->
+ Image(
+ painter = painterResource(R.drawable.rastro),
+ contentDescription = null,
+ modifier = Modifier
+ .fillMaxSize()
+ .offset(y = 300.sdp)
+ )
+ LazyColumn(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(paddingValues),
+ verticalArrangement = Arrangement.spacedBy(12.sdp),
+ contentPadding = PaddingValues(horizontal = 14.sdp),
+ content = {
+ item {
+ GroupSelectableButton(listOfTasks)
+ }
+ item {
+ InputText(
+ modifier = Modifier.testTag("inputFieldTag"),
+ placeholderText = stringResource(R.string.enter_task_name_here),
+ titleText = stringResource(R.string.task_name),
+ textValue = nameTask.value,
+ onEvent = { t ->
+ nameTask.value = t
+
+ },
+ )
+ }
+ item {
+ TextFieldCustom(
+ title = stringResource(R.string.label_description),
+ placeholder = stringResource(R.string.enter_the_task_description_here),
+ value = desc.value,
+ onValueChange = { d ->
+ desc.value = d
+ }
+ )
+ }
+ item {
+ PetFilterList(
+ listPet,
+ onSelectedPet = {
+
+ }
+ )
+ }
+ item {
+ Column {
+ TransactionTypeSelector(
+ onSelectionChanged = { type ->
+ selectedType = type
+ }
+ )
+
+ when (selectedType) {
+ TransactionType.Recurrent -> {
+ RecurringTask(
+ setOf(),
+ onAmPmSelector = {
+
+ },
+ onTime = { hour, minute ->
+
+ },
+ onWeekDaySelected = {
+
+ },
+ onDaySelected = {
+
+ }
+ )
+ }
+
+ TransactionType.OneOff -> {
+ OneOffTask(
+ onDateSelected = {
+
+ },
+ onAmPmSelector = {
+
+ },
+ onTime = { hour, minute ->
+
+ }
+ )
+ }
+
+ null -> {}
+ }
+ }
+ }
+ item {
+ TextFieldCustom(
+ title = stringResource(R.string.label_observation),
+ placeholder = stringResource(R.string.enter_your_observation_here),
+ value = ob.value,
+ onValueChange = { o ->
+ ob.value = o
+ }
+ )
+ }
+ item {
+ Button3(submit = { /*TODO*/ }, enableButton = true, text = stringResource(R.string.label_save_task))
+ }
+ }
+ )
+ }
+ )
+}
+
+@Preview(showBackground = true, showSystemUi = true, device = "id:pixel_4_xl")
+@Composable
+fun ScreenRegisterTaskPreview() {
+ val nav = rememberNavController()
+ ScreenRegisterTask(nav)
+}
+
+
+private val listOfTasks = listOf(
+ SelectableButtonInfo(
+ "Vacinas",
+ ColorCustom.color_selectable_button_1
+ ),
+ SelectableButtonInfo(
+ "Consultas",
+ ColorCustom.color_selectable_button_2
+ ),
+ SelectableButtonInfo(
+ "Remédios",
+ ColorCustom.color_selectable_button_3
+ ),
+ SelectableButtonInfo(
+ "Banho",
+ ColorCustom.color_selectable_button_4
+ ),
+ SelectableButtonInfo(
+ "Comida",
+ ColorCustom.color_selectable_button_5
+ ),
+ SelectableButtonInfo(
+ "Passeio",
+ ColorCustom.color_selectable_button_6
+ ),
+)
+
+@Preview(showBackground = true)
+@Composable
+fun GroupSelectableButtonPreview() {
+ PetJournalTheme {
+ GroupSelectableButton(
+ listOfTasks,
+ onSelection = {
+
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun InputTextTaskNamePreview() {
+ val nameTask = remember { mutableStateOf("") }
+ PetJournalTheme {
+ InputText(
+ modifier = Modifier.testTag("inputFieldTag"),
+ placeholderText = stringResource(R.string.enter_task_name_here),
+ titleText = stringResource(R.string.task_name),
+ textValue = nameTask.value,
+ onEvent = { t ->
+ nameTask.value = t
+ },
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun TextFieldCustomDescriptionPreview() {
+ val desc = remember { mutableStateOf("") }
+ PetJournalTheme {
+ TextFieldCustom(
+ title = stringResource(R.string.label_description),
+ placeholder = stringResource(R.string.enter_the_task_description_here),
+ value = desc.value,
+ onValueChange = { d ->
+ desc.value = d
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun PetFilterListPreview() {
+ val listPet = listOf(
+ Pets(
+ id = 1,
+ imageRes = painterResource(R.drawable.image_jujuba),
+ name = "Jujuba"
+ ),
+ Pets(
+ id = 2,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ ),
+ Pets(
+ id = 3,
+ imageRes = painterResource(R.drawable.image_alfredo),
+ name = "Alfredo"
+ )
+ )
+ PetJournalTheme {
+ PetFilterList(
+ listPet,
+ onSelectedPet = {
+
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun TransactionTypeSelectorPreview() {
+ var selectedType by remember { mutableStateOf(null) }
+ PetJournalTheme {
+ TransactionTypeSelector(
+ onSelectionChanged = { type ->
+ selectedType = type
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun RecurringTaskPreview() {
+ PetJournalTheme {
+ RecurringTask(
+ setOf(),
+ onAmPmSelector = {
+
+ },
+ onTime = { hour, minute ->
+
+ },
+ onWeekDaySelected = {
+
+ },
+ onDaySelected = {
+
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun OneOffTaskPreview() {
+ PetJournalTheme {
+ OneOffTask(
+ onDateSelected = {
+
+ },
+ onAmPmSelector = {
+
+ },
+ onTime = { hour, minute ->
+
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun TextFieldCustomObservationPreview() {
+ val ob = remember { mutableStateOf("") }
+ PetJournalTheme {
+ TextFieldCustom(
+ title = stringResource(R.string.label_observation),
+ placeholder = stringResource(R.string.enter_your_observation_here),
+ value = ob.value,
+ onValueChange = { o ->
+ ob.value = o
+ }
+ )
+ }
+}
+
+@Preview(showBackground = true)
+@Composable
+fun Button3SaveTaskPreview() {
+ PetJournalTheme {
+ Button3(
+ submit = { /*TODO*/ },
+ enableButton = true,
+ text = stringResource(R.string.label_save_task)
+ )
+ }
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpecies.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpecies.kt
index a26bf85b..577d6604 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpecies.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpecies.kt
@@ -53,4 +53,4 @@ abstract class ViewModelChoiceSpecies : ViewModel() {
)
abstract fun savePetInformation(specie: String)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpeciesImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpeciesImpl.kt
index a6b64796..d55c06be 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpeciesImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/ViewModelChoiceSpeciesImpl.kt
@@ -121,4 +121,4 @@ class ViewModelChoiceSpeciesImpl(
result.handleResult(::success, ::failed)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/GridVectors.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/GridVectors.kt
index ec20ed22..af3af9b6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/GridVectors.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/GridVectors.kt
@@ -481,4 +481,4 @@ fun GridVectors(
fun PrevGrid() {
val isClearSpecies by remember { mutableStateOf(false) }
GridVectors(selectedSpecies = {}, clearSelection = { isClearSpecies })
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Header.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Header.kt
index 13c08c0f..08e88ea6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Header.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Header.kt
@@ -34,4 +34,4 @@ fun Header(name: String?) {
@Composable
fun PreviewHeader() {
Header("Jorge")
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Screen.kt
index e6a5ce34..6838a31c 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/speciesChoiceScreen/components/Screen.kt
@@ -229,4 +229,4 @@ fun SpecieChoicePreview() {
PetJournalTheme {
Screen(nav)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListEvent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListEvent.kt
new file mode 100644
index 00000000..fa079b64
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListEvent.kt
@@ -0,0 +1,6 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen
+
+sealed class TaskListEvent {
+ object addTaskButton : TaskListEvent()
+ data class onDateFilterChange(val dateFilter: DateFilter) : TaskListEvent()
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListScreen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListScreen.kt
index f402e532..1e6cf437 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListScreen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListScreen.kt
@@ -7,4 +7,4 @@ import com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.compo
@Composable
fun TaskListScreen(navController: NavController) {
Screen(navController)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListState.kt
new file mode 100644
index 00000000..39c024b7
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListState.kt
@@ -0,0 +1,13 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen
+
+import com.soujunior.petjournal.ui.components.data.TaskData
+
+data class TaskListState (
+ val tasks : List = emptyList(),
+ val selectedDateFilter: DateFilter = DateFilter.DAILY,
+ val error: String? = null
+)
+
+enum class DateFilter{
+ DAILY, WEEKLY, MONTHLY
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModel.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModel.kt
index 2cc1ec08..1cc3f599 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModel.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModel.kt
@@ -1,2 +1,21 @@
package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen
+import androidx.lifecycle.ViewModel
+import com.soujunior.domain.model.response.GuardianNameResponse
+import com.soujunior.petjournal.ui.util.ValidationEvent
+import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.receiveAsFlow
+
+abstract class TaskListViewModel : ViewModel() {
+ abstract var state: TaskListState
+ abstract val validationEventChannel: Channel
+ open val validationEvents: Flow
+ get() = validationEventChannel.receiveAsFlow()
+ abstract val taskState: StateFlow
+
+ abstract fun success(name: GuardianNameResponse)
+ abstract fun failed(exception: Throwable?)
+ abstract fun onEvent(event: TaskListEvent)
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModelImpl.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModelImpl.kt
index b3cbcbd5..9dc40964 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModelImpl.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/TaskListViewModelImpl.kt
@@ -1,4 +1,4 @@
package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen
class TaskListViewModelImpl {
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/Screen.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/Screen.kt
index 34cce820..8949ccf0 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/Screen.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/Screen.kt
@@ -1,9 +1,96 @@
package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.components
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.material.Text
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation.NavController
+import androidx.navigation.compose.rememberNavController
+import com.soujunior.petjournal.R
+import com.soujunior.petjournal.ui.components.NavigationBar
+import com.soujunior.petjournal.ui.components.ScaffoldCustom
+import com.soujunior.petjournal.ui.components.data.TaskFakeData
+import com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.DateFilter
+import com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.components.TaskDateComponent
+import com.soujunior.petjournal.ui.theme.RobotoRegular
+import ir.kaaveh.sdpcompose.sdp
+import ir.kaaveh.sdpcompose.ssp
@Composable
fun Screen(navController: NavController){
+// val viewModel : TaskListViewModel = getViewModel()
+ Column (modifier = Modifier){
+ ScaffoldCustom(
+ modifier = Modifier,
+ navigationUp = navController,
+ showBottomBarNavigation = true,
+ titleTopBar = stringResource(R.string.next_tasks),
+ showTopBar = true,
+ bottomNavigationBar = { NavigationBar(navController) },
+ contentToUse = { paddingValues ->
+ LazyColumn(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ verticalArrangement = Arrangement.spacedBy(12.sdp),
+ modifier = Modifier
+ .fillMaxSize()
+ .fillMaxHeight()
+ .padding(paddingValues),
+ contentPadding = PaddingValues(horizontal = 14.sdp),
+ content = {
+ item{
+ TabSelector(
+ selectedFilter = DateFilter.DAILY,
+ onFilterSelected = {},
+ modifier = Modifier
+ .fillMaxWidth()
+ )
+ }
+ item{
+ TaskDateComponent(
+ date = "5 de Janeiro",
+ tasks = TaskFakeData.sampleTasks.take(3),
+ modifier = Modifier
+ )
+ }
+ item {
+ TaskDateComponent(
+ date = "3 de Fevereiro",
+ tasks = TaskFakeData.sampleTasks.take(1),
+ modifier = Modifier
+ )
+ }
+ item{
+ TaskDateComponent(
+ date = "30 de Setembro",
+ tasks = TaskFakeData.sampleTasks.take(3),
+ modifier = Modifier
+ )
+ }
+ }
+ )
+ }
+ )
-}
\ No newline at end of file
+ }
+}
+
+@Composable
+@Preview
+private fun ScreenPreview(){
+ val nav = rememberNavController()
+ Screen(nav)
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TabSelector.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TabSelector.kt
new file mode 100644
index 00000000..75bbe992
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TabSelector.kt
@@ -0,0 +1,70 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.components
+
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Text
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.PrimaryTabRow
+import androidx.compose.material3.Tab
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.DateFilter
+import com.soujunior.petjournal.R
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun TabSelector(
+ selectedFilter : DateFilter,
+ onFilterSelected: (DateFilter) -> Unit,
+ modifier: Modifier = Modifier
+){
+ val tabs = listOf(
+ DateFilter.DAILY,
+ DateFilter.WEEKLY,
+ DateFilter.MONTHLY
+ )
+ val selectedIndex = tabs.indexOf(selectedFilter)
+
+ PrimaryTabRow(
+ selectedTabIndex = selectedIndex,
+ modifier = modifier,
+ containerColor = Color.Transparent,
+ contentColor = MaterialTheme.colorScheme.primary,
+ divider = {/*sem divider*/}
+ ){
+ tabs.forEachIndexed {
+ index, filter ->
+ Tab(
+ selected = selectedIndex == index,
+ onClick = { onFilterSelected(filter)},
+ text = {
+ val textRes = when(filter){
+ DateFilter.DAILY -> R.string.daily_tasks
+ DateFilter.WEEKLY -> R.string.weekly_tasks
+ DateFilter.MONTHLY -> R.string.monthly_tasks
+ }
+ Text(
+ text = stringResource(id = textRes),
+ fontWeight = if (selectedIndex == index) FontWeight.Bold else FontWeight.Normal,
+ )
+ },
+ selectedContentColor = MaterialTheme.colorScheme.primary,
+ unselectedContentColor = Color.Gray
+ )
+ }
+ }
+}
+
+@Preview
+@Composable
+fun PreviewTabSelector(){
+ TabSelector(
+ selectedFilter = DateFilter.DAILY,
+ onFilterSelected = {},
+ modifier = Modifier.fillMaxWidth()
+ )
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TaskDateComponent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TaskDateComponent.kt
new file mode 100644
index 00000000..4e6dd9ce
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/screens_app/screens_pets/taskListScreen/components/TaskDateComponent.kt
@@ -0,0 +1,54 @@
+package com.soujunior.petjournal.ui.screens_app.screens_pets.taskListScreen.components
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.tooling.preview.Preview
+import com.soujunior.petjournal.ui.components.TaskCard
+import com.soujunior.petjournal.ui.components.data.TaskData
+import com.soujunior.petjournal.ui.components.data.TaskFakeData
+import ir.kaaveh.sdpcompose.sdp
+import ir.kaaveh.sdpcompose.ssp
+
+@Composable
+fun TaskDateComponent(
+ date: String,
+ tasks: List,
+ modifier: Modifier = Modifier
+) {
+ Column(
+ modifier = modifier,
+ verticalArrangement = Arrangement.spacedBy(8.sdp)
+ ) {
+ Text(
+ text = date,
+ style = MaterialTheme.typography.titleLarge,
+ fontSize = 20.ssp,
+ modifier = Modifier.padding(bottom = 8.sdp)
+ )
+
+ tasks.forEach { taskData ->
+ TaskCard(
+ taskData = taskData,
+ modifier = Modifier.padding()
+
+ )
+ }
+ }
+
+}
+
+@Preview
+@Composable
+private fun Preview() {
+ TaskDateComponent(
+ date = "5 de Janeiro",
+ tasks = TaskFakeData.sampleTasks.take(3)
+ )
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/States.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/States.kt
index 5f8de1bc..a04fa022 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/States.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/States.kt
@@ -12,4 +12,4 @@ object States {
var localConfirmPasswordError = compositionLocalOf { mutableStateOf(false) }
var checked = compositionLocalOf { mutableStateOf(false) }
var otpFullCode = compositionLocalOf { mutableStateOf("") }
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/TaskState.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/TaskState.kt
index 4fea81b3..c0c516b6 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/TaskState.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/states/TaskState.kt
@@ -3,4 +3,4 @@ package com.soujunior.petjournal.ui.states
sealed class TaskState {
object Idle: TaskState()
object Loading: TaskState()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Color.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Color.kt
index 8fcf6daa..aef663a1 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Color.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Color.kt
@@ -95,7 +95,7 @@ object ColorCustom {
val color_border_pet_icon = Color(0xFF9C4DCC)
val color_title_pet_icon = Color(0xFF222222)
val color_placeholder = Color(0xFFCCCCCC)
- val color_shadow_dialog = Color(0x4D000000)
- val color_border_dialog = Color(0xFF8D4CD2)
- val color_background_button_dialog = Color(0xFF9C4DFF)
-}
\ No newline at end of file
+ val color_text_button_transaction_type = Color(0xFF8dD4CD2)
+ val color_border_button_transaction_type = Color(0xFFA2A9B1)
+ val color_unfocused_wheelTimePicker = Color(0xFFDADADA)
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Shapes.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Shapes.kt
index 25058cd8..2d16d170 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Shapes.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Shapes.kt
@@ -8,4 +8,4 @@ val Shapes = Shapes(
small = RoundedCornerShape(5.dp),
medium = RoundedCornerShape(20.dp),
large = RoundedCornerShape(40.dp)
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Theme.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Theme.kt
index e7e69141..d009e2b5 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Theme.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Theme.kt
@@ -228,4 +228,4 @@ fun processColor(name: String, color: Color) {
Row(modifier = Modifier.background(color)) {
Text(text = name)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Typography.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Typography.kt
index 30dae1d4..fdfeb0c3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Typography.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/theme/Typography.kt
@@ -81,4 +81,4 @@ val Typography = Typography(
fontSize = 10.sp,
letterSpacing = 1.5.sp
)
-)
\ No newline at end of file
+)
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/AdaptiveWidthForTitle.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/AdaptiveWidthForTitle.kt
index 27ebc94a..7484815c 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/AdaptiveWidthForTitle.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/AdaptiveWidthForTitle.kt
@@ -12,4 +12,4 @@ fun Modifier.adaptiveWidthForTitle(title: String): Modifier {
} else {
this.width(115.dp)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Constants.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Constants.kt
index 151dc876..b0ea4cfa 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Constants.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Constants.kt
@@ -11,4 +11,4 @@ object Constants {
const val ERROR_MESSAGE = "Error"
const val OTHER_RACE = "Outra raça"
const val RACE_OTHER = "Outro"
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/DateFormatter.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/DateFormatter.kt
new file mode 100644
index 00000000..9b90aeb7
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/DateFormatter.kt
@@ -0,0 +1,45 @@
+package com.soujunior.petjournal.ui.util
+
+import android.content.Context
+import androidx.annotation.StringRes
+import com.soujunior.petjournal.R
+import java.time.LocalDateTime
+import java.time.Month
+import java.time.format.DateTimeFormatter
+
+class DateFormatter(private val context: Context){
+
+ private val inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
+
+ fun formatDaily(dateString: String) : String{
+ val localDateTime = LocalDateTime.parse(dateString, inputFormatter)
+ val day = localDateTime.dayOfMonth.toString().padStart(2, '0')
+
+ val monthName = getMonthName(localDateTime.month)
+
+ return "$day de $monthName"
+ }
+
+ @StringRes
+ private fun getMonthStringRes(month: Month) : Int {
+ return when (month) {
+ Month.JANUARY -> R.string.jan
+ Month.FEBRUARY -> R.string.fev
+ Month.MARCH -> R.string.mar
+ Month.APRIL -> R.string.abr
+ Month.MAY -> R.string.mai
+ Month.JUNE -> R.string.jun
+ Month.JULY -> R.string.jul
+ Month.AUGUST -> R.string.ago
+ Month.SEPTEMBER -> R.string.set
+ Month.OCTOBER -> R.string.out
+ Month.NOVEMBER -> R.string.nov
+ Month.DECEMBER -> R.string.dez
+ }
+ }
+
+ private fun getMonthName(month: Month): String{
+ val stringResId = getMonthStringRes(month)
+ return context.getString(stringResId)
+ }
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/GetScreenInch.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/GetScreenInch.kt
index 9cb931a0..f79a46a4 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/GetScreenInch.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/GetScreenInch.kt
@@ -29,4 +29,4 @@ fun getScreenHeightInch(): Float {
val screenHeightDp = configuration.screenHeightDp * displayMetrics
val scrollPercentage = 0.35f
return screenHeightDp * scrollPercentage
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/SelectedPeriodType.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/SelectedPeriodType.kt
new file mode 100644
index 00000000..3fa0a40e
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/SelectedPeriodType.kt
@@ -0,0 +1,5 @@
+package com.soujunior.petjournal.ui.util
+
+enum class SelectedPeriodType {
+ Diária, Semanal, Mensal
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ToggleList.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ToggleList.kt
index 7308c3aa..99839483 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ToggleList.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ToggleList.kt
@@ -6,4 +6,4 @@ fun List.toggle(item: String): List {
} else {
this + item
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/TransactionType.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/TransactionType.kt
new file mode 100644
index 00000000..0a632ab5
--- /dev/null
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/TransactionType.kt
@@ -0,0 +1,5 @@
+package com.soujunior.petjournal.ui.util
+
+enum class TransactionType {
+ Recurrent, OneOff
+}
\ No newline at end of file
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Util.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Util.kt
index 542dc527..5fe0262f 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Util.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/Util.kt
@@ -47,4 +47,4 @@ fun countCharacters(str: String): List {
}
}
return listOf(digitosMaiusculos, digitosMinusculos, simbolos, numeros)
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ValidationEvent.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ValidationEvent.kt
index 37383bcc..f389cfb3 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ValidationEvent.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/ValidationEvent.kt
@@ -3,4 +3,4 @@ package com.soujunior.petjournal.ui.util
sealed class ValidationEvent {
object Success : ValidationEvent()
object Failed : ValidationEvent()
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/calcDefault.kt b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/calcDefault.kt
index f124006e..c6b115e5 100644
--- a/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/calcDefault.kt
+++ b/petJournal/app/src/main/java/com/soujunior/petjournal/ui/util/calcDefault.kt
@@ -5,4 +5,4 @@ import androidx.compose.ui.unit.dp
fun calcDefault(sizeToMultiply: Int, quantity: Int): Dp {
return (sizeToMultiply * quantity).dp
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/main/res/drawable/ic_home.xml b/petJournal/app/src/main/res/drawable/ic_home.xml
index d92f8e91..459d13da 100644
--- a/petJournal/app/src/main/res/drawable/ic_home.xml
+++ b/petJournal/app/src/main/res/drawable/ic_home.xml
@@ -12,4 +12,3 @@
android:strokeLineJoin="round"
android:pathData="M3 10L12 3L21 10V21H15V14H9V21H3Z" />
-
diff --git a/petJournal/app/src/main/res/drawable/logo_roxo.xml b/petJournal/app/src/main/res/drawable/logo_roxo.xml
index d9aa9e8d..cd714e83 100644
--- a/petJournal/app/src/main/res/drawable/logo_roxo.xml
+++ b/petJournal/app/src/main/res/drawable/logo_roxo.xml
@@ -1,41 +1,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/petJournal/app/src/main/res/drawable/logo_white.xml b/petJournal/app/src/main/res/drawable/logo_white.xml
index e2d12bd1..db1ffb00 100644
--- a/petJournal/app/src/main/res/drawable/logo_white.xml
+++ b/petJournal/app/src/main/res/drawable/logo_white.xml
@@ -1,41 +1,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app.xml b/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app.xml
index 657b7dc3..dfca990e 100644
--- a/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app.xml
+++ b/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app_round.xml b/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app_round.xml
index 657b7dc3..dfca990e 100644
--- a/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app_round.xml
+++ b/petJournal/app/src/main/res/mipmap-anydpi-v26/icon_app_round.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/values/colors.xml b/petJournal/app/src/main/res/values/colors.xml
index 7264fbfd..f81775da 100644
--- a/petJournal/app/src/main/res/values/colors.xml
+++ b/petJournal/app/src/main/res/values/colors.xml
@@ -9,4 +9,4 @@
#FFFFFFFF
#FFFFFF
#000000
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/values/icon_app_background.xml b/petJournal/app/src/main/res/values/icon_app_background.xml
index 33589864..65effd90 100644
--- a/petJournal/app/src/main/res/values/icon_app_background.xml
+++ b/petJournal/app/src/main/res/values/icon_app_background.xml
@@ -1,4 +1,4 @@
#F8BFEC
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/values/privacy_policy.xml b/petJournal/app/src/main/res/values/privacy_policy.xml
index 2cd240c8..09afe9ab 100644
--- a/petJournal/app/src/main/res/values/privacy_policy.xml
+++ b/petJournal/app/src/main/res/values/privacy_policy.xml
@@ -35,4 +35,4 @@ Adicionalmente, se você mora na Europa, nós afirmamos que estamos processando
Nós vamos divulgar qualquer informação que coletarmos, usarmos ou recebermos caso tal divulgação seja solicitada ou permitida por lei, de forma a cumprir intimações ou processos judiciais similares, e também quando considerarmos em boa fé que a divulgação é necessária para a proteção de nossos direitos, para a proteção da segurança de outros, para investigações de fraude ou para responder a uma solicitação do governo.
Informações de contato:
Se você quiser entrar em contato conosco para saber mais sobre esta Política de Privacidade, ou quiser acessar quaisquer informações relativas aos seus direitos individuais e às suas Informações Pessoais, você poderá enviar um e-mail para o endereço joaosilvavictor@hotmail.com.br.
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/values/splash.xml b/petJournal/app/src/main/res/values/splash.xml
index 9caee9e7..a5cff4a6 100644
--- a/petJournal/app/src/main/res/values/splash.xml
+++ b/petJournal/app/src/main/res/values/splash.xml
@@ -7,4 +7,4 @@
- @style/Theme.PetJournal
-->
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/values/strings.xml b/petJournal/app/src/main/res/values/strings.xml
index be1d9d82..26b3b23f 100644
--- a/petJournal/app/src/main/res/values/strings.xml
+++ b/petJournal/app/src/main/res/values/strings.xml
@@ -145,6 +145,8 @@
Ração
Passeio
Essa tarefa é...
+ Tarefa adicionada\ncom sucesso!
+ Nova tarefa
Ativo nos meses
Todos
Descrição
@@ -154,9 +156,32 @@
Abrir Calendário
00/00/0000
dd/MM/yyyy
- Tarefa adicionada\ncom sucesso!
- Nova tarefa
Ir para a HomePage
AM
PM
-
\ No newline at end of file
+ Recorrente
+ Pontual
+ Data
+ Digite aqui o nome da tarefa
+ Nome da tarefa
+ Observação
+ Digite aqui a sua observação
+ Salvar
+ Quais pets precisam dessa tarefa?
+ Próximas tarefas
+ Diárias
+ Semanais
+ Mensais
+ Jan
+ Fev
+ Mar
+ Abr
+ Mai
+ Jun
+ Jul
+ Ago
+ Set
+ Out
+ Nov
+ Dez
+
diff --git a/petJournal/app/src/main/res/values/themes.xml b/petJournal/app/src/main/res/values/themes.xml
index 82ea9580..a504e8db 100644
--- a/petJournal/app/src/main/res/values/themes.xml
+++ b/petJournal/app/src/main/res/values/themes.xml
@@ -5,4 +5,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/xml/backup_rules.xml b/petJournal/app/src/main/res/xml/backup_rules.xml
index fa0f996d..148c18b6 100644
--- a/petJournal/app/src/main/res/xml/backup_rules.xml
+++ b/petJournal/app/src/main/res/xml/backup_rules.xml
@@ -10,4 +10,4 @@
-->
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/main/res/xml/data_extraction_rules.xml b/petJournal/app/src/main/res/xml/data_extraction_rules.xml
index 9ee9997b..0c4f95ca 100644
--- a/petJournal/app/src/main/res/xml/data_extraction_rules.xml
+++ b/petJournal/app/src/main/res/xml/data_extraction_rules.xml
@@ -16,4 +16,4 @@
-->
-
\ No newline at end of file
+
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/setup/FormMock.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/setup/FormMock.kt
index 9253d362..fed09ae6 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/setup/FormMock.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/setup/FormMock.kt
@@ -280,4 +280,3 @@ val listPetSizesCat = listOf(
specieId = "a0f385f5-c0b4-4f85-8d06-cf2a4f698f93"
)
)
-
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/setup/MainCoroutineRule.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/setup/MainCoroutineRule.kt
index e590a383..a514fee7 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/setup/MainCoroutineRule.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/setup/MainCoroutineRule.kt
@@ -25,4 +25,4 @@ class MainCoroutineRule(
cleanupTestCoroutines()
Dispatchers.resetMain()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/awaitingCodeScreen/AwaitingCodeTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/awaitingCodeScreen/AwaitingCodeTest.kt
index ff079867..2ce71c0c 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/awaitingCodeScreen/AwaitingCodeTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/awaitingCodeScreen/AwaitingCodeTest.kt
@@ -151,4 +151,4 @@ package com.soujunior.petjournal.ui.awaitingCodeScreen
// assertThat(viewModel.enableButton()).isEqualTo(false)
// }
//
-//}
\ No newline at end of file
+//}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/changePassword/ChangePasswordViewModelTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/changePassword/ChangePasswordViewModelTest.kt
index 2357806e..65f277e8 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/changePassword/ChangePasswordViewModelTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/changePassword/ChangePasswordViewModelTest.kt
@@ -329,4 +329,4 @@ package com.soujunior.petjournal.ui.changePassword
// }
// coVerify(exactly = 0) { viewModel.success(any()) }
// }
-//}
\ No newline at end of file
+//}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/forgotPassword/ForgotPasswordMethodTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/forgotPassword/ForgotPasswordMethodTest.kt
index fe107057..548bc501 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/forgotPassword/ForgotPasswordMethodTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/forgotPassword/ForgotPasswordMethodTest.kt
@@ -90,4 +90,4 @@ class ForgotPasswordMethodTest {
val enableButton = viewModel.enableButton()
assertk.assertThat(enableButton).isFalse()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/loginScreen/LoginMethodTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/loginScreen/LoginMethodTest.kt
index cb84916d..36c62abc 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/loginScreen/LoginMethodTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/loginScreen/LoginMethodTest.kt
@@ -118,4 +118,4 @@ override fun enableButton(): Boolean {
state.privacyPolicy
}
-*/
\ No newline at end of file
+*/
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petBirthDate/PetBirthDateViewModelTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petBirthDate/PetBirthDateViewModelTest.kt
index a9d1e0ba..bb5df815 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petBirthDate/PetBirthDateViewModelTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petBirthDate/PetBirthDateViewModelTest.kt
@@ -307,4 +307,4 @@ class PetBirthDateViewModelTest {
viewModelTest.createPetInformation()
assertEquals("Sucesso", viewModelTest.message.value)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petNameAndGender/PetNameViewModelTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petNameAndGender/PetNameViewModelTest.kt
index 9c782897..edae2759 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petNameAndGender/PetNameViewModelTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petNameAndGender/PetNameViewModelTest.kt
@@ -217,4 +217,4 @@ class PetNameViewModelTest {
assertEquals(newGender, viewModelTest.state.gender)
assertEquals(emptyList(), viewModelTest.state.genderError)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petRaceAndSize/PetViewModelRaceSizeTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petRaceAndSize/PetViewModelRaceSizeTest.kt
index ec96cd96..9c58645a 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petRaceAndSize/PetViewModelRaceSizeTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/petRaceAndSize/PetViewModelRaceSizeTest.kt
@@ -460,4 +460,4 @@ class PetViewModelRaceSizeTest {
assertEquals(ERROR_MESSAGE, viewModelTest.message.value)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/registerScreen/RegisterMethodTest.kt b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/registerScreen/RegisterMethodTest.kt
index a46e7312..cd6f5d0d 100644
--- a/petJournal/app/src/test/java/com/soujunior/petjournal/ui/registerScreen/RegisterMethodTest.kt
+++ b/petJournal/app/src/test/java/com/soujunior/petjournal/ui/registerScreen/RegisterMethodTest.kt
@@ -390,4 +390,4 @@ class RegisterMethodTest {
viewModel.onEvent(event)
assertEquals(privacyPolicy, viewModel.state.privacyPolicy)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/build.gradle.kts b/petJournal/build.gradle.kts
index 4f61a13d..48da44ec 100644
--- a/petJournal/build.gradle.kts
+++ b/petJournal/build.gradle.kts
@@ -1,7 +1,7 @@
buildscript {
apply(from = "dependencies.gradle")
extra["compose_ui_version"] = "1.4.2"
- val agp_version by extra("8.2.2")
+ val agp_version by extra("8.13.1")
repositories {
google()
diff --git a/petJournal/data/.gitignore b/petJournal/data/.gitignore
index 42afabfd..796b96d1 100644
--- a/petJournal/data/.gitignore
+++ b/petJournal/data/.gitignore
@@ -1 +1 @@
-/build
\ No newline at end of file
+/build
diff --git a/petJournal/data/build.gradle.kts b/petJournal/data/build.gradle.kts
index edf76949..e2379990 100644
--- a/petJournal/data/build.gradle.kts
+++ b/petJournal/data/build.gradle.kts
@@ -49,4 +49,4 @@ dependencies {
testImplementation(rootProject.ext["testMockk"] as String)
testImplementation(rootProject.ext["testAssertk"] as String)
testImplementation(rootProject.ext["testKotlinxCoroutines"] as String)
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/proguard-rules.pro b/petJournal/data/proguard-rules.pro
index ff59496d..2f9dc5a4 100644
--- a/petJournal/data/proguard-rules.pro
+++ b/petJournal/data/proguard-rules.pro
@@ -18,4 +18,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
diff --git a/petJournal/data/src/main/AndroidManifest.xml b/petJournal/data/src/main/AndroidManifest.xml
index da441908..1d30510d 100644
--- a/petJournal/data/src/main/AndroidManifest.xml
+++ b/petJournal/data/src/main/AndroidManifest.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/data/src/main/java/com/soujunior/data/remote/AuthService.kt b/petJournal/data/src/main/java/com/soujunior/data/remote/AuthService.kt
index bd12f311..f7699fa5 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/remote/AuthService.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/remote/AuthService.kt
@@ -36,4 +36,4 @@ interface AuthService {
@POST("api/waiting-code")
suspend fun waitingCode(@Body waitingCodeBody: AwaitingCodeModel): NetworkResult
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/remote/GuardianService.kt b/petJournal/data/src/main/java/com/soujunior/data/remote/GuardianService.kt
index c3f52282..71cd2e73 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/remote/GuardianService.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/remote/GuardianService.kt
@@ -32,4 +32,4 @@ interface GuardianService {
@Header("Authorization") token: String,
@Body petInformationResponse: PetInformationResponse
): NetworkResult
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/NetworkResultCallAdapter.kt b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/NetworkResultCallAdapter.kt
index ad98869b..3d1af8ee 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/NetworkResultCallAdapter.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/NetworkResultCallAdapter.kt
@@ -15,4 +15,4 @@ class NetworkResultCallAdapter(
override fun adapt(call: Call): Call> {
return NetworkResultCall(call)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCall.kt b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCall.kt
index a7331c64..b9ce0eea 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCall.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCall.kt
@@ -60,4 +60,4 @@ class NetworkResultCall(
override fun cancel() {
proxy.cancel()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCallAdapterFactory.kt b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCallAdapterFactory.kt
index 8ed2c1f4..8a544922 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCallAdapterFactory.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/remote/adapters/internal/NetworkResultCallAdapterFactory.kt
@@ -31,4 +31,4 @@ class NetworkResultCallAdapterFactory private constructor() : CallAdapter.Factor
companion object {
fun create(): NetworkResultCallAdapterFactory = NetworkResultCallAdapterFactory()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/repository/AppInfoDataImpl.kt b/petJournal/data/src/main/java/com/soujunior/data/repository/AppInfoDataImpl.kt
index a809afa7..a7c46b72 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/repository/AppInfoDataImpl.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/repository/AppInfoDataImpl.kt
@@ -11,4 +11,4 @@ class AppInfoDataImpl(private val db: AppInfoDataBaseImpl ) : AppInfoDataBaseRep
override suspend fun setIsPetRegistrationWentLive(visualized: Boolean) {
db.setIsPetRegistrationWentLive(visualized)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/repository/AuthRepositoryImpl.kt b/petJournal/data/src/main/java/com/soujunior/data/repository/AuthRepositoryImpl.kt
index fd4436cf..810772f4 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/repository/AuthRepositoryImpl.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/repository/AuthRepositoryImpl.kt
@@ -100,4 +100,4 @@ class AuthRepositoryImpl(
false
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/util/checker/NetworkChecker.kt b/petJournal/data/src/main/java/com/soujunior/data/util/checker/NetworkChecker.kt
index 9c3762ee..5e6e5cb1 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/util/checker/NetworkChecker.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/util/checker/NetworkChecker.kt
@@ -17,4 +17,4 @@ class NetworkChecker(private val context: Context) {
return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) &&
capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/data/src/main/java/com/soujunior/data/util/manager/JwtManager.kt b/petJournal/data/src/main/java/com/soujunior/data/util/manager/JwtManager.kt
index d9e0645f..7a7ca421 100644
--- a/petJournal/data/src/main/java/com/soujunior/data/util/manager/JwtManager.kt
+++ b/petJournal/data/src/main/java/com/soujunior/data/util/manager/JwtManager.kt
@@ -52,4 +52,4 @@ class JwtManager private constructor(context: Context) {
INSTANCE ?: JwtManager(context).also { INSTANCE = it }
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/database/.gitignore b/petJournal/database/.gitignore
index 42afabfd..796b96d1 100644
--- a/petJournal/database/.gitignore
+++ b/petJournal/database/.gitignore
@@ -1 +1 @@
-/build
\ No newline at end of file
+/build
diff --git a/petJournal/database/build.gradle b/petJournal/database/build.gradle
index 87cc4035..c5f4da07 100644
--- a/petJournal/database/build.gradle
+++ b/petJournal/database/build.gradle
@@ -49,4 +49,3 @@ dependencies {
testImplementation testMockk
testImplementation testJunit
}
-
diff --git a/petJournal/database/proguard-rules.pro b/petJournal/database/proguard-rules.pro
index ff59496d..2f9dc5a4 100644
--- a/petJournal/database/proguard-rules.pro
+++ b/petJournal/database/proguard-rules.pro
@@ -18,4 +18,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
diff --git a/petJournal/database/src/main/AndroidManifest.xml b/petJournal/database/src/main/AndroidManifest.xml
index a5918e68..8bdb7e14 100644
--- a/petJournal/database/src/main/AndroidManifest.xml
+++ b/petJournal/database/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/database/src/main/java/com/petjournal/database/converter/Converter.kt b/petJournal/database/src/main/java/com/petjournal/database/converter/Converter.kt
index 27f75142..39f9503c 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/converter/Converter.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/converter/Converter.kt
@@ -109,4 +109,4 @@ object Converter {
}
return listPetRacesEntity
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/database/src/main/java/com/petjournal/database/database/dao/ApplicationInformationDao.kt b/petJournal/database/src/main/java/com/petjournal/database/database/dao/ApplicationInformationDao.kt
index 0b2381ea..a84be72b 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/database/dao/ApplicationInformationDao.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/database/dao/ApplicationInformationDao.kt
@@ -18,4 +18,3 @@ interface ApplicationInformationDao {
@Query("DELETE FROM information")
suspend fun deleteAllInformation()
}
-
diff --git a/petJournal/database/src/main/java/com/petjournal/database/database/entity/GuardianProfile.kt b/petJournal/database/src/main/java/com/petjournal/database/database/entity/GuardianProfile.kt
index d1bf523f..1f391c8f 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/database/entity/GuardianProfile.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/database/entity/GuardianProfile.kt
@@ -10,4 +10,4 @@ data class GuardianProfile(
val lastName: String? = null,
val email: String? = null,
val phone: String? = null
-)
\ No newline at end of file
+)
diff --git a/petJournal/database/src/main/java/com/petjournal/database/database/entity/PetInformation.kt b/petJournal/database/src/main/java/com/petjournal/database/database/entity/PetInformation.kt
index 2ff35609..b06f2fe8 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/database/entity/PetInformation.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/database/entity/PetInformation.kt
@@ -26,5 +26,3 @@ data class PetInformation(
val petAge: String? = null,
val castration: Boolean? = null
)
-
-
diff --git a/petJournal/database/src/main/java/com/petjournal/database/repository/AppInfoDataBaseImpl.kt b/petJournal/database/src/main/java/com/petjournal/database/repository/AppInfoDataBaseImpl.kt
index 596109c8..86d4679e 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/repository/AppInfoDataBaseImpl.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/repository/AppInfoDataBaseImpl.kt
@@ -11,4 +11,4 @@ class AppInfoDataBaseImpl(private val appInfoDao: ApplicationInformationDao): Ap
override suspend fun setIsPetRegistrationWentLive(visualized: Boolean) {
appInfoDao.setPetRegistrationWentLive(1, visualized)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/database/src/main/java/com/petjournal/database/repository/GuardianLocalDataSourceImpl.kt b/petJournal/database/src/main/java/com/petjournal/database/repository/GuardianLocalDataSourceImpl.kt
index ff1e9489..ce0d8005 100644
--- a/petJournal/database/src/main/java/com/petjournal/database/repository/GuardianLocalDataSourceImpl.kt
+++ b/petJournal/database/src/main/java/com/petjournal/database/repository/GuardianLocalDataSourceImpl.kt
@@ -124,4 +124,4 @@ class GuardianLocalDataSourceImpl(
guardianDao.deleteAllProfiles()
appInfoDao.deleteAllInformation()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/database/src/test/java/com/petjournal/setup/FormMock.kt b/petJournal/database/src/test/java/com/petjournal/setup/FormMock.kt
index c5d38efb..115d6f86 100644
--- a/petJournal/database/src/test/java/com/petjournal/setup/FormMock.kt
+++ b/petJournal/database/src/test/java/com/petjournal/setup/FormMock.kt
@@ -92,4 +92,3 @@ val listPetSizes = listOf(
tag = "Cat"
)
)
-
diff --git a/petJournal/dependencies.gradle b/petJournal/dependencies.gradle
index 71ff4798..63156856 100644
--- a/petJournal/dependencies.gradle
+++ b/petJournal/dependencies.gradle
@@ -35,4 +35,4 @@ ext {
testKotlinxCoroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4"
androidTestJunit = "androidx.test.ext:junit:1.1.5"
androidTestExpresso = "androidx.test.espresso:espresso-core:3.5.1"
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/.gitignore b/petJournal/domain/.gitignore
index 42afabfd..796b96d1 100644
--- a/petJournal/domain/.gitignore
+++ b/petJournal/domain/.gitignore
@@ -1 +1 @@
-/build
\ No newline at end of file
+/build
diff --git a/petJournal/domain/build.gradle.kts b/petJournal/domain/build.gradle.kts
index 268c6740..7fb6e48a 100644
--- a/petJournal/domain/build.gradle.kts
+++ b/petJournal/domain/build.gradle.kts
@@ -33,6 +33,7 @@ android {
}
dependencies {
+ implementation("androidx.annotation:annotation-jvm:1.9.1")
val dependencies = rootProject.ext["dependencies"] as Map // Obtendo as dependências do arquivo ext
implementation(dependencies["coroutineCore"]!!) // Implementação da dependência coroutineCore
implementation(dependencies["coroutineAndroid"]!!) // Implementação da dependência coroutineAndroid
@@ -43,4 +44,4 @@ dependencies {
testImplementation(rootProject.ext["testMockk"] as String) // Implementação da dependência de teste MockK
testImplementation(rootProject.ext["testAssertk"] as String) // Implementação da dependência de teste AssertK
testImplementation(rootProject.ext["testKotlinxCoroutines"] as String) // Implementação da dependência de teste para coroutines
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/proguard-rules.pro b/petJournal/domain/proguard-rules.pro
index ff59496d..2f9dc5a4 100644
--- a/petJournal/domain/proguard-rules.pro
+++ b/petJournal/domain/proguard-rules.pro
@@ -18,4 +18,4 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
+#-renamesourcefileattribute SourceFile
diff --git a/petJournal/domain/src/main/AndroidManifest.xml b/petJournal/domain/src/main/AndroidManifest.xml
index a5918e68..8bdb7e14 100644
--- a/petJournal/domain/src/main/AndroidManifest.xml
+++ b/petJournal/domain/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/PetInformationModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/PetInformationModel.kt
index d17fc91f..d0cf25c1 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/PetInformationModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/PetInformationModel.kt
@@ -12,4 +12,4 @@ data class PetInformationModel(
val petAge: String? = null,
val guardianId: Int? = null,
val castrated: Boolean? = null
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/mapper/User.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/mapper/User.kt
index e7bb6f60..8b2f66b1 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/mapper/User.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/mapper/User.kt
@@ -6,4 +6,4 @@ data class User (
val lastName: String,
val email: String,
val phone: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/AwaitingCodeModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/AwaitingCodeModel.kt
index ed4648c5..2d1c351f 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/AwaitingCodeModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/AwaitingCodeModel.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.model.request
data class AwaitingCodeModel(
val email: String,
val verificationToken: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ChangePasswordModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ChangePasswordModel.kt
index 9144048b..38facf78 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ChangePasswordModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ChangePasswordModel.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.model.request
data class ChangePasswordModel(
val password: String,
val passwordConfirmation: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ForgotPasswordModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ForgotPasswordModel.kt
index 3ee118b5..0350c535 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ForgotPasswordModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/ForgotPasswordModel.kt
@@ -2,4 +2,4 @@ package com.soujunior.domain.model.request
data class ForgotPasswordModel(
val email: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/LoginModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/LoginModel.kt
index 0f5ade41..3c9914ef 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/LoginModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/LoginModel.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.model.request
data class LoginModel(
val email: String,
val password: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetRaceItemModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetRaceItemModel.kt
index 0866c0fc..a9469ecb 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetRaceItemModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetRaceItemModel.kt
@@ -3,4 +3,4 @@ data class PetRaceItemModel(
val id: String,
val name: String,
val specieId: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetSizeItemModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetSizeItemModel.kt
index a31bcc17..479e979c 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetSizeItemModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/PetSizeItemModel.kt
@@ -4,4 +4,4 @@ data class PetSizeItemModel(
val id: String,
val name: String,
val specieId: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/SignUpModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/SignUpModel.kt
index 8baa6a5f..46395666 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/SignUpModel.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/SignUpModel.kt
@@ -8,4 +8,4 @@ data class SignUpModel(
val passwordConfirmation: String,
val phone: String,
val isPrivacyPolicyAccepted: Boolean,
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/DailyTaskModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/DailyTaskModel.kt
new file mode 100644
index 00000000..0916e7b9
--- /dev/null
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/DailyTaskModel.kt
@@ -0,0 +1,11 @@
+package com.soujunior.domain.model.request.taskModels
+
+data class DailyTaskModel(
+ val title: String,
+ val description: String,
+ val note : String = "",
+ val startAt : String,
+ val endAt : String,
+ val tagId : String,
+ val pets: List
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/MonthlyTaskModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/MonthlyTaskModel.kt
new file mode 100644
index 00000000..69de1f93
--- /dev/null
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/MonthlyTaskModel.kt
@@ -0,0 +1,12 @@
+package com.soujunior.domain.model.request.taskModels
+
+data class MonthlyTaskModel (
+ val title : String,
+ val description: String,
+ val note : String = "",
+ val tag_id : String,
+ val time : String,
+ val end_at: String,
+ val days_of_month : List,
+ val pets: List
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/PontualTaskModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/PontualTaskModel.kt
new file mode 100644
index 00000000..e15e599f
--- /dev/null
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/PontualTaskModel.kt
@@ -0,0 +1,10 @@
+package com.soujunior.domain.model.request.taskModels
+
+data class PontualTaskModel(
+ val title: String,
+ val description: String,
+ val note : String = "",
+ val scheduledAt : String,
+ val tag_id : String,
+ val pets: List
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/WeeklyTaskModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/WeeklyTaskModel.kt
new file mode 100644
index 00000000..b9d7be46
--- /dev/null
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/request/taskModels/WeeklyTaskModel.kt
@@ -0,0 +1,12 @@
+package com.soujunior.domain.model.request.taskModels
+
+data class WeeklyTaskModel(
+ val title: String,
+ val description: String,
+ val note : String = "",
+ val start_at : String,
+ val end_at : String,
+ val days_of_week : List,
+ val tag_id : String,
+ val pets: List
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/AccessTokenResponse.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/AccessTokenResponse.kt
index ecb4b51c..5febbed3 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/AccessTokenResponse.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/AccessTokenResponse.kt
@@ -1,3 +1,3 @@
package com.soujunior.domain.model.response
-data class AccessTokenResponse(val accessToken: String)
\ No newline at end of file
+data class AccessTokenResponse(val accessToken: String)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/GuardianNameResponse.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/GuardianNameResponse.kt
index df3316a6..323d5816 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/GuardianNameResponse.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/GuardianNameResponse.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.model.response
data class GuardianNameResponse(
val firstName: String,
val lastName: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/MessageResponse.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/MessageResponse.kt
index 2eeb8fc4..21c8a999 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/MessageResponse.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/MessageResponse.kt
@@ -1,3 +1,3 @@
package com.soujunior.domain.model.response
-data class MessageResponse(val message: String)
\ No newline at end of file
+data class MessageResponse(val message: String)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/PetResponse.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/PetResponse.kt
index 20e3d28c..7d83d947 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/PetResponse.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/PetResponse.kt
@@ -45,4 +45,4 @@ val petList = listOf(
petName = "Nutella",
petImage = "https://cdn.pixabay.com/photo/2023/08/18/15/02/dog-8198719_1280.jpg"
),
- )
\ No newline at end of file
+ )
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/UserInfoResponse.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/UserInfoResponse.kt
index bc893cff..ef0fcb0c 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/model/response/UserInfoResponse.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/response/UserInfoResponse.kt
@@ -6,4 +6,4 @@ data class UserInfoResponse(
val lastName: String,
val email: String,
val phone: String
-)
\ No newline at end of file
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/model/taskModel/TaskModel.kt b/petJournal/domain/src/main/java/com/soujunior/domain/model/taskModel/TaskModel.kt
new file mode 100644
index 00000000..ba4872a9
--- /dev/null
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/model/taskModel/TaskModel.kt
@@ -0,0 +1,39 @@
+package com.soujunior.domain.model.taskModel
+
+import androidx.annotation.DrawableRes
+import com.soujunior.domain.model.PetInformationModel
+
+
+// TODO: Não editar isso enquanto o backend não fornecer um modelo para as tasks.
+//data class TaskModel(
+// val id: String,
+// val titulo: String,
+// val descricaoResumida: String,
+// val descricaoCompleta: String,
+// val dataHora: String,
+// val tipo: TaskType,
+// val pets: List = emptyList()
+//)
+
+data class TaskTagModel(
+ val id: String,
+ val name: String,
+ val color: String,
+ @DrawableRes val icone: Int? = null,
+ @DrawableRes val iconeVector: Int? = null
+)
+
+
+// TODO: Criar objetos para os requests pontuais/diarios/semanais/mensais
+data class TaskModel(
+ val id: String,
+ val description: String,
+ val note : String = "",
+ val tagId : String,
+ val scheduledAt : String = "",
+ val startAt : String = "",
+ val endAt: String = "",
+ val daysOfWeek : List = emptyList(),
+ val daysOfMonth : List = emptyList(),
+ val pets: List
+)
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/network/NetworkResult.kt b/petJournal/domain/src/main/java/com/soujunior/domain/network/NetworkResult.kt
index 419b06e7..8f5c2ef1 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/network/NetworkResult.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/network/NetworkResult.kt
@@ -39,4 +39,4 @@ suspend fun NetworkResult.onException(
if (this is NetworkResult.Exception) {
executable(e)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBase.kt
index f9938135..857c49c7 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBase.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.repository
interface AppInfoDataBase {
suspend fun getIsPetRegistrationWentLive(): Boolean
suspend fun setIsPetRegistrationWentLive(visualized: Boolean)
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBaseRepository.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBaseRepository.kt
index 44af0bd7..6595f3dd 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBaseRepository.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AppInfoDataBaseRepository.kt
@@ -3,4 +3,4 @@ package com.soujunior.domain.repository
interface AppInfoDataBaseRepository {
suspend fun getIsPetRegistrationWentLive(): Boolean
suspend fun setIsPetRegistrationWentLive(visualized: Boolean)
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AuthRepository.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AuthRepository.kt
index 32b43040..7fde6c2a 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/AuthRepository.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/AuthRepository.kt
@@ -29,4 +29,4 @@ interface AuthRepository {
suspend fun getSavedPassword(): String?
suspend fun logout()
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianLocalDataSource.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianLocalDataSource.kt
index 3051a191..33822fee 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianLocalDataSource.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianLocalDataSource.kt
@@ -18,4 +18,4 @@ interface GuardianLocalDataSource {
suspend fun getListPetRaces(tag: String): DataResult>?
suspend fun saveListPetRaces(tag: String, listPetRace: List): DataResult
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianRepository.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianRepository.kt
index 6fc9bf08..0728c886 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianRepository.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/GuardianRepository.kt
@@ -15,4 +15,4 @@ interface GuardianRepository {
suspend fun getListPetSizes(petSpecie: String): NetworkResult>
suspend fun getListPetRaces(petSpecie: String): NetworkResult>
suspend fun createPetInformationApi(petInformationModel: PetInformationModel): NetworkResult
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/repository/ValidationRepository.kt b/petJournal/domain/src/main/java/com/soujunior/domain/repository/ValidationRepository.kt
index 515ffc4e..f3042acc 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/repository/ValidationRepository.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/repository/ValidationRepository.kt
@@ -22,4 +22,4 @@ interface ValidationRepository {
fun validateDropdown(value : String, list: List) : ValidationResult
fun validateDropDownPetRace(value : String, list: List) : ValidationResult
fun validatePetCastration(value: Boolean?): ValidationResult
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCase.kt
index 912a4cbf..d17e2e76 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCase.kt
@@ -34,4 +34,4 @@ class AwaitingCodeUseCase(
is NetworkResult.Exception -> DataResult.Failure(response.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ChangePasswordUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ChangePasswordUseCase.kt
index 92d72a46..6c3f5fca 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ChangePasswordUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ChangePasswordUseCase.kt
@@ -23,4 +23,4 @@ class ChangePasswordUseCase(
is NetworkResult.Exception -> DataResult.Failure(this.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/CheckLoginStatusUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/CheckLoginStatusUseCase.kt
index 583fce22..ebf3b662 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/CheckLoginStatusUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/CheckLoginStatusUseCase.kt
@@ -11,4 +11,4 @@ class CheckLoginStatusUseCase( private val repository: AuthRepository ) : BaseUs
else -> DataResult.Success(true)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ForgotPasswordUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ForgotPasswordUseCase.kt
index 29fcf0b2..f6032128 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ForgotPasswordUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/ForgotPasswordUseCase.kt
@@ -31,4 +31,4 @@ class ForgotPasswordUseCase(
is NetworkResult.Exception -> DataResult.Failure(this.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/GetSavedPasswordUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/GetSavedPasswordUseCase.kt
index a8ddfc87..d9cacff6 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/GetSavedPasswordUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/GetSavedPasswordUseCase.kt
@@ -8,4 +8,4 @@ class GetSavedPasswordUseCase(
suspend operator fun invoke(): String? {
return authRepository.getSavedPassword()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/LoginUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/LoginUseCase.kt
index 1823e132..371d150c 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/LoginUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/LoginUseCase.kt
@@ -23,4 +23,4 @@ class LoginUseCase (private val repository : AuthRepository): BaseUseCase DataResult.Failure(response.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/SignUpUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/SignUpUseCase.kt
index 70a8d0e9..ccf5a82d 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/SignUpUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/auth/SignUpUseCase.kt
@@ -41,4 +41,4 @@ class SignUpUseCase(
email = this.email,
phone = this.phone
)
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/BaseUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/BaseUseCase.kt
index 8075470f..a71e8625 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/BaseUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/BaseUseCase.kt
@@ -23,4 +23,4 @@ abstract class BaseUseCase {
}
fun cancelWork() = scope.coroutineContext.cancelChildren()
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/DataResult.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/DataResult.kt
index 3320dfcb..102098be 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/DataResult.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/base/DataResult.kt
@@ -31,4 +31,3 @@ suspend fun DataResult.onFailure(
executable(throwable)
}
}
-
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetGuardianNameUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetGuardianNameUseCase.kt
index 0b630fb7..7af7c371 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetGuardianNameUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetGuardianNameUseCase.kt
@@ -17,4 +17,4 @@ class GetGuardianNameUseCase(private val repository: GuardianRepository) :
is NetworkResult.Exception -> DataResult.Failure(response.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetPetRegistrationWentLive.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetPetRegistrationWentLive.kt
index 364e0173..465719b8 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetPetRegistrationWentLive.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/GetPetRegistrationWentLive.kt
@@ -17,4 +17,4 @@ class GetPetRegistrationWentLive(private val db: AppInfoDataBase) : BaseUseCase<
DataResult.Failure(e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/SetPetRegistrationWentLive.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/SetPetRegistrationWentLive.kt
index 28f0d760..065db260 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/SetPetRegistrationWentLive.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/guardian/SetPetRegistrationWentLive.kt
@@ -24,4 +24,4 @@ class SetPetRegistrationWentLive(private val db: AppInfoDataBase) : BaseUseCase<
DataResult.Failure(e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCase.kt
index 9d8b9689..b2716316 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCase.kt
@@ -14,4 +14,4 @@ class GetListPetRacesUseCase(private val repository: GuardianRepository): BaseUs
is NetworkResult.Exception -> DataResult.Failure(response.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCase.kt b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCase.kt
index 540812dc..588f6df3 100644
--- a/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCase.kt
+++ b/petJournal/domain/src/main/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCase.kt
@@ -14,4 +14,4 @@ class GetListPetSizesUseCase(private val repository: GuardianRepository): BaseUs
is NetworkResult.Exception -> DataResult.Failure(response.e)
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/main/res/values/strings.xml b/petJournal/domain/src/main/res/values/strings.xml
index aa627417..0e8e2044 100644
--- a/petJournal/domain/src/main/res/values/strings.xml
+++ b/petJournal/domain/src/main/res/values/strings.xml
@@ -7,4 +7,4 @@
Error in Save Token!
Codigo expirado ou incorreto!
Erro interno do servidor. Ocorreu um erro inesperado. Tente novamente em alguns instantes.
-
\ No newline at end of file
+
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/setup/MainCoroutineRule.kt b/petJournal/domain/src/test/java/com/soujunior/domain/setup/MainCoroutineRule.kt
index 766ecf2a..46d71595 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/setup/MainCoroutineRule.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/setup/MainCoroutineRule.kt
@@ -24,4 +24,4 @@ class MainCoroutineRule(
cleanupTestCoroutines()
Dispatchers.resetMain()
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCaseTest.kt
index 21b9d0d3..28048b49 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/auth/AwaitingCodeUseCaseTest.kt
@@ -67,4 +67,4 @@ class AwaitingCodeUseCaseTest {
else -> fail("Expected NetworkResult.Success but got $result")
}
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/CreatePetInformationApiUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/CreatePetInformationApiUseCaseTest.kt
index 0dd1e6cd..ee8137de 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/CreatePetInformationApiUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/CreatePetInformationApiUseCaseTest.kt
@@ -41,4 +41,4 @@ class CreatePetInformationApiUseCaseTest {
assertk.assertThat(result.success.data).isEqualTo(Unit)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCaseTest.kt
index 866567d2..accbef0d 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetRacesUseCaseTest.kt
@@ -44,4 +44,4 @@ class GetListPetRacesUseCaseTest{
assertk.assertThat(result.success.data).isEqualTo(listPetRaces)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCaseTest.kt
index a3537337..bbb93e6f 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetListPetSizesUseCaseTest.kt
@@ -44,4 +44,4 @@ class GetListPetSizesUseCaseTest{
assertk.assertThat(result.success.data).isEqualTo(listPetSizes)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetPetInformationUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetPetInformationUseCaseTest.kt
index 5014affa..767edaef 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetPetInformationUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/GetPetInformationUseCaseTest.kt
@@ -42,4 +42,4 @@ class GetPetInformationUseCaseTest{
assertk.assertThat(result.success.data).isEqualTo(petInformation)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/SavePetInformationUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/SavePetInformationUseCaseTest.kt
index 1a505f87..1cbec6f5 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/SavePetInformationUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/SavePetInformationUseCaseTest.kt
@@ -41,4 +41,4 @@ class SavePetInformationUseCaseTest {
assertk.assertThat(result.success.data).isEqualTo(1)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/UpdatePetInformationUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/UpdatePetInformationUseCaseTest.kt
index b47edd19..aa97e9bb 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/UpdatePetInformationUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/use_case/pet/UpdatePetInformationUseCaseTest.kt
@@ -41,4 +41,4 @@ class UpdatePetInformationUseCaseTest {
assertk.assertThat(result.isSuccess).isEqualTo(true)
}
-}
\ No newline at end of file
+}
diff --git a/petJournal/domain/src/test/java/com/soujunior/domain/usecase/auth/ChangePasswordUseCaseTest.kt b/petJournal/domain/src/test/java/com/soujunior/domain/usecase/auth/ChangePasswordUseCaseTest.kt
index 98047a42..b952d07e 100644
--- a/petJournal/domain/src/test/java/com/soujunior/domain/usecase/auth/ChangePasswordUseCaseTest.kt
+++ b/petJournal/domain/src/test/java/com/soujunior/domain/usecase/auth/ChangePasswordUseCaseTest.kt
@@ -65,4 +65,4 @@ package com.soujunior.domain.usecase.auth
//
// assertThat(result.isFailure).isEqualTo(true)
// }
-//}
\ No newline at end of file
+//}
diff --git a/petJournal/gradle.properties b/petJournal/gradle.properties
index a2e90d87..0f025bd7 100644
--- a/petJournal/gradle.properties
+++ b/petJournal/gradle.properties
@@ -22,4 +22,4 @@ kotlin.code.style=official
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.defaults.buildfeatures.buildconfig=true
-android.nonFinalResIds=false
\ No newline at end of file
+android.nonFinalResIds=false
diff --git a/petJournal/gradle/wrapper/gradle-wrapper.properties b/petJournal/gradle/wrapper/gradle-wrapper.properties
index 10ef3761..06c16fa6 100644
--- a/petJournal/gradle/wrapper/gradle-wrapper.properties
+++ b/petJournal/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Fri Jun 07 11:08:41 BRT 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists