From 186b776d63393642dd73ecc8dec61aa89e7d4889 Mon Sep 17 00:00:00 2001 From: Ave Ozkal Date: Tue, 26 Nov 2019 16:14:32 +0300 Subject: [PATCH] Split off slashcommands' helper utils to supplemental patch --- patches/supplemental/991.patch | 367 +++++++++++++++++++++++++++++++++ patches/supplemental/README.md | 9 + 2 files changed, 376 insertions(+) create mode 100644 patches/supplemental/991.patch create mode 100644 patches/supplemental/README.md diff --git a/patches/supplemental/991.patch b/patches/supplemental/991.patch new file mode 100644 index 0000000..11aacac --- /dev/null +++ b/patches/supplemental/991.patch @@ -0,0 +1,367 @@ +diff -crB com.discord-992-base/smali/com/discord/gateway/io/IncomingParser.smali com.discord-992/smali/com/discord/gateway/io/IncomingParser.smali +*** com.discord-992-base/smali/com/discord/gateway/io/IncomingParser.smali 2019-11-26 10:48:45.866158214 +0300 +--- com.discord-992/smali/com/discord/gateway/io/IncomingParser.smali 2019-11-26 16:10:19.603520324 +0300 +*************** +*** 703,708 **** +--- 703,719 ---- + + .line 74 + :goto_4 ++ ++ invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings; ++ ++ move-result-object v0 ++ ++ invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getNoDelete()Z ++ ++ move-result v4 ++ ++ if-nez v4, :cond_b ++ + new-instance v0, Lcom/discord/models/domain/ModelMessageDelete; + + invoke-direct {v0}, Lcom/discord/models/domain/ModelMessageDelete;->()V +Only in com.discord-992/smali/com/discord/gateway/io: IncomingParser.smali.orig +diff -crB com.discord-992-base/smali/com/discord/models/domain/ModelChannel.smali com.discord-992/smali/com/discord/models/domain/ModelChannel.smali +*** com.discord-992-base/smali/com/discord/models/domain/ModelChannel.smali 2019-11-26 10:48:45.886158303 +0300 +--- com.discord-992/smali/com/discord/models/domain/ModelChannel.smali 2019-11-26 16:10:55.323740051 +0300 +*************** +*** 2170,2175 **** +--- 2170,2185 ---- + } + .end annotation + ++ invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings; ++ ++ move-result-object v0 ++ ++ invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getLeakChannels()Z ++ ++ move-result v0 ++ ++ if-eqz v0, :cond_0 ++ + .line 272 + iget-object v0, p0, Lcom/discord/models/domain/ModelChannel;->permissionOverwrites:Ljava/util/Map; + +Only in com.discord-992/smali/com/discord/models/domain: ModelChannel.smali.orig +Only in com.discord-992/smali/com/discord/models/domain: ModelChannel.smali.rej +diff -crB com.discord-992-base/smali/com/discord/stores/StoreUserSettings.smali com.discord-992/smali/com/discord/stores/StoreUserSettings.smali +*** com.discord-992-base/smali/com/discord/stores/StoreUserSettings.smali 2019-11-26 10:48:46.122826014 +0300 +--- com.discord-992/smali/com/discord/stores/StoreUserSettings.smali 2019-11-26 16:10:19.603520324 +0300 +*************** +*** 1514,1519 **** +--- 1514,1767 ---- + return v0 + .end method + ++ .method public getLeakChannels()Z ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "CACHE_KEY_CTC_LEAK_CHANNELS" ++ ++ const/4 v2, 0x1 ++ ++ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z ++ ++ move-result v0 ++ ++ return v0 ++ .end method ++ ++ .method public setLeakChannels(Z)V ++ .locals 2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ const-string v1, "CACHE_KEY_CTC_LEAK_CHANNELS" ++ ++ invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ ++ .method public getImageSpoiler()Z ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "CACHE_KEY_CTC_IMAGE_SPOILER" ++ ++ const/4 v2, 0x0 ++ ++ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z ++ ++ move-result v0 ++ ++ return v0 ++ .end method ++ ++ .method public setImageSpoiler(Z)V ++ .locals 2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ const-string v1, "CACHE_KEY_CTC_IMAGE_SPOILER" ++ ++ invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ ++ ++ .method public getNoDelete()Z ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "CACHE_KEY_CTC_NO_DELETE" ++ ++ const/4 v2, 0x0 ++ ++ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z ++ ++ move-result v0 ++ ++ return v0 ++ .end method ++ ++ .method public setNoDelete(Z)V ++ .locals 2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ const-string v1, "CACHE_KEY_CTC_NO_DELETE" ++ ++ invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ ++ .method public getShowTyping()Z ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "CACHE_KEY_CTC_SHOW_TYPING" ++ ++ const/4 v2, 0x1 ++ ++ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z ++ ++ move-result v0 ++ ++ return v0 ++ .end method ++ ++ .method public setShowTyping(Z)V ++ .locals 2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ const-string v1, "CACHE_KEY_CTC_SHOW_TYPING" ++ ++ invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ ++ ++ .method public getStoredToken()Ljava/lang/String; ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "none" ++ ++ const-string v2, "STORE_AUTHED_TOKEN" ++ ++ invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; ++ ++ move-result-object v0 ++ ++ return-object v0 ++ .end method ++ ++ ++ .method public setStoredToken(Ljava/lang/String;)V ++ .locals 2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ const-string v1, "STORE_AUTHED_TOKEN" ++ ++ invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ ++ .method public getAccountToken(Ljava/lang/String;)Ljava/lang/String; ++ .locals 3 ++ ++ const-string v2, "STORE_AUTHED_TOKEN_CTC_USER_" ++ ++ invoke-virtual {p1}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; ++ ++ move-result-object p1 ++ ++ new-instance v0, Ljava/lang/StringBuilder; ++ ++ invoke-direct {v0, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V ++ ++ invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; ++ ++ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ++ ++ move-result-object v2 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "none" ++ ++ invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; ++ ++ move-result-object v0 ++ ++ return-object v0 ++ .end method ++ ++ ++ .method public setAccountToken(Ljava/lang/String;Ljava/lang/String;)V ++ .locals 2 ++ ++ const-string v1, "STORE_AUTHED_TOKEN_CTC_USER_" ++ ++ invoke-virtual {p1}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; ++ ++ move-result-object p1 ++ ++ new-instance v0, Ljava/lang/StringBuilder; ++ ++ invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V ++ ++ invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; ++ ++ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ++ ++ move-result-object v1 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences; ++ ++ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object v0 ++ ++ invoke-interface {v0, v1, p2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; ++ ++ move-result-object p1 ++ ++ invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V ++ ++ return-void ++ .end method ++ + .method handleConnectionOpen(Lcom/discord/models/domain/ModelPayload;)V + .locals 0 + +diff -crB com.discord-992-base/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali com.discord-992/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali +*** com.discord-992-base/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali 2019-11-26 10:48:46.372827117 +0300 +--- com.discord-992/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali 2019-11-26 16:10:19.603520324 +0300 +*************** +*** 55,60 **** +--- 55,70 ---- + + invoke-virtual {v0}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->saveText()V + ++ invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings; ++ ++ move-result-object v0 ++ ++ invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getShowTyping()Z ++ ++ move-result v0 ++ ++ if-eqz v0, :cond_1 ++ + .line 221 + invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z + +diff -crB com.discord-992-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali com.discord-992/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali +*** com.discord-992-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali 2019-11-26 10:48:46.369493769 +0300 +--- com.discord-992/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali 2019-11-26 16:10:19.603520324 +0300 +*************** +*** 60,65 **** +--- 60,89 ---- + return p0 + .end method + ++ .method public static final access$SetInput(Lcom/discord/widgets/chat/input/WidgetChatInputSend;Lcom/discord/widgets/chat/input/WidgetChatInputEditText;Ljava/lang/CharSequence;)Z ++ .locals 1 ++ ++ .line 147 ++ invoke-virtual {p1, p2}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->setText(Ljava/lang/CharSequence;)V ++ ++ .line 148 ++ invoke-virtual {p1}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->clearLastTypingEmission()V ++ ++ .line 151 ++ invoke-static {}, Lcom/discord/stores/StoreStream;->getChat()Lcom/discord/stores/StoreChat; ++ ++ move-result-object p1 ++ ++ const/4 v0, 0x0 ++ ++ .line 152 ++ invoke-virtual {p1, v0}, Lcom/discord/stores/StoreChat;->setEditingMessage(Lcom/discord/stores/StoreChat$EditingMessage;)V ++ ++ const/4 p1, 0x1 ++ ++ return p1 ++ .end method ++ + .method private final clearInput(Lcom/discord/widgets/chat/input/WidgetChatInputEditText;)Z + .locals 1 + + diff --git a/patches/supplemental/README.md b/patches/supplemental/README.md new file mode 100644 index 0000000..3ac8830 --- /dev/null +++ b/patches/supplemental/README.md @@ -0,0 +1,9 @@ +## DisTok CutTheCord: Supplemental Patch + +This patch adds various helper functions that were previously part of slashcommands. It is required to have this patch if you're going to use patches such as tokenlogin. + +![Captain's Log](https://elixi.re/i/ug70v29p.jpg) + +#### Available and tested on: +- 9.9.1 +