build: setup compose multiplatform

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
Aditya Wasan 2021-03-14 21:24:46 +05:30
parent c5fafba7b5
commit 9517531388
No known key found for this signature in database
GPG key ID: 6D6DF3BF15DE79B5
12 changed files with 96 additions and 11 deletions

View file

@ -7,13 +7,13 @@ import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent
import dagger.hilt.android.qualifiers.ActivityContext
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncher
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncherImpl
import dev.msfjarvis.lobsters.ui.urllauncher.AndroidUrlLauncherImpl
@Module
@InstallIn(ActivityComponent::class)
object UrlLauncherModule {
@Provides
fun provideUrlLauncher(@ActivityContext context: Context): UrlLauncher {
return UrlLauncherImpl(context)
return AndroidUrlLauncherImpl(context)
}
}

View file

@ -1,5 +0,0 @@
package dev.msfjarvis.lobsters.ui.urllauncher
import androidx.compose.runtime.staticCompositionLocalOf
val LocalUrlLauncher = staticCompositionLocalOf<UrlLauncher> { error("Needs to be provided") }

View file

@ -1,5 +0,0 @@
package dev.msfjarvis.lobsters.ui.urllauncher
fun interface UrlLauncher {
fun launch(url: String)
}

View file

@ -1,16 +0,0 @@
package dev.msfjarvis.lobsters.ui.urllauncher
import android.content.Context
import android.net.Uri
import androidx.browser.customtabs.CustomTabsIntent
class UrlLauncherImpl(private val context: Context) : UrlLauncher {
override fun launch(url: String) {
val customTabsIntent = CustomTabsIntent.Builder()
.setShareState(CustomTabsIntent.SHARE_STATE_ON)
.setShowTitle(true)
.setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK)
.build()
customTabsIntent.launchUrl(context, Uri.parse(url))
}
}