mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 10:37:05 +05:30
all: migrate logging to Napier
This commit is contained in:
parent
239cfb753f
commit
9b9e924475
7 changed files with 17 additions and 9 deletions
|
@ -1,7 +1,6 @@
|
||||||
package dev.msfjarvis.claw.android.injection
|
package dev.msfjarvis.claw.android.injection
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
|
||||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||||
import dagger.Lazy
|
import dagger.Lazy
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
|
@ -10,6 +9,7 @@ import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.Cache
|
import okhttp3.Cache
|
||||||
|
@ -34,7 +34,7 @@ object ApiModule {
|
||||||
.cache(cache.get())
|
.cache(cache.get())
|
||||||
.addNetworkInterceptor { chain ->
|
.addNetworkInterceptor { chain ->
|
||||||
val request = chain.request()
|
val request = chain.request()
|
||||||
Log.d("LobstersApi", "${request.method}: ${request.url}")
|
Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" }
|
||||||
chain.proceed(request)
|
chain.proceed(request)
|
||||||
}
|
}
|
||||||
.build()
|
.build()
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package dev.msfjarvis.claw.android.viewmodel
|
package dev.msfjarvis.claw.android.viewmodel
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import app.cash.sqldelight.coroutines.asFlow
|
import app.cash.sqldelight.coroutines.asFlow
|
||||||
import app.cash.sqldelight.coroutines.mapToList
|
import app.cash.sqldelight.coroutines.mapToList
|
||||||
import dev.msfjarvis.claw.database.LobstersDatabase
|
import dev.msfjarvis.claw.database.LobstersDatabase
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
@ -18,12 +18,16 @@ constructor(
|
||||||
val savedPosts = savedPostQueries.selectAllPosts().asFlow().mapToList()
|
val savedPosts = savedPostQueries.selectAllPosts().asFlow().mapToList()
|
||||||
|
|
||||||
suspend fun savePost(post: SavedPost) {
|
suspend fun savePost(post: SavedPost) {
|
||||||
Log.d("SavedPostsRepository", "Saving post: ${post.shortId}")
|
Napier.d(tag = TAG) { "Saving post: ${post.shortId}" }
|
||||||
withContext(Dispatchers.IO) { savedPostQueries.insertOrReplacePost(post) }
|
withContext(Dispatchers.IO) { savedPostQueries.insertOrReplacePost(post) }
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun removePost(post: SavedPost) {
|
suspend fun removePost(post: SavedPost) {
|
||||||
Log.d("SavedPostsRepository", "Removing post: ${post.shortId}")
|
Napier.d(tag = TAG) { "Removing post: ${post.shortId}" }
|
||||||
withContext(Dispatchers.IO) { savedPostQueries.deletePost(post.shortId) }
|
withContext(Dispatchers.IO) { savedPostQueries.deletePost(post.shortId) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private companion object {
|
||||||
|
private const val TAG = "SavedPostsRepository"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ kotlin {
|
||||||
api(compose.material3)
|
api(compose.material3)
|
||||||
api(projects.database)
|
api(projects.database)
|
||||||
api(projects.model)
|
api(projects.model)
|
||||||
|
api(libs.napier)
|
||||||
implementation(libs.kotlin.coroutines.core)
|
implementation(libs.kotlin.coroutines.core)
|
||||||
implementation(libs.compose.richtext.markdown)
|
implementation(libs.compose.richtext.markdown)
|
||||||
implementation(libs.compose.richtext.material)
|
implementation(libs.compose.richtext.material)
|
||||||
|
|
|
@ -3,10 +3,10 @@ package dev.msfjarvis.claw.common.urllauncher
|
||||||
import android.content.ActivityNotFoundException
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.util.Log
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.compose.ui.platform.UriHandler
|
import androidx.compose.ui.platform.UriHandler
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
|
|
||||||
class UrlLauncher(private val context: Context) : UriHandler {
|
class UrlLauncher(private val context: Context) : UriHandler {
|
||||||
override fun openUri(uri: String) {
|
override fun openUri(uri: String) {
|
||||||
|
@ -20,7 +20,7 @@ class UrlLauncher(private val context: Context) : UriHandler {
|
||||||
customTabsIntent.launchUrl(context, Uri.parse(uri))
|
customTabsIntent.launchUrl(context, Uri.parse(uri))
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
val error = "Failed to open URL: $uri"
|
val error = "Failed to open URL: $uri"
|
||||||
Log.d("UrlLauncher", error)
|
Napier.d(tag = "UrlLauncher") { error }
|
||||||
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package dev.msfjarvis.claw.common.urllauncher
|
package dev.msfjarvis.claw.common.urllauncher
|
||||||
|
|
||||||
import androidx.compose.ui.platform.UriHandler
|
import androidx.compose.ui.platform.UriHandler
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
import java.awt.Desktop
|
import java.awt.Desktop
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
@ -13,7 +14,7 @@ class UrlLauncher : UriHandler {
|
||||||
try {
|
try {
|
||||||
desktop.browse(URI(uri))
|
desktop.browse(URI(uri))
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
println("Failed to open URL: $uri")
|
Napier.d(tag = "UrlLauncher") { "Failed to open URL: $uri" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.MediaType
|
import okhttp3.MediaType
|
||||||
|
@ -15,7 +16,7 @@ class Api {
|
||||||
return OkHttpClient.Builder()
|
return OkHttpClient.Builder()
|
||||||
.addNetworkInterceptor { chain ->
|
.addNetworkInterceptor { chain ->
|
||||||
val request = chain.request()
|
val request = chain.request()
|
||||||
println("LobstersApi: ${request.method()}: ${request.url()}")
|
Napier.d(tag = "LobstersApi") { "${request.method()}: ${request.url()}" }
|
||||||
chain.proceed(request)
|
chain.proceed(request)
|
||||||
}
|
}
|
||||||
.build()
|
.build()
|
||||||
|
|
|
@ -46,6 +46,7 @@ kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-co
|
||||||
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" }
|
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" }
|
||||||
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }
|
||||||
multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7"
|
multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7"
|
||||||
|
napier = "io.github.aakira:napier:2.5.0"
|
||||||
r8 = "com.android.tools:r8:3.3.28"
|
r8 = "com.android.tools:r8:3.3.28"
|
||||||
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
|
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
|
||||||
retrofit-lib = "com.squareup.retrofit2:retrofit:2.9.0"
|
retrofit-lib = "com.squareup.retrofit2:retrofit:2.9.0"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue