From 2c75e560c6abc2fe413265988d01e1836e9532d5 Mon Sep 17 00:00:00 2001 From: charlie mangano Date: Sat, 9 Nov 2024 10:59:58 +0100 Subject: [PATCH] refactor: move Supabase client, VM and M into `PeriodPalsApp` --- .../com/android/periodpals/MainActivity.kt | 39 +++++++++---------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/android/periodpals/MainActivity.kt b/app/src/main/java/com/android/periodpals/MainActivity.kt index 87115c151..b0034e77b 100644 --- a/app/src/main/java/com/android/periodpals/MainActivity.kt +++ b/app/src/main/java/com/android/periodpals/MainActivity.kt @@ -40,21 +40,6 @@ class MainActivity : ComponentActivity() { private val locationService = GPSServiceImpl(this) - private val supabaseClient = - createSupabaseClient( - supabaseUrl = BuildConfig.SUPABASE_URL, - supabaseKey = BuildConfig.SUPABASE_KEY, - ) { - install(Auth) - install(Postgrest) - } - - private val authModel = AuthenticationModelSupabase(supabaseClient) - private val authenticationViewModel = AuthenticationViewModel(authModel) - - private val userModel = UserRepositorySupabase(supabaseClient) - private val userViewModel = UserViewModel(userModel) - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -65,18 +50,30 @@ class MainActivity : ComponentActivity() { PeriodPalsAppTheme { // A surface container using the 'background' color from the theme Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { - PeriodPalsApp(locationService, authenticationViewModel, userViewModel) + PeriodPalsApp(locationService) } } } } @Composable - fun PeriodPalsApp( - locationService: GPSServiceImpl, - authenticationViewModel: AuthenticationViewModel, - userViewModel: UserViewModel, - ) { + fun PeriodPalsApp(locationService: GPSServiceImpl) { + + val supabaseClient = + createSupabaseClient( + supabaseUrl = BuildConfig.SUPABASE_URL, + supabaseKey = BuildConfig.SUPABASE_KEY, + ) { + install(Auth) + install(Postgrest) + } + + val authModel = AuthenticationModelSupabase(supabaseClient) + val authenticationViewModel = AuthenticationViewModel(authModel) + + val userModel = UserRepositorySupabase(supabaseClient) + val userViewModel = UserViewModel(userModel) + val navController = rememberNavController() val navigationActions = NavigationActions(navController)