feat(client_bootstrap_override): simple snapchat

This commit is contained in:
rhunk 2024-12-08 17:44:56 +01:00
parent 047efccb3f
commit 7d932f0fb4
3 changed files with 33 additions and 4 deletions

View File

@ -478,6 +478,10 @@
"home_tab": {
"name": "Home Tab",
"description": "Overrides the startup tab when opening Snapchat"
},
"simple_snapchat":{
"name": "Simple Snapchat",
"description": "Enables a simplified version of Snapchat"
}
}
},
@ -1279,6 +1283,10 @@
"discover": "Discover",
"spotlight": "Spotlight"
},
"simple_snapchat": {
"always_enabled": "Always Enabled",
"always_disabled": "Always Disabled"
},
"add_friend_source_spoof": {
"added_by_username": "By Username",
"added_by_mention": "By Mention",

View File

@ -11,8 +11,9 @@ class UserInterfaceTweaks : ConfigContainer() {
val tabs = arrayOf("map", "chat", "camera", "discover", "spotlight")
}
val appAppearance = unique("app_appearance", "always_light", "always_dark")
val homeTab = unique("home_tab", *tabs) { addNotices(FeatureNotice.UNSTABLE) }
val appAppearance = unique("app_appearance", "always_light", "always_dark") { requireRestart() }
val homeTab = unique("home_tab", *tabs) { addNotices(FeatureNotice.UNSTABLE); requireRestart() }
val simpleSnapchat = unique("simple_snapchat", "always_enabled", "always_disabled") { addNotices(FeatureNotice.UNSTABLE); requireRestart() }
}
inner class FriendFeedMessagePreview : ConfigContainer(hasGlobalState = true) {

View File

@ -1,6 +1,8 @@
package me.rhunk.snapenhance.core.features.impl.ui
import me.rhunk.snapenhance.common.config.impl.UserInterfaceTweaks
import me.rhunk.snapenhance.common.util.protobuf.ProtoEditor
import me.rhunk.snapenhance.common.util.protobuf.ProtoWriter
import me.rhunk.snapenhance.core.features.Feature
import java.io.File
@ -28,8 +30,26 @@ class ClientBootstrapOverride: Feature("ClientBootstrapOverride") {
appearanceStartupConfigFile.writeBytes(byteArrayOf(0, 0, 0, state))
}
bootstrapOverrideConfig.homeTab.getNullable()?.also { currentTab ->
plusFile.writeBytes(byteArrayOf(8, (UserInterfaceTweaks.BootstrapOverride.tabs.indexOf(currentTab) + 1).toByte()))
val homeTab = bootstrapOverrideConfig.homeTab.getNullable()
val simpleSnapchat = bootstrapOverrideConfig.simpleSnapchat.getNullable()
if (homeTab != null || simpleSnapchat != null) {
val plusFileBytes = plusFile.exists().let { if (it) plusFile.readBytes() else ProtoWriter().toByteArray() }
plusFile.writeBytes(
ProtoEditor(plusFileBytes).apply {
edit {
homeTab?.let { currentTab ->
remove(1)
addVarInt(1, UserInterfaceTweaks.BootstrapOverride.tabs.indexOf(currentTab) + 1)
}
simpleSnapchat?.let { simpleSnapchat ->
remove(2)
addVarInt(2, if (simpleSnapchat == "always_enabled") 1 else 0)
}
}
}.toByteArray()
)
}
}
}