Skip to content

Commit f0b4ed8

Browse files
authored
Minor: Remove duplicated log lines (utkarshdalal#377)
* Remove duplicated log lines Moves the Timber log listener instantiation to the top of the class and removes it on service destruction for proper logging behavior. Adds a prefix "Main:" or "UserLogin:" to Timber log messages to quickly identify the source of events. * Adds Timber tag to view model logs Adds a Timber tag to logs within MainViewModel and UserLoginViewModel. This improves log filtering and debugging by providing context.
1 parent 3c9f119 commit f0b4ed8

3 files changed

Lines changed: 38 additions & 33 deletions

File tree

app/src/main/java/app/gamenative/service/SteamService.kt

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,19 @@ import java.util.concurrent.TimeUnit
152152
@AndroidEntryPoint
153153
class SteamService : Service(), IChallengeUrlChanged {
154154

155+
// To view log messages in android logcat properly
156+
private val logger = object : LogListener {
157+
override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) {
158+
val logMessage = message ?: "No message given"
159+
Timber.i(throwable, "[${clazz.simpleName}] -> $logMessage")
160+
}
161+
162+
override fun onError(clazz: Class<*>, message: String?, throwable: Throwable?) {
163+
val logMessage = message ?: "No message given"
164+
Timber.e(throwable, "[${clazz.simpleName}] -> $logMessage")
165+
}
166+
}
167+
155168
@Inject
156169
lateinit var db: PluviaDatabase
157170

@@ -2239,17 +2252,6 @@ class SteamService : Service(), IChallengeUrlChanged {
22392252
connectivityManager.registerNetworkCallback(networkRequest, networkCallback)
22402253

22412254
// To view log messages in android logcat properly
2242-
val logger = object : LogListener {
2243-
override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) {
2244-
val logMessage = message ?: "No message given"
2245-
Timber.i(throwable, "[${clazz.simpleName}] -> $logMessage")
2246-
}
2247-
2248-
override fun onError(clazz: Class<*>, message: String?, throwable: Throwable?) {
2249-
val logMessage = message ?: "No message given"
2250-
Timber.e(throwable, "[${clazz.simpleName}] -> $logMessage")
2251-
}
2252-
}
22532255
LogManager.addListener(logger)
22542256
}
22552257

@@ -2438,6 +2440,8 @@ class SteamService : Service(), IChallengeUrlChanged {
24382440

24392441
PluviaApp.events.off<AndroidEvent.EndProcess, Unit>(onEndProcess)
24402442
PluviaApp.events.clearAllListenersOf<SteamEvent<Any>>()
2443+
2444+
LogManager.removeListener(logger)
24412445
}
24422446

24432447
private fun reconnect() {

app/src/main/java/app/gamenative/ui/model/MainViewModel.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,17 @@ class MainViewModel @Inject constructor(
7777
}
7878

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

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

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

9393
private val onBackPressed: (AndroidEvent.BackPressed) -> Unit = {
@@ -97,23 +97,23 @@ class MainViewModel @Inject constructor(
9797
}
9898

9999
private val onLogonEnded: (SteamEvent.LogonEnded) -> Unit = {
100-
Timber.i("Received logon ended")
100+
Timber.tag("MainViewModel").i("Received logon ended")
101101
viewModelScope.launch {
102102
_uiEvent.send(MainUiEvent.OnLogonEnded(it.loginResult))
103103
}
104104
}
105105

106106
private val onLoggedOut: (SteamEvent.LoggedOut) -> Unit = {
107-
Timber.i("Received logged out")
107+
Timber.tag("MainViewModel").i("Received logged out")
108108
viewModelScope.launch {
109109
_uiEvent.send(MainUiEvent.OnLoggedOut)
110110
}
111111
}
112112

113113
private val onExternalGameLaunch: (AndroidEvent.ExternalGameLaunch) -> Unit = {
114-
Timber.i("[MainViewModel]: Received external game launch event for app ${it.appId}")
114+
Timber.tag("MainViewModel").i("Received external game launch event for app ${it.appId}")
115115
viewModelScope.launch {
116-
Timber.i("[MainViewModel]: Sending ExternalGameLaunch UI event for app ${it.appId}")
116+
Timber.tag("MainViewModel").i("Sending ExternalGameLaunch UI event for app ${it.appId}")
117117
_uiEvent.send(MainUiEvent.ExternalGameLaunch(it.appId))
118118
}
119119
}
@@ -153,6 +153,7 @@ class MainViewModel @Inject constructor(
153153
PluviaApp.events.off<AndroidEvent.SetBootingSplashText, Unit>(onSetBootingSplashText)
154154
PluviaApp.events.off<SteamEvent.Connected, Unit>(onSteamConnected)
155155
PluviaApp.events.off<SteamEvent.Disconnected, Unit>(onSteamDisconnected)
156+
PluviaApp.events.off<SteamEvent.LogonStarted, Unit>(onLoggingIn)
156157
PluviaApp.events.off<SteamEvent.LogonEnded, Unit>(onLogonEnded)
157158
PluviaApp.events.off<SteamEvent.LoggedOut, Unit>(onLoggedOut)
158159
}
@@ -403,7 +404,7 @@ class MainViewModel @Inject constructor(
403404
if (!shouldLaunchRealSteam) {
404405
SteamService.notifyRunningProcesses(it)
405406
} else {
406-
Timber.i("Skipping Steam process notification - real Steam will handle this")
407+
Timber.tag("MainViewModel").i("Skipping Steam process notification - real Steam will handle this")
407408
}
408409
}
409410
}
@@ -419,7 +420,7 @@ class MainViewModel @Inject constructor(
419420
setShowBootingSplash(false)
420421

421422
// You could also show an error dialog here if needed
422-
Timber.e("Game launch error: $error")
423+
Timber.tag("MainViewModel").e("Game launch error: $error")
423424
}
424425
}
425426

app/src/main/java/app/gamenative/ui/model/UserLoginViewModel.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class UserLoginViewModel : ViewModel() {
3434

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

3939
_loginState.update { currentState ->
4040
currentState.copy(
@@ -49,7 +49,7 @@ class UserLoginViewModel : ViewModel() {
4949
}
5050

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

5454
_loginState.update { currentState ->
5555
currentState.copy(
@@ -73,7 +73,7 @@ class UserLoginViewModel : ViewModel() {
7373
email: String?,
7474
previousCodeWasIncorrect: Boolean,
7575
): CompletableFuture<String> {
76-
Timber.d("Two-Factor, asking for email code")
76+
Timber.tag("UserLoginViewModel").d("Two-Factor, asking for email code")
7777

7878
_loginState.update { currentState ->
7979
currentState.copy(
@@ -96,7 +96,7 @@ class UserLoginViewModel : ViewModel() {
9696
}
9797

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

101101
_loginState.update { currentState ->
102102
currentState.copy(
@@ -107,14 +107,14 @@ class UserLoginViewModel : ViewModel() {
107107
}
108108

109109
private val onSteamDisconnected: (SteamEvent.Disconnected) -> Unit = {
110-
Timber.i("Received disconnected from Steam")
110+
Timber.tag("UserLoginViewModel").i("Received disconnected from Steam")
111111
_loginState.update { currentState ->
112112
currentState.copy(isSteamConnected = false)
113113
}
114114
}
115115

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

@@ -125,7 +125,7 @@ class UserLoginViewModel : ViewModel() {
125125
}
126126

127127
private val onLogonEnded: (SteamEvent.LogonEnded) -> Unit = {
128-
Timber.i("Received login result: ${it.loginResult}")
128+
Timber.tag("UserLoginViewModel").i("Received login result: ${it.loginResult}")
129129
val prevState = _loginState.value
130130
_loginState.update { currentState ->
131131
currentState.copy(
@@ -181,7 +181,7 @@ class UserLoginViewModel : ViewModel() {
181181
}
182182

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

196196
init {
197-
Timber.d("init")
197+
Timber.tag("UserLoginViewModel").d("init")
198198

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

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

223223
override fun onCleared() {
224-
Timber.d("onCleared")
224+
Timber.tag("UserLoginViewModel").d("onCleared")
225225

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

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

0 commit comments

Comments
 (0)