diff --git a/.gitignore b/.gitignore index 8845bb8..e2b49e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,2 @@ patches/*/*-custom.patch patches/*/*.patch-failed -resources/distok/versionlogs/* -!resources/distok/versionlogs/.gitkeep -resources/fdroid/repo/icons/*.xml -resources/fonts/*.ttf -resources/fonts/*.otf -resources/icons/others/* -!resources/icons/others/.gitkeep -resources/ringtones/* -!resources/ringtones/.gitkeep -resources/keystores/* -!resources/keystores/.gitkeep -*.apk diff --git a/Dockerfile b/Dockerfile index 9c3ef47..397063c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,9 +3,6 @@ FROM ubuntu:21.04 # Install needed packages RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python3 android-sdk-build-tools wget unzip imagemagick git patch software-properties-common -# Mirror is being weird currently so install this seperatly -RUN apt-get update -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install zipmerge # Install fdroid RUN add-apt-repository ppa:fdroid/fdroidserver @@ -23,9 +20,6 @@ RUN wget -O ${CTC_FOLDER}/tools/apktool.jar https://f001.backblazeb2.com/file/av # Grab xml-patch (https://github.com/dnault/xml-patch) RUN wget -O ${CTC_FOLDER}/tools/xml-patch.jar https://jcenter.bintray.com/com/github/dnault/xml-patch/0.3.1/xml-patch-0.3.1.jar -# Grab dex2jar (https://github.com/Aliucord/dex2jar) -RUN wget -O ${CTC_FOLDER}/tools/dex2jar.jar https://github.com/Aliucord/dex2jar/releases/download/v19-fork2/dex2jar.jar - # Grab emoji sets ENV EMOJI_PATH=${CTC_FOLDER}/emojis ENV EMOJI_MUTANT_PATH=${EMOJI_PATH}/mutant diff --git a/README.md b/README.md index bd82bc6..fc55aca 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ Modular Client Mod for Discord's Android app. -**THIS IS A WORK IN PROGRESS BRANCH! SOME PATCHES ARE MISSING (tokenlogin, hideunusableemojis, plus showtag has a bug)!** - -Current state is good enough™ for an RC release, and there's currently RC releases in the repo. Update away! +**THIS IS A WORK IN PROGRESS BRANCH! THE PATCHES ARE INCOMPLETE!** For status updates and support on the project, join #cutthecord on https://libera.chat. WebIRC link: https://web.libera.chat/#cutthecord @@ -12,7 +10,7 @@ For status updates and support on the project, join #cutthecord on https://liber New patch development will be done for the latest supported version. -![A CutTheCord screenshot](https://elixi.re/t/m16z287iw.png) +![A CutTheCord screenshot](https://elixi.re/t/mh3eirsy9.png) Check out [README.md in patches folder to see what patches are available and what each of them do](patches/README.md)! diff --git a/resources/icons/others/.gitkeep b/resources/icons/others/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/keystores/.gitkeep b/resources/keystores/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/old-patches/README.md b/resources/old-patches/README.md index d22c2a6..fcffff3 100644 --- a/resources/old-patches/README.md +++ b/resources/old-patches/README.md @@ -13,5 +13,4 @@ Here's why these patches are no longer maintained in this form: - nonearby: Didn't add much anyways. - squareavatars: Moved to xml-patchs - betterrotation: Moved to xml-patchs -- noblocked: Moved to xml-patchs -- slashcommands: Moved to dynamic patch due to discord api supporting this now +- noblocked: Moved to xml-patchs \ No newline at end of file diff --git a/resources/patches/betterdmheader/87202.patch b/resources/patches/betterdmheader/87202.patch deleted file mode 100644 index a258298..0000000 --- a/resources/patches/betterdmheader/87202.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -crB from/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali -*** from/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2020-11-19 15:23:43.685245089 +0000 ---- to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2020-11-19 15:26:07.886953277 +0000 -*************** -*** 181,187 **** - - invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - -! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; - - .line 7 - invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; ---- 181,187 ---- - - invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - -! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; - - .line 7 - invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; -*************** -*** 360,366 **** - - invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - -! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; - - .line 19 - invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; ---- 360,366 ---- - - invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V - -! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; - - .line 19 - invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; diff --git a/resources/patches/branding/customdynamicicon.sh b/resources/patches/branding/customdynamicicon.sh index 0bc68a7..750bb67 100644 --- a/resources/patches/branding/customdynamicicon.sh +++ b/resources/patches/branding/customdynamicicon.sh @@ -1,3 +1,7 @@ +\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-hdpi/ic_launcher_background.png +\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-xhdpi/ic_launcher_background.png +\cp res/mipmap-xxxhdpi/ic_launcher_background.png res/mipmap-xxhdpi/ic_launcher_background.png + \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-hdpi/ic_launcher_foreground.png \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-xhdpi/ic_launcher_foreground.png \cp res/mipmap-xxxhdpi/ic_launcher_foreground.png res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/resources/patches/customtheme/asset_loading_zhu_white.png b/resources/patches/customtheme/asset_loading_zhu_white.png index a0d16f2..1c1e5a1 100644 Binary files a/resources/patches/customtheme/asset_loading_zhu_white.png and b/resources/patches/customtheme/asset_loading_zhu_white.png differ diff --git a/resources/patches/customtheme/fixsplash.sh b/resources/patches/customtheme/fixsplash.sh index a7ab3f9..b1a9574 100644 --- a/resources/patches/customtheme/fixsplash.sh +++ b/resources/patches/customtheme/fixsplash.sh @@ -1,2 +1,2 @@ #!/bin/bash -\cp "$1" res/drawable-xxxhdpi/img_logo.png +\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png diff --git a/resources/patches/disable-mobileindicator/87202.patch b/resources/patches/disable-mobileindicator/87202.patch index 04bcf67..954dd9f 100644 --- a/resources/patches/disable-mobileindicator/87202.patch +++ b/resources/patches/disable-mobileindicator/87202.patch @@ -1,4 +1,29 @@ diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali +*** from/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2021-08-04 19:46:28.632872300 +0100 +--- to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2021-08-04 21:06:15.420553000 +0100 +*************** +*** 181,187 **** + + invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + +! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; + + .line 7 + invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; +--- 181,187 ---- + + invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V + +! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; + + .line 7 + invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ +clienthax@DESKTOP-KM4G6JD:/mnt/c/Users/clienthax/Documents/Projects/cutthecord/ugh$ diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali *** from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2021-08-04 19:45:49.058376400 +0100 --- to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2021-08-04 21:13:23.168882700 +0100 *************** diff --git a/resources/patches/nocamerabutton/87202.patch b/resources/patches/nocamerabutton/87202.patch index fb56644..49d6d8e 100644 --- a/resources/patches/nocamerabutton/87202.patch +++ b/resources/patches/nocamerabutton/87202.patch @@ -1,23 +1,8 @@ -diff --color -crB com.discord-87202-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali com.discord-87202/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali -*** com.discord-87202-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:08:14.202391194 +0300 ---- com.discord-87202/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-08-22 22:14:01.302308963 +0300 -*************** -*** 183,189 **** - - if-nez v4, :cond_5 - -! const/4 v9, 0x0 - - goto :goto_0 - ---- 183,189 ---- - - if-nez v4, :cond_5 - -! const/16 v9, 0x8 - - goto :goto_0 - +Binary files com.discord-base/build/apk/classes3.dex and com.discord/build/apk/classes3.dex differ +Binary files com.discord-base/dist/com.discord-78204.apk and com.discord/dist/com.discord-78204.apk differ +diff -crB com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali com.discord/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali +*** com.discord-base/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-05-31 14:05:59.000000000 +0300 +--- com.discord/smali_classes3/com/lytefast/flexinput/fragment/FlexInputFragment$d.smali 2021-05-31 16:02:21.000000000 +0300 *************** *** 206,212 **** @@ -35,20 +20,3 @@ diff --color -crB com.discord-87202-base/smali_classes3/com/lytefast/flexinput/f goto :goto_1 -*************** -*** 234,240 **** - goto :goto_2 - - :cond_7 -! const/16 v4, 0x8 - - :goto_2 - invoke-virtual {v5, v4}, Landroid/widget/ImageButton;->setVisibility(I)V ---- 234,240 ---- - goto :goto_2 - - :cond_7 -! const/16 v4, 0x0 - - :goto_2 - invoke-virtual {v5, v4}, Landroid/widget/ImageButton;->setVisibility(I)V diff --git a/resources/patches/notrack/87202-post.sh b/resources/patches/notrack/87202-post.sh deleted file mode 100644 index 27b03f0..0000000 --- a/resources/patches/notrack/87202-post.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -mv smali/com/airbnb smali_classes2/com/ diff --git a/resources/patches/notrack/87202.patch b/resources/patches/notrack/87202.patch deleted file mode 100644 index 9e0a738..0000000 --- a/resources/patches/notrack/87202.patch +++ /dev/null @@ -1,1341 +0,0 @@ -diff -crB from/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali to/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali -*** from/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali 2021-08-10 20:24:15.471210700 +0100 ---- to/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali 2021-08-21 17:10:11.604448700 +0100 -*************** -*** 208,216 **** - .method public static final synthetic access$drainEventsQueue(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V - .locals 0 - -- .line 1 -- invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->drainEventsQueue()V -- - return-void - .end method - ---- 208,213 ---- -*************** -*** 233,337 **** - .end method - - .method private final declared-synchronized drainEventsQueue()V -! .locals 15 -! -! monitor-enter p0 -! -! .line 1 -! :try_start_0 -! invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->getCanDrain()Z -! -! move-result v0 -! :try_end_0 -! .catchall {:try_start_0 .. :try_end_0} :catchall_0 -! -! if-nez v0, :cond_0 -! -! .line 2 -! monitor-exit p0 -! -! return-void -! -! .line 3 -! :cond_0 -! :try_start_1 -! new-instance v0, Ljava/util/ArrayList; -! -! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue; -! -! invoke-direct {v0, v1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V -! -! .line 4 -! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue; -! -! invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->clear()V -! -! .line 5 -! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->restAPI:Lcom/discord/utilities/rest/RestAPI; -! -! .line 6 -! new-instance v2, Lcom/discord/api/science/Science; -! -! iget-object v3, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->analyticsToken:Ljava/lang/String; -! -! invoke-direct {v2, v3, v0}, Lcom/discord/api/science/Science;->(Ljava/lang/String;Ljava/util/List;)V -! -! invoke-virtual {v1, v2}, Lcom/discord/utilities/rest/RestAPI;->science(Lcom/discord/api/science/Science;)Lrx/Observable; -! -! move-result-object v1 -! -! const/4 v2, 0x0 -! -! const/4 v3, 0x1 -! -! const/4 v4, 0x0 -! -! .line 7 -! invoke-static {v1, v2, v3, v4}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->restSubscribeOn$default(Lrx/Observable;ZILjava/lang/Object;)Lrx/Observable; -! -! move-result-object v5 -! -! .line 8 -! invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; -! -! move-result-object v6 -! -! const/4 v7, 0x0 -! -! const/4 v8, 0x0 -! -! .line 9 -! sget-object v12, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1; -! -! const/4 v10, 0x0 -! -! const/4 v11, 0x0 -! -! .line 10 -! new-instance v9, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2; -! -! invoke-direct {v9, p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2;->(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/util/ArrayList;)V -! -! const/16 v13, 0x36 -! -! const/4 v14, 0x0 -! -! .line 11 -! invoke-static/range {v5 .. v14}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V -! :try_end_1 -! .catchall {:try_start_1 .. :try_end_1} :catchall_0 -! -! .line 12 -! monitor-exit p0 - - return-void -- -- :catchall_0 -- move-exception v0 -- -- monitor-exit p0 -- -- throw v0 - .end method - - .method private final getCanDrain()Z ---- 230,238 ---- - .end method - - .method private final declared-synchronized drainEventsQueue()V -! .locals 0 - - return-void - .end method - - .method private final getCanDrain()Z -*************** -*** 605,636 **** - .method public static synthetic setTrackingData$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;ZILjava/lang/Object;)V - .locals 0 - -- and-int/lit8 p3, p3, 0x2 -- -- if-eqz p3, :cond_0 -- -- const/4 p2, 0x0 -- -- .line 1 -- :cond_0 -- invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->setTrackingData(Ljava/lang/String;Z)V -- - return-void - .end method - - .method public static synthetic track$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V - .locals 0 - -- and-int/lit8 p3, p3, 0x2 -- -- if-eqz p3, :cond_0 -- -- const/4 p2, 0x0 -- -- .line 1 -- :cond_0 -- invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V -- - return-void - .end method - ---- 506,517 ---- -*************** -*** 703,943 **** - .end method - - .method public final track(Lcom/discord/api/science/AnalyticsSchema;)V -! .locals 1 -! -! const-string v0, "analyticsSchema" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 7 -! new-instance v0, Lcom/discord/api/science/Science$Event$SchemaObject; -! -! invoke-direct {v0, p1}, Lcom/discord/api/science/Science$Event$SchemaObject;->(Lcom/discord/api/science/AnalyticsSchema;)V -! -! invoke-virtual {p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Lcom/discord/api/science/Science$Event;)V - - return-void - .end method - - .method public final track(Lcom/discord/api/science/Science$Event;)V -! .locals 12 -! -! const-string v0, "event" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 8 -! iget-object v0, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue; -! -! invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z -! -! .line 9 -! sget-object p1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; -! -! const-wide/16 v0, 0x5dc -! -! invoke-static {v0, v1, p1}, Lrx/Observable;->d0(JLjava/util/concurrent/TimeUnit;)Lrx/Observable; -! -! move-result-object v2 -! -! const-string p1, "Observable\n .ti\u20260, TimeUnit.MILLISECONDS)" -! -! invoke-static {v2, p1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 10 -! const-class v3, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker; -! -! new-instance v9, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1; -! -! invoke-direct {v9, p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1;->(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V -! -! const/4 v4, 0x0 -! -! const/4 v5, 0x0 -! -! const/4 v6, 0x0 -! -! const/4 v7, 0x0 -! -! const/4 v8, 0x0 -! -! const/16 v10, 0x3e -! -! const/4 v11, 0x0 -! -! invoke-static/range {v2 .. v11}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V -! - return-void - .end method - - .method public final track(Ljava/lang/String;Ljava/util/Map;)V -! .locals 1 -! .annotation system Ldalvik/annotation/Signature; -! value = { -! "(", -! "Ljava/lang/String;", -! "Ljava/util/Map<", -! "Ljava/lang/String;", -! "+", -! "Ljava/lang/Object;", -! ">;)V" -! } -! .end annotation -! -! const-string v0, "event" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 6 -! new-instance v0, Lcom/discord/api/science/Science$Event$MapObject; -! -! if-eqz p2, :cond_0 -! -! goto :goto_0 -! -! :cond_0 -! invoke-static {}, Ld0/t/h0;->emptyMap()Ljava/util/Map; -! -! move-result-object p2 -! -! :goto_0 -! invoke-direct {v0, p1, p2}, Lcom/discord/api/science/Science$Event$MapObject;->(Ljava/lang/String;Ljava/util/Map;)V -! -! invoke-virtual {p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Lcom/discord/api/science/Science$Event;)V -! - return-void - .end method - - .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V -! .locals 2 -! .annotation system Ldalvik/annotation/Signature; -! value = { -! "(", -! "Lkotlin/Pair<", -! "Ljava/lang/String;", -! "Ljava/lang/Long;", -! ">;J", -! "Lkotlin/jvm/functions/Function0<", -! "+", -! "Ljava/util/Map<", -! "Ljava/lang/String;", -! "+", -! "Ljava/lang/Object;", -! ">;>;)V" -! } -! .end annotation -! -! const-string/jumbo v0, "throttleKey" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! const-string v0, "lazyPropertyProvider" -! -! invoke-static {p4, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 1 -! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->isEventThrottled(Lkotlin/Pair;)Z -! -! move-result v0 -! -! if-eqz v0, :cond_0 -! -! return-void -! -! .line 2 -! :cond_0 -! invoke-virtual {p1}, Lkotlin/Pair;->component1()Ljava/lang/Object; -! -! move-result-object v0 -! -! check-cast v0, Ljava/lang/String; -! -! .line 3 -! invoke-interface {p4}, Lkotlin/jvm/functions/Function0;->invoke()Ljava/lang/Object; -! -! move-result-object p4 -! -! check-cast p4, Ljava/util/Map; -! -! invoke-virtual {p0, v0, p4}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V -! -! .line 4 -! iget-object p4, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->clock:Lcom/discord/utilities/time/Clock; -! -! invoke-interface {p4}, Lcom/discord/utilities/time/Clock;->currentTimeMillis()J -! -! move-result-wide v0 -! -! .line 5 -! iget-object p4, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsThrottledUntilMillis:Ljava/util/concurrent/ConcurrentHashMap; -! -! add-long/2addr v0, p2 -! -! invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; -! -! move-result-object p2 -! -! invoke-interface {p4, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -! - return-void - .end method - - .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V -! .locals 8 -! .annotation system Ldalvik/annotation/Signature; -! value = { -! "(", -! "Ljava/lang/String;", -! "Ljava/util/Map<", -! "Ljava/lang/String;", -! "+", -! "Ljava/lang/Object;", -! ">;)V" -! } -! .end annotation -! -! const-string v0, "event" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! const-string/jumbo v0, "properties" -! -! invoke-static {p2, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 1 -! new-instance v0, Landroid/os/Bundle; -! -! invoke-direct {v0}, Landroid/os/Bundle;->()V -! -! invoke-direct {p0, v0, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->putMap(Landroid/os/Bundle;Ljava/util/Map;)Landroid/os/Bundle; -! -! move-result-object v4 -! -! .line 2 -! sget-object p2, Lcom/discord/utilities/analytics/AnalyticsUtils;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils; -! -! invoke-static {p2}, Lcom/discord/utilities/analytics/AnalyticsUtils;->access$getFireBaseInstance$p(Lcom/discord/utilities/analytics/AnalyticsUtils;)Lcom/google/firebase/analytics/FirebaseAnalytics; -! -! move-result-object p2 -! -! if-eqz p2, :cond_0 -! -! .line 3 -! iget-object v1, p2, Lcom/google/firebase/analytics/FirebaseAnalytics;->b:Lc/i/a/f/h/l/g; -! -! const/4 v2, 0x0 -! -! const/4 v5, 0x0 -! -! const/4 v6, 0x1 -! -! const/4 v7, 0x0 -! -! move-object v3, p1 -! -! .line 4 -! invoke-virtual/range {v1 .. v7}, Lc/i/a/f/h/l/g;->c(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ZZLjava/lang/Long;)V -! -! :cond_0 - return-void - .end method ---- 584,610 ---- - .end method - - .method public final track(Lcom/discord/api/science/AnalyticsSchema;)V -! .locals 0 - - return-void - .end method - - .method public final track(Lcom/discord/api/science/Science$Event;)V -! .locals 0 - return-void - .end method - - .method public final track(Ljava/lang/String;Ljava/util/Map;)V -! .locals 0 - return-void - .end method - - .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V -! .locals 0 - return-void - .end method - - .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V -! .locals 0 - return-void - .end method - -diff -crB from/smali/com/adjust/sdk/AdjustInstance.smali to/smali/com/adjust/sdk/AdjustInstance.smali -*** from/smali/com/adjust/sdk/AdjustInstance.smali 2021-08-21 17:20:11.626794200 +0100 ---- to/smali/com/adjust/sdk/AdjustInstance.smali 2021-08-21 17:20:28.335287700 +0100 -*************** -*** 514,541 **** - - .method public isEnabled()Z - .locals 1 -! -! .line 1 -! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z -! -! move-result v0 -! -! if-nez v0, :cond_0 -! -! .line 2 -! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->isInstanceEnabled()Z -! -! move-result v0 -! -! return v0 -! -! .line 3 -! :cond_0 -! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler; -! -! invoke-interface {v0}, Lcom/adjust/sdk/IActivityHandler;->isEnabled()Z -! -! move-result v0 - - return v0 - .end method ---- 514,521 ---- - - .method public isEnabled()Z - .locals 1 -! -! const/4 v0, 0x0 - - return v0 - .end method -*************** -*** 1281,1344 **** - .end method - - .method public trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V -! .locals 1 -! -! .line 1 -! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z -! -! move-result v0 -! -! if-nez v0, :cond_0 -! -! return-void -! -! .line 2 -! :cond_0 -! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler; -! -! invoke-interface {v0, p1, p2}, Lcom/adjust/sdk/IActivityHandler;->trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V - - return-void - .end method - - .method public trackEvent(Lcom/adjust/sdk/AdjustEvent;)V -! .locals 1 -! -! .line 1 -! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z -! -! move-result v0 -! -! if-nez v0, :cond_0 -! -! return-void -! -! .line 2 -! :cond_0 -! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler; -! -! invoke-interface {v0, p1}, Lcom/adjust/sdk/IActivityHandler;->trackEvent(Lcom/adjust/sdk/AdjustEvent;)V - - return-void - .end method - - .method public trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V -! .locals 1 -! -! .line 1 -! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z -! -! move-result v0 -! -! if-nez v0, :cond_0 -! -! return-void -! -! .line 2 -! :cond_0 -! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler; -! -! invoke-interface {v0, p1}, Lcom/adjust/sdk/IActivityHandler;->trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V - - return-void - .end method ---- 1261,1279 ---- - .end method - - .method public trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V -! .locals 0 - - return-void - .end method - - .method public trackEvent(Lcom/adjust/sdk/AdjustEvent;)V -! .locals 0 - - return-void - .end method - - .method public trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V -! .locals 0 - - return-void - .end method -diff -crB from/smali/com/discord/utilities/analytics/AdjustConfig.smali to/smali/com/discord/utilities/analytics/AdjustConfig.smali -*** from/smali/com/discord/utilities/analytics/AdjustConfig.smali 2020-11-20 16:30:28.163767600 +0000 ---- to/smali/com/discord/utilities/analytics/AdjustConfig.smali 2020-11-20 16:31:00.958556852 +0000 -*************** -*** 12,18 **** - - - # static fields -! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "d8fcx8xdmrr4" - - .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String; - ---- 12,18 ---- - - - # static fields -! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "aaaaaaaaaaaa" - - .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String; - -diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali -*** from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-11-20 16:30:28.167767702 +0000 ---- to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-11-20 16:31:13.916842340 +0000 -*************** -*** 261,267 **** - .method private final setBaselineProperties()V - .locals 8 - -! const/16 v0, 0x9 - - new-array v0, v0, [Lkotlin/Pair; - ---- 261,267 ---- - .method private final setBaselineProperties()V - .locals 8 - -! const/16 v0, 0x3 - - new-array v0, v0, [Lkotlin/Pair; - -*************** -*** 291,357 **** - - aput-object v1, v0, v2 - -- const v1, 0x154a2 -- -- .line 3 -- invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; -- -- move-result-object v1 -- -- const-string v2, "client_build_number" -- -- invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -- -- move-result-object v1 -- -- const/4 v2, 0x2 -- -- aput-object v1, v0, v2 -- -- const-string v1, "client_version" -- -- const-string v2, "87.2 - Alpha" -- -- .line 4 -- invoke-static {v1, v2}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -- -- move-result-object v1 -- -- const/4 v2, 0x3 -- -- aput-object v1, v0, v2 -- -- .line 5 -- new-instance v1, Ljava/lang/StringBuilder; -- -- invoke-direct {v1}, Ljava/lang/StringBuilder;->()V -- -- sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String; -- -- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; -- -- const-string v2, ", " -- -- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; -- -- sget-object v2, Landroid/os/Build;->PRODUCT:Ljava/lang/String; -- -- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; -- -- invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; -- -- move-result-object v1 -- -- const-string v2, "device" -- -- invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -- -- move-result-object v1 -- -- const/4 v2, 0x4 -- -- aput-object v1, v0, v2 -- - const-string/jumbo v1, "os" - - const-string v2, "Android" ---- 291,296 ---- -*************** -*** 361,434 **** - - move-result-object v1 - -! const/4 v2, 0x5 -! -! aput-object v1, v0, v2 -! -! .line 7 -! sget v1, Landroid/os/Build$VERSION;->SDK_INT:I -! -! invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; -! -! move-result-object v1 -! -! const-string/jumbo v2, "os_sdk_version" -! -! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object v1 -! -! const/4 v2, 0x6 -! -! aput-object v1, v0, v2 -! -! .line 8 -! sget-object v1, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String; -! -! const-string/jumbo v2, "os_version" -! -! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object v1 -! -! const/4 v2, 0x7 -! -! aput-object v1, v0, v2 -! -! .line 9 -! invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; -! -! move-result-object v1 -! -! invoke-virtual {v1}, Ljava/util/Locale;->toString()Ljava/lang/String; -! -! move-result-object v2 -! -! const-string v1, "Locale.getDefault().toString()" -! -! invoke-static {v2, v1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V -! -! const-string v3, "_" -! -! const-string v4, "-" -! -! const/4 v5, 0x0 -! -! const/4 v6, 0x4 -! -! const/4 v7, 0x0 -! -! invoke-static/range {v2 .. v7}, Ld0/g0/t;->replace$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Ljava/lang/String; -! -! move-result-object v1 -! -! const-string/jumbo v2, "system_locale" -! -! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object v1 -! -! const/16 v2, 0x8 - - aput-object v1, v0, v2 - ---- 300,306 ---- - - move-result-object v1 - -! const/4 v2, 0x2 - - aput-object v1, v0, v2 - -*************** -*** 561,1091 **** - .end method - - .method public final setAccessibilityProperties(ZLjava/util/EnumSet;)V -! .locals 4 -! .annotation system Ldalvik/annotation/Signature; -! value = { -! "(Z", -! "Ljava/util/EnumSet<", -! "Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags;", -! ">;)V" -! } -! .end annotation -! -! const-string v0, "features" -! -! invoke-static {p2, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! .line 1 -! invoke-interface {p2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; -! -! move-result-object p2 -! -! const-wide/16 v0, 0x0 -! -! :goto_0 -! invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z -! -! move-result v2 -! -! if-eqz v2, :cond_0 -! -! invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object; -! -! move-result-object v2 -! -! check-cast v2, Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags; -! -! .line 2 -! invoke-virtual {v2}, Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags;->getValue()J -! -! move-result-wide v2 -! -! or-long/2addr v0, v2 -! -! goto :goto_0 -! -! :cond_0 -! const/4 p2, 0x2 -! -! new-array p2, p2, [Lkotlin/Pair; -! -! const/4 v2, 0x0 -! -! .line 3 -! invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; -! -! move-result-object p1 -! -! const-string v3, "accessibility_support_enabled" -! -! invoke-static {v3, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object p1 -! -! aput-object p1, p2, v2 -! -! const/4 p1, 0x1 -! -! .line 4 -! invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; -! -! move-result-object v0 -! -! const-string v1, "accessibility_features" -! -! invoke-static {v1, v0}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object v0 -! -! aput-object v0, p2, p1 -! -! .line 5 -! invoke-static {p2}, Ld0/t/h0;->mapOf([Lkotlin/Pair;)Ljava/util/Map; -! -! move-result-object p1 -! -! .line 6 -! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V - - return-void - .end method - - .method public final setAdvertiserId(Ljava/lang/String;)V -! .locals 1 -! -! const-string v0, "advertiserId" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! const-string v0, "device_advertiser_id" -! -! .line 1 -! invoke-static {v0, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object p1 -! -! invoke-static {p1}, Ld0/t/g0;->mapOf(Lkotlin/Pair;)Ljava/util/Map; -! -! move-result-object p1 -! -! .line 2 -! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V - - return-void - .end method - - .method public final setCampaignProperties(Ljava/lang/String;)V -! .locals 11 -! -! const-string/jumbo v0, "referrerUrl" -! -! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -! -! const/4 v0, 0x1 -! -! new-array v1, v0, [Lkotlin/Pair; -! -! const-string/jumbo v2, "referrer" -! -! .line 1 -! invoke-static {v2, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object v2 -! -! const/4 v3, 0x0 -! -! aput-object v2, v1, v3 -! -! .line 2 -! invoke-static {v1}, Ld0/t/h0;->mutableMapOf([Lkotlin/Pair;)Ljava/util/Map; -! -! move-result-object v1 -! -! const-string v2, "&" -! -! .line 3 -! filled-new-array {v2}, [Ljava/lang/String; -! -! move-result-object v5 -! -! const/4 v6, 0x0 -! -! const/4 v7, 0x0 -! -! const/4 v8, 0x6 -! -! const/4 v9, 0x0 -! -! move-object v4, p1 -! -! invoke-static/range {v4 .. v9}, Ld0/g0/w;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List; -! -! move-result-object p1 -! -! .line 4 -! new-instance v2, Ljava/util/ArrayList; -! -! const/16 v4, 0xa -! -! invoke-static {p1, v4}, Ld0/t/o;->collectionSizeOrDefault(Ljava/lang/Iterable;I)I -! -! move-result v4 -! -! invoke-direct {v2, v4}, Ljava/util/ArrayList;->(I)V -! -! .line 5 -! invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; -! -! move-result-object p1 -! -! :goto_0 -! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z -! -! move-result v4 -! -! if-eqz v4, :cond_0 -! -! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; -! -! move-result-object v4 -! -! .line 6 -! move-object v5, v4 -! -! check-cast v5, Ljava/lang/String; -! -! const-string v4, "=" -! -! .line 7 -! filled-new-array {v4}, [Ljava/lang/String; -! -! move-result-object v6 -! -! const/4 v7, 0x0 -! -! const/4 v8, 0x0 -! -! const/4 v9, 0x6 -! -! const/4 v10, 0x0 -! -! invoke-static/range {v5 .. v10}, Ld0/g0/w;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List; -! -! move-result-object v4 -! -! invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z -! -! goto :goto_0 -! -! .line 8 -! :cond_0 -! new-instance p1, Ljava/util/ArrayList; -! -! invoke-direct {p1}, Ljava/util/ArrayList;->()V -! -! .line 9 -! invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; -! -! move-result-object v2 -! -! :cond_1 -! :goto_1 -! invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z -! -! move-result v4 -! -! if-eqz v4, :cond_3 -! -! invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; -! -! move-result-object v4 -! -! move-object v5, v4 -! -! check-cast v5, Ljava/util/List; -! -! .line 10 -! invoke-interface {v5}, Ljava/util/List;->size()I -! -! move-result v5 -! -! const/4 v6, 0x2 -! -! if-ne v5, v6, :cond_2 -! -! const/4 v5, 0x1 -! -! goto :goto_2 -! -! :cond_2 -! const/4 v5, 0x0 -! -! :goto_2 -! if-eqz v5, :cond_1 -! -! invoke-interface {p1, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z -! -! goto :goto_1 -! -! .line 11 -! :cond_3 -! new-instance v2, Ljava/util/ArrayList; -! -! invoke-direct {v2}, Ljava/util/ArrayList;->()V -! -! .line 12 -! invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; -! -! move-result-object p1 -! -! :cond_4 -! :goto_3 -! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z -! -! move-result v4 -! -! if-eqz v4, :cond_6 -! -! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; -! -! move-result-object v4 -! -! move-object v5, v4 -! -! check-cast v5, Ljava/util/List; -! -! .line 13 -! invoke-interface {v5, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; -! -! move-result-object v5 -! -! check-cast v5, Ljava/lang/String; -! -! invoke-virtual {v5}, Ljava/lang/String;->hashCode()I -! -! move-result v6 -! -! sparse-switch v6, :sswitch_data_0 -! -! goto :goto_5 -! -! :sswitch_0 -! const-string/jumbo v6, "utm_source" -! -! .line 14 -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_1 -! const-string v6, "location" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_2 -! const-string/jumbo v6, "utm_medium" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_3 -! const-string/jumbo v6, "search_engine" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_4 -! const-string/jumbo v6, "mp_keyword" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_5 -! const-string/jumbo v6, "utm_term" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_6 -! const-string/jumbo v6, "utm_campaign" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_7 -! const-string/jumbo v6, "referring_domain" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! goto :goto_4 -! -! :sswitch_8 -! const-string/jumbo v6, "utm_content" -! -! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z -! -! move-result v5 -! -! if-eqz v5, :cond_5 -! -! :goto_4 -! const/4 v5, 0x1 -! -! goto :goto_6 -! -! :cond_5 -! :goto_5 -! const/4 v5, 0x0 -! -! :goto_6 -! if-eqz v5, :cond_4 -! -! .line 15 -! invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z -! -! goto :goto_3 -! -! .line 16 -! :cond_6 -! invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; -! -! move-result-object p1 -! -! :goto_7 -! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z -! -! move-result v2 -! -! if-eqz v2, :cond_7 -! -! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; -! -! move-result-object v2 -! -! .line 17 -! check-cast v2, Ljava/util/List; -! -! .line 18 -! invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; -! -! move-result-object v4 -! -! check-cast v4, Ljava/lang/String; -! -! invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; -! -! move-result-object v2 -! -! check-cast v2, Ljava/lang/String; -! -! invoke-interface {v1, v4, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -! -! goto :goto_7 -! -! .line 19 -! :cond_7 -! invoke-direct {p0, v1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V - - return-void -- -- nop -- -- :sswitch_data_0 -- .sparse-switch -- -0x5bc8ed18 -> :sswitch_8 -- -0x40f32acd -> :sswitch_7 -- -0x3db0f7f -> :sswitch_6 -- 0x31ad945d -> :sswitch_5 -- 0x3d3a7f4d -> :sswitch_4 -- 0x3f4764b9 -> :sswitch_3 -- 0x70a1a726 -> :sswitch_2 -- 0x714f9fb5 -> :sswitch_1 -- 0x7b737fcc -> :sswitch_0 -- .end sparse-switch - .end method - - .method public final setClientPerformanceProperties(IJ)V -! .locals 2 -! -! const/4 v0, 0x2 -! -! new-array v0, v0, [Lkotlin/Pair; -! -! .line 1 -! invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; -! -! move-result-object p1 -! -! const-string v1, "client_performance_cpu" -! -! invoke-static {v1, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object p1 -! -! const/4 v1, 0x0 -! -! aput-object p1, v0, v1 -! -! .line 2 -! invoke-static {p2, p3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; -! -! move-result-object p1 -! -! const-string p2, "client_performance_memory" -! -! invoke-static {p2, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; -! -! move-result-object p1 -! -! const/4 p2, 0x1 -! -! aput-object p1, v0, p2 -! -! .line 3 -! invoke-static {v0}, Ld0/t/h0;->mapOf([Lkotlin/Pair;)Ljava/util/Map; -! -! move-result-object p1 -! -! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V - - return-void - .end method ---- 433,457 ---- - .end method - - .method public final setAccessibilityProperties(ZLjava/util/EnumSet;)V -! .locals 0 - - return-void - .end method - - .method public final setAdvertiserId(Ljava/lang/String;)V -! .locals 0 - - return-void - .end method - - .method public final setCampaignProperties(Ljava/lang/String;)V -! .locals 0 - - return-void - .end method - - .method public final setClientPerformanceProperties(IJ)V -! .locals 0 - - return-void - .end method - -diff -crB from/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali to/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali -*** from/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali 2020-11-20 16:30:28.229769289 +0000 ---- to/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali 2020-11-20 16:31:00.958556852 +0000 -*************** -*** 68,74 **** - - invoke-direct {v1}, Ljava/lang/StringBuilder;->()V - -! const-string v2, "https://app.adjust.com/ndjczk?campaign=" - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - ---- 68,74 ---- - - invoke-direct {v1}, Ljava/lang/StringBuilder;->()V - -! const-string v2, "https://play.google.com/store/apps/details?id=com.spotify.music&trash=" - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - diff --git a/resources/old-patches/slashcommands/1006.patch b/resources/patches/slashcommands/1006.patch similarity index 100% rename from resources/old-patches/slashcommands/1006.patch rename to resources/patches/slashcommands/1006.patch diff --git a/resources/old-patches/slashcommands/1007.patch b/resources/patches/slashcommands/1007.patch similarity index 100% rename from resources/old-patches/slashcommands/1007.patch rename to resources/patches/slashcommands/1007.patch diff --git a/resources/old-patches/slashcommands/1011.patch b/resources/patches/slashcommands/1011.patch similarity index 100% rename from resources/old-patches/slashcommands/1011.patch rename to resources/patches/slashcommands/1011.patch diff --git a/resources/old-patches/slashcommands/1012.patch b/resources/patches/slashcommands/1012.patch similarity index 100% rename from resources/old-patches/slashcommands/1012.patch rename to resources/patches/slashcommands/1012.patch diff --git a/resources/old-patches/slashcommands/1013.patch b/resources/patches/slashcommands/1013.patch similarity index 100% rename from resources/old-patches/slashcommands/1013.patch rename to resources/patches/slashcommands/1013.patch diff --git a/resources/old-patches/slashcommands/1015.patch b/resources/patches/slashcommands/1015.patch similarity index 100% rename from resources/old-patches/slashcommands/1015.patch rename to resources/patches/slashcommands/1015.patch diff --git a/resources/old-patches/slashcommands/1016.patch b/resources/patches/slashcommands/1016.patch similarity index 100% rename from resources/old-patches/slashcommands/1016.patch rename to resources/patches/slashcommands/1016.patch diff --git a/resources/old-patches/slashcommands/1019.patch b/resources/patches/slashcommands/1019.patch similarity index 100% rename from resources/old-patches/slashcommands/1019.patch rename to resources/patches/slashcommands/1019.patch diff --git a/resources/old-patches/slashcommands/1020.patch b/resources/patches/slashcommands/1020.patch similarity index 100% rename from resources/old-patches/slashcommands/1020.patch rename to resources/patches/slashcommands/1020.patch diff --git a/resources/old-patches/slashcommands/1021.patch b/resources/patches/slashcommands/1021.patch similarity index 100% rename from resources/old-patches/slashcommands/1021.patch rename to resources/patches/slashcommands/1021.patch diff --git a/resources/old-patches/slashcommands/1022.patch b/resources/patches/slashcommands/1022.patch similarity index 100% rename from resources/old-patches/slashcommands/1022.patch rename to resources/patches/slashcommands/1022.patch diff --git a/resources/old-patches/slashcommands/1023.patch b/resources/patches/slashcommands/1023.patch similarity index 100% rename from resources/old-patches/slashcommands/1023.patch rename to resources/patches/slashcommands/1023.patch diff --git a/resources/old-patches/slashcommands/1024.patch b/resources/patches/slashcommands/1024.patch similarity index 100% rename from resources/old-patches/slashcommands/1024.patch rename to resources/patches/slashcommands/1024.patch diff --git a/resources/old-patches/slashcommands/1025.patch b/resources/patches/slashcommands/1025.patch similarity index 100% rename from resources/old-patches/slashcommands/1025.patch rename to resources/patches/slashcommands/1025.patch diff --git a/resources/old-patches/slashcommands/1026.patch b/resources/patches/slashcommands/1026.patch similarity index 100% rename from resources/old-patches/slashcommands/1026.patch rename to resources/patches/slashcommands/1026.patch diff --git a/resources/old-patches/slashcommands/1029.patch b/resources/patches/slashcommands/1029.patch similarity index 100% rename from resources/old-patches/slashcommands/1029.patch rename to resources/patches/slashcommands/1029.patch diff --git a/resources/old-patches/slashcommands/1031.patch b/resources/patches/slashcommands/1031.patch similarity index 100% rename from resources/old-patches/slashcommands/1031.patch rename to resources/patches/slashcommands/1031.patch diff --git a/resources/old-patches/slashcommands/1032.patch b/resources/patches/slashcommands/1032.patch similarity index 100% rename from resources/old-patches/slashcommands/1032.patch rename to resources/patches/slashcommands/1032.patch diff --git a/resources/old-patches/slashcommands/1033.patch b/resources/patches/slashcommands/1033.patch similarity index 100% rename from resources/old-patches/slashcommands/1033.patch rename to resources/patches/slashcommands/1033.patch diff --git a/resources/old-patches/slashcommands/1036.patch b/resources/patches/slashcommands/1036.patch similarity index 100% rename from resources/old-patches/slashcommands/1036.patch rename to resources/patches/slashcommands/1036.patch diff --git a/resources/old-patches/slashcommands/1037.patch b/resources/patches/slashcommands/1037.patch similarity index 100% rename from resources/old-patches/slashcommands/1037.patch rename to resources/patches/slashcommands/1037.patch diff --git a/resources/old-patches/slashcommands/1040.patch b/resources/patches/slashcommands/1040.patch similarity index 100% rename from resources/old-patches/slashcommands/1040.patch rename to resources/patches/slashcommands/1040.patch diff --git a/resources/old-patches/slashcommands/1041.patch b/resources/patches/slashcommands/1041.patch similarity index 100% rename from resources/old-patches/slashcommands/1041.patch rename to resources/patches/slashcommands/1041.patch diff --git a/resources/old-patches/slashcommands/1045.patch b/resources/patches/slashcommands/1045.patch similarity index 100% rename from resources/old-patches/slashcommands/1045.patch rename to resources/patches/slashcommands/1045.patch diff --git a/resources/old-patches/slashcommands/1046.patch b/resources/patches/slashcommands/1046.patch similarity index 100% rename from resources/old-patches/slashcommands/1046.patch rename to resources/patches/slashcommands/1046.patch diff --git a/resources/old-patches/slashcommands/1047.patch b/resources/patches/slashcommands/1047.patch similarity index 100% rename from resources/old-patches/slashcommands/1047.patch rename to resources/patches/slashcommands/1047.patch diff --git a/resources/old-patches/slashcommands/1049.patch b/resources/patches/slashcommands/1049.patch similarity index 100% rename from resources/old-patches/slashcommands/1049.patch rename to resources/patches/slashcommands/1049.patch diff --git a/resources/old-patches/slashcommands/1052.patch b/resources/patches/slashcommands/1052.patch similarity index 100% rename from resources/old-patches/slashcommands/1052.patch rename to resources/patches/slashcommands/1052.patch diff --git a/resources/old-patches/slashcommands/1053.patch b/resources/patches/slashcommands/1053.patch similarity index 100% rename from resources/old-patches/slashcommands/1053.patch rename to resources/patches/slashcommands/1053.patch diff --git a/resources/old-patches/slashcommands/1054.patch b/resources/patches/slashcommands/1054.patch similarity index 100% rename from resources/old-patches/slashcommands/1054.patch rename to resources/patches/slashcommands/1054.patch diff --git a/resources/old-patches/slashcommands/1056.patch b/resources/patches/slashcommands/1056.patch similarity index 100% rename from resources/old-patches/slashcommands/1056.patch rename to resources/patches/slashcommands/1056.patch diff --git a/resources/old-patches/slashcommands/1057.patch b/resources/patches/slashcommands/1057.patch similarity index 100% rename from resources/old-patches/slashcommands/1057.patch rename to resources/patches/slashcommands/1057.patch diff --git a/resources/old-patches/slashcommands/1062.patch b/resources/patches/slashcommands/1062.patch similarity index 100% rename from resources/old-patches/slashcommands/1062.patch rename to resources/patches/slashcommands/1062.patch diff --git a/resources/old-patches/slashcommands/1065.patch b/resources/patches/slashcommands/1065.patch similarity index 100% rename from resources/old-patches/slashcommands/1065.patch rename to resources/patches/slashcommands/1065.patch diff --git a/resources/old-patches/slashcommands/1066.patch b/resources/patches/slashcommands/1066.patch similarity index 100% rename from resources/old-patches/slashcommands/1066.patch rename to resources/patches/slashcommands/1066.patch diff --git a/resources/old-patches/slashcommands/1069.patch b/resources/patches/slashcommands/1069.patch similarity index 100% rename from resources/old-patches/slashcommands/1069.patch rename to resources/patches/slashcommands/1069.patch diff --git a/resources/old-patches/slashcommands/1073.patch b/resources/patches/slashcommands/1073.patch similarity index 100% rename from resources/old-patches/slashcommands/1073.patch rename to resources/patches/slashcommands/1073.patch diff --git a/resources/old-patches/slashcommands/1074.patch b/resources/patches/slashcommands/1074.patch similarity index 100% rename from resources/old-patches/slashcommands/1074.patch rename to resources/patches/slashcommands/1074.patch diff --git a/resources/old-patches/slashcommands/1078.patch b/resources/patches/slashcommands/1078.patch similarity index 100% rename from resources/old-patches/slashcommands/1078.patch rename to resources/patches/slashcommands/1078.patch diff --git a/resources/old-patches/slashcommands/1084.patch b/resources/patches/slashcommands/1084.patch similarity index 100% rename from resources/old-patches/slashcommands/1084.patch rename to resources/patches/slashcommands/1084.patch diff --git a/resources/old-patches/slashcommands/1085.patch b/resources/patches/slashcommands/1085.patch similarity index 100% rename from resources/old-patches/slashcommands/1085.patch rename to resources/patches/slashcommands/1085.patch diff --git a/resources/old-patches/slashcommands/1087.patch b/resources/patches/slashcommands/1087.patch similarity index 100% rename from resources/old-patches/slashcommands/1087.patch rename to resources/patches/slashcommands/1087.patch diff --git a/resources/old-patches/slashcommands/1091.patch b/resources/patches/slashcommands/1091.patch similarity index 100% rename from resources/old-patches/slashcommands/1091.patch rename to resources/patches/slashcommands/1091.patch diff --git a/resources/old-patches/slashcommands/1092.patch b/resources/patches/slashcommands/1092.patch similarity index 100% rename from resources/old-patches/slashcommands/1092.patch rename to resources/patches/slashcommands/1092.patch diff --git a/resources/old-patches/slashcommands/1100.patch b/resources/patches/slashcommands/1100.patch similarity index 100% rename from resources/old-patches/slashcommands/1100.patch rename to resources/patches/slashcommands/1100.patch diff --git a/resources/old-patches/slashcommands/1103.patch b/resources/patches/slashcommands/1103.patch similarity index 100% rename from resources/old-patches/slashcommands/1103.patch rename to resources/patches/slashcommands/1103.patch diff --git a/resources/old-patches/slashcommands/1104.patch b/resources/patches/slashcommands/1104.patch similarity index 100% rename from resources/old-patches/slashcommands/1104.patch rename to resources/patches/slashcommands/1104.patch diff --git a/resources/old-patches/slashcommands/1105.patch b/resources/patches/slashcommands/1105.patch similarity index 100% rename from resources/old-patches/slashcommands/1105.patch rename to resources/patches/slashcommands/1105.patch diff --git a/resources/old-patches/slashcommands/1107.patch b/resources/patches/slashcommands/1107.patch similarity index 100% rename from resources/old-patches/slashcommands/1107.patch rename to resources/patches/slashcommands/1107.patch diff --git a/resources/old-patches/slashcommands/1123.patch b/resources/patches/slashcommands/1123.patch similarity index 100% rename from resources/old-patches/slashcommands/1123.patch rename to resources/patches/slashcommands/1123.patch diff --git a/resources/old-patches/slashcommands/1132.patch b/resources/patches/slashcommands/1132.patch similarity index 100% rename from resources/old-patches/slashcommands/1132.patch rename to resources/patches/slashcommands/1132.patch diff --git a/resources/old-patches/slashcommands/1134.patch b/resources/patches/slashcommands/1134.patch similarity index 100% rename from resources/old-patches/slashcommands/1134.patch rename to resources/patches/slashcommands/1134.patch diff --git a/resources/old-patches/slashcommands/1144.patch b/resources/patches/slashcommands/1144.patch similarity index 100% rename from resources/old-patches/slashcommands/1144.patch rename to resources/patches/slashcommands/1144.patch diff --git a/resources/old-patches/slashcommands/1145.patch b/resources/patches/slashcommands/1145.patch similarity index 100% rename from resources/old-patches/slashcommands/1145.patch rename to resources/patches/slashcommands/1145.patch diff --git a/resources/old-patches/slashcommands/1146.patch b/resources/patches/slashcommands/1146.patch similarity index 100% rename from resources/old-patches/slashcommands/1146.patch rename to resources/patches/slashcommands/1146.patch diff --git a/resources/old-patches/slashcommands/1148.patch b/resources/patches/slashcommands/1148.patch similarity index 100% rename from resources/old-patches/slashcommands/1148.patch rename to resources/patches/slashcommands/1148.patch diff --git a/resources/old-patches/slashcommands/1150.patch b/resources/patches/slashcommands/1150.patch similarity index 100% rename from resources/old-patches/slashcommands/1150.patch rename to resources/patches/slashcommands/1150.patch diff --git a/resources/old-patches/slashcommands/1167.patch b/resources/patches/slashcommands/1167.patch similarity index 100% rename from resources/old-patches/slashcommands/1167.patch rename to resources/patches/slashcommands/1167.patch diff --git a/resources/old-patches/slashcommands/1169.patch b/resources/patches/slashcommands/1169.patch similarity index 100% rename from resources/old-patches/slashcommands/1169.patch rename to resources/patches/slashcommands/1169.patch diff --git a/resources/old-patches/slashcommands/1171.patch b/resources/patches/slashcommands/1171.patch similarity index 100% rename from resources/old-patches/slashcommands/1171.patch rename to resources/patches/slashcommands/1171.patch diff --git a/resources/old-patches/slashcommands/1180.patch b/resources/patches/slashcommands/1180.patch similarity index 100% rename from resources/old-patches/slashcommands/1180.patch rename to resources/patches/slashcommands/1180.patch diff --git a/resources/old-patches/slashcommands/1181.patch b/resources/patches/slashcommands/1181.patch similarity index 100% rename from resources/old-patches/slashcommands/1181.patch rename to resources/patches/slashcommands/1181.patch diff --git a/resources/old-patches/slashcommands/1192.patch b/resources/patches/slashcommands/1192.patch similarity index 100% rename from resources/old-patches/slashcommands/1192.patch rename to resources/patches/slashcommands/1192.patch diff --git a/resources/old-patches/slashcommands/1196.patch b/resources/patches/slashcommands/1196.patch similarity index 100% rename from resources/old-patches/slashcommands/1196.patch rename to resources/patches/slashcommands/1196.patch diff --git a/resources/old-patches/slashcommands/1200.patch b/resources/patches/slashcommands/1200.patch similarity index 100% rename from resources/old-patches/slashcommands/1200.patch rename to resources/patches/slashcommands/1200.patch diff --git a/resources/old-patches/slashcommands/1201.patch b/resources/patches/slashcommands/1201.patch similarity index 100% rename from resources/old-patches/slashcommands/1201.patch rename to resources/patches/slashcommands/1201.patch diff --git a/resources/old-patches/slashcommands/1208.patch b/resources/patches/slashcommands/1208.patch similarity index 100% rename from resources/old-patches/slashcommands/1208.patch rename to resources/patches/slashcommands/1208.patch diff --git a/resources/old-patches/slashcommands/1213.patch b/resources/patches/slashcommands/1213.patch similarity index 100% rename from resources/old-patches/slashcommands/1213.patch rename to resources/patches/slashcommands/1213.patch diff --git a/resources/old-patches/slashcommands/1216.patch b/resources/patches/slashcommands/1216.patch similarity index 100% rename from resources/old-patches/slashcommands/1216.patch rename to resources/patches/slashcommands/1216.patch diff --git a/resources/old-patches/slashcommands/1218.patch b/resources/patches/slashcommands/1218.patch similarity index 100% rename from resources/old-patches/slashcommands/1218.patch rename to resources/patches/slashcommands/1218.patch diff --git a/resources/old-patches/slashcommands/1223.patch b/resources/patches/slashcommands/1223.patch similarity index 100% rename from resources/old-patches/slashcommands/1223.patch rename to resources/patches/slashcommands/1223.patch diff --git a/resources/old-patches/slashcommands/1243.patch b/resources/patches/slashcommands/1243.patch similarity index 100% rename from resources/old-patches/slashcommands/1243.patch rename to resources/patches/slashcommands/1243.patch diff --git a/resources/old-patches/slashcommands/1246.patch b/resources/patches/slashcommands/1246.patch similarity index 100% rename from resources/old-patches/slashcommands/1246.patch rename to resources/patches/slashcommands/1246.patch diff --git a/resources/old-patches/slashcommands/1249.patch b/resources/patches/slashcommands/1249.patch similarity index 100% rename from resources/old-patches/slashcommands/1249.patch rename to resources/patches/slashcommands/1249.patch diff --git a/resources/old-patches/slashcommands/1251.patch b/resources/patches/slashcommands/1251.patch similarity index 100% rename from resources/old-patches/slashcommands/1251.patch rename to resources/patches/slashcommands/1251.patch diff --git a/resources/old-patches/slashcommands/1252.patch b/resources/patches/slashcommands/1252.patch similarity index 100% rename from resources/old-patches/slashcommands/1252.patch rename to resources/patches/slashcommands/1252.patch diff --git a/resources/old-patches/slashcommands/1259.patch b/resources/patches/slashcommands/1259.patch similarity index 100% rename from resources/old-patches/slashcommands/1259.patch rename to resources/patches/slashcommands/1259.patch diff --git a/resources/old-patches/slashcommands/1266.patch b/resources/patches/slashcommands/1266.patch similarity index 100% rename from resources/old-patches/slashcommands/1266.patch rename to resources/patches/slashcommands/1266.patch diff --git a/resources/old-patches/slashcommands/1270.patch b/resources/patches/slashcommands/1270.patch similarity index 100% rename from resources/old-patches/slashcommands/1270.patch rename to resources/patches/slashcommands/1270.patch diff --git a/resources/old-patches/slashcommands/1273.patch b/resources/patches/slashcommands/1273.patch similarity index 100% rename from resources/old-patches/slashcommands/1273.patch rename to resources/patches/slashcommands/1273.patch diff --git a/resources/old-patches/slashcommands/1279.patch b/resources/patches/slashcommands/1279.patch similarity index 100% rename from resources/old-patches/slashcommands/1279.patch rename to resources/patches/slashcommands/1279.patch diff --git a/resources/old-patches/slashcommands/1280.patch b/resources/patches/slashcommands/1280.patch similarity index 100% rename from resources/old-patches/slashcommands/1280.patch rename to resources/patches/slashcommands/1280.patch diff --git a/resources/old-patches/slashcommands/1281.patch b/resources/patches/slashcommands/1281.patch similarity index 100% rename from resources/old-patches/slashcommands/1281.patch rename to resources/patches/slashcommands/1281.patch diff --git a/resources/old-patches/slashcommands/1282.patch b/resources/patches/slashcommands/1282.patch similarity index 100% rename from resources/old-patches/slashcommands/1282.patch rename to resources/patches/slashcommands/1282.patch diff --git a/resources/old-patches/slashcommands/1284.patch b/resources/patches/slashcommands/1284.patch similarity index 100% rename from resources/old-patches/slashcommands/1284.patch rename to resources/patches/slashcommands/1284.patch diff --git a/resources/old-patches/slashcommands/1290.patch b/resources/patches/slashcommands/1290.patch similarity index 100% rename from resources/old-patches/slashcommands/1290.patch rename to resources/patches/slashcommands/1290.patch diff --git a/resources/old-patches/slashcommands/1294.patch b/resources/patches/slashcommands/1294.patch similarity index 100% rename from resources/old-patches/slashcommands/1294.patch rename to resources/patches/slashcommands/1294.patch diff --git a/resources/old-patches/slashcommands/1295.patch b/resources/patches/slashcommands/1295.patch similarity index 100% rename from resources/old-patches/slashcommands/1295.patch rename to resources/patches/slashcommands/1295.patch diff --git a/resources/old-patches/slashcommands/1298.patch b/resources/patches/slashcommands/1298.patch similarity index 100% rename from resources/old-patches/slashcommands/1298.patch rename to resources/patches/slashcommands/1298.patch diff --git a/resources/old-patches/slashcommands/1300.patch b/resources/patches/slashcommands/1300.patch similarity index 100% rename from resources/old-patches/slashcommands/1300.patch rename to resources/patches/slashcommands/1300.patch diff --git a/resources/old-patches/slashcommands/1301.patch b/resources/patches/slashcommands/1301.patch similarity index 100% rename from resources/old-patches/slashcommands/1301.patch rename to resources/patches/slashcommands/1301.patch diff --git a/resources/old-patches/slashcommands/1304.patch b/resources/patches/slashcommands/1304.patch similarity index 100% rename from resources/old-patches/slashcommands/1304.patch rename to resources/patches/slashcommands/1304.patch diff --git a/resources/old-patches/slashcommands/1306.patch b/resources/patches/slashcommands/1306.patch similarity index 100% rename from resources/old-patches/slashcommands/1306.patch rename to resources/patches/slashcommands/1306.patch diff --git a/resources/old-patches/slashcommands/1307.patch b/resources/patches/slashcommands/1307.patch similarity index 100% rename from resources/old-patches/slashcommands/1307.patch rename to resources/patches/slashcommands/1307.patch diff --git a/resources/old-patches/slashcommands/1310.patch b/resources/patches/slashcommands/1310.patch similarity index 100% rename from resources/old-patches/slashcommands/1310.patch rename to resources/patches/slashcommands/1310.patch diff --git a/resources/old-patches/slashcommands/1315.patch b/resources/patches/slashcommands/1315.patch similarity index 100% rename from resources/old-patches/slashcommands/1315.patch rename to resources/patches/slashcommands/1315.patch diff --git a/resources/old-patches/slashcommands/1318.patch b/resources/patches/slashcommands/1318.patch similarity index 100% rename from resources/old-patches/slashcommands/1318.patch rename to resources/patches/slashcommands/1318.patch diff --git a/resources/old-patches/slashcommands/1330.patch b/resources/patches/slashcommands/1330.patch similarity index 100% rename from resources/old-patches/slashcommands/1330.patch rename to resources/patches/slashcommands/1330.patch diff --git a/resources/old-patches/slashcommands/1334.patch b/resources/patches/slashcommands/1334.patch similarity index 100% rename from resources/old-patches/slashcommands/1334.patch rename to resources/patches/slashcommands/1334.patch diff --git a/resources/old-patches/slashcommands/1339.patch b/resources/patches/slashcommands/1339.patch similarity index 100% rename from resources/old-patches/slashcommands/1339.patch rename to resources/patches/slashcommands/1339.patch diff --git a/resources/old-patches/slashcommands/1340.patch b/resources/patches/slashcommands/1340.patch similarity index 100% rename from resources/old-patches/slashcommands/1340.patch rename to resources/patches/slashcommands/1340.patch diff --git a/resources/old-patches/slashcommands/1355.patch b/resources/patches/slashcommands/1355.patch similarity index 100% rename from resources/old-patches/slashcommands/1355.patch rename to resources/patches/slashcommands/1355.patch diff --git a/resources/old-patches/slashcommands/1356.patch b/resources/patches/slashcommands/1356.patch similarity index 100% rename from resources/old-patches/slashcommands/1356.patch rename to resources/patches/slashcommands/1356.patch diff --git a/resources/old-patches/slashcommands/1358.patch b/resources/patches/slashcommands/1358.patch similarity index 100% rename from resources/old-patches/slashcommands/1358.patch rename to resources/patches/slashcommands/1358.patch diff --git a/resources/old-patches/slashcommands/1361.patch b/resources/patches/slashcommands/1361.patch similarity index 100% rename from resources/old-patches/slashcommands/1361.patch rename to resources/patches/slashcommands/1361.patch diff --git a/resources/old-patches/slashcommands/1362.patch b/resources/patches/slashcommands/1362.patch similarity index 100% rename from resources/old-patches/slashcommands/1362.patch rename to resources/patches/slashcommands/1362.patch diff --git a/resources/old-patches/slashcommands/1365.patch b/resources/patches/slashcommands/1365.patch similarity index 100% rename from resources/old-patches/slashcommands/1365.patch rename to resources/patches/slashcommands/1365.patch diff --git a/resources/old-patches/slashcommands/1367.patch b/resources/patches/slashcommands/1367.patch similarity index 100% rename from resources/old-patches/slashcommands/1367.patch rename to resources/patches/slashcommands/1367.patch diff --git a/resources/old-patches/slashcommands/1368.patch b/resources/patches/slashcommands/1368.patch similarity index 100% rename from resources/old-patches/slashcommands/1368.patch rename to resources/patches/slashcommands/1368.patch diff --git a/resources/old-patches/slashcommands/1370.patch b/resources/patches/slashcommands/1370.patch similarity index 100% rename from resources/old-patches/slashcommands/1370.patch rename to resources/patches/slashcommands/1370.patch diff --git a/resources/old-patches/slashcommands/1371.patch b/resources/patches/slashcommands/1371.patch similarity index 100% rename from resources/old-patches/slashcommands/1371.patch rename to resources/patches/slashcommands/1371.patch diff --git a/resources/patches/slashcommands/87202-pre.sh b/resources/patches/slashcommands/87202-pre.sh deleted file mode 100644 index 0f4edf6..0000000 --- a/resources/patches/slashcommands/87202-pre.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -if [ -z "$DISTOK_FOLDER" ] -then - cd /opt/ctc/gitrepo/resources/patches/slashcommands/code -else - cd "$DISTOK_FOLDER/resources/patches/slashcommands/code" -fi - -if [ -z "$DISTOK_APKTOOL_COMMAND" ] -then - DISTOK_APKTOOL_COMMAND="java -jar /opt/ctc/tools/apktool.jar" -fi - -if [ -z "$DISTOK_DX_COMMAND" ] -then - DISTOK_DX_COMMAND="/lib/android-sdk/build-tools/debian/dx" -fi - -chmod +x gradlew -rm -rf build -./gradlew build -cd build/libs -$DISTOK_DX_COMMAND --dex --output ctccommands.apk ctccommands-1.0-SNAPSHOT.jar -$DISTOK_APKTOOL_COMMAND d ctccommands.apk -cp -r ctccommands/smali/* ${DISTOK_EXTRACTED_DISCORD_PATH}/smali/ \ No newline at end of file diff --git a/resources/patches/slashcommands/87202.patch b/resources/patches/slashcommands/87202.patch deleted file mode 100644 index 45737aa..0000000 --- a/resources/patches/slashcommands/87202.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -crB com.discord-base/smali/com/discord/stores/BuiltInCommands.smali com.discord/smali/com/discord/stores/BuiltInCommands.smali -*** com.discord-base/smali/com/discord/stores/BuiltInCommands.smali 2021-08-15 15:01:18.951758400 +0100 ---- com.discord/smali/com/discord/stores/BuiltInCommands.smali 2021-08-15 15:02:36.852775500 +0100 -*************** -*** 305,310 **** ---- 305,312 ---- - - iput-object v12, p0, Lcom/discord/stores/BuiltInCommands;->builtInApplication:Lcom/discord/models/commands/Application; - -+ invoke-static {p0}, Lcom/cutthecord/commands/CTCCommands;->CreateCTCCommands(Lcom/discord/stores/BuiltInCommands;)V -+ - return-void - .end method diff --git a/resources/old-patches/slashcommands/900.patch b/resources/patches/slashcommands/900.patch similarity index 100% rename from resources/old-patches/slashcommands/900.patch rename to resources/patches/slashcommands/900.patch diff --git a/resources/old-patches/slashcommands/901.patch b/resources/patches/slashcommands/901.patch similarity index 100% rename from resources/old-patches/slashcommands/901.patch rename to resources/patches/slashcommands/901.patch diff --git a/resources/old-patches/slashcommands/902.patch b/resources/patches/slashcommands/902.patch similarity index 100% rename from resources/old-patches/slashcommands/902.patch rename to resources/patches/slashcommands/902.patch diff --git a/resources/old-patches/slashcommands/903.patch b/resources/patches/slashcommands/903.patch similarity index 100% rename from resources/old-patches/slashcommands/903.patch rename to resources/patches/slashcommands/903.patch diff --git a/resources/old-patches/slashcommands/904.patch b/resources/patches/slashcommands/904.patch similarity index 100% rename from resources/old-patches/slashcommands/904.patch rename to resources/patches/slashcommands/904.patch diff --git a/resources/old-patches/slashcommands/906.patch b/resources/patches/slashcommands/906.patch similarity index 100% rename from resources/old-patches/slashcommands/906.patch rename to resources/patches/slashcommands/906.patch diff --git a/resources/old-patches/slashcommands/909.patch b/resources/patches/slashcommands/909.patch similarity index 100% rename from resources/old-patches/slashcommands/909.patch rename to resources/patches/slashcommands/909.patch diff --git a/resources/old-patches/slashcommands/910.patch b/resources/patches/slashcommands/910.patch similarity index 100% rename from resources/old-patches/slashcommands/910.patch rename to resources/patches/slashcommands/910.patch diff --git a/resources/old-patches/slashcommands/938.patch b/resources/patches/slashcommands/938.patch similarity index 100% rename from resources/old-patches/slashcommands/938.patch rename to resources/patches/slashcommands/938.patch diff --git a/resources/old-patches/slashcommands/939.patch b/resources/patches/slashcommands/939.patch similarity index 100% rename from resources/old-patches/slashcommands/939.patch rename to resources/patches/slashcommands/939.patch diff --git a/resources/old-patches/slashcommands/940.patch b/resources/patches/slashcommands/940.patch similarity index 100% rename from resources/old-patches/slashcommands/940.patch rename to resources/patches/slashcommands/940.patch diff --git a/resources/old-patches/slashcommands/942.patch b/resources/patches/slashcommands/942.patch similarity index 100% rename from resources/old-patches/slashcommands/942.patch rename to resources/patches/slashcommands/942.patch diff --git a/resources/old-patches/slashcommands/943.patch b/resources/patches/slashcommands/943.patch similarity index 100% rename from resources/old-patches/slashcommands/943.patch rename to resources/patches/slashcommands/943.patch diff --git a/resources/old-patches/slashcommands/945.patch b/resources/patches/slashcommands/945.patch similarity index 100% rename from resources/old-patches/slashcommands/945.patch rename to resources/patches/slashcommands/945.patch diff --git a/resources/old-patches/slashcommands/946.patch b/resources/patches/slashcommands/946.patch similarity index 100% rename from resources/old-patches/slashcommands/946.patch rename to resources/patches/slashcommands/946.patch diff --git a/resources/old-patches/slashcommands/947.patch b/resources/patches/slashcommands/947.patch similarity index 100% rename from resources/old-patches/slashcommands/947.patch rename to resources/patches/slashcommands/947.patch diff --git a/resources/old-patches/slashcommands/948.patch b/resources/patches/slashcommands/948.patch similarity index 100% rename from resources/old-patches/slashcommands/948.patch rename to resources/patches/slashcommands/948.patch diff --git a/resources/old-patches/slashcommands/963.patch b/resources/patches/slashcommands/963.patch similarity index 100% rename from resources/old-patches/slashcommands/963.patch rename to resources/patches/slashcommands/963.patch diff --git a/resources/old-patches/slashcommands/964.patch b/resources/patches/slashcommands/964.patch similarity index 100% rename from resources/old-patches/slashcommands/964.patch rename to resources/patches/slashcommands/964.patch diff --git a/resources/old-patches/slashcommands/965.patch b/resources/patches/slashcommands/965.patch similarity index 100% rename from resources/old-patches/slashcommands/965.patch rename to resources/patches/slashcommands/965.patch diff --git a/resources/old-patches/slashcommands/966.patch b/resources/patches/slashcommands/966.patch similarity index 100% rename from resources/old-patches/slashcommands/966.patch rename to resources/patches/slashcommands/966.patch diff --git a/resources/old-patches/slashcommands/967.patch b/resources/patches/slashcommands/967.patch similarity index 100% rename from resources/old-patches/slashcommands/967.patch rename to resources/patches/slashcommands/967.patch diff --git a/resources/old-patches/slashcommands/968.patch b/resources/patches/slashcommands/968.patch similarity index 100% rename from resources/old-patches/slashcommands/968.patch rename to resources/patches/slashcommands/968.patch diff --git a/resources/old-patches/slashcommands/970.patch b/resources/patches/slashcommands/970.patch similarity index 100% rename from resources/old-patches/slashcommands/970.patch rename to resources/patches/slashcommands/970.patch diff --git a/resources/old-patches/slashcommands/980.patch b/resources/patches/slashcommands/980.patch similarity index 100% rename from resources/old-patches/slashcommands/980.patch rename to resources/patches/slashcommands/980.patch diff --git a/resources/old-patches/slashcommands/992.patch b/resources/patches/slashcommands/992.patch similarity index 100% rename from resources/old-patches/slashcommands/992.patch rename to resources/patches/slashcommands/992.patch diff --git a/resources/old-patches/slashcommands/993.patch b/resources/patches/slashcommands/993.patch similarity index 100% rename from resources/old-patches/slashcommands/993.patch rename to resources/patches/slashcommands/993.patch diff --git a/resources/old-patches/slashcommands/994.patch b/resources/patches/slashcommands/994.patch similarity index 100% rename from resources/old-patches/slashcommands/994.patch rename to resources/patches/slashcommands/994.patch diff --git a/resources/old-patches/slashcommands/996.patch b/resources/patches/slashcommands/996.patch similarity index 100% rename from resources/old-patches/slashcommands/996.patch rename to resources/patches/slashcommands/996.patch diff --git a/resources/old-patches/slashcommands/README.md b/resources/patches/slashcommands/README.md similarity index 100% rename from resources/old-patches/slashcommands/README.md rename to resources/patches/slashcommands/README.md diff --git a/resources/patches/slashcommands/code/.gitignore b/resources/patches/slashcommands/code/.gitignore deleted file mode 100644 index d124c18..0000000 --- a/resources/patches/slashcommands/code/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.gradle -.idea -build -libs -out - diff --git a/resources/patches/slashcommands/code/build.gradle b/resources/patches/slashcommands/code/build.gradle deleted file mode 100644 index 59a0f8e..0000000 --- a/resources/patches/slashcommands/code/build.gradle +++ /dev/null @@ -1,28 +0,0 @@ -plugins { - id 'java' -} - -group 'org.example' -version '1.0-SNAPSHOT' - -repositories { - mavenCentral() -} - -compileJava.options.encoding = 'UTF-8' - -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} - -apply plugin: 'java' -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - -dependencies { - implementation files('/tmp/cutthecord/discord-base-87202-jar/discord-base.jar', 'libs/discord87202.jar') -} - -test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.jar b/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index e708b1c..0000000 Binary files a/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.properties b/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index be52383..0000000 --- a/resources/patches/slashcommands/code/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/resources/patches/slashcommands/code/gradlew b/resources/patches/slashcommands/code/gradlew deleted file mode 100755 index 4f906e0..0000000 --- a/resources/patches/slashcommands/code/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/resources/patches/slashcommands/code/gradlew.bat b/resources/patches/slashcommands/code/gradlew.bat deleted file mode 100644 index 107acd3..0000000 --- a/resources/patches/slashcommands/code/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/resources/patches/slashcommands/code/settings.gradle b/resources/patches/slashcommands/code/settings.gradle deleted file mode 100644 index ecd818b..0000000 --- a/resources/patches/slashcommands/code/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'ctccommands' - diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/CTCCommands.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/CTCCommands.java deleted file mode 100644 index 39e07e3..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/CTCCommands.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.cutthecord.commands; - -import com.cutthecord.commands.commands.CmdCtc; -import com.cutthecord.commands.commands.CmdEmojify; -import com.cutthecord.commands.commands.CmdOwo; -import com.cutthecord.commands.commands.CmdSpoilerImg; -import com.discord.api.commands.ApplicationCommandType; -import com.discord.api.commands.CommandChoice; -import com.discord.models.commands.ApplicationCommand; -import com.discord.models.commands.ApplicationCommandOption; -import com.discord.stores.BuiltInCommands; -import d0.z.d.m; -import d0.z.d.o; -import kotlin.jvm.functions.Function1; -import kotlin.jvm.internal.DefaultConstructorMarker; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -@SuppressWarnings("SameParameterValue") -public class CTCCommands { - - static long ID = -100; - - // Helper class for replacements - public static class StrPair { - final String a; - final String b; - - public StrPair(String a, String b) { - this.a = a; - this.b = b; - } - } - - // Need to inject a call at end of init for p0 to this class in BuiltinCommands.smali - // Create commands - @SuppressWarnings({"unused"}) - public static void CreateCTCCommands(BuiltInCommands builtIn) { - // Used in command creation in BuiltinCommands, one more than the last reference - - // Add existing commands - ArrayList commands = new ArrayList<>(builtIn.getBuiltInCommands()); - - // Add our commands - commands.add(createWrappedSlashCommand("st", "Puts a strikethrough the message", "Message", "~~", "~~")); // Strikethrough - commands.add(createWrappedSlashCommand("bold", "Makes text bold", "Message", "**", "**")); // Bold - commands.add(createWrappedSlashCommand("slap", "Slaps people with a large trout", "Message", "*Slaps ", " around a bit with a large trout.*")); // Slap - - commands.add(createReplaceTextSlashCommand("clap", "Please \uD83D\uDC4F clap", "Message", Collections.singletonList(new StrPair(" ", ":clap:")))); // Clap - commands.add(createReplaceTextSlashCommand("flip", "Flips text (like “ʇɥıs”)", "Message", Replacements.FLIP)); // Flip - commands.add(createReplaceTextSlashCommand("fw", "Makes text fullwidth (like “Sent from my Android Device”)", "Message", Replacements.FULL_WIDTH)); // fw - commands.add(createReplaceTextSlashCommand("morse", "Converts text into morse code", "Message", Replacements.MORSE, Case.UPPER)); // morse - commands.add(createReplaceTextSlashCommand("gordon", "\uD835\uDDDB\uD835\uDDF2\uD835\uDDF9\uD835\uDDF9\uD835\uDDFC,\uD835\uDDDA\uD835\uDDFC\uD835\uDDFF\uD835\uDDF1\uD835\uDDFC\uD835\uDDFB!", "Message", Replacements.GORDON)); // gordon - commands.add(createReplaceTextSlashCommand("small", "Makes text smaller (like “ᴛʜɪs”)", "Message", Replacements.SMALL, Case.LOWER)); // small - commands.add(createReplaceTextSlashCommand("smaller", "Makes text even smaller (like “ᵗʰvˢ”)", "Message", Replacements.SMALLER, Case.LOWER)); // smaller - //noinspection unchecked - commands.add(createReplaceTextSlashCommand("upper", "Makes text uppercase", "Message", Collections.EMPTY_LIST, Case.UPPER)); // upper - //noinspection unchecked - commands.add(createReplaceTextSlashCommand("lower", "Makes text lowercase", "Message", Collections.EMPTY_LIST, Case.LOWER)); // lower - - commands.add(createAppendToEndCommand("lenny", "( ͡° ͜ʖ ͡°)", "Message", " ( \u0361\u00B0 \u035C\u0296 \u0361\u00B0)")); // lenny - - commands.add(createHandleRawMessageCommand("owo", "Myakes tyext reawwy owo-ly, nya :3", "Message", new CmdOwo())); // owo - commands.add(createHandleRawMessageCommand("emojify", "Emojify text", "Message", new CmdEmojify())); // emojify - commands.add(createHandleRawMessageCommand("spoilerimg", "Prepends SPOILER_ to names of all images attached to the message that starts with this, causing them to get marked as spoiler", "Message", new CmdSpoilerImg())); - - commands.add(createEnableDisableCommand("channelleak", "Shows all hidden channels", new CmdCtc.CmdCtcChannelLeak())); - commands.add(createEnableDisableCommand("showtyping", "Change typing event so that its visible/not when you type", new CmdCtc.CmdCtcShowTyping())); - commands.add(createEnableDisableCommand("nodelete", "Disables handling of message delete events", new CmdCtc.CmdCtcNoDelete())); - commands.add(createHandleRawMessageCommand("gettoken", "Get current token, DO NOT USE IN PUBLIC", null, new CmdCtc.CmdCtcGetToken())); - commands.add(createHandleRawMessageCommand("settoken", "Set current token, DO NOT USE IN PUBLIC", "Token", new CmdCtc.CmdCtcSetToken())); - commands.add(createHandleRawMessageCommand("switchaccount", "Switch to specified account, DO NOT USE IN PUBLIC", "Name", new CmdCtc.CmdCtcSwitchAccount())); - // TODO addaccount - - - // Builtin list is non modifiable, lets hijack it instead :) - try { - Field commandListField = BuiltInCommands.class.getDeclaredField("builtInCommands"); - commandListField.setAccessible(true); - commandListField.set(builtIn, commands); - } catch (Exception e) { - System.out.println("Failed to replace buildInCommands"); - e.printStackTrace(); - } - - } - - // Wrapper for naming - public static class CTCCommand extends ApplicationCommand { - public CTCCommand(String id, long applicationID, String name, String description, Integer descriptionRes, List options, boolean builtIn, Long guildId, String version, Boolean defaultPermissions, Map map, Function1 handler, int flags, DefaultConstructorMarker defaultConstructorMarker) { - super(id, applicationID, name, description, descriptionRes, options, builtIn, guildId, version, defaultPermissions, map, handler, flags, defaultConstructorMarker); - } - } - - // Wrapper for naming - public static ApplicationCommandOption makeOption(ApplicationCommandType type, String name, String description, Integer descriptionRes, boolean required, boolean defaultOpt, List choices, List options) { - return new ApplicationCommandOption(type, name, description, descriptionRes, required, defaultOpt, choices, options); - } - - // Wrapper for naming - public static ApplicationCommandOption makeOption(ApplicationCommandType type, String name, String description, Integer descriptionRes, boolean required, boolean defaultOpt, List choices, List options, int flags, DefaultConstructorMarker marker) { - return new ApplicationCommandOption(type, name, description, descriptionRes, required, defaultOpt, choices, options, flags, marker); - /* - Flags - 4 - description = null - 8 - descriptionRes = null - 64 - choices = null - 128 - options = null - */ - } - - // Wrapper for naming - public static ApplicationCommand makeCtcCommand(String name, String cmdDesc, List options, Function1, String> handler) { - m.checkNotNullParameter(name, "name"); - m.checkNotNullParameter(options, "options"); - return new CTCCommand(String.valueOf(ID--), -1L, name, cmdDesc, null, options, true, null, null, null, null, handler, 1936, null); - /* - Flags - 8 - description = null - 16 - descriptionRes = null - 64 - builtIn = false - 128 - guildID = null - 256 - version = null - 512 - defaultPermissions = false - 1024 - permissions = null - 2048 - handler = null - - 1928 = 1024, 512, 256, 128, 8 - // Lets try 1936 for out purposes - */ - } - - static final class WrapTextCommand extends o implements Function1, String> { - public final String prefix; - public final String suffix; - - public WrapTextCommand(String prefix, String suffix) { - super(1); - this.prefix = prefix; - this.suffix = suffix; - } - - public final String invoke(Map options) { - m.checkNotNullParameter(options, "commandOptions"); - StringBuilder newMessage = new StringBuilder(); - newMessage.append(this.prefix); - Object originalMessage = options.get("message"); - if (originalMessage == null) { - originalMessage = ""; - } - - newMessage.append(originalMessage); - newMessage.append(this.suffix); - return newMessage.toString(); - } - } - - @SuppressWarnings("SameParameterValue") - private static ApplicationCommand createWrappedSlashCommand(String name, String cmdDesc, String optionDesc, String prefix, String suffix) { - return makeCtcCommand(name, cmdDesc, Collections.singletonList( - makeOption(ApplicationCommandType.STRING, "message", optionDesc, null, true, false, null, null, 192, null) - ), new WrapTextCommand(prefix, suffix)); - } - - final static class AppendToEndCommand extends o implements Function1, String> { - public String suffix; - - public AppendToEndCommand(String suffix) { - super(1); - this.suffix = suffix; - } - - public final String invoke(Map options) { - m.checkNotNullParameter( options, "commandOptions"); - StringBuilder newMessage = new StringBuilder(); - Object originalMessage = options.get("message"); - if (originalMessage == null) { - originalMessage = ""; - } - - newMessage.append(originalMessage); - newMessage.append(' '); - newMessage.append(this.suffix); - return newMessage.toString(); - } - } - - @SuppressWarnings("SameParameterValue") - private static ApplicationCommand createAppendToEndCommand(String name, String cmdDesc, String optionDesc, String suffix) { - return makeCtcCommand(name, cmdDesc, Collections.singletonList( - makeOption(ApplicationCommandType.STRING, "message", optionDesc, null, false, false, null, null, 192, null) - ), new AppendToEndCommand(suffix)); - } - - final static class ReplaceMatchesCommand extends o implements Function1, String> { - public final List replacements; - public final Case c; - - public ReplaceMatchesCommand(List replacements, Case c) { - super(1); - this.replacements = replacements; - this.c = c; - } - - public final String invoke(Map options) { - m.checkNotNullParameter(options, "commandOptions"); - StringBuilder newMessage = new StringBuilder(); - Object originalMessage = options.get("message"); - if (originalMessage == null) { - originalMessage = ""; - } - - if (c == Case.UPPER) { - originalMessage = ((String)originalMessage).toUpperCase(); - } else if (c == Case.LOWER) { - originalMessage = ((String)originalMessage).toLowerCase(); - } - - for (StrPair replacement : replacements) { - originalMessage = ((String)originalMessage).replace(replacement.a, replacement.b); - } - - newMessage.append(originalMessage); - return newMessage.toString(); - } - } - - enum Case { - UPPER, - LOWER, - ORIGINAL - } - - private static ApplicationCommand createReplaceTextSlashCommand(String name, String cmdDesc, String optionDesc, List replaceList, Case c) { - return makeCtcCommand(name, cmdDesc, Collections.singletonList( - makeOption(ApplicationCommandType.STRING, "message", optionDesc, null, true, true, null, null, 192, null) - ), new ReplaceMatchesCommand(replaceList, c)); - } - - private static ApplicationCommand createReplaceTextSlashCommand(String name, String cmdDesc, String optionDesc, List replaceList) { - return createReplaceTextSlashCommand(name, cmdDesc, optionDesc, replaceList, Case.ORIGINAL); - } - - final static class RawMessageCommand extends o implements Function1, String> { - public final RawMsgHandler handler; - - public RawMessageCommand(RawMsgHandler handler) { - super(1); - this.handler = handler; - } - - public final String invoke(Map options) { - m.checkNotNullParameter(options, "commandOptions"); - StringBuilder newMessage = new StringBuilder(); - Object originalMessage = options.get("message"); - if (originalMessage == null) { - originalMessage = ""; - } - - newMessage.append(handler.processRawMessage((String) originalMessage)); - return newMessage.toString(); - } - } - - final static class EnableDisableCommand extends o implements Function1, String> { - public final EnableDisableHandler handler; - - public EnableDisableCommand(EnableDisableHandler handler) { - super(1); - this.handler = handler; - } - - public final String invoke(Map options) { - m.checkNotNullParameter(options, "commandOptions"); - StringBuilder newMessage = new StringBuilder(); - - boolean enabled = (boolean) options.get("enabled"); - - newMessage.append(handler.processEnableDisable(enabled)); - return newMessage.toString(); - } - } - - private static ApplicationCommand createHandleRawMessageCommand(String name, String cmdDesc, String optionDesc, RawMsgHandler handler) { - boolean required = true; - if (optionDesc == null) { - required = false; - } - return makeCtcCommand(name, cmdDesc, Collections.singletonList( - makeOption(ApplicationCommandType.STRING, "message", optionDesc, null, required, required, null, null, 192, null) - ), new RawMessageCommand(handler)); - } - - private static ApplicationCommand createEnableDisableCommand(String name, String cmdDesc, EnableDisableHandler handler) { - ArrayList truefalse = new ArrayList<>(); - truefalse.add(new CommandChoice("on", "true")); - truefalse.add(new CommandChoice("off", "false")); - - return makeCtcCommand(name, cmdDesc, Collections.singletonList( - makeOption(ApplicationCommandType.BOOLEAN, "enabled", "Enable/Disable", null, true, true, truefalse, null, 192, null) - ), new EnableDisableCommand(handler)); - } - - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/EnableDisableHandler.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/EnableDisableHandler.java deleted file mode 100644 index e90a9e3..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/EnableDisableHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.cutthecord.commands; - -public interface EnableDisableHandler { - - String processEnableDisable(boolean enabled); - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/RawMsgHandler.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/RawMsgHandler.java deleted file mode 100644 index 43537f3..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/RawMsgHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.cutthecord.commands; - -public interface RawMsgHandler { - - String processRawMessage(String orig); - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/Replacements.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/Replacements.java deleted file mode 100644 index 20991eb..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/Replacements.java +++ /dev/null @@ -1,304 +0,0 @@ -package com.cutthecord.commands; - -import java.util.ArrayList; -import java.util.List; - -public class Replacements { - - public static final List FLIP = new ArrayList() {{ - add(new CTCCommands.StrPair("a", "ɐ")); - add(new CTCCommands.StrPair("b", "q")); - add(new CTCCommands.StrPair("c", "ɔ")); - add(new CTCCommands.StrPair("d", "p")); - add(new CTCCommands.StrPair("e", "ǝ")); - add(new CTCCommands.StrPair("f", "ɟ")); - add(new CTCCommands.StrPair("g", "ƃ")); - add(new CTCCommands.StrPair("h", "ɥ")); - add(new CTCCommands.StrPair("i", "ı")); - add(new CTCCommands.StrPair("j", "ɾ")); - add(new CTCCommands.StrPair("k", "ʞ")); - add(new CTCCommands.StrPair("l", "ן")); - add(new CTCCommands.StrPair("m", "ɯ")); - add(new CTCCommands.StrPair("n", "u")); - //add(new CTCCommands.StrPair("o", "o")); - add(new CTCCommands.StrPair("p", "d")); - add(new CTCCommands.StrPair("q", "b")); - add(new CTCCommands.StrPair("r", "ɹ")); - //add(new CTCCommands.StrPair("s", "s")); - add(new CTCCommands.StrPair("t", "ʇ")); - add(new CTCCommands.StrPair("u", "n")); - add(new CTCCommands.StrPair("v", "ʌ")); - add(new CTCCommands.StrPair("w", "ʍ")); - //add(new CTCCommands.StrPair("x", "x")); - add(new CTCCommands.StrPair("y", "ʎ")); - //add(new CTCCommands.StrPair("z", "z")); - }}; - - public static final List FULL_WIDTH = new ArrayList() {{ - add(new CTCCommands.StrPair(" ", " ")); - add(new CTCCommands.StrPair("!", "!")); - add(new CTCCommands.StrPair("#", "#")); - add(new CTCCommands.StrPair("$", "$")); - add(new CTCCommands.StrPair("%", "%")); - add(new CTCCommands.StrPair("&", "&")); - add(new CTCCommands.StrPair("'", "'")); - add(new CTCCommands.StrPair("(", "(")); - add(new CTCCommands.StrPair(")", ")")); - add(new CTCCommands.StrPair("*", "*")); - add(new CTCCommands.StrPair("+", "+")); - add(new CTCCommands.StrPair(",", ",")); - add(new CTCCommands.StrPair("-", "-")); - add(new CTCCommands.StrPair(".", ".")); - add(new CTCCommands.StrPair("/", "/")); - add(new CTCCommands.StrPair("0", "0")); - add(new CTCCommands.StrPair("1", "1")); - add(new CTCCommands.StrPair("2", "2")); - add(new CTCCommands.StrPair("3", "3")); - add(new CTCCommands.StrPair("4", "4")); - add(new CTCCommands.StrPair("5", "5")); - add(new CTCCommands.StrPair("6", "6")); - add(new CTCCommands.StrPair("7", "7")); - add(new CTCCommands.StrPair("8", "8")); - add(new CTCCommands.StrPair("9", "9")); - add(new CTCCommands.StrPair(":", ":")); - add(new CTCCommands.StrPair(";", ";")); - add(new CTCCommands.StrPair("<", "<")); - add(new CTCCommands.StrPair("=", "=")); - add(new CTCCommands.StrPair(">", ">")); - add(new CTCCommands.StrPair("?", "?")); - add(new CTCCommands.StrPair("@", "@")); - add(new CTCCommands.StrPair("A", "A")); - add(new CTCCommands.StrPair("B", "B")); - add(new CTCCommands.StrPair("C", "C")); - add(new CTCCommands.StrPair("D", "D")); - add(new CTCCommands.StrPair("E", "E")); - add(new CTCCommands.StrPair("F", "F")); - add(new CTCCommands.StrPair("G", "G")); - add(new CTCCommands.StrPair("H", "H")); - add(new CTCCommands.StrPair("I", "I")); - add(new CTCCommands.StrPair("J", "J")); - add(new CTCCommands.StrPair("K", "K")); - add(new CTCCommands.StrPair("L", "L")); - add(new CTCCommands.StrPair("M", "M")); - add(new CTCCommands.StrPair("N", "N")); - add(new CTCCommands.StrPair("O", "O")); - add(new CTCCommands.StrPair("P", "P")); - add(new CTCCommands.StrPair("Q", "Q")); - add(new CTCCommands.StrPair("R", "R")); - add(new CTCCommands.StrPair("S", "S")); - add(new CTCCommands.StrPair("T", "T")); - add(new CTCCommands.StrPair("U", "U")); - add(new CTCCommands.StrPair("V", "V")); - add(new CTCCommands.StrPair("W", "W")); - add(new CTCCommands.StrPair("X", "X")); - add(new CTCCommands.StrPair("Y", "Y")); - add(new CTCCommands.StrPair("Z", "Z")); - add(new CTCCommands.StrPair("[", "[")); - add(new CTCCommands.StrPair("]", "]")); - add(new CTCCommands.StrPair("^", "^")); - add(new CTCCommands.StrPair("_", "_")); - add(new CTCCommands.StrPair("`", "`")); - add(new CTCCommands.StrPair("a", "a")); - add(new CTCCommands.StrPair("b", "b")); - add(new CTCCommands.StrPair("c", "c")); - add(new CTCCommands.StrPair("d", "d")); - add(new CTCCommands.StrPair("e", "e")); - add(new CTCCommands.StrPair("f", "f")); - add(new CTCCommands.StrPair("g", "g")); - add(new CTCCommands.StrPair("h", "h")); - add(new CTCCommands.StrPair("i", "i")); - add(new CTCCommands.StrPair("j", "j")); - add(new CTCCommands.StrPair("k", "k")); - add(new CTCCommands.StrPair("l", "l")); - add(new CTCCommands.StrPair("m", "m")); - add(new CTCCommands.StrPair("n", "n")); - add(new CTCCommands.StrPair("o", "o")); - add(new CTCCommands.StrPair("p", "p")); - add(new CTCCommands.StrPair("q", "q")); - add(new CTCCommands.StrPair("r", "r")); - add(new CTCCommands.StrPair("s", "s")); - add(new CTCCommands.StrPair("t", "t")); - add(new CTCCommands.StrPair("u", "u")); - add(new CTCCommands.StrPair("v", "v")); - add(new CTCCommands.StrPair("w", "w")); - add(new CTCCommands.StrPair("x", "x")); - add(new CTCCommands.StrPair("y", "y")); - add(new CTCCommands.StrPair("z", "z")); - add(new CTCCommands.StrPair("{", "{")); - add(new CTCCommands.StrPair("|", "|")); - add(new CTCCommands.StrPair("}", "}")); - add(new CTCCommands.StrPair("~", "~")); - }}; - - public static final List MORSE = new ArrayList() {{ - add(new CTCCommands.StrPair(" ", "/ ")); - add(new CTCCommands.StrPair(".", ".-.-.- ")); - add(new CTCCommands.StrPair(",", "--..-- ")); - add(new CTCCommands.StrPair(":", "---... ")); - add(new CTCCommands.StrPair("?", "..--.. ")); - add(new CTCCommands.StrPair("'", ".----. ")); - add(new CTCCommands.StrPair("-", "-....- ")); - add(new CTCCommands.StrPair("/", "-..-. ")); - add(new CTCCommands.StrPair("@", ".--.-. ")); - add(new CTCCommands.StrPair("=", "-...- ")); - add(new CTCCommands.StrPair("A", ".- ")); - add(new CTCCommands.StrPair("B", "-... ")); - add(new CTCCommands.StrPair("C", "-.-. ")); - add(new CTCCommands.StrPair("D", "-.. ")); - add(new CTCCommands.StrPair("E", ". ")); - add(new CTCCommands.StrPair("F", "..-. ")); - add(new CTCCommands.StrPair("G", "--. ")); - add(new CTCCommands.StrPair("H", ".... ")); - add(new CTCCommands.StrPair("I", ".. ")); - add(new CTCCommands.StrPair("J", ".--- ")); - add(new CTCCommands.StrPair("K", "-.- ")); - add(new CTCCommands.StrPair("L", ".-.. ")); - add(new CTCCommands.StrPair("M", "-- ")); - add(new CTCCommands.StrPair("N", "-. ")); - add(new CTCCommands.StrPair("O", "--- ")); - add(new CTCCommands.StrPair("P", ".--. ")); - add(new CTCCommands.StrPair("Q", "--.- ")); - add(new CTCCommands.StrPair("R", ".-. ")); - add(new CTCCommands.StrPair("S", "... ")); - add(new CTCCommands.StrPair("T", "- ")); - add(new CTCCommands.StrPair("U", "..- ")); - add(new CTCCommands.StrPair("V", "...- ")); - add(new CTCCommands.StrPair("W", ".-- ")); - add(new CTCCommands.StrPair("X", "-..- ")); - add(new CTCCommands.StrPair("Y", "-.-- ")); - add(new CTCCommands.StrPair("Z", "--.. ")); - add(new CTCCommands.StrPair("0", "----- ")); - add(new CTCCommands.StrPair("1", ".---- ")); - add(new CTCCommands.StrPair("2", "..--- ")); - add(new CTCCommands.StrPair("3", "...-- ")); - add(new CTCCommands.StrPair("4", "....- ")); - add(new CTCCommands.StrPair("5", "..... ")); - add(new CTCCommands.StrPair("6", "-.... ")); - add(new CTCCommands.StrPair("7", "--... ")); - add(new CTCCommands.StrPair("8", "---.. ")); - add(new CTCCommands.StrPair("9", "----. ")); - }}; - - public static final List GORDON = new ArrayList() {{ - add(new CTCCommands.StrPair("a", "𝗮")); - add(new CTCCommands.StrPair("b", "𝗯")); - add(new CTCCommands.StrPair("c", "𝗰")); - add(new CTCCommands.StrPair("d", "𝗱")); - add(new CTCCommands.StrPair("e", "𝗲")); - add(new CTCCommands.StrPair("f", "𝗳")); - add(new CTCCommands.StrPair("g", "𝗴")); - add(new CTCCommands.StrPair("h", "𝗵")); - add(new CTCCommands.StrPair("i", "𝗶")); - add(new CTCCommands.StrPair("j", "𝗷")); - add(new CTCCommands.StrPair("k", "𝗸")); - add(new CTCCommands.StrPair("l", "𝗹")); - add(new CTCCommands.StrPair("m", "𝗺")); - add(new CTCCommands.StrPair("n", "𝗻")); - add(new CTCCommands.StrPair("o", "𝗼")); - add(new CTCCommands.StrPair("p", "𝗽")); - add(new CTCCommands.StrPair("q", "𝗾")); - add(new CTCCommands.StrPair("r", "𝗿")); - add(new CTCCommands.StrPair("s", "𝘀")); - add(new CTCCommands.StrPair("t", "𝘁")); - add(new CTCCommands.StrPair("u", "𝘂")); - add(new CTCCommands.StrPair("v", "𝘃")); - add(new CTCCommands.StrPair("w", "𝘄")); - add(new CTCCommands.StrPair("x", "𝘅")); - add(new CTCCommands.StrPair("y", "𝘆")); - add(new CTCCommands.StrPair("z", "𝘇")); - add(new CTCCommands.StrPair("A", "𝗔")); - add(new CTCCommands.StrPair("B", "𝗕")); - add(new CTCCommands.StrPair("C", "𝗖")); - add(new CTCCommands.StrPair("D", "𝗗")); - add(new CTCCommands.StrPair("E", "𝗘")); - add(new CTCCommands.StrPair("F", "𝗙")); - add(new CTCCommands.StrPair("G", "𝗚")); - add(new CTCCommands.StrPair("H", "𝗛")); - add(new CTCCommands.StrPair("I", "𝗜")); - add(new CTCCommands.StrPair("J", "𝗝")); - add(new CTCCommands.StrPair("K", "𝗞")); - add(new CTCCommands.StrPair("L", "𝗟")); - add(new CTCCommands.StrPair("M", "𝗠")); - add(new CTCCommands.StrPair("N", "𝗡")); - add(new CTCCommands.StrPair("O", "𝗢")); - add(new CTCCommands.StrPair("P", "𝗣")); - add(new CTCCommands.StrPair("Q", "𝗤")); - add(new CTCCommands.StrPair("R", "𝗥")); - add(new CTCCommands.StrPair("S", "𝗦")); - add(new CTCCommands.StrPair("T", "𝗧")); - add(new CTCCommands.StrPair("U", "𝗨")); - add(new CTCCommands.StrPair("V", "𝗩")); - add(new CTCCommands.StrPair("W", "𝗪")); - add(new CTCCommands.StrPair("X", "𝗫")); - add(new CTCCommands.StrPair("Y", "𝗬")); - add(new CTCCommands.StrPair("Z", "𝗭")); - add(new CTCCommands.StrPair("0", "𝟬")); - add(new CTCCommands.StrPair("1", "𝟭")); - add(new CTCCommands.StrPair("2", "𝟮")); - add(new CTCCommands.StrPair("3", "𝟯")); - add(new CTCCommands.StrPair("4", "𝟰")); - add(new CTCCommands.StrPair("5", "𝟱")); - add(new CTCCommands.StrPair("6", "𝟲")); - add(new CTCCommands.StrPair("7", "𝟳")); - add(new CTCCommands.StrPair("8", "𝟴")); - add(new CTCCommands.StrPair("9", "𝟵")); - }}; - - public static final List SMALL = new ArrayList() {{ - add(new CTCCommands.StrPair("a", "ᴀ")); - add(new CTCCommands.StrPair("b", "ʙ")); - add(new CTCCommands.StrPair("c", "ᴄ")); - add(new CTCCommands.StrPair("d", "ᴅ")); - add(new CTCCommands.StrPair("e", "ᴇ")); - add(new CTCCommands.StrPair("f", "ꜰ")); - add(new CTCCommands.StrPair("g", "ɢ")); - add(new CTCCommands.StrPair("h", "ʜ")); - add(new CTCCommands.StrPair("i", "ɪ")); - add(new CTCCommands.StrPair("j", "ᴊ")); - add(new CTCCommands.StrPair("k", "ᴋ")); - add(new CTCCommands.StrPair("l", "ʟ")); - add(new CTCCommands.StrPair("m", "ᴍ")); - add(new CTCCommands.StrPair("n", "ɴ")); - add(new CTCCommands.StrPair("o", "ᴏ")); - add(new CTCCommands.StrPair("p", "ᴘ")); - add(new CTCCommands.StrPair("q", "ǫ")); - add(new CTCCommands.StrPair("r", "ʀ")); - //add(new CTCCommands.StrPair("s", "s")); - add(new CTCCommands.StrPair("t", "ᴛ")); - add(new CTCCommands.StrPair("u", "ᴜ")); - add(new CTCCommands.StrPair("v", "ᴠ")); - add(new CTCCommands.StrPair("w", "ᴡ")); - add(new CTCCommands.StrPair("y", "ʏ")); - add(new CTCCommands.StrPair("z", "ᴢ")); - }}; - - public static final List SMALLER = new ArrayList() {{ - add(new CTCCommands.StrPair("a", "ᵃ")); - add(new CTCCommands.StrPair("b", "ᵇ")); - add(new CTCCommands.StrPair("c", "ᶜ")); - add(new CTCCommands.StrPair("d", "ᵈ")); - add(new CTCCommands.StrPair("e", "ᵉ")); - add(new CTCCommands.StrPair("f", "ᶠ")); - add(new CTCCommands.StrPair("g", "ᵍ")); - add(new CTCCommands.StrPair("h", "ʰ")); - add(new CTCCommands.StrPair("i", "ᶦ")); - add(new CTCCommands.StrPair("j", "ʲ")); - add(new CTCCommands.StrPair("k", "ᵏ")); - add(new CTCCommands.StrPair("l", "ˡ")); - add(new CTCCommands.StrPair("m", "ᵐ")); - add(new CTCCommands.StrPair("n", "ⁿ")); - add(new CTCCommands.StrPair("o", "ᵒ")); - add(new CTCCommands.StrPair("p", "ᵖ")); - add(new CTCCommands.StrPair("q", "ᑫ")); - add(new CTCCommands.StrPair("r", "ʳ")); - add(new CTCCommands.StrPair("s", "ˢ")); - add(new CTCCommands.StrPair("t", "ᵗ")); - add(new CTCCommands.StrPair("u", "ᵘ")); - add(new CTCCommands.StrPair("v", "ᵛ")); - add(new CTCCommands.StrPair("w", "ʷ")); - add(new CTCCommands.StrPair("x", "ˣ")); - add(new CTCCommands.StrPair("y", "ʸ")); - add(new CTCCommands.StrPair("z", "ᶻ")); - }}; - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdCtc.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdCtc.java deleted file mode 100644 index 64ddbc5..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdCtc.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.cutthecord.commands.commands; - -import com.cutthecord.commands.EnableDisableHandler; -import com.cutthecord.commands.RawMsgHandler; -import com.discord.stores.StoreStream; -import com.discord.stores.StoreUserSettings; - -import java.lang.reflect.Method; - -public class CmdCtc { - - - // TODO make token calls write directly to clipboard - // TODO make supplemental inject a interface so we can just cast instead of using reflection - - public static class CmdCtcChannelLeak implements EnableDisableHandler { - - @Override - public String processEnableDisable(boolean enabled) { - try { - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("setLeakChannels", boolean.class); - m.invoke(StoreStream.getUserSettings(), enabled); - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().setLeakChannels"); - return "Failed to call StoreStream.getUserSettings().setLeakChannels"; - } - return "CTC: Successfully set channelleak state."; // TODO use notification - } - - } - - public static class CmdCtcShowTyping implements EnableDisableHandler { - - @Override - public String processEnableDisable(boolean enabled) { - - try { - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("setShowTyping", boolean.class); - m.invoke(StoreStream.getUserSettings(), enabled); - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().setShowTyping"); - e.printStackTrace(); - } - - return "CTC: Successfully set showtyping state."; // TODO use notification - } - - } - - public static class CmdCtcNoDelete implements EnableDisableHandler { - - @Override - public String processEnableDisable(boolean enabled) { - - try { - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("setNoDelete", boolean.class); - m.invoke(StoreStream.getUserSettings(), enabled); - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().setNoDelete"); - e.printStackTrace(); - } - - return "CTC: Successfully set nodelete state."; // TODO use notification - } - - } - - public static class CmdCtcGetToken implements RawMsgHandler { - - @Override - public String processRawMessage(String orig) { - try { - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("getStoredToken"); - return (String) m.invoke(StoreStream.getUserSettings()); // TODO notification - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().getStoredToken()"); - e.printStackTrace(); - } - - return ""; - } - - } - - public static class CmdCtcSetToken implements RawMsgHandler { - - @Override - public String processRawMessage(String msg) { - - try { - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("setStoredToken", String.class); - m.invoke(StoreStream.getUserSettings(), msg); - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().setStoredToken()"); - e.printStackTrace(); - } - - return "CTC: Successfully changed token. Please restart application."; - } - - } - - public static class CmdCtcSwitchAccount implements RawMsgHandler { - - @Override - public String processRawMessage(String msg) { - String trim = msg.trim(); - StoreUserSettings userSettings = StoreStream.getUserSettings(); - - try { - //noinspection JavaReflectionMemberAccess - final Method m1 = userSettings.getClass().getDeclaredMethod("getAccountToken", String.class); - String accountToken = (String) m1.invoke(userSettings, trim); - if (accountToken.startsWith("none")) { - return "CTC: No such account found."; - } - - //noinspection JavaReflectionMemberAccess - final Method m2 = userSettings.getClass().getDeclaredMethod("setStoredToken", String.class); - m2.invoke(userSettings, accountToken); - return "CTC: Successfully changed accounts. Please restart application."; - } catch (Exception e) { - e.printStackTrace(); - } - - return ""; - } - - } - - public static class CmdCtcAddAccount implements RawMsgHandler {//TODO - - @Override - public String processRawMessage(String msg) { - String substring3 = msg.substring(msg.indexOf(" ")); - String accName = msg.replace(substring3, "").trim(); - String accToken = substring3.trim(); - - StoreUserSettings userSettings = StoreStream.getUserSettings(); - if (accName.startsWith("current")) { - accName = StoreStream.getUsers().getMe().getUsername(); - accToken = StoreStream.getUsers().getMe().getToken(); - } - - try { - final Method m = userSettings.getClass().getDeclaredMethod("setAccountToken", String.class, String.class); - m.invoke(userSettings, accName, accToken); - } catch (Exception e) { - e.printStackTrace(); - } - - return "CTC: Added account."; - } - - } - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdEmojify.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdEmojify.java deleted file mode 100644 index a931bcc..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdEmojify.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.cutthecord.commands.commands; - -import com.cutthecord.commands.RawMsgHandler; - -public class CmdEmojify implements RawMsgHandler { - - @Override - public String processRawMessage(String msg) { - - StringBuilder s = new StringBuilder(); - for (char c : msg.toCharArray()) { - s.append(emojifyChar(c)); - } - - return s.toString(); - } - - final String[] numbers = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; - - public String emojifyChar(char c) { - if (Character.isDigit(c)) { - int i = Integer.parseInt(Character.toString(c)); - return ":" + numbers[i] + ":"; - } - - if (Character.isAlphabetic(c)) { - - if (c == 'b') { - return ":b:"; - } - - return ":regional_indicator_" + String.valueOf(c).toLowerCase() + ":"; - } - - switch (c) { - case '.': return ":record_button"; - case '?': return ":grey_question:"; - case '!': return ":grey_exclamation:"; - } - - return Character.toString(c); - } - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdOwo.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdOwo.java deleted file mode 100644 index fc2be33..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdOwo.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cutthecord.commands.commands; - -import com.cutthecord.commands.RawMsgHandler; - -public class CmdOwo implements RawMsgHandler { - - static final String[] expressions = { - ">_<", ":3", "ʕʘ‿ʘʔ", ":D", "._.", - ";3", "xD", "ㅇㅅㅇ", "(人◕ω◕)", - ">_>", "ÙωÙ", "UwU", "OwO", ":P", - "(◠‿◠✿)", "^_^", ";_;", "XDDD", - "x3", "(• o •)", "<_<", "(・`ω´・)", - ";;w;;", ">w<", "^w^" - }; - - public String processRawMessage(String msg) { - return msg.replaceAll("[rl]", "w") - .replaceAll("[RL]", "W") - .replaceAll("n([aeiou])", "ny$1") - .replaceAll("N([aeiou])", "Ny$1") - .replaceAll("N([AEIOU])", "NY$1") - .replace("ove", "uv") - .replaceAll("!+", " "+ expressions[(int) Math.floor(Math.random()*expressions.length)]+ " "); - } - -} diff --git a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdSpoilerImg.java b/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdSpoilerImg.java deleted file mode 100644 index 2a5ef6e..0000000 --- a/resources/patches/slashcommands/code/src/main/java/com/cutthecord/commands/commands/CmdSpoilerImg.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.cutthecord.commands.commands; - -import com.cutthecord.commands.RawMsgHandler; -import com.discord.stores.StoreStream; - -import java.lang.reflect.Method; - - -public class CmdSpoilerImg implements RawMsgHandler { - - @Override - public String processRawMessage(String orig) { - try { - // Added by Supplemental patch - //noinspection JavaReflectionMemberAccess - final Method m = StoreStream.getUserSettings().getClass().getDeclaredMethod("setImageSpoiler", boolean.class); - m.invoke(StoreStream.getUserSettings(), true); - } catch (Exception e) { - System.out.println("Failed to call StoreStream.getUserSettings().setImageSpoiler(true)"); - e.printStackTrace(); - } - return orig; - } - -} diff --git a/resources/old-patches/slashcommands/textreplacegen-array.py b/resources/patches/slashcommands/textreplacegen-array.py similarity index 100% rename from resources/old-patches/slashcommands/textreplacegen-array.py rename to resources/patches/slashcommands/textreplacegen-array.py diff --git a/resources/old-patches/slashcommands/textreplacegen.py b/resources/patches/slashcommands/textreplacegen.py similarity index 100% rename from resources/old-patches/slashcommands/textreplacegen.py rename to resources/patches/slashcommands/textreplacegen.py diff --git a/resources/patches/supplemental/87202.patch b/resources/patches/supplemental/87202.patch deleted file mode 100644 index b8d912e..0000000 --- a/resources/patches/supplemental/87202.patch +++ /dev/null @@ -1,453 +0,0 @@ -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/api/channel/Channel.smali to/smali/com/discord/api/channel/Channel.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,1783 **** - } - .end annotation - -! .line 1 -! iget-object v0, p0, Lcom/discord/api/channel/Channel;->permissionOverwrites:Ljava/util/List; - - return-object v0 - .end method - - .method public final t()I ---- 1774,1800 ---- - } - .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 - -+ invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; -+ -+ move-result-object v0 -+ -+ :goto_0 - return-object v0 -+ -+ :cond_0 -+ iget-object v0, p0, Lcom/discord/api/channel/Channel;->permissionOverwrites:Ljava/util/List; -+ -+ goto :goto_0 - .end method - - .method public final t()I -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,3178 ---- - return-void - .end method - -+ .method public getLeakChannels()Z -+ .locals 3 -+ -+ .line 1 -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ const-string v1, "CACHE_KEY_CTC_LEAK_CHANNELS" -+ -+ 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 setLeakChannels(Z)V -+ .locals 2 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ .line 1 -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ .line 1 -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ .line 1 -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ invoke-virtual {p0}, Lcom/discord/stores/Store;->getPrefs()Landroid/content/SharedPreferences; -+ -+ move-result-object v0 -+ -+ 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 -+ -+ # this only works 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; diff --git a/resources/scripts/ctcci/ctcci.py b/resources/scripts/ctcci/ctcci.py old mode 100755 new mode 100644 index b17add8..73a987d --- a/resources/scripts/ctcci/ctcci.py +++ b/resources/scripts/ctcci/ctcci.py @@ -21,7 +21,7 @@ def xmlpatch(patch_file, workdir, patch_name=""): print(f"Applying {patch_file}") - subprocess.run(f"{XML_PATCH_BIN} com.github.dnault.xmlpatch.BatchPatcher --patch {patch_file} --srcdir {workdir}", + subprocess.run(f"java -cp /opt/ctc/tools/xml-patch.jar com.github.dnault.xmlpatch.BatchPatcher --patch {patch_file} --srcdir {workdir}", shell=True, check=True, cwd=workdir) def patch(patch_file, workdir, patch_name=""): @@ -48,10 +48,6 @@ with open(os.path.join(REPO_FOLDER, "resources/patchport-state.json")) as f: VERSION = STATE["versioncode"] BASE_APK_PATH = os.path.join(WORK_FOLDER, f"discord-base-{VERSION}") -BASE_JAR_PATH = os.path.join(WORK_FOLDER, f"discord-base-{VERSION}-jar") -# Wipe and recreate the base jar folder -if os.path.exists(BASE_JAR_PATH): - shutil.rmtree(BASE_JAR_PATH) # Prepare names of input and output APKs INPUT_FILE = os.path.join(DISTOK_FOLDER, "android", @@ -83,12 +79,6 @@ if not os.path.exists(BASE_APK_PATH): shell=True, cwd=WORK_FOLDER) -# Convert the dexs to a jar (for slashcommands etc) TODO versionise gradle/this -if not os.path.exists(BASE_JAR_PATH): - subprocess.run(f"unzip -j {INPUT_FILE} *.dex -d {BASE_JAR_PATH}", shell=True, cwd=WORK_FOLDER) - subprocess.run(f"{DEX2JAR_BIN} *.dex", shell=True, cwd=BASE_JAR_PATH) - subprocess.run(f"zipmerge discord-base.jar classes*dex2jar.jar", shell=True, cwd=BASE_JAR_PATH) - # Copy the base cache to work on it shutil.copytree(BASE_APK_PATH, WORK_APK_PATH) @@ -140,9 +130,13 @@ for patch_name in PATCHES: os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "logo_debug.png")) if BRANCH in DYN_ICONS: + shutil.copyfile(DYN_ICONS[BRANCH]["bg"], + os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_background.png")) shutil.copyfile(DYN_ICONS[BRANCH]["fg"], os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png")) elif "default" in ICONS: + shutil.copyfile(DYN_ICONS["default"]["bg"], + os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_background.png")) shutil.copyfile(DYN_ICONS["default"]["fg"], os.path.join(WORK_APK_PATH, "res", "mipmap-xxxhdpi", "ic_launcher_foreground.png")) diff --git a/resources/scripts/ctcci/ctcconfig.example.py b/resources/scripts/ctcci/ctcconfig.example.py index 6ad82bb..ff8f65a 100644 --- a/resources/scripts/ctcci/ctcconfig.example.py +++ b/resources/scripts/ctcci/ctcconfig.example.py @@ -1,8 +1,6 @@ import os -APKTOOL_BIN = "java -jar /opt/ctc/tools/apktool.jar" -DEX2JAR_BIN = "java -jar /opt/ctc/tools/dex2jar.jar" -XML_PATCH_BIN = "java -cp /opt/ctc/tools/xml-patch.jar" +APKTOOL_BIN = "java -jar /opt/ctc/tools/apktool.jar" # use latest # APKs must be placed under $DISTOK_FOLDER/android/$PACKAGE_ID-$VERSION_NUMBER.apk # Example: /home/ave/distok/android/com.discord-909.apk @@ -17,14 +15,14 @@ FDROID_FOLDER = "/opt/ctc/gitrepo/resources/fdroid" RESULT_FOLDER = FDROID_FOLDER + "/repo" # Repo for CutTheCord (https://gitdab.com/distok/cutthecord) -DO_GITPULL = False +DO_GITPULL = True REPO_FOLDER = "/opt/ctc/gitrepo" # If false, jarsigner will be used for signing the apk. DO_APKSIGNER = True # Keystore file, alias and pass. Required. -KEYSTORE_FILE = "/opt/ctc/keystores/keystore.jks" +KEYSTORE_FILE = "/opt/ctc/gitrepo/resources/keystore.jks" KEYSTORE_ALIAS = "test" KEYSTORE_PASS = "password" @@ -44,15 +42,18 @@ PACKAGE_ID = "com.discord" FORCE = False # Custom ringtones, default = applied to all the ones not explicitly stated -RINGTONES = {"default": "/opt/ctc/gitrepo/resources/ringtones/removeskype.mp3"} +RINGTONES = {"ave": "/opt/ctc/gitrepo/resources/ringtones/sans.mp3", + "default": "/opt/ctc/gitrepo/resources/ringtones/removeskype.mp3"} # Custom icons, default = applied to all the ones not explicitly stated ICONS = {"ave": "/opt/ctc/gitrepo/resources/icons/ctclogoave.png", "default": "/opt/ctc/gitrepo/resources/icons/ctclogo.png"} # Custom dynamic icons, default = applied to all the ones not explicitly stated -DYN_ICONS = {"ave": {"fg": "/opt/ctc/gitrepo/resources/icons/fg.png"}, - "default": {"fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}} +DYN_ICONS = {"ave": {"bg": "/opt/ctc/gitrepo/resources/icons/bg.png", + "fg": "/opt/ctc/gitrepo/resources/icons/fg.png"}, + "default": {"bg": "/opt/ctc/gitrepo/resources/icons/dcbg.png", + "fg": "/opt/ctc/gitrepo/resources/icons/dcfg.png"}} # Custom app names, default = applied to all the ones not explicitly stated # Needs to be one word, __ gets replaced with space @@ -62,11 +63,17 @@ APP_NAMES = {"ave": "CutTheCord__Ave", "default": "CutTheCord"} # Custom fonts, default = applied to all the ones not explicitly stated -FONTS = {"ave": {"sourcecodepro_semibold.ttf": "/opt/ctc/gitrepo/resources/fonts/comic.ttf", - "ginto_bold.ttf": "/opt/ctc/gitrepo/resources/fonts/whitney_bold.ttf", - "ginto_medium.ttf": "/opt/ctc/gitrepo/resources/fonts/whitney_semibold.ttf", - "ginto_regular.ttf": "/opt/ctc/gitrepo/resources/fonts/whitney_medium.ttf"}, - "default": {}} +FONTS = {"ellie": {"whitney_bold.ttf": "/opt/ctc/gitrepo/resources/fonts/GoogleSans-Bold.ttf", + "whitney_semibold.ttf": "/opt/ctc/gitrepo/resources/fonts/GoogleSans-Medium.ttf", + "whitney_medium.ttf": "/opt/ctc/gitrepo/resources/fonts/GoogleSans-Regular.ttf"}, + "dyslexic": {"whitney_bold.ttf": "/opt/ctc/gitrepo/resources/fonts/OpenDyslexic3-Bold.ttf", + "whitney_semibold.ttf": "/opt/ctc/gitrepo/resources/fonts/OpenDyslexic3-Bold.ttf", + "whitney_medium.ttf": "/opt/ctc/gitrepo/resources/fonts/OpenDyslexic3-Regular.ttf"}, + "murm": {"whitney_bold.ttf": "/opt/ctc/gitrepo/resources/fonts/comicbd.ttf", + "whitney_semibold.ttf": "/opt/ctc/gitrepo/resources/fonts/comicbd.ttf", + "whitney_medium.ttf": "/opt/ctc/gitrepo/resources/fonts/comic.ttf"}, + "ave": {"sourcecodepro_semibold.ttf": "/opt/ctc/gitrepo/resources/fonts/comic.ttf"}, + "default": {}} # Amount of last builds cleanartifacts.py should keep CLEAN_ARTIFACT_KEEP_COUNT = 2 diff --git a/resources/xmlpatches/betterdmheader/87202.xml b/resources/xmlpatches/betterdmheader/87202.xml deleted file mode 100644 index d858450..0000000 --- a/resources/xmlpatches/betterdmheader/87202.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - never - never - always - - diff --git a/resources/xmlpatches/customtheme/87202.xml b/resources/xmlpatches/customtheme/87202.xml index fef3faf..34ead93 100644 --- a/resources/xmlpatches/customtheme/87202.xml +++ b/resources/xmlpatches/customtheme/87202.xml @@ -36,43 +36,8 @@ #990f0f0f #ff000000 #ff000000 - #ff000000 #ff000000 #e6000000 - #ff9c4249 - #ff9c4249 - #1a5865f2 - #335865f2 - - #1a9c4249 - #149c4249 - #4d9c4249 - #1a9c4249 - - - - @color/primary_500 - - - - @color/primary_500 - - - - @color/primary_500 - - - - @color/primary_500 - - - - @color/primary_500 - - - - @color/primary_500 - diff --git a/resources/xmlpatches/notrack/87202.xml b/resources/xmlpatches/notrack/87202.xml deleted file mode 100644 index 4359270..0000000 --- a/resources/xmlpatches/notrack/87202.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 00000000-0000-0000-0000-000000000000 - -