Change logging to Timber

This commit is contained in:
Jarne Demeulemeester 2021-07-18 16:00:08 +02:00
parent df73db0ece
commit 10cd5219ae
No known key found for this signature in database
GPG key ID: 60884A0C1EBA43E5
8 changed files with 34 additions and 25 deletions

View file

@ -99,6 +99,10 @@ dependencies {
implementation "com.google.android.exoplayer:exoplayer-ui:$exoplayer_version"
implementation files('libs/extension-ffmpeg-release.aar')
// Timber
def timber_version = "4.7.1"
implementation "com.jakewharton.timber:timber:$timber_version"
// Testing
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'

View file

@ -2,6 +2,14 @@ package dev.jdtech.jellyfin
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
@HiltAndroidApp
class BaseApplication : Application()
class BaseApplication : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
}
}

View file

@ -2,7 +2,6 @@ package dev.jdtech.jellyfin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.WindowManager
import androidx.activity.viewModels
import androidx.core.view.WindowCompat
@ -12,6 +11,7 @@ import androidx.navigation.navArgs
import com.google.android.exoplayer2.ui.StyledPlayerView
import dagger.hilt.android.AndroidEntryPoint
import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel
import timber.log.Timber
@AndroidEntryPoint
class PlayerActivity : AppCompatActivity() {
@ -23,7 +23,7 @@ class PlayerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("PlayerActivity", "onCreate")
Timber.d("Creating player activity")
setContentView(R.layout.activity_player)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
@ -47,7 +47,7 @@ class PlayerActivity : AppCompatActivity() {
override fun onDestroy() {
super.onDestroy()
Log.d("PlayerActivity", "onDestroy")
Timber.d("Destroying player activity")
showSystemUI()
}

View file

@ -1,10 +1,10 @@
package dev.jdtech.jellyfin.repository
import android.util.Log
import dev.jdtech.jellyfin.api.JellyfinApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.jellyfin.sdk.model.api.*
import timber.log.Timber
import java.util.*
class JellyfinRepositoryImpl(private val jellyfinApi: JellyfinApi) : JellyfinRepository {
@ -139,21 +139,21 @@ class JellyfinRepositoryImpl(private val jellyfinApi: JellyfinApi) : JellyfinRep
mediaSourceId = mediaSourceId
)
} catch (e: Exception) {
Log.e("JellyfinRepository", "${e.message}")
Timber.e(e)
}
}
return streamUrl
}
override suspend fun postPlaybackStart(itemId: UUID) {
Log.d("PlayerActivity", "Sending start $itemId")
Timber.d("Sending start $itemId")
withContext(Dispatchers.IO) {
jellyfinApi.playStateApi.onPlaybackStart(jellyfinApi.userId!!, itemId)
}
}
override suspend fun postPlaybackStop(itemId: UUID, positionTicks: Long) {
Log.d("PlayerActivity", "Sending stop $itemId")
Timber.d("Sending stop $itemId")
withContext(Dispatchers.IO) {
jellyfinApi.playStateApi.onPlaybackStopped(
jellyfinApi.userId!!,
@ -168,6 +168,7 @@ class JellyfinRepositoryImpl(private val jellyfinApi: JellyfinApi) : JellyfinRep
positionTicks: Long,
isPaused: Boolean
) {
Timber.d("Posting progress of $itemId, position: $positionTicks")
withContext(Dispatchers.IO) {
jellyfinApi.playStateApi.onPlaybackProgress(
jellyfinApi.userId!!,

View file

@ -1,7 +1,6 @@
package dev.jdtech.jellyfin.viewmodels
import android.app.Application
import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@ -13,6 +12,7 @@ import dev.jdtech.jellyfin.database.ServerDatabaseDao
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import timber.log.Timber
import javax.inject.Inject
@HiltViewModel
@ -42,7 +42,7 @@ constructor(
val jellyfinApi = JellyfinApi.newInstance(application, baseUrl)
try {
val publicSystemInfo by jellyfinApi.systemApi.getPublicSystemInfo()
Log.i("AddServerViewModel", "Remote server: ${publicSystemInfo.id}")
Timber.d("Remote server: ${publicSystemInfo.id}")
if (serverAlreadyInDatabase(publicSystemInfo.id)) {
_error.value = "Server already added"
@ -52,7 +52,7 @@ constructor(
_navigateToLogin.value = true
}
} catch (e: Exception) {
Log.e("AddServerViewModel", "${e.message}")
Timber.e(e)
_error.value = e.message
_navigateToLogin.value = false
}
@ -71,9 +71,9 @@ constructor(
servers = database.getAllServersSync()
}
for (server in servers) {
Log.i("AddServerViewModel", "Database server: ${server.id}")
Timber.d("Database server: ${server.id}")
if (server.id == id) {
Log.i("AddServerViewModel", "Server already in the database")
Timber.w("Server already in the database")
return true
}
}

View file

@ -1,7 +1,6 @@
package dev.jdtech.jellyfin.viewmodels
import android.app.Application
import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@ -14,6 +13,7 @@ import dev.jdtech.jellyfin.models.View
import dev.jdtech.jellyfin.repository.JellyfinRepository
import kotlinx.coroutines.launch
import org.jellyfin.sdk.model.api.BaseItemDto
import timber.log.Timber
import java.util.*
import javax.inject.Inject
@ -80,7 +80,7 @@ constructor(
_finishedLoading.value = true
} catch (e: Exception) {
Log.e("HomeViewModel", e.message.toString())
Timber.e(e.message.toString())
_finishedLoading.value = true
_error.value = true
}

View file

@ -1,7 +1,6 @@
package dev.jdtech.jellyfin.viewmodels
import android.app.Application
import android.util.Log
import androidx.lifecycle.*
import dagger.hilt.android.lifecycle.HiltViewModel
import dev.jdtech.jellyfin.api.JellyfinApi
@ -11,6 +10,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.jellyfin.sdk.model.api.AuthenticateUserByName
import timber.log.Timber
import java.lang.Exception
import javax.inject.Inject
@ -63,7 +63,7 @@ constructor(
}
_navigateToMain.value = true
} catch (e: Exception) {
Log.e("LoginViewModel", "${e.message}")
Timber.e(e)
_error.value = e.message
}
}

View file

@ -3,7 +3,6 @@ package dev.jdtech.jellyfin.viewmodels
import android.app.Application
import android.os.Handler
import android.os.Looper
import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@ -15,6 +14,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import dev.jdtech.jellyfin.repository.JellyfinRepository
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import timber.log.Timber
import java.util.*
import javax.inject.Inject
@ -65,7 +65,7 @@ constructor(
viewModelScope.launch {
val streamUrl = jellyfinRepository.getStreamUrl(itemId, mediaSourceId)
Log.d("PlayerActivity", streamUrl)
Timber.d("Stream url: $streamUrl")
val mediaItem =
MediaItem.Builder()
.setMediaId(itemId.toString())
@ -106,10 +106,6 @@ constructor(
val runnable: Runnable = object : Runnable {
override fun run() {
viewModelScope.launch {
Log.d(
"PlayerActivity",
"Posting progress of $itemId, position: ${player.currentPosition}"
)
jellyfinRepository.postPlaybackProgress(
itemId,
player.currentPosition.times(10000),
@ -143,13 +139,13 @@ constructor(
_navigateBack.value = true
}
}
Log.d("PlayerActivity", "changed state to $stateString")
Timber.d("Changed player state to $stateString")
}
}
override fun onCleared() {
super.onCleared()
Log.d("PlayerActivity", "onCleared ViewModel")
Timber.d("Clearing Player ViewModel")
releasePlayer()
}
}