mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
refactor: improve skippability of Composables
This commit is contained in:
parent
4db59db7a1
commit
b1a32496ba
5 changed files with 32 additions and 13 deletions
|
@ -8,22 +8,13 @@ package dev.msfjarvis.claw.android.injection
|
||||||
|
|
||||||
import com.deliveryhero.whetstone.app.ApplicationScope
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dev.msfjarvis.claw.android.ui.util.HTMLConverterImpl
|
||||||
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
||||||
import io.github.furstenheim.CopyDown
|
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(ApplicationScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object HTMLConverterModule {
|
interface HTMLConverterModule {
|
||||||
|
@Binds fun HTMLConverterImpl.bind(): HTMLConverter
|
||||||
@Provides
|
|
||||||
fun provideHTMLConverter() =
|
|
||||||
object : HTMLConverter {
|
|
||||||
private val copydown = CopyDown()
|
|
||||||
|
|
||||||
override fun convertHTMLToMarkdown(html: String): String {
|
|
||||||
return copydown.convert(html)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2022 Harsh Shandilya.
|
||||||
|
* Use of this source code is governed by an MIT-style
|
||||||
|
* license that can be found in the LICENSE file or at
|
||||||
|
* https://opensource.org/licenses/MIT.
|
||||||
|
*/
|
||||||
|
package dev.msfjarvis.claw.android.ui.util
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Stable
|
||||||
|
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
||||||
|
import io.github.furstenheim.CopyDown
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@Stable
|
||||||
|
class HTMLConverterImpl @Inject constructor() : HTMLConverter {
|
||||||
|
private val copydown = CopyDown()
|
||||||
|
|
||||||
|
override fun convertHTMLToMarkdown(html: String): String {
|
||||||
|
return copydown.convert(html)
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,10 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.common.comments
|
package dev.msfjarvis.claw.common.comments
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Stable
|
||||||
|
|
||||||
/** Defines a contract to convert strings of HTML to Markdown. */
|
/** Defines a contract to convert strings of HTML to Markdown. */
|
||||||
|
@Stable
|
||||||
fun interface HTMLConverter {
|
fun interface HTMLConverter {
|
||||||
fun convertHTMLToMarkdown(html: String): String
|
fun convertHTMLToMarkdown(html: String): String
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,10 +6,12 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.common.posts
|
package dev.msfjarvis.claw.common.posts
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Stable
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
import dev.msfjarvis.claw.model.LinkMetadata
|
import dev.msfjarvis.claw.model.LinkMetadata
|
||||||
import dev.msfjarvis.claw.model.LobstersPostDetails
|
import dev.msfjarvis.claw.model.LobstersPostDetails
|
||||||
|
|
||||||
|
@Stable
|
||||||
interface PostActions {
|
interface PostActions {
|
||||||
fun viewPost(postUrl: String, commentsUrl: String)
|
fun viewPost(postUrl: String, commentsUrl: String)
|
||||||
fun viewComments(postId: String)
|
fun viewComments(postId: String)
|
||||||
|
|
|
@ -11,9 +11,11 @@ import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
|
import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.ui.platform.UriHandler
|
import androidx.compose.ui.platform.UriHandler
|
||||||
import io.github.aakira.napier.Napier
|
import io.github.aakira.napier.Napier
|
||||||
|
|
||||||
|
@Stable
|
||||||
class UrlLauncher(private val context: Context) : UriHandler {
|
class UrlLauncher(private val context: Context) : UriHandler {
|
||||||
override fun openUri(uri: String) {
|
override fun openUri(uri: String) {
|
||||||
val customTabsIntent =
|
val customTabsIntent =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue