diff --git a/resources/patches/supplemental/87202.patch b/resources/patches/supplemental/87202.patch new file mode 100644 index 0000000..ec54853 --- /dev/null +++ b/resources/patches/supplemental/87202.patch @@ -0,0 +1,442 @@ +diff -crB from/smali/com/discord/gateway/io/IncomingParser.smali to/smali/com/discord/gateway/io/IncomingParser.smali +*** from/smali/com/discord/gateway/io/IncomingParser.smali 2020-11-16 13:22:49.331198415 +0000 +--- to/smali/com/discord/gateway/io/IncomingParser.smali 2020-11-16 13:57:09.234000134 +0000 +*************** +*** 968,973 **** +--- 968,984 ---- + + .line 70 + :goto_2 ++ ++ 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 +diff -crB from/smali/com/discord/models/domain/ModelChannel.smali to/smali/com/discord/models/domain/ModelChannel.smali +*** from/smali/com/discord/api/channel/Channel.smali 2021-08-10 20:23:56.976468100 +0100 +--- to/smali/com/discord/api/channel/Channel.smali 2021-08-11 17:13:48.876902500 +0100 +*************** +*** 1774,1779 **** +--- 1774,1789 ---- + } + .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 1 + iget-object v0, p0, Lcom/discord/api/channel/Channel;->permissionOverwrites:Ljava/util/List; + +diff -crB from/smali/com/discord/stores/StoreUserSettings.smali to/smali/com/discord/stores/StoreUserSettings.smali +*** from/smali/com/discord/stores/StoreUserSettings.smali 2020-11-16 13:22:49.513198310 +0000 +--- to/smali/com/discord/stores/StoreUserSettings.smali 2020-11-16 13:57:09.234000134 +0000 +*************** +*** 2899,2904 **** +--- 2899,3188 ---- + return-void + .end method + ++ .method public getAutoplayGifs()Z ++ .locals 3 ++ ++ iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences; ++ ++ const-string v1, "CACHE_KEY_CTC_AUTOPLAY_GIFS" ++ ++ 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 setAutoplayGifs(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_AUTOPLAY_GIFS" ++ ++ 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 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 public final updateCustomStatus(Lcom/discord/models/domain/ModelCustomStatusSetting;)Lrx/Observable; + .locals 2 + .annotation system Ldalvik/annotation/Signature; + +diff -crB from/smali/com/discord/utilities/rest/SendUtils$getPart$1$1.smali to/smali/com/discord/utilities/rest/SendUtils$getPart$1$1.smali +*** from/smali/com/discord/utilities/rest/SendUtils$getPart$1$1.smali 2020-11-16 13:22:49.577198273 +0000 +--- to/smali/com/discord/utilities/rest/SendUtils$getPart$1$1.smali 2020-11-16 13:57:09.234000134 +0000 +*************** +*** 75,80 **** +--- 75,113 ---- + return-void + .end method + ++ .method public static final interceptFilename(Ljava/lang/String;)Ljava/lang/String; ++ .locals 3 ++ ++ invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings; ++ ++ move-result-object v0 ++ ++ invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getImageSpoiler()Z ++ ++ move-result v1 ++ ++ if-eqz v1, :cond_1 ++ ++ new-instance v2, Ljava/lang/StringBuilder; ++ ++ const-string v1, "SPOILER_" ++ ++ invoke-direct {v2, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V ++ ++ invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; ++ ++ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ++ ++ move-result-object p0 ++ ++ # I commented this out and do this in StoreMessages now as this'd only work for a single image ++ # const/4 v1, 0x0 ++ ++ # invoke-virtual {v0, v1}, Lcom/discord/stores/StoreUserSettings;->setImageSpoiler(Z)V ++ ++ :cond_1 ++ return-object p0 ++ .end method + + # virtual methods + .method public final invoke(Lokhttp3/RequestBody;Ljava/lang/String;Landroid/graphics/Bitmap$CompressFormat;)Lcom/discord/utilities/rest/SendUtils$FileUpload; +*************** +*** 108,113 **** +--- 141,150 ---- + + move-result-object v2 + ++ invoke-static {v2}, Lcom/discord/utilities/rest/SendUtils$getPart$1$1;->interceptFilename(Ljava/lang/String;)Ljava/lang/String; ++ ++ move-result-object v2 ++ + .line 4 + iget-object p1, p0, Lcom/discord/utilities/rest/SendUtils$getPart$1$1;->this$0:Lcom/discord/utilities/rest/SendUtils$getPart$1; + +diff -crB from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText$setOnTextChangedListener$1.smali to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText$setOnTextChangedListener$1.smali +*** from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText$setOnTextChangedListener$1.smali 2020-11-16 13:22:49.677198215 +0000 +--- to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText$setOnTextChangedListener$1.smali 2020-11-16 13:57:09.234000134 +0000 +*************** +*** 101,106 **** +--- 101,116 ---- + + move-result v0 + ++ 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 4 + iget-boolean v1, p0, Lcom/discord/widgets/chat/input/WidgetChatInputEditText$setOnTextChangedListener$1;->empty:Z + +diff -crB from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText.smali to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText.smali +*** from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText.smali 2020-11-16 13:22:49.677198215 +0000 +--- to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputEditText.smali 2020-11-16 14:09:59.478815215 +0000 +*************** +*** 80,86 **** + # instance fields + .field private channelId:J + +! .field private final editText:Lcom/lytefast/flexinput/widget/FlexEditText; + + .field private final emptyTextSubject:Lrx/subjects/Subject; + .annotation system Ldalvik/annotation/Signature; +--- 80,86 ---- + # instance fields + .field private channelId:J + +! .field public final editText:Lcom/lytefast/flexinput/widget/FlexEditText; + + .field private final emptyTextSubject:Lrx/subjects/Subject; + .annotation system Ldalvik/annotation/Signature;