Compare commits

..

2 commits

Author SHA1 Message Date
65d955f011 Port patches to 93205 2021-09-20 12:13:05 -04:00
a8124a4796 fix patchport 2021-09-20 11:23:55 -04:00
35 changed files with 59687 additions and 17 deletions

View file

@ -8,7 +8,7 @@ Current state is good enough™ for an RC release, and there's currently RC rele
For status updates and support on the project, join #cutthecord on https://libera.chat. WebIRC link: https://web.libera.chat/#cutthecord
**Latest supported Discord Android version:** 87.2 - Alpha (87202), released on 2021-08-04.
**Latest supported Discord Android version:** 93.5 - Alpha (93205), released on 2021-09-20.
New patch development will be done for the latest supported version.

1
patchport-state.json Normal file
View file

@ -0,0 +1 @@
{"versionname": "93.5 - Alpha", "versioncode": "93205"}

View file

@ -0,0 +1,37 @@
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 Mon Sep 20 14:59:38 2021
--- to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali Mon Sep 20 15:00:31 2021
***************
*** 245,251 ****
invoke-static {v3, v11}, 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 9
invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
--- 245,251 ----
invoke-static {v3, v11}, 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 9
invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
***************
*** 452,458 ****
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;
goto :goto_d
--- 452,458 ----
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;
goto :goto_d

View file

@ -0,0 +1,226 @@
diff -crB -x dist -x res/raw -x build from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml 2021-09-20 11:44:53.547698589 -0400
--- to/AndroidManifest.xml 2021-09-20 11:46:33.139145956 -0400
***************
*** 1,4 ****
! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" android:installLocation="auto" package="com.discord" platformBuildVersionCode="93205" platformBuildVersionName="93.5 - Alpha">
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch" android:required="false"/>
--- 1,4 ----
! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" android:installLocation="auto" package="com.cutthecord.CTCBRANCH" platformBuildVersionCode="93205CTCBUILD" platformBuildVersionName="93.5-cutthecord-CTCBUILD">
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch" android:required="false"/>
***************
*** 22,28 ****
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
! <permission android:description="@string/app_permission_connect_desc" android:label="@string/app_permission_connect_label" android:name="com.discord.permission.CONNECT" android:protectionLevel="dangerous"/>
<uses-feature android:name="android.hardware.camera.any" android:required="false"/>
<queries>
<package android:name="com.samsung.android.game.gametools"/>
--- 22,28 ----
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
! <permission android:description="@string/app_permission_connect_desc" android:label="@string/app_permission_connect_label" android:name="com.cutthecord.CTCBRANCH.permission.CONNECT" android:protectionLevel="dangerous"/>
<uses-feature android:name="android.hardware.camera.any" android:required="false"/>
<queries>
<package android:name="com.samsung.android.game.gametools"/>
***************
*** 35,41 ****
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
! <application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
<activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
<activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
--- 35,41 ----
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
! <application android:allowBackup="true" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square_canary" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_canary" android:supportsRtl="true" android:theme="@style/AppTheme.Dark">
<activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
<activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
<activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
***************
*** 143,149 ****
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
! <service android:exported="true" android:name="com.discord.app.DiscordConnectService" android:permission="com.discord.permission.CONNECT">
<intent-filter>
<action android:name="com.discord.intent.action.CONNECT"/>
<data android:host="app" android:pathPattern="/connect/.*" android:scheme="discord"/>
--- 143,149 ----
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
! <service android:exported="true" android:name="com.discord.app.DiscordConnectService" android:permission="com.cutthecord.CTCBRANCH.permission.CONNECT">
<intent-filter>
<action android:name="com.discord.intent.action.CONNECT"/>
<data android:host="app" android:pathPattern="/connect/.*" android:scheme="discord"/>
***************
*** 166,172 ****
</intent-filter>
</receiver>
<service android:foregroundServiceType="mediaProjection" android:name="com.discord.utilities.voice.VoiceEngineForegroundService"/>
! <provider android:authorities="com.discord.file-provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
</provider>
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
--- 166,172 ----
</intent-filter>
</receiver>
<service android:foregroundServiceType="mediaProjection" android:name="com.discord.utilities.voice.VoiceEngineForegroundService"/>
! <provider android:authorities="com.cutthecord.CTCBRANCH.file-provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
</provider>
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
***************
*** 210,218 ****
<receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
! <provider android:authorities="com.discord.firebaseinitprovider" android:directBootAware="true" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
! <provider android:authorities="com.discord.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:name="androidx.work.impl.background.systemjob.SystemJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_foreground_service_default" android:exported="false" android:name="androidx.work.impl.foreground.SystemForegroundService"/>
--- 210,218 ----
<receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
! <provider android:authorities="com.cutthecord.CTCBRANCH.firebaseinitprovider" android:directBootAware="true" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
! <provider android:authorities="com.cutthecord.CTCBRANCH.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:name="androidx.work.impl.background.systemjob.SystemJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_foreground_service_default" android:exported="false" android:name="androidx.work.impl.foreground.SystemForegroundService"/>
***************
*** 267,270 ****
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:exported="false" android:name="com.android.billingclient.api.ProxyBillingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<meta-data android:name="com.android.vending.derived.apk.id" android:value="1"/>
</application>
! </manifest>
\ No newline at end of file
--- 267,270 ----
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:exported="false" android:name="com.android.billingclient.api.ProxyBillingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<meta-data android:name="com.android.vending.derived.apk.id" android:value="1"/>
</application>
! </manifest>
diff -crB -x dist -x res/raw -x build from/apktool.yml to/apktool.yml
*** from/apktool.yml 2021-09-20 11:44:47.586492190 -0400
--- to/apktool.yml 2021-09-20 11:46:20.896722267 -0400
***************
*** 860,864 ****
tag: null
version: 2.5.1-e25c0f-SNAPSHOT
versionInfo:
! versionCode: '93205'
! versionName: 93.5 - Alpha
--- 860,864 ----
tag: null
version: 2.5.1-e25c0f-SNAPSHOT
versionInfo:
! versionCode: '93205CTCBUILD'
! versionName: 93.5-cutthecord-CTCBUILD
diff -crB -x dist -x res/raw -x build from/res/values/strings.xml to/res/values/strings.xml
*** from/res/values/strings.xml 2021-09-20 11:44:48.010506871 -0400
--- to/res/values/strings.xml 2021-09-20 11:46:20.897722302 -0400
***************
*** 2203,2209 ****
<string name="disconnect_other">Disconnect</string>
<string name="disconnect_self">Disconnect</string>
<string name="disconnect_user_success">User has been disconnected from voice.</string>
! <string name="discord">Discord-Canary</string>
<string name="discord_desc_long">Join over 100 million people who use Discord to talk and hang out with communities and friends.</string>
<string name="discord_desc_short">Imagine a place</string>
<string name="discord_gg">discord.gg/</string>
--- 2203,2209 ----
<string name="disconnect_other">Disconnect</string>
<string name="disconnect_self">Disconnect</string>
<string name="disconnect_user_success">User has been disconnected from voice.</string>
! <string name="discord">CTCNAME</string>
<string name="discord_desc_long">Join over 100 million people who use Discord to talk and hang out with communities and friends.</string>
<string name="discord_desc_short">Imagine a place</string>
<string name="discord_gg">discord.gg/</string>
***************
*** 6106,6112 ****
<string name="notification_reply_failed">Failed to reply to {recipient}</string>
<string name="notification_reply_success">Replied to {recipient}</string>
<string name="notification_settings">Notification Settings</string>
! <string name="notification_title_discord">Discord</string>
<string name="notification_title_start_game">"Somebody Playin'"</string>
<string name="notifications">Notifications</string>
<string name="notifications_muted">Notifications, muted</string>
--- 6106,6112 ----
<string name="notification_reply_failed">Failed to reply to {recipient}</string>
<string name="notification_reply_success">Replied to {recipient}</string>
<string name="notification_settings">Notification Settings</string>
! <string name="notification_title_discord">CTCNAME</string>
<string name="notification_title_start_game">"Somebody Playin'"</string>
<string name="notifications">Notifications</string>
<string name="notifications_muted">Notifications, muted</string>
***************
*** 8531,8537 ****
<string name="suggested_languages">Suggested languages</string>
<string name="suggestions">Suggestions</string>
<string name="summary_collapsed_preference_list">%1$s, %2$s</string>
! <string name="support">Support</string>
<string name="suppress_all_embeds">Remove all embeds</string>
<string name="suppress_embed_body">This will remove all embeds on this message for everyone.</string>
<string name="suppress_embed_confirm">Remove All Embeds</string>
--- 8531,8537 ----
<string name="suggested_languages">Suggested languages</string>
<string name="suggestions">Suggestions</string>
<string name="summary_collapsed_preference_list">%1$s, %2$s</string>
! <string name="support">CutTheCord Repo</string>
<string name="suppress_all_embeds">Remove all embeds</string>
<string name="suppress_embed_body">This will remove all embeds on this message for everyone.</string>
<string name="suppress_embed_confirm">Remove All Embeds</string>
Only in to/res/values: strings.xml.orig
diff -crB -x dist -x res/raw -x build from/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali to/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali
*** from/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali 2021-09-20 11:44:48.271515908 -0400
--- to/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali 2021-09-20 11:46:20.898722336 -0400
***************
*** 104,110 ****
.line 3
new-instance v0, Landroid/content/Intent;
! const-string v1, "https://discord.com/app"
.line 4
invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
--- 104,110 ----
.line 3
new-instance v0, Landroid/content/Intent;
! const-string v1, "https://gitdab.com/distok/cutthecord/issues/22#issuecomment-82"
.line 4
invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
diff -crB -x dist -x res/raw -x build from/smali_classes2/com/discord/widgets/settings/WidgetSettings$onViewBound$1$21.smali to/smali_classes2/com/discord/widgets/settings/WidgetSettings$onViewBound$1$21.smali
*** from/smali_classes2/com/discord/widgets/settings/WidgetSettings$onViewBound$1$21.smali 2021-09-20 11:44:47.732497245 -0400
--- to/smali_classes2/com/discord/widgets/settings/WidgetSettings$onViewBound$1$21.smali 2021-09-20 11:46:20.898722336 -0400
***************
*** 89,95 ****
invoke-static {v1, p1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
! const-string v2, "https://support.discord.com"
const/4 v3, 0x0
--- 89,95 ----
invoke-static {v1, p1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
! const-string v2, "https://gitdab.com/distok/cutthecord"
const/4 v3, 0x0

View file

@ -0,0 +1,20 @@
diff -crB from/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali to/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali
*** from/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali Mon Sep 20 14:59:38 2021
--- to/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali Mon Sep 20 15:00:31 2021
***************
*** 107,113 ****
.line 3
iget-object v0, p0, Lcom/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1;->this$0:Lcom/discord/widgets/tabs/WidgetTabsHost;
! const v1, 0x7f0602e0
invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->getColor(Landroidx/fragment/app/Fragment;I)I
--- 107,113 ----
.line 3
iget-object v0, p0, Lcom/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1;->this$0:Lcom/discord/widgets/tabs/WidgetTabsHost;
! const v1, 0x7f060024
invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->getColor(Landroidx/fragment/app/Fragment;I)I

View file

@ -0,0 +1,20 @@
diff -crB from/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali to/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali
*** from/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali Mon Sep 20 14:59:38 2021
--- to/smali_classes2/com/discord/widgets/settings/WidgetSettings.smali Mon Sep 20 15:00:31 2021
***************
*** 785,791 ****
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
! const-string v1, " - 93.5 - Alpha (93205)"
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
--- 785,791 ----
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
! const-string v1, " - 93.5 - Alpha (93205), with Cutthecord patches"
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

View file

@ -0,0 +1,90 @@
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
***************
*** 444,514 ****
.end method
.method private final setSuperProperties(Ljava/util/Map;)V
! .locals 3
! .annotation system Ldalvik/annotation/Signature;
! value = {
! "(",
! "Ljava/util/Map<",
! "Ljava/lang/String;",
! "+",
! "Ljava/lang/Object;",
! ">;)V"
! }
! .end annotation
!
! sget-object v0, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->superProperties$delegate:Lkotlin/properties/ReadWriteProperty;
!
! sget-object v1, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->$$delegatedProperties:[Lkotlin/reflect/KProperty;
!
! const/4 v2, 0x0
!
! aget-object v1, v1, v2
!
! invoke-interface {v0, p0, v1, p1}, Lkotlin/properties/ReadWriteProperty;->setValue(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V
!
return-void
.end method
.method private final declared-synchronized updateSuperProperties(Ljava/util/Map;)V
! .locals 1
! .annotation system Ldalvik/annotation/Signature;
! value = {
! "(",
! "Ljava/util/Map<",
! "Ljava/lang/String;",
! "+",
! "Ljava/lang/Object;",
! ">;)V"
! }
! .end annotation
!
! monitor-enter p0
!
! .line 1
! :try_start_0
! invoke-virtual {p0}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->getSuperProperties()Ljava/util/Map;
!
! move-result-object v0
!
! invoke-static {v0, p1}, Ld0/t/h0;->plus(Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
!
! move-result-object p1
!
! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->setSuperProperties(Ljava/util/Map;)V
! :try_end_0
! .catchall {:try_start_0 .. :try_end_0} :catchall_0
!
! .line 2
! monitor-exit p0
return-void
-
- :catchall_0
- move-exception p1
-
- monitor-exit p0
-
- throw p1
.end method
--- 444,458 ----
.end method
.method private final setSuperProperties(Ljava/util/Map;)V
! .locals 0
!
return-void
.end method
.method private final declared-synchronized updateSuperProperties(Ljava/util/Map;)V
! .locals 0
return-void
.end method

View file

@ -0,0 +1,92 @@
diff -crB from/smali_classes2/com/discord/utilities/textprocessing/MessagePreprocessor.smali to/smali_classes2/com/discord/utilities/textprocessing/MessagePreprocessor.smali
*** from/smali_classes2/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2021-08-04 19:45:53.005373900 +0100
--- to/smali_classes2/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2021-08-04 21:16:24.965470600 +0100
***************
*** 773,851 ****
.end method
.method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
! .locals 3
! .annotation system Ldalvik/annotation/Signature;
! value = {
! "(",
! "Ljava/util/Collection<",
! "Lcom/discord/simpleast/core/node/Node<",
! "Lcom/discord/utilities/textprocessing/MessageRenderContext;",
! ">;>;)V"
! }
! .end annotation
- .line 1
- invoke-interface {p1}, Ljava/util/Collection;->size()I
-
- move-result v0
-
- const/4 v1, 0x1
-
- if-ne v0, v1, :cond_2
-
- iget-object v0, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
-
- if-eqz v0, :cond_2
-
- invoke-interface {v0}, Ljava/util/List;->size()I
-
- move-result v0
-
- if-eq v0, v1, :cond_0
-
- goto :goto_0
-
- :cond_0
- const/4 v0, 0x0
-
- .line 2
- invoke-static {p1, v0}, Ld0/t/u;->elementAt(Ljava/lang/Iterable;I)Ljava/lang/Object;
-
- move-result-object v1
-
- check-cast v1, Lcom/discord/simpleast/core/node/Node;
-
- .line 3
- iget-object v2, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
-
- invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
-
- move-result-object v0
-
- check-cast v0, Lcom/discord/api/message/embed/MessageEmbed;
-
- .line 4
- instance-of v1, v1, Lcom/discord/utilities/textprocessing/node/UrlNode;
-
- if-nez v1, :cond_1
-
- return-void
-
- .line 5
- :cond_1
- sget-object v1, Lcom/discord/utilities/embed/EmbedResourceUtils;->INSTANCE:Lcom/discord/utilities/embed/EmbedResourceUtils;
-
- invoke-virtual {v1, v0}, Lcom/discord/utilities/embed/EmbedResourceUtils;->isSimpleEmbed(Lcom/discord/api/message/embed/MessageEmbed;)Z
-
- move-result v0
-
- if-eqz v0, :cond_2
-
- .line 6
- invoke-interface {p1}, Ljava/util/Collection;->clear()V
-
- :cond_2
- :goto_0
return-void
.end method
--- 773,780 ----
.end method
.method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
! .locals 0
return-void
.end method

View file

@ -0,0 +1,102 @@
diff -crB from/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali to/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali
*** from/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali 2020-12-10 17:59:07.971850829 +0000
--- to/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali 2020-12-10 18:09:32.190991391 +0000
***************
*** 84,147 ****
.end method
.method public final invoke()Z
! .locals 4
!
! .line 2
! iget-object v0, p0, Lcom/discord/stores/StoreExperiments$getExperimentalAlpha$1;->this$0:Lcom/discord/stores/StoreExperiments;
!
! invoke-static {v0}, Lcom/discord/stores/StoreExperiments;->access$getStoreUser$p(Lcom/discord/stores/StoreExperiments;)Lcom/discord/stores/StoreUser;
!
! move-result-object v0
!
! invoke-virtual {v0}, Lcom/discord/stores/StoreUser;->getMe()Lcom/discord/models/user/MeUser;
!
! move-result-object v0
!
! .line 3
! iget-object v1, p0, Lcom/discord/stores/StoreExperiments$getExperimentalAlpha$1;->this$0:Lcom/discord/stores/StoreExperiments;
!
! invoke-static {v1}, Lcom/discord/stores/StoreExperiments;->access$getStoreGuilds$p(Lcom/discord/stores/StoreExperiments;)Lcom/discord/stores/StoreGuilds;
!
! move-result-object v1
!
! invoke-virtual {v1}, Lcom/discord/stores/StoreGuilds;->getGuilds()Ljava/util/Map;
!
! move-result-object v1
!
! const-wide v2, 0x2bc056ab0800006L
!
! invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
!
! move-result-object v2
!
! invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
!
! move-result-object v1
!
! check-cast v1, Lcom/discord/models/guild/Guild;
!
! .line 4
! sget-object v2, Lcom/discord/utilities/user/UserUtils;->INSTANCE:Lcom/discord/utilities/user/UserUtils;
!
! invoke-virtual {v2, v0}, Lcom/discord/utilities/user/UserUtils;->isStaff(Lcom/discord/models/user/User;)Z
!
! move-result v0
!
! if-nez v0, :cond_1
!
! if-eqz v1, :cond_0
!
! goto :goto_0
!
! :cond_0
! const/4 v0, 0x0
!
! goto :goto_1
!
! :cond_1
! :goto_0
! const/4 v0, 0x1
!
! :goto_1
! return v0
.end method
--- 84,92 ----
.end method
.method public final invoke()Z
! .locals 1
!
! const/4 v0, 0x1
!
! return v0
.end method
diff -crB from/smali_classes2/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali to/smali_classes2/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali
*** from/smali_classes2/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali 2020-12-10 17:59:09.323866394 +0000
--- to/smali_classes2/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali 2020-12-10 18:09:56.939273259 +0000
***************
*** 121,131 ****
sget-object p3, Lcom/discord/utilities/user/UserUtils;->INSTANCE:Lcom/discord/utilities/user/UserUtils;
! invoke-static {p1, v2}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
!
! invoke-virtual {p3, p1}, Lcom/discord/utilities/user/UserUtils;->isStaff(Lcom/discord/models/user/User;)Z
!
! move-result p3
if-eqz p3, :cond_0
--- 121,127 ----
sget-object p3, Lcom/discord/utilities/user/UserUtils;->INSTANCE:Lcom/discord/utilities/user/UserUtils;
! const/4 p3, 0x1
if-eqz p3, :cond_0

View file

@ -0,0 +1 @@
# Already in base discord

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,14 @@
diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
*** from/AndroidManifest.xml Mon Sep 20 14:59:38 2021
--- to/AndroidManifest.xml Mon Sep 20 15:00:31 2021
***************
*** 1,4 ****
! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" android:installLocation="auto" package="com.discord" platformBuildVersionCode="30" platformBuildVersionName="11">
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch" android:required="false"/>
--- 1,4 ----
! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" android:installLocation="auto" package="com.discord" platformBuildVersionCode="93205" platformBuildVersionName="93.5 - Alpha">
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch" android:required="false"/>

View file

@ -0,0 +1,54 @@
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
***************
*** 206,212 ****
if-eqz v4, :cond_6
! const/4 v9, 0x0
goto :goto_1
--- 206,212 ----
if-eqz v4, :cond_6
! const/16 v9, 0x8
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

View file

@ -0,0 +1,20 @@
diff -crB from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputAttachments$configureFlexInputFragment$1.smali to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputAttachments$configureFlexInputFragment$1.smali
*** from/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputAttachments$configureFlexInputFragment$1.smali Mon Sep 20 14:59:38 2021
--- to/smali_classes2/com/discord/widgets/chat/input/WidgetChatInputAttachments$configureFlexInputFragment$1.smali Mon Sep 20 15:00:31 2021
***************
*** 433,439 ****
invoke-static {v0, v1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
! invoke-virtual {v0, v6}, Landroid/widget/ImageButton;->setVisibility(I)V
:goto_1
return-void
--- 433,439 ----
invoke-static {v0, v1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
! # invoke-virtual {v0, v6}, Landroid/widget/ImageButton;->setVisibility(I)V
:goto_1
return-void

View file

@ -0,0 +1,58 @@
diff -crB from/smali/com/discord/api/message/attachment/MessageAttachment.smali to/smali/com/discord/api/message/attachment/MessageAttachment.smali
*** from/smali/com/discord/api/message/attachment/MessageAttachment.smali 2021-08-04 19:45:36.435878400 +0100
--- to/smali/com/discord/api/message/attachment/MessageAttachment.smali 2021-08-04 21:31:37.148568400 +0100
***************
*** 376,398 ****
.end method
.method public final h()Z
! .locals 5
!
! .line 1
! iget-object v0, p0, Lcom/discord/api/message/attachment/MessageAttachment;->filename:Ljava/lang/String;
!
! const-string v1, "SPOILER_"
!
! const/4 v2, 0x0
!
! const/4 v3, 0x2
!
! const/4 v4, 0x0
!
! invoke-static {v0, v1, v2, v3, v4}, Ld0/g0/t;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
!
! move-result v0
!
return v0
.end method
--- 376,383 ----
.end method
.method public final h()Z
! .locals 1
! const/4 v0, 0x0
return v0
.end method
diff -crB from/smali_classes2/com/discord/utilities/textprocessing/node/SpoilerNode.smali to/smali_classes2/com/discord/utilities/textprocessing/node/SpoilerNode.smali
*** from/smali_classes2/com/discord/utilities/textprocessing/node/SpoilerNode.smali 2020-12-10 17:59:08.345855134 +0000
--- to/smali_classes2/com/discord/utilities/textprocessing/node/SpoilerNode.smali 2020-12-10 18:00:01.624468003 +0000
***************
*** 249,256 ****
.method public isRevealed()Z
.locals 1
! .line 1
! iget-boolean v0, p0, Lcom/discord/utilities/textprocessing/node/SpoilerNode;->isRevealed:Z
return v0
.end method
--- 249,255 ----
.method public isRevealed()Z
.locals 1
! const/4 v0, 0x1
return v0
.end method

View file

@ -0,0 +1,2 @@
#!/bin/bash
mv smali/com/airbnb smali_classes2/com/

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,34 @@
diff -crB from/smali/com/discord/gateway/GatewaySocket.smali to/smali/com/discord/gateway/GatewaySocket.smali
*** from/smali/com/discord/gateway/GatewaySocket.smali 2021-08-04 19:45:39.263375300 +0100
--- to/smali/com/discord/gateway/GatewaySocket.smali 2021-08-04 23:26:38.221788200 +0100
***************
*** 1410,1416 ****
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
! const-string p1, "/?encoding=json&v=9&compress=zlib-stream"
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
--- 1410,1416 ----
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
! const-string p1, "/?encoding=json&v=9"
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
diff -crB from/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali to/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali
*** from/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali 2021-08-04 19:45:39.360374800 +0100
--- to/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali 2021-08-04 23:28:01.288223200 +0100
***************
*** 115,120 ****
--- 115,122 ----
iput p2, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->largeThreshold:I
+ const/4 p3, 0x0
+
iput-boolean p3, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->compress:Z
iput-wide p4, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->capabilities:J

View file

@ -0,0 +1,97 @@
diff -crB from/smali_classes2/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler.smali to/smali_classes2/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler.smali
*** from/smali_classes2/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler.smali Mon Sep 20 14:59:38 2021
--- to/smali_classes2/com/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler.smali Mon Sep 20 15:00:31 2021
***************
*** 747,827 ****
.end method
.method public onMessageAuthorAvatarClicked(Lcom/discord/models/message/Message;J)V
! .locals 12
- const-string v0, "message"
-
- invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
-
- .line 1
- sget-object v0, Lcom/discord/utilities/guilds/PublicGuildUtils;->INSTANCE:Lcom/discord/utilities/guilds/PublicGuildUtils;
-
- invoke-virtual {v0, p1}, Lcom/discord/utilities/guilds/PublicGuildUtils;->isPublicGuildSystemMessage(Lcom/discord/models/message/Message;)Z
-
- move-result v0
-
- if-nez v0, :cond_1
-
- invoke-virtual {p1}, Lcom/discord/models/message/Message;->isCrosspost()Z
-
- move-result v0
-
- if-eqz v0, :cond_0
-
- goto :goto_0
-
- .line 2
- :cond_0
- invoke-virtual {p1}, Lcom/discord/models/message/Message;->getAuthor()Lcom/discord/api/user/User;
-
- move-result-object v0
-
- if-eqz v0, :cond_2
-
- .line 3
- sget-object v1, Lcom/discord/widgets/user/usersheet/WidgetUserSheet;->Companion:Lcom/discord/widgets/user/usersheet/WidgetUserSheet$Companion;
-
- invoke-virtual {v0}, Lcom/discord/api/user/User;->i()J
-
- move-result-wide v2
-
- invoke-virtual {p1}, Lcom/discord/models/message/Message;->getChannelId()J
-
- move-result-wide v4
-
- invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
-
- move-result-object v4
-
- invoke-direct {p0}, Lcom/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler;->getFragmentManager()Landroidx/fragment/app/FragmentManager;
-
- move-result-object v5
-
- invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
-
- move-result-object v6
-
- const/4 v7, 0x0
-
- const/4 v8, 0x0
-
- const/4 v9, 0x0
-
- const/16 v10, 0x70
-
- const/4 v11, 0x0
-
- invoke-static/range {v1 .. v11}, Lcom/discord/widgets/user/usersheet/WidgetUserSheet$Companion;->show$default(Lcom/discord/widgets/user/usersheet/WidgetUserSheet$Companion;JLjava/lang/Long;Landroidx/fragment/app/FragmentManager;Ljava/lang/Long;Ljava/lang/Boolean;Lcom/discord/widgets/user/usersheet/WidgetUserSheet$StreamPreviewClickBehavior;Ljava/lang/String;ILjava/lang/Object;)V
-
- goto :goto_1
-
- .line 4
- :cond_1
- :goto_0
invoke-virtual {p0, p1, p2, p3}, Lcom/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler;->onMessageAuthorNameClicked(Lcom/discord/models/message/Message;J)V
- :cond_2
- :goto_1
return-void
.end method
--- 747,756 ----
.end method
.method public onMessageAuthorAvatarClicked(Lcom/discord/models/message/Message;J)V
! .locals 4
invoke-virtual {p0, p1, p2, p3}, Lcom/discord/widgets/chat/list/adapter/WidgetChatListAdapterEventsHandler;->onMessageAuthorNameClicked(Lcom/discord/models/message/Message;J)V
return-void
.end method

View file

@ -0,0 +1,72 @@
diff -crB -x dist -x res/raw -x build com.discord-93205-base/smali/com/discord/models/member/GuildMember$Companion.smali com.discord-93205/smali/com/discord/models/member/GuildMember$Companion.smali
*** com.discord-93205-base/smali/com/discord/models/member/GuildMember$Companion.smali 2021-09-20 10:33:46.658066022 -0400
--- com.discord-93205/smali/com/discord/models/member/GuildMember$Companion.smali 2021-09-20 11:21:55.887732280 -0400
***************
*** 691,696 ****
--- 691,728 ----
:goto_4
if-eqz v0, :cond_8
+ new-instance v1, Ljava/lang/StringBuilder;
+
+ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+
+ const-string v2, " ("
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
+
+ invoke-interface {p1}, Lcom/discord/models/user/User;->getUsername()Ljava/lang/String;
+
+ move-result-object v2
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
+
+ const-string v2, "#"
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
+
+ invoke-interface {p1}, Lcom/discord/models/user/User;->getDiscriminator()I
+
+ move-result v2
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+
+ const-string v2, ")"
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
+
+ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+
+ move-result-object v0
+
goto :goto_5
:cond_8
***************
*** 698,703 ****
--- 730,753 ----
move-result-object v0
+ new-instance v1, Ljava/lang/StringBuilder;
+
+ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+
+ const-string v2, "#"
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
+
+ invoke-interface {p1}, Lcom/discord/models/user/User;->getDiscriminator()I
+
+ move-result v2
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+
+ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+
+ move-result-object v0
+
:goto_5
return-object v0
.end method
Only in com.discord-93205/smali/com/discord/models/member: GuildMember$Companion.smali.orig

View file

@ -0,0 +1,26 @@
#!/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/

View file

@ -0,0 +1,13 @@
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

View file

@ -0,0 +1 @@
## DisTok CutTheCord: Slash Commands

View file

@ -0,0 +1,453 @@
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;-><init>()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;-><init>(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;-><init>(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;-><init>(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;

View file

@ -1 +1 @@
{"versionname": "87.2 - Alpha", "versioncode": "87202"}
{"versionname": "93.5 - Alpha", "versioncode": "93205"}

View file

@ -16,7 +16,7 @@ with open("/opt/ctc/gitrepo/resources/patchport-state.json", "r") as f:
from_versionname = jin["versionname"]
apk_folder = sys.argv[1]
cutthecord_folder = os.path.dirname(os.path.realpath(__file__))
cutthecord_folder = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
debug = False
tmp_folder = "/tmp/patchport"
@ -32,11 +32,6 @@ def modify_patch(patch_name, patch_path):
patch_content = patch_content.replace(from_versioncode, to_versioncode)
patch_content = patch_content.replace(from_versionname, to_versionname)
if patch_name == "notrack":
# TODO: There's a risk here that we'll replace the nulled value
from_crashlytics_id = re_crashlytics.findall(patch_content)[0]
patch_content = patch_content.replace(from_crashlytics_id,
to_crashlytics_id)
return patch_content
@ -113,9 +108,6 @@ re_versioncode_yml = re.compile(r'versionCode: \'([0-9]+)\'')
re_versionname_yml = re.compile(r'versionName: \'?(.+?)\'?$')
re_releasedate = re.compile(r'released on ([0-9]{4}-[0-9]{2}-[0-9]{2})')
re_crashlytics = re.compile(r'com\.crashlytics\.android\.build_id">([a-z0-9]'
r'{8}-?[a-z0-9]{4}-?[a-z0-9]{4}-?[a-z0-9]{4}-?'
r'[a-z0-9]{12})</string>')
# Get version code and name
@ -124,12 +116,6 @@ with open(os.path.join(apk_folder, "apktool.yml")) as f:
to_versioncode = re_versioncode_yml.findall(file_contents)[0]
to_versionname = re_versionname_yml.findall(file_contents)[0]
# Get crashlytics build ID
with open(os.path.join(apk_folder, "res", "values", "strings.xml")) as f:
file_contents = f.read()
to_crashlytics_id = re_crashlytics.findall(file_contents)[0]
failures = []
for patch in os.listdir(os.path.join(cutthecord_folder, "resources/xmlpatches")):
@ -152,6 +138,8 @@ for patch in os.listdir(os.path.join(cutthecord_folder, "resources/xmlpatches"))
tmp_out_path = os.path.join("/tmp/", patch, f"{to_versioncode}.xml")
readme_path = os.path.join(cutthecord_folder, "resources/xmlpatches", patch, "README.md")
os.mkdir(os.path.dirname(tmp_out_path))
# Handle copying of versioned scripts, untested and dirty!
script_path = os.path.join(cutthecord_folder, "resources/xmlpatches", patch, f"{from_versioncode}.sh")
if os.path.exists(script_path):

View file

@ -0,0 +1,7 @@
<diffs>
<diff file="res/menu/menu_chat_toolbar.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="menu/item[@android:icon='@drawable/ic_call_24dp']/@app:showAsAction">never</replace>
<replace sel="menu/item[@android:icon='@drawable/ic_videocam_white_24dp']/@app:showAsAction">never</replace>
<replace sel="menu/item[@android:icon='@drawable/ic_search_white_24dp']/@app:showAsAction">always</replace>
</diff>
</diffs>

View file

@ -0,0 +1 @@
## DisTok CutTheCord: Better DM Header

View file

@ -0,0 +1,6 @@
<diffs>
<diff file="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Remove android:screenOrientation entry -->
<remove msel="manifest/application/activity/@android:screenOrientation"/>
</diff>
</diffs>

View file

@ -0,0 +1,78 @@
<diffs>
<diff file="res/drawable/drawable_circle_black.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<replace sel="shape/solid/@android:color">@android:color/transparent</replace>
</diff>
<diff file="res/drawable/drawable_overlay_channels_active_dark.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<replace sel="layer-list/item/shape/solid/@android:color">@color/primary_500</replace>
</diff>
<diff file="res/layout/widget_chat_input.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="LinearLayout/LinearLayout/RelativeLayout/@android:background">@color/primary_600</replace>
</diff>
<diff file="res/values/colors.xml">
<replace sel="resources/color[@name='dark_grey_2']/text()">#ff000000</replace>
<replace sel="resources/color[@name='dark_grey_2_alpha_10']/text()">#ff000000</replace>
<replace sel="resources/color[@name='design_dark_default_color_background']/text()">#ff000000</replace>
<replace sel="resources/color[@name='design_dark_default_color_surface']/text()">#ff000000</replace>
<replace sel="resources/color[@name='grey_unread']/text()">#ff000000</replace>
<replace sel="resources/color[@name='link']/text()">#ff50f148</replace>
<replace sel="resources/color[@name='primary_500']/text()">#ff333333</replace>
<replace sel="resources/color[@name='primary_500_alpha_20']/text()">#330f0f0f</replace>
<replace sel="resources/color[@name='primary_500_alpha_30']/text()">#4d0f0f0f</replace>
<replace sel="resources/color[@name='primary_500_alpha_32']/text()">#510f0f0f</replace>
<replace sel="resources/color[@name='primary_500_alpha_60']/text()">#990f0f0f</replace>
<replace sel="resources/color[@name='primary_600']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_600_alpha_60']/text()">#99000000</replace>
<replace sel="resources/color[@name='primary_630']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_630_alpha_60']/text()">#99000000</replace>
<replace sel="resources/color[@name='primary_630_alpha_90']/text()">#e6000000</replace>
<replace sel="resources/color[@name='primary_660']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_660_alpha_90']/text()">#e6000000</replace>
<replace sel="resources/color[@name='primary_700']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_700_alpha_50']/text()">#80000000</replace>
<replace sel="resources/color[@name='primary_700_alpha_60']/text()">#990f0f0f</replace>
<replace sel="resources/color[@name='primary_dark_600']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_630']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_660']/text()">#ff000000</replace>
<replace sel="resources/color[@name='primary_dark_700']/text()">#ff000000</replace>
<replace sel="resources/color[@name='tooltip_background_dark']/text()">#e6000000</replace>
<replace sel="resources/color[@name='brand']/text()">#ff9c4249</replace>
<replace sel="resources/color[@name='brand_500']/text()">#ff9c4249</replace>
<replace sel="resources/color[@name='brand_500_alpha_10']/text()">#1a5865f2</replace>
<replace sel="resources/color[@name='brand_500_alpha_20']/text()">#335865f2</replace>
</diff>
<diff file="res/values/styles.xml">
<replace sel="resources/style[@name='AppTheme.AutoGenerated.Dark']/item[@name='colorBackgroundMentioned']/text()">#1a9c4249</replace>
<replace sel="resources/style[@name='AppTheme.AutoGenerated.Dark']/item[@name='colorBackgroundMentionedHover']/text()">#149c4249</replace>
<replace sel="resources/style[@name='AppTheme.Base.Dark']/item[@name='theme_chat_mention_background']/text()">#4d9c4249</replace>
<replace sel="resources/style[@name='AppTheme.Base.Dark']/item[@name='theme_chat_mentioned_me']/text()">#1a9c4249</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round_beta.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_round_canary.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square_beta.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
<diff file="res/mipmap-anydpi-v26/ic_logo_square_canary.xml" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<replace sel="adaptive-icon/background/@android:drawable">@color/primary_500</replace>
</diff>
</diffs>

View file

@ -0,0 +1 @@
## DisTok CutTheCord: Custom Theme

View file

@ -0,0 +1,13 @@
<diffs>
<diff file="res/layout/widget_chat_list_adapter_item_blocked.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<replace sel="RelativeLayout/@android:paddingLeft">0px</replace>
<replace sel="RelativeLayout/@android:paddingTop">0px</replace>
<replace sel="RelativeLayout/@android:paddingRight">0px</replace>
<replace sel="RelativeLayout/@android:layout_width">0px</replace>
<replace sel="RelativeLayout/@android:layout_height">0px</replace>
<replace sel="RelativeLayout/@android:layout_marginLeft">0px</replace>
<replace sel="RelativeLayout/TextView/@android:textSize">0sp</replace>
<replace sel="RelativeLayout/TextView/@android:paddingTop">0dip</replace>
<replace sel="RelativeLayout/TextView/@android:paddingBottom">0dip</replace>
</diff>
</diffs>

View file

@ -0,0 +1,5 @@
<diffs>
<diff file="res/values/strings.xml">
<replace sel="resources/string[@name='com.crashlytics.android.build_id']/text()">00000000-0000-0000-0000-000000000000</replace>
</diff>
</diffs>

View file

@ -0,0 +1 @@
## DisTok CutTheCord: No Track

View file

@ -0,0 +1,9 @@
<diffs>
<diff file="res/values/dimens.xml">
<replace sel="/resources/dimen[@name='guild_icon_radius']/text()">0.0dp</replace>
</diff>
<diff file="res/values/styles.xml">
<replace sel="resources/style[@name='Avatar']/item[@name='roundAsCircle']/text()">false</replace>
<add pos="after" sel="resources/style[@name='Avatar']/item[@name='roundAsCircle']"><item name="roundedCornerRadius">3dp</item></add>
</diff>
</diffs>