-
-
Notifications
You must be signed in to change notification settings - Fork 410
feat: download log viewer on game detail page #1403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
0f53a13
2fa31af
4017267
5acc66d
8aaa92a
18f1337
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -35,6 +35,10 @@ android { | |||||||
| // https://developer.android.com/ndk/downloads | ||||||||
| ndkVersion = "22.1.7171670" | ||||||||
|
|
||||||||
| lint { | ||||||||
| disable += setOf("ExtraTranslation", "ExpiredTargetSdkVersion") | ||||||||
| } | ||||||||
|
|
||||||||
| signingConfigs { | ||||||||
| create("pluvia") { | ||||||||
| if (keystoreProperties != null) { | ||||||||
|
|
@@ -115,18 +119,18 @@ android { | |||||||
| signingConfig = signingConfigs.getByName("debug") | ||||||||
| } | ||||||||
| release { | ||||||||
| isMinifyEnabled = true | ||||||||
| isShrinkResources = true | ||||||||
| isMinifyEnabled = false | ||||||||
| isShrinkResources = false | ||||||||
| signingConfig = signingConfigs.getByName("debug") | ||||||||
| } | ||||||||
| create("release-signed") { | ||||||||
| isMinifyEnabled = true | ||||||||
| isShrinkResources = true | ||||||||
| isMinifyEnabled = false | ||||||||
| isShrinkResources = false | ||||||||
| signingConfig = signingConfigs.getByName("pluvia") | ||||||||
| } | ||||||||
| create("release-gold") { | ||||||||
| isMinifyEnabled = true | ||||||||
| isShrinkResources = true | ||||||||
| isMinifyEnabled = false | ||||||||
| isShrinkResources = false | ||||||||
| signingConfig = signingConfigs.getByName("pluvia") | ||||||||
| applicationIdSuffix = ".gold" | ||||||||
| buildConfigField("boolean", "GOLD", "true") | ||||||||
|
|
@@ -219,7 +223,7 @@ dependencies { | |||||||
| implementation("androidx.browser:browser:1.8.0") | ||||||||
|
|
||||||||
| // JavaSteam | ||||||||
| val localBuild = false // Change to 'true' needed when building JavaSteam manually | ||||||||
| val localBuild = true // Change to 'true' needed when building JavaSteam manually | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P1: Accidentally committed local build configuration: Prompt for AI agents
Suggested change
|
||||||||
| if (localBuild) { | ||||||||
| implementation(files("../../JavaSteam/build/libs/javasteam-1.8.0.1-18-SNAPSHOT.jar")) | ||||||||
| implementation(files("../../JavaSteam/javasteam-depotdownloader/build/libs/javasteam-depotdownloader-1.8.0.1-18-SNAPSHOT.jar")) | ||||||||
|
|
||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| {"id":3,"name":"Virtual Gamepad","cursorSpeed":1,"elements":[{"type":"D_PAD","shape":"CIRCLE","bindings":["GAMEPAD_DPAD_UP","GAMEPAD_DPAD_RIGHT","GAMEPAD_DPAD_DOWN","GAMEPAD_DPAD_LEFT"],"scale":0.85,"x":0.10784313827753067,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_X","NONE","NONE","NONE"],"scale":1,"x":0.8133170008659363,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_Y","NONE","NONE","NONE"],"scale":1,"x":0.8721405267715454,"y":0.2666666746,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_A","NONE","NONE","NONE"],"scale":1,"x":0.8721405267715454,"y":0.5333333254,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_B","NONE","NONE","NONE"],"scale":1,"x":0.9309640526771545,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_R2","NONE","NONE","NONE"],"scale":2,"x":0.93,"y":0.07,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_R1","NONE","NONE","NONE"],"scale":1,"x":0.97,"y":0.2222222388,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_L1","NONE","NONE","NONE"],"scale":1,"x":0.03,"y":0.2222222388,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_L2","NONE","NONE","NONE"],"scale":2,"x":0.07,"y":0.07,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"ROUND_RECT","bindings":["GAMEPAD_BUTTON_START","NONE","NONE","NONE"],"scale":0.85,"x":0.538807213306427,"y":0.9111111164093018,"toggleSwitch":false,"text":"","iconId":15},{"type":"BUTTON","shape":"ROUND_RECT","bindings":["GAMEPAD_BUTTON_SELECT","NONE","NONE","NONE"],"scale":0.85,"x":0.46078431606292725,"y":0.9111111164093018,"toggleSwitch":false,"text":"","iconId":16},{"type":"STICK","shape":"CIRCLE","bindings":["GAMEPAD_LEFT_THUMB_UP","GAMEPAD_LEFT_THUMB_RIGHT","GAMEPAD_LEFT_THUMB_DOWN","GAMEPAD_LEFT_THUMB_LEFT"],"scale":1,"x":0.21568627655506134,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"STICK","shape":"CIRCLE","bindings":["GAMEPAD_RIGHT_THUMB_UP","GAMEPAD_RIGHT_THUMB_RIGHT","GAMEPAD_RIGHT_THUMB_DOWN","GAMEPAD_RIGHT_THUMB_LEFT"],"scale":1,"x":0.7843137383460999,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_L3","NONE","NONE","NONE"],"scale":0.85,"x":0.05,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_R3","NONE","NONE","NONE"],"scale":0.85,"x":0.95,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0}]} | ||
| {"id":3,"name":"Virtual Gamepad","cursorSpeed":1,"elements":[{"type":"D_PAD","shape":"CIRCLE","bindings":["GAMEPAD_DPAD_UP","GAMEPAD_DPAD_RIGHT","GAMEPAD_DPAD_DOWN","GAMEPAD_DPAD_LEFT"],"scale":0.85,"x":0.10784313827753067,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_X","GAMEPAD_BUTTON_X","NONE","NONE"],"scale":1,"x":0.8133170008659363,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_Y","GAMEPAD_BUTTON_Y","NONE","NONE"],"scale":1,"x":0.8721405267715454,"y":0.2666666746,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_A","GAMEPAD_BUTTON_A","NONE","NONE"],"scale":1,"x":0.8721405267715454,"y":0.5333333254,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_B","GAMEPAD_BUTTON_B","NONE","NONE"],"scale":1,"x":0.9309640526771545,"y":0.4,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_R2","GAMEPAD_BUTTON_R2","NONE","NONE"],"scale":2,"x":0.93,"y":0.07,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_R1","GAMEPAD_BUTTON_R1","NONE","NONE"],"scale":1,"x":0.97,"y":0.2222222388,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_L1","GAMEPAD_BUTTON_L1","NONE","NONE"],"scale":1,"x":0.03,"y":0.2222222388,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"RECT","bindings":["GAMEPAD_BUTTON_L2","GAMEPAD_BUTTON_L2","NONE","NONE"],"scale":2,"x":0.07,"y":0.07,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"ROUND_RECT","bindings":["GAMEPAD_BUTTON_START","GAMEPAD_BUTTON_START","NONE","NONE"],"scale":0.85,"x":0.538807213306427,"y":0.9111111164093018,"toggleSwitch":false,"text":"","iconId":15},{"type":"BUTTON","shape":"ROUND_RECT","bindings":["GAMEPAD_BUTTON_SELECT","GAMEPAD_BUTTON_SELECT","NONE","NONE"],"scale":0.85,"x":0.46078431606292725,"y":0.9111111164093018,"toggleSwitch":false,"text":"","iconId":16},{"type":"STICK","shape":"CIRCLE","bindings":["GAMEPAD_LEFT_THUMB_UP","GAMEPAD_LEFT_THUMB_RIGHT","GAMEPAD_LEFT_THUMB_DOWN","GAMEPAD_LEFT_THUMB_LEFT"],"scale":1,"x":0.21568627655506134,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"STICK","shape":"CIRCLE","bindings":["GAMEPAD_RIGHT_THUMB_UP","GAMEPAD_RIGHT_THUMB_RIGHT","GAMEPAD_RIGHT_THUMB_DOWN","GAMEPAD_RIGHT_THUMB_LEFT"],"scale":1,"x":0.7843137383460999,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_L3","GAMEPAD_BUTTON_L3","NONE","NONE"],"scale":0.85,"x":0.05,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0},{"type":"BUTTON","shape":"CIRCLE","bindings":["GAMEPAD_BUTTON_R3","GAMEPAD_BUTTON_R3","NONE","NONE"],"scale":0.85,"x":0.95,"y":0.7333333492279053,"toggleSwitch":false,"text":"","iconId":0}]} |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -49,6 +49,7 @@ import app.gamenative.enums.SaveLocation | |||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.enums.SyncResult | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.events.AndroidEvent | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.events.SteamEvent | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.utils.DownloadLogger | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.utils.CaseInsensitiveFileSystem | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.utils.ContainerUtils | ||||||||||||||||||||||||||||||||||||||||||||||||
| import app.gamenative.utils.FileUtils | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -116,8 +117,6 @@ import `in`.dragonbra.javasteam.types.FileData | |||||||||||||||||||||||||||||||||||||||||||||||
| import `in`.dragonbra.javasteam.types.KeyValue | ||||||||||||||||||||||||||||||||||||||||||||||||
| import `in`.dragonbra.javasteam.types.PublishedFileID | ||||||||||||||||||||||||||||||||||||||||||||||||
| import `in`.dragonbra.javasteam.types.SteamID | ||||||||||||||||||||||||||||||||||||||||||||||||
| import `in`.dragonbra.javasteam.util.log.LogListener | ||||||||||||||||||||||||||||||||||||||||||||||||
| import `in`.dragonbra.javasteam.util.log.LogManager | ||||||||||||||||||||||||||||||||||||||||||||||||
| import java.io.Closeable | ||||||||||||||||||||||||||||||||||||||||||||||||
| import java.io.File | ||||||||||||||||||||||||||||||||||||||||||||||||
| import java.io.IOException | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -184,7 +183,7 @@ import java.nio.ByteOrder | |||||||||||||||||||||||||||||||||||||||||||||||
| class SteamService : Service(), IChallengeUrlChanged { | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // To view log messages in android logcat properly | ||||||||||||||||||||||||||||||||||||||||||||||||
| private val logger = object : LogListener { | ||||||||||||||||||||||||||||||||||||||||||||||||
| private val logger = object : `in`.dragonbra.javasteam.util.log.LogListener { | ||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| val logMessage = message ?: "No message given" | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.i(throwable, "[${clazz.simpleName}] -> $logMessage") | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -1768,6 +1767,35 @@ class SteamService : Service(), IChallengeUrlChanged { | |||||||||||||||||||||||||||||||||||||||||||||||
| Timber.i("maxDownloads: $maxDownloads") | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.i("maxDecompress: $maxDecompress") | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // Register a log listener to capture JavaSteam internal logs | ||||||||||||||||||||||||||||||||||||||||||||||||
| val logListenerActive = java.util.concurrent.atomic.AtomicBoolean(true) | ||||||||||||||||||||||||||||||||||||||||||||||||
| val logListener = object : `in`.dragonbra.javasteam.util.log.LogListener { | ||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onLog(clazz: Class<*>, message: String?, throwable: Throwable?) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| if (!logListenerActive.get()) return | ||||||||||||||||||||||||||||||||||||||||||||||||
| val prefix = clazz.simpleName | ||||||||||||||||||||||||||||||||||||||||||||||||
| message?.let { DownloadLogger.append(appId, "[$prefix] $it") } | ||||||||||||||||||||||||||||||||||||||||||||||||
| throwable?.let { DownloadLogger.append(appId, "[$prefix] ${it.message ?: it.javaClass.simpleName}") } | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onError(clazz: Class<*>, message: String?, throwable: Throwable?) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| if (!logListenerActive.get()) return | ||||||||||||||||||||||||||||||||||||||||||||||||
| val prefix = clazz.simpleName | ||||||||||||||||||||||||||||||||||||||||||||||||
| message?.let { DownloadLogger.append(appId, "[$prefix] ERROR: $it") } | ||||||||||||||||||||||||||||||||||||||||||||||||
| throwable?.let { DownloadLogger.append(appId, "[$prefix] ERROR: ${it.message ?: it.javaClass.simpleName}") } | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // Clear previous download log BEFORE registering listener (avoid race) | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.clear(appId) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| `in`.dragonbra.javasteam.util.log.LogManager.addListener(logListener) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // Guaranteed cleanup: remove listener when the download coroutine completes | ||||||||||||||||||||||||||||||||||||||||||||||||
| val downloadCleanup = { | ||||||||||||||||||||||||||||||||||||||||||||||||
| logListenerActive.set(false) | ||||||||||||||||||||||||||||||||||||||||||||||||
| `in`.dragonbra.javasteam.util.log.LogManager.removeListener(logListener) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
| coroutineContext[Job]?.invokeOnCompletion { downloadCleanup() } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
cubic-dev-ai[bot] marked this conversation as resolved.
Comment on lines
+1770
to
+1797
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Per-game log capture is still wired to a process-global log stream. At Line 1790, this listener subscribes to 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // Create DepotDownloader instance | ||||||||||||||||||||||||||||||||||||||||||||||||
| val depotDownloader = DepotDownloader( | ||||||||||||||||||||||||||||||||||||||||||||||||
| instance!!.steamClient!!, | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -2144,30 +2172,34 @@ class SteamService : Service(), IChallengeUrlChanged { | |||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onDownloadStarted(item: DownloadItem) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.i("Item ${item.appId} download started") | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.append(downloadInfo.gameId, "Download started for app ${item.appId}") | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onDownloadCompleted(item: DownloadItem) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.i("Item ${item.appId} download completed") | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.append(downloadInfo.gameId, "Download completed") | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.flush(downloadInfo.gameId) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onDownloadFailed(item: DownloadItem, error: Throwable) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.e(error, "Item ${item.appId} failed to download") | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.append(downloadInfo.gameId, "FAILED: ${error.message ?: error.javaClass.simpleName}") | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.flush(downloadInfo.gameId) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
2178
to
+2187
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Keep item identity in the completion/failure log lines. Line 2175 includes ✏️ Proposed fix override fun onDownloadCompleted(item: DownloadItem) {
Timber.i("Item ${item.appId} download completed")
- DownloadLogger.append(downloadInfo.gameId, "Download completed")
+ DownloadLogger.append(downloadInfo.gameId, "Download completed for app ${item.appId}")
DownloadLogger.flush(downloadInfo.gameId)
}
override fun onDownloadFailed(item: DownloadItem, error: Throwable) {
Timber.e(error, "Item ${item.appId} failed to download")
- DownloadLogger.append(downloadInfo.gameId, "FAILED: ${error.message ?: error.javaClass.simpleName}")
+ DownloadLogger.append(
+ downloadInfo.gameId,
+ "FAILED for app ${item.appId}: ${error.message ?: error.javaClass.simpleName}",
+ )
DownloadLogger.flush(downloadInfo.gameId)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||
| downloadInfo.failedToDownload() | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // Remove the downloading app info | ||||||||||||||||||||||||||||||||||||||||||||||||
| // Remove the downloading app info from DB | ||||||||||||||||||||||||||||||||||||||||||||||||
| runBlocking { | ||||||||||||||||||||||||||||||||||||||||||||||||
| instance?.downloadingAppInfoDao?.deleteApp(downloadInfo.gameId) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| removeDownloadJob(downloadInfo.gameId) | ||||||||||||||||||||||||||||||||||||||||||||||||
| instance?.let { service -> | ||||||||||||||||||||||||||||||||||||||||||||||||
| SnackbarManager.show(service.getString(R.string.download_failed_try_again)) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onStatusUpdate(message: String) { | ||||||||||||||||||||||||||||||||||||||||||||||||
| Timber.d("Download status: $message") | ||||||||||||||||||||||||||||||||||||||||||||||||
| downloadInfo.updateStatusMessage(message) | ||||||||||||||||||||||||||||||||||||||||||||||||
| DownloadLogger.append(downloadInfo.gameId, message) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
2200
to
+2202
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "Writers of status text:"
rg -n --glob '*.kt' --glob '*.java' '\bupdateStatusMessage\s*\('
echo
echo "Readers of status text:"
rg -n --glob '*.kt' --glob '*.java' '\bstatusMessage\b|\bgetStatusMessage\s*\('Repository: utkarshdalal/GameNative Length of output: 15484 The removal of The UI actively reads Restore the 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onChunkCompleted( | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -3277,7 +3309,7 @@ class SteamService : Service(), IChallengeUrlChanged { | |||||||||||||||||||||||||||||||||||||||||||||||
| connectivityManager.registerNetworkCallback(networkRequest, networkCallback) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| // To view log messages in android logcat properly | ||||||||||||||||||||||||||||||||||||||||||||||||
| LogManager.addListener(logger) | ||||||||||||||||||||||||||||||||||||||||||||||||
| `in`.dragonbra.javasteam.util.log.LogManager.addListener(logger) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -3477,7 +3509,7 @@ class SteamService : Service(), IChallengeUrlChanged { | |||||||||||||||||||||||||||||||||||||||||||||||
| PluviaApp.events.off<AndroidEvent.EndProcess, Unit>(onEndProcess) | ||||||||||||||||||||||||||||||||||||||||||||||||
| PluviaApp.events.clearAllListenersOf<SteamEvent<Any>>() | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| LogManager.removeListener(logger) | ||||||||||||||||||||||||||||||||||||||||||||||||
| `in`.dragonbra.javasteam.util.log.LogManager.removeListener(logger) | ||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| private fun reconnect() { | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid disabling minify/shrink on all release variants by default.
Applying this to every release-like build type increases artifact size and weakens release hardening. Gate it behind an explicit OSS/dev flag instead.
Suggested fix pattern
🤖 Prompt for AI Agents