Skip to content
Draft
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
12 changes: 11 additions & 1 deletion app/src/main/java/app/gamenative/service/SteamService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ import android.util.Base64
import app.gamenative.data.DownloadingAppInfo
import app.gamenative.db.dao.DownloadingAppInfoDao
import app.gamenative.db.dao.EncryptedAppTicketDao
import app.gamenative.statsgen.StatsAchievementsGenerator
import kotlinx.coroutines.flow.update
import java.io.InputStream
import java.io.OutputStream
Expand Down Expand Up @@ -190,6 +191,7 @@ class SteamService : Service(), IChallengeUrlChanged {
private var _steamApps: SteamApps? = null
private var _steamFriends: SteamFriends? = null
private var _steamCloud: SteamCloud? = null
private var _steamUserStats: SteamUserStats? = null
private var _steamFamilyGroups: FamilyGroups? = null

private var _loginResult: LoginResult = LoginResult.Failed
Expand Down Expand Up @@ -2173,6 +2175,14 @@ class SteamService : Service(), IChallengeUrlChanged {
return emptySet()
}
}

suspend fun generateAchievements(appId: Int, configDirectory: String) {
val steamUser = instance!!._steamUser!!
val userStats = instance?._steamUserStats!!.getUserStats(appId, steamUser.steamID!!).await()
val generator = StatsAchievementsGenerator()
val schemaArray = userStats.schema.toByteArray()
generator.generateStatsAchievements(schemaArray, configDirectory)
}
}

override fun onCreate() {
Expand Down Expand Up @@ -2289,7 +2299,6 @@ class SteamService : Service(), IChallengeUrlChanged {
removeHandler(SteamMasterServer::class.java)
removeHandler(SteamWorkshop::class.java)
removeHandler(SteamScreenshots::class.java)
removeHandler(SteamUserStats::class.java)
}

// create the callback manager which will route callbacks to function calls
Expand All @@ -2300,6 +2309,7 @@ class SteamService : Service(), IChallengeUrlChanged {
_steamApps = steamClient!!.getHandler(SteamApps::class.java)
_steamFriends = steamClient!!.getHandler(SteamFriends::class.java)
_steamCloud = steamClient!!.getHandler(SteamCloud::class.java)
_steamUserStats = steamClient!!.getHandler(SteamUserStats::class.java)

_unifiedFriends = SteamUnifiedFriends(this)
_steamFamilyGroups = steamClient!!.getHandler<SteamUnifiedMessages>()!!.createService<FamilyGroups>()
Expand Down
34 changes: 34 additions & 0 deletions app/src/main/java/app/gamenative/statsgen/Models.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package app.gamenative.statsgen

data class Achievement(
val name: String,
val displayName: Map<String, String>? = null,
val description: Map<String, String>? = null,
val hidden: Int = 0,
val icon: String? = null,
val iconGray: String? = null,
val icongray: String? = null,
val progress: Map<String, Any>? = null
)

data class Stat(
val name: String,
val type: String,
val default: String = "0",
val global: String = "0",
val min: String? = null
)

data class ProcessingResult(
val achievements: List<Achievement>,
val stats: List<Stat>,
val copyDefaultUnlockedImg: Boolean,
val copyDefaultLockedImg: Boolean
)

object StatType {
const val INT = "1"
const val FLOAT = "2"
const val AVGRATE = "3"
const val BITS = "4"
}
Loading
Loading