Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions app/src/main/java/app/gamenative/service/SteamService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,19 @@ import java.util.concurrent.TimeUnit
@AndroidEntryPoint
class SteamService : Service(), IChallengeUrlChanged {

// To view log messages in android logcat properly
private val logger = object : LogListener {
override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) {
val logMessage = message ?: "No message given"
Timber.i(throwable, "[${clazz.simpleName}] -> $logMessage")
}

override fun onError(clazz: Class<*>, message: String?, throwable: Throwable?) {
val logMessage = message ?: "No message given"
Timber.e(throwable, "[${clazz.simpleName}] -> $logMessage")
}
}

@Inject
lateinit var db: PluviaDatabase

Expand Down Expand Up @@ -1963,17 +1976,6 @@ class SteamService : Service(), IChallengeUrlChanged {
connectivityManager.registerNetworkCallback(networkRequest, networkCallback)

// To view log messages in android logcat properly
val logger = object : LogListener {
override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) {
val logMessage = message ?: "No message given"
Timber.i(throwable, "[${clazz.simpleName}] -> $logMessage")
}

override fun onError(clazz: Class<*>, message: String?, throwable: Throwable?) {
val logMessage = message ?: "No message given"
Timber.e(throwable, "[${clazz.simpleName}] -> $logMessage")
}
}
LogManager.addListener(logger)
}

Expand Down Expand Up @@ -2162,6 +2164,8 @@ class SteamService : Service(), IChallengeUrlChanged {

PluviaApp.events.off<AndroidEvent.EndProcess, Unit>(onEndProcess)
PluviaApp.events.clearAllListenersOf<SteamEvent<Any>>()

LogManager.removeListener(logger)
}

private fun reconnect() {
Expand Down
19 changes: 10 additions & 9 deletions app/src/main/java/app/gamenative/ui/model/MainViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,17 @@ class MainViewModel @Inject constructor(
}

private val onSteamConnected: (SteamEvent.Connected) -> Unit = {
Timber.i("Received is connected")
Timber.tag("MainViewModel").i("Received is connected")
_state.update { it.copy(isSteamConnected = true) }
}

private val onSteamDisconnected: (SteamEvent.Disconnected) -> Unit = {
Timber.i("Received disconnected from Steam")
Timber.tag("MainViewModel").i("Received disconnected from Steam")
_state.update { it.copy(isSteamConnected = false) }
}

private val onLoggingIn: (SteamEvent.LogonStarted) -> Unit = {
Timber.i("Received logon started")
Timber.tag("MainViewModel").i("Received logon started")
}

private val onBackPressed: (AndroidEvent.BackPressed) -> Unit = {
Expand All @@ -96,23 +96,23 @@ class MainViewModel @Inject constructor(
}

private val onLogonEnded: (SteamEvent.LogonEnded) -> Unit = {
Timber.i("Received logon ended")
Timber.tag("MainViewModel").i("Received logon ended")
viewModelScope.launch {
_uiEvent.send(MainUiEvent.OnLogonEnded(it.loginResult))
}
}

private val onLoggedOut: (SteamEvent.LoggedOut) -> Unit = {
Timber.i("Received logged out")
Timber.tag("MainViewModel").i("Received logged out")
viewModelScope.launch {
_uiEvent.send(MainUiEvent.OnLoggedOut)
}
}

private val onExternalGameLaunch: (AndroidEvent.ExternalGameLaunch) -> Unit = {
Timber.i("[MainViewModel]: Received external game launch event for app ${it.appId}")
Timber.tag("MainViewModel").i("Received external game launch event for app ${it.appId}")
viewModelScope.launch {
Timber.i("[MainViewModel]: Sending ExternalGameLaunch UI event for app ${it.appId}")
Timber.tag("MainViewModel").i("Sending ExternalGameLaunch UI event for app ${it.appId}")
_uiEvent.send(MainUiEvent.ExternalGameLaunch(it.appId))
}
}
Expand Down Expand Up @@ -152,6 +152,7 @@ class MainViewModel @Inject constructor(
PluviaApp.events.off<AndroidEvent.SetBootingSplashText, Unit>(onSetBootingSplashText)
PluviaApp.events.off<SteamEvent.Connected, Unit>(onSteamConnected)
PluviaApp.events.off<SteamEvent.Disconnected, Unit>(onSteamDisconnected)
PluviaApp.events.off<SteamEvent.LogonStarted, Unit>(onLoggingIn)
PluviaApp.events.off<SteamEvent.LogonEnded, Unit>(onLogonEnded)
PluviaApp.events.off<SteamEvent.LoggedOut, Unit>(onLoggedOut)
}
Expand Down Expand Up @@ -363,7 +364,7 @@ class MainViewModel @Inject constructor(
if (!shouldLaunchRealSteam) {
SteamService.notifyRunningProcesses(it)
} else {
Timber.i("Skipping Steam process notification - real Steam will handle this")
Timber.tag("MainViewModel").i("Skipping Steam process notification - real Steam will handle this")
}
}
}
Expand All @@ -379,7 +380,7 @@ class MainViewModel @Inject constructor(
setShowBootingSplash(false)

// You could also show an error dialog here if needed
Timber.e("Game launch error: $error")
Timber.tag("MainViewModel").e("Game launch error: $error")
}
}

Expand Down
26 changes: 13 additions & 13 deletions app/src/main/java/app/gamenative/ui/model/UserLoginViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class UserLoginViewModel : ViewModel() {

private val authenticator = object : IAuthenticator {
override fun acceptDeviceConfirmation(): CompletableFuture<Boolean> {
Timber.i("Two-Factor, device confirmation")
Timber.tag("UserLoginViewModel").i("Two-Factor, device confirmation")

_loginState.update { currentState ->
currentState.copy(
Expand All @@ -49,7 +49,7 @@ class UserLoginViewModel : ViewModel() {
}

override fun getDeviceCode(previousCodeWasIncorrect: Boolean): CompletableFuture<String> {
Timber.d("Two-Factor, device code")
Timber.tag("UserLoginViewModel").d("Two-Factor, device code")

_loginState.update { currentState ->
currentState.copy(
Expand All @@ -73,7 +73,7 @@ class UserLoginViewModel : ViewModel() {
email: String?,
previousCodeWasIncorrect: Boolean,
): CompletableFuture<String> {
Timber.d("Two-Factor, asking for email code")
Timber.tag("UserLoginViewModel").d("Two-Factor, asking for email code")

_loginState.update { currentState ->
currentState.copy(
Expand All @@ -96,7 +96,7 @@ class UserLoginViewModel : ViewModel() {
}

private val onSteamConnected: (SteamEvent.Connected) -> Unit = {
Timber.i("Received is connected")
Timber.tag("UserLoginViewModel").i("Received is connected")

_loginState.update { currentState ->
currentState.copy(
Expand All @@ -107,14 +107,14 @@ class UserLoginViewModel : ViewModel() {
}

private val onSteamDisconnected: (SteamEvent.Disconnected) -> Unit = {
Timber.i("Received disconnected from Steam")
Timber.tag("UserLoginViewModel").i("Received disconnected from Steam")
_loginState.update { currentState ->
currentState.copy(isSteamConnected = false)
}
}

private val onRemoteDisconnected: (SteamEvent.RemotelyDisconnected) -> Unit = {
Timber.i("Disconnected from steam remotely")
Timber.tag("UserLoginViewModel").i("Disconnected from steam remotely")
_loginState.update { it.copy(isSteamConnected = false) }
}

Expand All @@ -125,7 +125,7 @@ class UserLoginViewModel : ViewModel() {
}

private val onLogonEnded: (SteamEvent.LogonEnded) -> Unit = {
Timber.i("Received login result: ${it.loginResult}")
Timber.tag("UserLoginViewModel").i("Received login result: ${it.loginResult}")
val prevState = _loginState.value
_loginState.update { currentState ->
currentState.copy(
Expand Down Expand Up @@ -181,7 +181,7 @@ class UserLoginViewModel : ViewModel() {
}

private val onLoggedOut: (SteamEvent.LoggedOut) -> Unit = {
Timber.i("Received logged out")
Timber.tag("UserLoginViewModel").i("Received logged out")
_loginState.update {
it.copy(
isSteamConnected = false,
Expand All @@ -194,7 +194,7 @@ class UserLoginViewModel : ViewModel() {
}

init {
Timber.d("init")
Timber.tag("UserLoginViewModel").d("init")

PluviaApp.events.on<SteamEvent.Connected, Unit>(onSteamConnected)
PluviaApp.events.on<SteamEvent.Disconnected, Unit>(onSteamDisconnected)
Expand All @@ -208,7 +208,7 @@ class UserLoginViewModel : ViewModel() {

val isLoggedIn = SteamService.isLoggedIn
val isSteamConnected = SteamService.isConnected
Timber.d("Logged in? $isLoggedIn")
Timber.tag("UserLoginViewModel").d("Logged in? $isLoggedIn")
if (isLoggedIn) {
_loginState.update {
it.copy(isSteamConnected = isSteamConnected, isLoggingIn = true, isQrFailed = false, loginResult = LoginResult.Success)
Expand All @@ -221,7 +221,7 @@ class UserLoginViewModel : ViewModel() {
}

override fun onCleared() {
Timber.d("onCleared")
Timber.tag("UserLoginViewModel").d("onCleared")

PluviaApp.events.off<SteamEvent.Connected, Unit>(onSteamConnected)
PluviaApp.events.off<SteamEvent.Disconnected, Unit>(onSteamDisconnected)
Expand Down Expand Up @@ -276,7 +276,7 @@ class UserLoginViewModel : ViewModel() {
when (loginScreen) {
LoginScreen.CREDENTIAL -> SteamService.stopLoginWithQr()
LoginScreen.QR -> viewModelScope.launch { SteamService.startLoginWithQr() }
else -> Timber.w("onShowLoginScreen ended up in an unknown state: ${loginScreen.name}")
else -> Timber.tag("UserLoginViewModel").w("onShowLoginScreen ended up in an unknown state: ${loginScreen.name}")
}

_loginState.update { currentState ->
Expand Down Expand Up @@ -325,7 +325,7 @@ class UserLoginViewModel : ViewModel() {
val intent = android.content.Intent(context, app.gamenative.service.SteamService::class.java)
context.startForegroundService(intent)
} catch (e: Exception) {
Timber.e(e, "Failed to restart SteamService in retryConnection")
Timber.tag("UserLoginViewModel").e(e, "Failed to restart SteamService in retryConnection")
showSnack("Failed to restart Steam connection: ${e.localizedMessage}")
}
}
Expand Down
Loading