Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions androidApp/src/main/java/fr/paug/androidmakers/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import androidx.credentials.exceptions.GetCredentialException
import androidx.lifecycle.lifecycleScope
import com.androidmakers.ui.MainLayout
import com.androidmakers.ui.common.SigninCallbacks
import com.androidmakers.ui.common.navigation.UserData
import com.androidmakers.ui.theme.AndroidMakersTheme
import com.google.android.libraries.identity.googleid.GetSignInWithGoogleOption
import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential
Expand All @@ -27,10 +26,12 @@ import com.google.firebase.messaging.FirebaseMessaging
import dev.gitlive.firebase.Firebase
import dev.gitlive.firebase.auth.GoogleAuthProvider
import dev.gitlive.firebase.auth.auth
import fr.androidmakers.domain.interactor.MergeBookmarksUseCase
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
import kotlinx.coroutines.tasks.await
import org.koin.android.ext.android.inject
import org.koin.compose.KoinContext

class MainActivity : ComponentActivity() {
Expand All @@ -39,6 +40,8 @@ class MainActivity : ComponentActivity() {
CredentialManager.create(this)
}

private val mergeBookmarksUseCase: MergeBookmarksUseCase by inject(mode = LazyThreadSafetyMode.NONE)

override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -129,10 +132,8 @@ class MainActivity : ComponentActivity() {
val firebaseCredential = GoogleAuthProvider.credential(googleIdTokenCredential.idToken, null)
val result = Firebase.auth.signInWithCredential(firebaseCredential)
// Sign in success, update UI with the signed-in user's information
with(UserData()) {
result.user?.uid?.let {
mergeBookmarksUseCase(it)
}
result.user?.uid?.let {
mergeBookmarksUseCase(it)
}

Log.d(TAG, "user id=${result.user?.uid}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@ package fr.androidmakers.di
import fr.androidmakers.domain.interactor.OpenMapUseCase
import fr.androidmakers.domain.interactor.ShareSessionUseCase
import fr.androidmakers.domain.utils.UrlOpener
import org.koin.core.module.dsl.factoryOf
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module

actual val domainPlatformModule = module {
single {
UrlOpener()
}
singleOf(::UrlOpener)

factory { OpenMapUseCase(get()) }

factory { ShareSessionUseCase() }
factoryOf(::OpenMapUseCase)
factoryOf(::ShareSessionUseCase)
}
35 changes: 18 additions & 17 deletions shared/di/src/commonMain/kotlin/fr/androidmakers/di/DomainModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,36 @@ import fr.androidmakers.domain.interactor.GetConferenceVenueUseCase
import fr.androidmakers.domain.interactor.GetFavoriteSessionsUseCase
import fr.androidmakers.domain.interactor.GetPartnersUseCase
import fr.androidmakers.domain.interactor.MergeBookmarksUseCase
import fr.androidmakers.domain.interactor.OpenBlueskyAccountUseCase
import fr.androidmakers.domain.interactor.OpenCocUseCase
import fr.androidmakers.domain.interactor.OpenFaqUseCase
import fr.androidmakers.domain.interactor.OpenLinkUseCase
import fr.androidmakers.domain.interactor.OpenPartnerLinkUseCase
import fr.androidmakers.domain.interactor.OpenXAccountUseCase
import fr.androidmakers.domain.interactor.OpenXHashtagUseCase
import fr.androidmakers.domain.interactor.OpenBlueskyAccountUseCase
import fr.androidmakers.domain.interactor.OpenYoutubeUseCase
import fr.androidmakers.domain.interactor.SetSessionBookmarkUseCase
import org.koin.core.module.Module
import org.koin.core.module.dsl.factoryOf
import org.koin.dsl.module

expect val domainPlatformModule: Module

val domainModule = module {
factory { GetAgendaUseCase(get(), get(), get()) }
factory { GetConferenceVenueUseCase(get()) }
factory { GetAfterpartyVenueUseCase(get()) }
factory { MergeBookmarksUseCase(get(), get()) }
factory { OpenFaqUseCase(get()) }
factory { OpenCocUseCase(get()) }
factory { OpenYoutubeUseCase(get()) }
factory { OpenXHashtagUseCase(get()) }
factory { OpenBlueskyAccountUseCase(get()) }
factory { OpenXAccountUseCase(get()) }
factory { SetSessionBookmarkUseCase(get(), get(), get(), get()) }
factory { GetPartnersUseCase(get()) }
factory { GetFavoriteSessionsUseCase(get()) }
factory { OpenPartnerLinkUseCase(get()) }
factory { OpenLinkUseCase(get()) }
factory { ApplyForAppClinicUseCase(get()) }
factoryOf(::GetAgendaUseCase)
factoryOf(::GetConferenceVenueUseCase)
factoryOf(::GetAfterpartyVenueUseCase)
factoryOf(::MergeBookmarksUseCase)
factoryOf(::OpenFaqUseCase)
factoryOf(::OpenCocUseCase)
factoryOf(::OpenYoutubeUseCase)
factoryOf(::OpenXHashtagUseCase)
factoryOf(::OpenBlueskyAccountUseCase)
factoryOf(::OpenXAccountUseCase)
factoryOf(::SetSessionBookmarkUseCase)
factoryOf(::GetPartnersUseCase)
factoryOf(::GetFavoriteSessionsUseCase)
factoryOf(::OpenPartnerLinkUseCase)
factoryOf(::OpenLinkUseCase)
factoryOf(::ApplyForAppClinicUseCase)
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package fr.androidmakers.di
import fr.androidmakers.domain.interactor.OpenMapUseCase
import fr.androidmakers.domain.interactor.ShareSessionUseCase
import fr.androidmakers.domain.utils.UrlOpener
import org.koin.core.module.dsl.factoryOf
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module

actual val domainPlatformModule = module {
single {
UrlOpener()
}
singleOf(::UrlOpener)

factory { OpenMapUseCase() }
factory { ShareSessionUseCase() }
factoryOf(::OpenMapUseCase)
factoryOf(::ShareSessionUseCase)
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@ import com.androidmakers.ui.speakers.SpeakerDetailsViewModel
import com.androidmakers.ui.speakers.SpeakerListViewModel
import com.androidmakers.ui.sponsors.SponsorsViewModel
import com.androidmakers.ui.venue.VenueViewModel
import org.koin.core.module.dsl.viewModel
import org.koin.core.module.dsl.viewModelOf
import org.koin.dsl.module

val viewModelModule = module {
factory { SpeakerListViewModel(get()) }
factory { SponsorsViewModel(get(), get()) }
factory { VenueViewModel(get(), get(), get()) }
factory { (speakerId: String) -> SpeakerDetailsViewModel(speakerId, get(), get()) }
factory { AgendaViewModel(get(), get(), get(), get()) }
factory { (sessionId: String) -> SessionDetailViewModel(sessionId, get(), get(), get(), get(), get(), get(), get(), get()) }
factory { AboutViewModel(get(), get(), get(), get(), get(), get()) }
viewModelOf(::SpeakerListViewModel)
viewModelOf(::SponsorsViewModel)
viewModelOf(::VenueViewModel)
viewModel { (speakerId: String) -> SpeakerDetailsViewModel(speakerId, get(), get()) }
viewModelOf(::AgendaViewModel)
viewModel { (sessionId: String) -> SessionDetailViewModel(sessionId, get(), get(), get(), get(), get(), get(), get(), get()) }
viewModelOf(::AboutViewModel)
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberDrawerState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -56,6 +55,7 @@ import com.androidmakers.ui.common.SigninCallbacks
import com.androidmakers.ui.speakers.SpeakerScreen
import com.androidmakers.ui.sponsors.SponsorsScreen
import com.androidmakers.ui.venue.VenuePager
import fr.androidmakers.domain.repo.UserRepository
import fr.paug.androidmakers.ui.Res
import fr.paug.androidmakers.ui.about
import fr.paug.androidmakers.ui.agenda
Expand All @@ -68,6 +68,7 @@ import fr.paug.androidmakers.ui.venue
import kotlinx.coroutines.launch
import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.resources.stringResource
import org.koin.compose.koinInject
import org.koin.compose.viewmodel.koinViewModel

/**
Expand All @@ -83,11 +84,11 @@ fun AVALayout(
onSessionClick: (sessionId: String) -> Unit,
navigateToSpeakerDetails: (String) -> Unit,
signinCallbacks: SigninCallbacks,
userRepository: UserRepository = koinInject(),
) {
val avaNavController = rememberNavController()
val navBackStackEntry by avaNavController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
val userRepository = remember { UserData().userRepository }

val agendaFilterDrawerState = rememberDrawerState(DrawerValue.Closed)
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.androidmakers.ui
import androidx.compose.ui.window.ComposeUIViewController
import com.androidmakers.ui.common.SigninCallbacks
import com.androidmakers.ui.theme.AndroidMakersTheme
import org.koin.compose.KoinContext
import platform.Foundation.NSBundle
import platform.UIKit.UIViewController

Expand All @@ -12,14 +13,16 @@ fun MainLayoutViewController(): UIViewController =
val versionName = NSBundle.mainBundle.objectForInfoDictionaryKey("CFBundleShortVersionString")
val versionCode = NSBundle.mainBundle.objectForInfoDictionaryKey("CFBundleVersion")

AndroidMakersTheme {
MainLayout(
versionName = versionName.toString(),
versionCode = versionCode.toString(),
signinCallbacks = SigninCallbacks(
signin = {},
signout = {}
KoinContext {
AndroidMakersTheme {
MainLayout(
versionName = versionName.toString(),
versionCode = versionCode.toString(),
signinCallbacks = SigninCallbacks(
signin = {},
signout = {}
)
)
)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package fr.paug.androidmakers.wear.di

import fr.paug.androidmakers.wear.data.LocalPreferencesRepository
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module

val dataModule = module {
single<LocalPreferencesRepository> { LocalPreferencesRepository(get()) }
singleOf(::LocalPreferencesRepository)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import com.google.android.horologist.auth.ui.googlesignin.signin.GoogleSignInVie
import fr.paug.androidmakers.wear.ui.main.MainViewModel
import fr.paug.androidmakers.wear.ui.session.details.SessionDetailViewModel
import fr.paug.androidmakers.wear.ui.settings.SettingsViewModel
import org.koin.core.module.dsl.viewModel
import org.koin.core.module.dsl.viewModelOf
import org.koin.dsl.module

val viewModelModule = module {
viewModel { MainViewModel(get(), get(), get(), get(), get(), get(), get()) }
viewModel { SettingsViewModel(get()) }
viewModel { SessionDetailViewModel(get(), get(), get(), get(), get(), get()) }
viewModel { GoogleSignInViewModel(get(), get()) }
viewModelOf(::MainViewModel)
viewModelOf(::SettingsViewModel)
viewModelOf(::SessionDetailViewModel)
viewModelOf(::GoogleSignInViewModel)
}