Skip to content

Instantly share code, notes, and snippets.

View gabrielbmoro's full-sized avatar
👋
Hii

Gabriel Bronzatti Moro gabrielbmoro

👋
Hii
View GitHub Profile
@gabrielbmoro
gabrielbmoro / clickEvent.kt
Created January 21, 2022 13:53
Calling Navigation Controller - Compose Navigation
clickEvent = { quiz ->
val route = ScreenRoutes.quizRoute(quiz)
navController.navigate(route)
}
@gabrielbmoro
gabrielbmoro / NavQuizType.kt
Last active January 22, 2022 22:40
NavQuizType - Argument - Navigation Compose
class NavQuizType: NavType<Quiz>(false) {
override fun get(bundle: Bundle, key: String): Quiz {
return bundle.getParcelable(key)!!
}
override fun parseValue(value: String): Quiz {
return Gson().fromJson(value, Quiz::class.java)
}
override fun put(bundle: Bundle, key: String, value: Quiz) {
@gabrielbmoro
gabrielbmoro / ScreenRoutes.kt
Last active January 22, 2022 22:42
Exemple - Route sending Quiz object - Navigation Compose
fun quizRoute(quiz: Quiz): String{
val json = Uri.encode(Gson().toJson(quiz))
return "$QUIZ_ROUTE/$json"
}
@gabrielbmoro
gabrielbmoro / ScreenRoutes.kt
Created January 21, 2022 13:43
Example of Screen Routes - Navigation in Compose
object ScreenRoutes {
const val ON_BOARDING_ROUTE = "Simplemath_Onboarding"
const val ON_BOARDING_WELCOME_NAVO_MESSAGE_ROUTE = "Simplemath_Onboarding_Welcome_Navo_Message"
const val ON_BOARDING_USER_NAME_STEP_ROUTE = "Simplemath_Onboarding_UserNameStep"
const val ON_BOARDING_USER_AGE_STEP_ROUTE = "Simplemath_Onboarding_UserAgeStep"
const val ON_BOARDING_USER_EMAIL_STEP_ROUTE = "Simplemath_Onboarding_UserEmailStep"
const val ON_BOARDING_WELCOME_USER_STEP_ROUTE = "Simplemath_Onboarding_WelcomeUserStep"
const val DASHBOARD_ROUTE = "Simplemath_Dashboard"
@gabrielbmoro
gabrielbmoro / MainNavGraph.kt
Last active January 21, 2022 13:39
NavGraph example - Nested graphs
@Composable
fun MainNavGraph(navController: NavHostController, firstDestination: String) {
NavHost(
navController = navController,
startDestination = firstDestination
) {
navigation(
route = ScreenRoutes.ON_BOARDING_ROUTE,
startDestination = ScreenRoutes.ON_BOARDING_WELCOME_NAVO_MESSAGE_ROUTE
@gabrielbmoro
gabrielbmoro / Truth.kt
Last active January 5, 2022 04:12
Truth Examples
// string
Truth.assertThat(result).isEqualTo("my string")
// list
Truth.assertThat(result).isEmpty()
// custom object
Truth.assertThat(uiBase).isEqualTo(
UIBaseState.Error("Invalid e-mail")
)
@gabrielbmoro
gabrielbmoro / UserEmailStepViewModelTest.kt
Created January 5, 2022 04:00
Triple AAA (Arrange-Act-Assert)
@Test
fun `user email - already exists a user email`() {
// arrange
every { localRepository.userEmail() }.returns("[email protected]")
val viewModel = UserEmailStepViewModel(localRepository)
// act
val result = viewModel.userEmail
// assert
@gabrielbmoro
gabrielbmoro / UserNameStepViewModelTest.kt
Created January 5, 2022 03:34
Example 1 - Unit tests article
private val localRepository = mockk<LocalRepository>()
@Test
fun `user name - already exists a user name`() {
every { localRepository.userName() }.returns("Moro")
val viewModel = UserNameStepViewModel(localRepository)
val result = viewModel.userName
Truth.assertThat(result).isEqualTo("Moro")
private ResultProfileBinding binding;
@Override
public View onCreateView (LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
binding = ResultProfileBinding.inflate(inflater, container, false);
View view = binding.getRoot();
return view;
}
@gabrielbmoro
gabrielbmoro / show_message.kt
Last active November 25, 2021 00:29
Example - Not annotated argument
fun showMessage(context: Context, val idRes: Int) {
Toast.makeText(context, idRes, Toast.SHORT_LENGHT).show()
}