Change logging to Timber
This commit is contained in:
parent
df73db0ece
commit
10cd5219ae
8 changed files with 34 additions and 25 deletions
|
@ -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'
|
||||
|
|
|
@ -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())
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -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!!,
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue