diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2fb401a..b69d1a9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: download base - run: wget https://www.dropbox.com/s/01ql8gzm5zblto1/twitch-11.9.0.apk\?\dl=1 -O twitch.apk + run: wget https://www.dropbox.com/s/nbqmvm45jqx9sqa/twitch-12.0.1.apk\?\dl=1 -O twitch.apk - name: create keystore.kjs from secret run: echo "${{ secrets.KEYSTORE }}" | base64 -d > keystore.jks - name: run build diff --git a/CHANGELOG.md b/CHANGELOG.md index ad0ed8bd..e32de9fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +# master +- rebase to v12.0.1 + # v0.15.1-beta - fix a split-chat related bug diff --git a/disassemble b/disassemble index 2efcc14c..2c259fd1 100755 --- a/disassemble +++ b/disassemble @@ -93,7 +93,6 @@ sed -i "s/apkFileName: base.apk/apkFileName: twitch.apk/" .tmp/base/apktool.yml # fix full dex-files mkdir .tmp/base/smali_classes8 -mv .tmp/base/smali_classes3/jp .tmp/base/smali_classes8/. mkdir -p .tmp/base/smali_classes8/tv/twitch/android mv .tmp/base/smali_classes6/tv/twitch/android/player .tmp/base/smali_classes8/tv/twitch/android/player diff --git a/mod/app/src/main/java/bttv/Autocomplete.java b/mod/app/src/main/java/bttv/Autocomplete.java index cae0eaea..3e813e22 100644 --- a/mod/app/src/main/java/bttv/Autocomplete.java +++ b/mod/app/src/main/java/bttv/Autocomplete.java @@ -5,8 +5,8 @@ import bttv.emote.Emote; import bttv.emote.Emotes; -import tv.twitch.android.shared.emotes.models.EmoteSet; -import tv.twitch.android.models.emotes.EmoteModelAssetType; +import tv.twitch.android.models.emotes.EmoteModelType; +import tv.twitch.android.models.emotes.EmoteSet; import tv.twitch.android.models.emotes.EmoteModel; public class Autocomplete { @@ -28,7 +28,13 @@ public static void addOurEmotes(List list) { Emote e = Emotes.getEmote(channelId, code); if (e == null) continue; // should not happen - generics.add(new EmoteModel.Generic("BTTV-" + e.id, e.code, e.getAssetType())); + generics.add( + new EmoteModel.Generic( + "BTTV-" + e.id, + e.code, + e.getAssetType(), + EmoteModelType.OTHER) + ); } EmoteSet set = new EmoteSet.GenericEmoteSet("bttv_emote_set_id", generics); list.add(set); diff --git a/mod/app/src/main/java/bttv/ChommentModelDelegateWrapper.java b/mod/app/src/main/java/bttv/ChommentModelDelegateWrapper.java index 3b10fbda..affd5914 100644 --- a/mod/app/src/main/java/bttv/ChommentModelDelegateWrapper.java +++ b/mod/app/src/main/java/bttv/ChommentModelDelegateWrapper.java @@ -10,7 +10,9 @@ import kotlin.jvm.internal.BTTVDefaultConstructorMarker; import tv.twitch.android.models.chat.MessageToken; import tv.twitch.android.models.chomments.ChommentModel; +import tv.twitch.android.provider.experiments.ExperimentHelper; import tv.twitch.android.sdk.SDKServicesController; +import tv.twitch.android.shared.chat.ChatConnectionManagerWrapper; import tv.twitch.android.shared.chat.ChatMessageParser; import tv.twitch.android.shared.chat.chomments.ChommentModelDelegate; @@ -21,9 +23,15 @@ public class ChommentModelDelegateWrapper extends ChommentModelDelegate { public ChommentModelDelegateWrapper(ChommentModel chommentModel, SDKServicesController sdkServicesController, ChatMessageParser chatMessageParser, - int i, - BTTVDefaultConstructorMarker BTTVDefaultConstructorMarker) { - super(chommentModel, sdkServicesController, chatMessageParser, i, BTTVDefaultConstructorMarker); + ExperimentHelper experimentHelper, + ChatConnectionManagerWrapper chatConnectionManagerWrapper) { + super( + chommentModel, + sdkServicesController, + chatMessageParser, + experimentHelper, + chatConnectionManagerWrapper + ); } @Override diff --git a/mod/app/src/main/java/bttv/Tokenizer.java b/mod/app/src/main/java/bttv/Tokenizer.java index 6f85c6a7..7136e6ae 100644 --- a/mod/app/src/main/java/bttv/Tokenizer.java +++ b/mod/app/src/main/java/bttv/Tokenizer.java @@ -15,6 +15,8 @@ import tv.twitch.android.models.chat.MessageToken.TextToken; import tv.twitch.android.models.chat.MessageToken; import tv.twitch.android.models.chat.MessageToken.EmoticonToken; +import tv.twitch.android.provider.chat.ChatMessageInterface; +import tv.twitch.android.shared.chat.ChatMessageDelegate; import tv.twitch.chat.AutoModFlags; import tv.twitch.chat.ChatEmoticonToken; import tv.twitch.chat.ChatMessageInfo; @@ -82,6 +84,18 @@ public static Pair, Boolean> tokenize(List orig return new Pair<>(newTokens, shouldHighlight); } + public static void retokenizeLiveChatMessage(ChatMessageInterface chatMessageInterface) { + if (chatMessageInterface instanceof ChatMessageDelegate) { + ChatMessageDelegate delegate = (ChatMessageDelegate) chatMessageInterface; + retokenizeLiveChatMessage(delegate.mChatMessage); + } else { + Log.w( + "LBTTV", + "retokenizeLiveChatMessage: interface it not a ChatMessageDelegate it's a " + + chatMessageInterface.getClass().getName()); + } + } + public static void retokenizeLiveChatMessage(ChatMessageInfo info) { Context ctx = Data.ctx; int channel = Data.currentBroadcasterId; diff --git a/mod/app/src/main/java/bttv/api/Autocomplete.java b/mod/app/src/main/java/bttv/api/Autocomplete.java index aabdca18..7189600a 100644 --- a/mod/app/src/main/java/bttv/api/Autocomplete.java +++ b/mod/app/src/main/java/bttv/api/Autocomplete.java @@ -4,7 +4,7 @@ import java.util.List; -import tv.twitch.android.shared.emotes.models.EmoteSet; +import tv.twitch.android.models.emotes.EmoteSet; public class Autocomplete { final static String TAG = "LBTTVAutocomplete"; diff --git a/mod/app/src/main/java/bttv/api/Highlight.java b/mod/app/src/main/java/bttv/api/Highlight.java index cf30c459..634e38bf 100644 --- a/mod/app/src/main/java/bttv/api/Highlight.java +++ b/mod/app/src/main/java/bttv/api/Highlight.java @@ -1,6 +1,6 @@ package bttv.api; -import tv.twitch.android.shared.chat.ChatMessageInterface; +import tv.twitch.android.provider.chat.ChatMessageInterface; public class Highlight { public static Integer replaceNum(ChatMessageInterface chatMessageInterface, boolean z, boolean z2, int i, int i2, Object iClickableUsernameSpanListener, Object twitchUrlSpanClickListener, Object webViewSource, String str, boolean z3, Object chatFiltersSettings, Integer num) { diff --git a/mod/app/src/main/java/bttv/emote/EmoteCardUtil.java b/mod/app/src/main/java/bttv/emote/EmoteCardUtil.java index ca0fe7da..deb51087 100644 --- a/mod/app/src/main/java/bttv/emote/EmoteCardUtil.java +++ b/mod/app/src/main/java/bttv/emote/EmoteCardUtil.java @@ -6,8 +6,8 @@ import bttv.Res; import bttv.ResUtil; import io.reactivex.Single; -import tv.twitch.android.shared.chat.model.EmoteCardModel; -import tv.twitch.android.shared.chat.parser.EmoteCardModelParser; +import tv.twitch.android.provider.chat.model.EmoteCardModelResponse; +import tv.twitch.android.provider.chat.model.EmoteCardModel; import tv.twitch.android.models.emotes.EmoteModelAssetType; @@ -59,7 +59,7 @@ public String getEmoteDesc() { } // called in Ltv/twitch/android/shared/chat/api/EmoteCardApi.getEmoteCardModelResponse() - public static Single getEmoteResponseOrNull(String emoteId) { + public static Single getEmoteResponseOrNull(String emoteId) { if (!emoteId.startsWith("BTTV-")) { return null; } @@ -69,21 +69,8 @@ public static Single getEmoteRespon return null; } EmoteCardModel model = new BTTVEmoteCardModel(emoteId, emote.code); - EmoteCardModelParser.EmoteCardModelResponse resp = new EmoteCardModelParser.EmoteCardModelResponse.Success( + EmoteCardModelResponse resp = new EmoteCardModelResponse.Success( model); return Single.just(resp); } - - // called in Ltv/twitch/android/shared/chat/emotecard/EmoteCardUiModel. - public static String maybeReplaceEmoteCardUiModelEmoteUrl(EmoteCardModel model, String originalUrl) { - if (model == null || model.emoteId == null) { - return originalUrl; - } - String bttvId = EmoteUrlUtil.extractBTTVId(model.emoteId); - if (bttvId != null) { - return EmoteUrlUtil.realIdToUrl(bttvId); - } else { - return originalUrl; - } - } } diff --git a/mod/app/src/main/java/bttv/emote/EmotePicker.java b/mod/app/src/main/java/bttv/emote/EmotePicker.java index 7688af06..40466a0a 100644 --- a/mod/app/src/main/java/bttv/emote/EmotePicker.java +++ b/mod/app/src/main/java/bttv/emote/EmotePicker.java @@ -11,6 +11,7 @@ import bttv.Data; import bttv.Res; import bttv.ResUtil; +import tv.twitch.android.models.emotes.EmoteModelType; import tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.ClickedEmote; import tv.twitch.android.shared.emotes.emotepicker.models.EmoteHeaderUiModel; import tv.twitch.android.shared.emotes.emotepicker.models.EmoteImageDescriptor; @@ -138,7 +139,7 @@ private static EmoteUiSet getUiSet(Res.strings headerRes, EmotePickerSection sec private static EmoteUiModel emoteToModel(Emote emote) { String id = "BTTV-" + emote.id; - EmoteModel model = new EmoteModel.Generic(id, emote.code, emote.getAssetType()); + EmoteModel model = new EmoteModel.Generic(id, emote.code, emote.getAssetType(), EmoteModelType.OTHER); EmoteMessageInput input = new EmoteMessageInput(emote.code, id, false); ClickedEmote clickedEmote = new ClickedEmote.Unlocked(model, input, null, null, 12, null); diff --git a/mod/app/src/main/java/bttv/highlight/Highlight.java b/mod/app/src/main/java/bttv/highlight/Highlight.java index 0cc627ac..5fdf1402 100644 --- a/mod/app/src/main/java/bttv/highlight/Highlight.java +++ b/mod/app/src/main/java/bttv/highlight/Highlight.java @@ -21,7 +21,7 @@ import bttv.settings.Settings; import bttv.settings.UserPreferences; import tv.twitch.android.shared.chat.ChatMessageDelegate; -import tv.twitch.android.shared.chat.ChatMessageInterface; +import tv.twitch.android.provider.chat.ChatMessageInterface; public class Highlight { private static final String TAG = "LBTTVHighlight"; diff --git a/mod/app/src/main/java/bttv/updater/Updater.java b/mod/app/src/main/java/bttv/updater/Updater.java index 858d00a4..c01f16aa 100644 --- a/mod/app/src/main/java/bttv/updater/Updater.java +++ b/mod/app/src/main/java/bttv/updater/Updater.java @@ -19,8 +19,8 @@ import okhttp3.Callback; import okhttp3.Response; import okhttp3.ResponseBody; -import tv.twitch.android.app.core.navigation.PersistentBannerPresenter; -import tv.twitch.android.app.core.navigation.PersistentBannerPresenter.PersistentBannerPresenterListener; +import tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter; +import tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter.PersistentBannerPresenterListener; public class Updater { private static final String GH_API_HOST = "https://api.github.com"; diff --git a/mod/twitch/src/main/java/tv/twitch/android/adapters/social/MessageRecyclerItem.java b/mod/twitch/src/main/java/tv/twitch/android/adapters/social/MessageRecyclerItem.java index 30a0b760..41e905e4 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/adapters/social/MessageRecyclerItem.java +++ b/mod/twitch/src/main/java/tv/twitch/android/adapters/social/MessageRecyclerItem.java @@ -8,7 +8,7 @@ public class MessageRecyclerItem implements tv.twitch.android.core.adapters.RecyclerAdapterItem { public static class ChatMessageViewHolder extends ViewHolder { - public ChatMessageViewHolder(@NonNull View itemView) { + public ChatMessageViewHolder(@NonNull View itemView, boolean bool) { super(itemView); } diff --git a/mod/twitch/src/main/java/tv/twitch/android/api/parsers/EmoteCardModelParser.java b/mod/twitch/src/main/java/tv/twitch/android/api/parsers/EmoteCardModelParser.java new file mode 100644 index 00000000..00f1b202 --- /dev/null +++ b/mod/twitch/src/main/java/tv/twitch/android/api/parsers/EmoteCardModelParser.java @@ -0,0 +1,8 @@ +package tv.twitch.android.api.parsers; + +import kotlin.jvm.internal.BTTVDefaultConstructorMarker; +import tv.twitch.android.provider.chat.model.EmoteCardModel; + +public class EmoteCardModelParser { + +} diff --git a/mod/twitch/src/main/java/tv/twitch/android/app/core/navigation/PersistentBannerPresenter.java b/mod/twitch/src/main/java/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter.java similarity index 85% rename from mod/twitch/src/main/java/tv/twitch/android/app/core/navigation/PersistentBannerPresenter.java rename to mod/twitch/src/main/java/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter.java index 3e9166b1..edb7cb6e 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/app/core/navigation/PersistentBannerPresenter.java +++ b/mod/twitch/src/main/java/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter.java @@ -1,4 +1,4 @@ -package tv.twitch.android.app.core.navigation; +package tv.twitch.android.feature.viewer.main.navigation; public class PersistentBannerPresenter { public interface PersistentBannerPresenterListener { diff --git a/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModel.java b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModel.java index d38bcb2d..177d4d59 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModel.java +++ b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModel.java @@ -21,7 +21,7 @@ public String getToken() { return ""; } - public Generic(String id, String token, EmoteModelAssetType assetType) { + public Generic(String id, String token, EmoteModelAssetType assetType, EmoteModelType type) { } } diff --git a/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModelType.java b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModelType.java new file mode 100644 index 00000000..0a224e27 --- /dev/null +++ b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteModelType.java @@ -0,0 +1,9 @@ +package tv.twitch.android.models.emotes; + +public enum EmoteModelType { + OTHER(3); + + EmoteModelType(int order) { + + } +} diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/emotes/models/EmoteSet.java b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteSet.java similarity index 87% rename from mod/twitch/src/main/java/tv/twitch/android/shared/emotes/models/EmoteSet.java rename to mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteSet.java index 34a50122..560528f2 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/emotes/models/EmoteSet.java +++ b/mod/twitch/src/main/java/tv/twitch/android/models/emotes/EmoteSet.java @@ -1,9 +1,7 @@ -package tv.twitch.android.shared.emotes.models; +package tv.twitch.android.models.emotes; import java.util.List; -import tv.twitch.android.models.emotes.EmoteModel; - public abstract class EmoteSet { public abstract List getEmotes(); public abstract java.lang.String getSetId(); diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageInterface.java b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/ChatMessageInterface.java similarity index 91% rename from mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageInterface.java rename to mod/twitch/src/main/java/tv/twitch/android/provider/chat/ChatMessageInterface.java index 18040f3b..1b15bbf3 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageInterface.java +++ b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/ChatMessageInterface.java @@ -2,7 +2,7 @@ * This file is a stub, so javac does not throw errors, * it is not used in the patches. */ -package tv.twitch.android.shared.chat; +package tv.twitch.android.provider.chat; public interface ChatMessageInterface { java.util.List getBadges(); diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/model/EmoteCardModel.java b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModel.java similarity index 91% rename from mod/twitch/src/main/java/tv/twitch/android/shared/chat/model/EmoteCardModel.java rename to mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModel.java index 02044c86..7fe8ee65 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/model/EmoteCardModel.java +++ b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModel.java @@ -1,4 +1,4 @@ -package tv.twitch.android.shared.chat.model; +package tv.twitch.android.provider.chat.model; import tv.twitch.android.models.emotes.EmoteModelAssetType; diff --git a/mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModelResponse.java b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModelResponse.java new file mode 100644 index 00000000..7b85bbbe --- /dev/null +++ b/mod/twitch/src/main/java/tv/twitch/android/provider/chat/model/EmoteCardModelResponse.java @@ -0,0 +1,24 @@ +package tv.twitch.android.provider.chat.model; + +import kotlin.jvm.internal.BTTVDefaultConstructorMarker; + +public abstract class EmoteCardModelResponse { + + public static final class Success extends EmoteCardModelResponse { + public Success(EmoteCardModel emoteCardModel) { + super(null); + } + + public final EmoteCardModel getEmoteCardModel() { + return null; + } + } + + private EmoteCardModelResponse() { + } + + public EmoteCardModelResponse(BTTVDefaultConstructorMarker BTTVDefaultConstructorMarker) { + this(); + } + +} diff --git a/mod/twitch/src/main/java/tv/twitch/android/provider/experiments/ExperimentHelper.java b/mod/twitch/src/main/java/tv/twitch/android/provider/experiments/ExperimentHelper.java new file mode 100644 index 00000000..81084d9d --- /dev/null +++ b/mod/twitch/src/main/java/tv/twitch/android/provider/experiments/ExperimentHelper.java @@ -0,0 +1,4 @@ +package tv.twitch.android.provider.experiments; + +public interface ExperimentHelper { +} diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatConnectionManagerWrapper.java b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatConnectionManagerWrapper.java new file mode 100644 index 00000000..03a9b35b --- /dev/null +++ b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatConnectionManagerWrapper.java @@ -0,0 +1,4 @@ +package tv.twitch.android.shared.chat; + +public class ChatConnectionManagerWrapper { +} diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageDelegate.java b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageDelegate.java index 653123c3..46a932a3 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageDelegate.java +++ b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/ChatMessageDelegate.java @@ -9,6 +9,7 @@ import tv.twitch.android.models.chat.MessageBadge; import tv.twitch.android.models.chat.MessageToken; +import tv.twitch.android.provider.chat.ChatMessageInterface; import tv.twitch.chat.ChatMessageInfo; public class ChatMessageDelegate implements ChatMessageInterface { diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/chomments/ChommentModelDelegate.java b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/chomments/ChommentModelDelegate.java index 795b6751..da2342be 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/chomments/ChommentModelDelegate.java +++ b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/chomments/ChommentModelDelegate.java @@ -10,8 +10,10 @@ import tv.twitch.android.models.chat.MessageBadge; import tv.twitch.android.models.chat.MessageToken; import tv.twitch.android.models.chomments.ChommentModel; +import tv.twitch.android.provider.experiments.ExperimentHelper; import tv.twitch.android.sdk.SDKServicesController; -import tv.twitch.android.shared.chat.ChatMessageInterface; +import tv.twitch.android.provider.chat.ChatMessageInterface; +import tv.twitch.android.shared.chat.ChatConnectionManagerWrapper; import tv.twitch.android.shared.chat.ChatMessageParser; public class ChommentModelDelegate implements ChatMessageInterface { @@ -19,8 +21,8 @@ public class ChommentModelDelegate implements ChatMessageInterface { public ChommentModelDelegate(ChommentModel chommentModel, SDKServicesController sdkServicesController, ChatMessageParser chatMessageParser, - int i, - BTTVDefaultConstructorMarker BTTVDefaultConstructorMarker) { + ExperimentHelper experimentHelper, + ChatConnectionManagerWrapper chatConnectionManagerWrapper) { } @Override diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.java b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.java index d5da35d2..7c338558 100644 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.java +++ b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.java @@ -1,6 +1,6 @@ package tv.twitch.android.shared.chat.emotecard; -import tv.twitch.android.shared.chat.model.EmoteCardModel; +import tv.twitch.android.provider.chat.model.EmoteCardModel; public abstract class EmoteCardUiModel { public abstract String getEmoteUrl(); diff --git a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/parser/EmoteCardModelParser.java b/mod/twitch/src/main/java/tv/twitch/android/shared/chat/parser/EmoteCardModelParser.java deleted file mode 100644 index 31507055..00000000 --- a/mod/twitch/src/main/java/tv/twitch/android/shared/chat/parser/EmoteCardModelParser.java +++ /dev/null @@ -1,28 +0,0 @@ -package tv.twitch.android.shared.chat.parser; - -import kotlin.jvm.internal.BTTVDefaultConstructorMarker; -import tv.twitch.android.shared.chat.model.EmoteCardModel; - -public class EmoteCardModelParser { - public static abstract class EmoteCardModelResponse { - - public static final class Success extends EmoteCardModelParser.EmoteCardModelResponse { - public Success(EmoteCardModel emoteCardModel) { - super(null); - } - - public final EmoteCardModel getEmoteCardModel() { - return null; - } - } - - private EmoteCardModelResponse() { - } - - public EmoteCardModelResponse(BTTVDefaultConstructorMarker BTTVDefaultConstructorMarker) { - this(); - } - - } - -} diff --git a/patches/AndroidManifest.xml.patch b/patches/AndroidManifest.xml.patch index 68596e07..4267f96d 100644 --- a/patches/AndroidManifest.xml.patch +++ b/patches/AndroidManifest.xml.patch @@ -2,23 +2,23 @@ diff --git a/AndroidManifest.xml b/AndroidManifest.xml --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,4 +1,15 @@ -- +- + + ++ platformBuildVersionCode="31" ++ platformBuildVersionName="12"> + - -@@ -7,6 +18,7 @@ + +@@ -44,6 +55,7 @@ @@ -26,7 +26,7 @@ diff --git a/AndroidManifest.xml b/AndroidManifest.xml -@@ -128,10 +140,10 @@ +@@ -156,10 +168,10 @@ @@ -39,7 +39,7 @@ diff --git a/AndroidManifest.xml b/AndroidManifest.xml -@@ -231,11 +243,11 @@ +@@ -259,11 +271,11 @@ @@ -53,10 +53,15 @@ diff --git a/AndroidManifest.xml b/AndroidManifest.xml -@@ -291,5 +303,18 @@ - +@@ -309,9 +321,22 @@ + +- ++ + + + + + registerComponents(Landroid/content/Context;Lcom/bumptech/glide/Glide;Lcom/bumptech/glide/Registry;)V diff --git a/patches/res.layout.settings_logout_footer.xml.patch b/patches/res.layout.settings_logout_footer.xml.patch index 420bb7e8..fb63d700 100644 --- a/patches/res.layout.settings_logout_footer.xml.patch +++ b/patches/res.layout.settings_logout_footer.xml.patch @@ -5,7 +5,7 @@ diff --git a/res/layout/settings_logout_footer.xml b/res/layout/settings_logout_ -+ ++ diff --git a/patches/res.values.ids.xml.patch b/patches/res.values.ids.xml.patch index 9537881a..2e0275f0 100644 --- a/patches/res.values.ids.xml.patch +++ b/patches/res.values.ids.xml.patch @@ -1,7 +1,7 @@ diff --git a/res/values/ids.xml b/res/values/ids.xml --- a/res/values/ids.xml +++ b/res/values/ids.xml -@@ -3273,4 +3273,8 @@ +@@ -3286,4 +3286,8 @@ diff --git a/patches/res.values.public.xml.patch b/patches/res.values.public.xml.patch index 23ff4c76..2c598f8b 100644 --- a/patches/res.values.public.xml.patch +++ b/patches/res.values.public.xml.patch @@ -1,72 +1,72 @@ diff --git a/res/values/public.xml b/res/values/public.xml --- a/res/values/public.xml +++ b/res/values/public.xml -@@ -13273,4 +13273,67 @@ +@@ -13312,4 +13312,67 @@ + + + -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + \ No newline at end of file diff --git a/patches/tv.twitch.android.shared.chat.api.EmoteCardApi.smali.patch b/patches/tv.twitch.android.api.chat.EmoteCardApiImpl.smali.patch similarity index 71% rename from patches/tv.twitch.android.shared.chat.api.EmoteCardApi.smali.patch rename to patches/tv.twitch.android.api.chat.EmoteCardApiImpl.smali.patch index 463eb4c7..35dc92cc 100644 --- a/patches/tv.twitch.android.shared.chat.api.EmoteCardApi.smali.patch +++ b/patches/tv.twitch.android.api.chat.EmoteCardApiImpl.smali.patch @@ -1,7 +1,7 @@ -diff --git a/smali_classes6/tv/twitch/android/shared/chat/api/EmoteCardApi.smali b/smali_classes6/tv/twitch/android/shared/chat/api/EmoteCardApi.smali ---- a/smali_classes6/tv/twitch/android/shared/chat/api/EmoteCardApi.smali -+++ b/smali_classes6/tv/twitch/android/shared/chat/api/EmoteCardApi.smali -@@ -57,6 +57,21 @@ +diff --git a/smali_classes5/tv/twitch/android/api/chat/EmoteCardApiImpl.smali b/smali_classes5/tv/twitch/android/api/chat/EmoteCardApiImpl.smali +--- a/smali_classes5/tv/twitch/android/api/chat/EmoteCardApiImpl.smali ++++ b/smali_classes5/tv/twitch/android/api/chat/EmoteCardApiImpl.smali +@@ -60,6 +60,21 @@ } .end annotation diff --git a/patches/tv.twitch.android.app.consumer.TwitchApplication.smali.patch b/patches/tv.twitch.android.app.consumer.TwitchApplication.smali.patch index ffcaf142..2160095e 100644 --- a/patches/tv.twitch.android.app.consumer.TwitchApplication.smali.patch +++ b/patches/tv.twitch.android.app.consumer.TwitchApplication.smali.patch @@ -1,8 +1,8 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/TwitchApplication.smali b/smali_classes5/tv/twitch/android/app/consumer/TwitchApplication.smali --- a/smali_classes5/tv/twitch/android/app/consumer/TwitchApplication.smali +++ b/smali_classes5/tv/twitch/android/app/consumer/TwitchApplication.smali -@@ -181,6 +181,13 @@ - .line 95 +@@ -203,6 +203,13 @@ + .line 103 invoke-super {p0}, Landroid/app/Application;->onCreate()V + # BTTV @@ -12,6 +12,6 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/TwitchApplication.sma + invoke-static {p0}, Lbttv/Data;->setContext(Landroid/content/Context;)V + # /BTTV + - .line 98 + .line 106 invoke-static {p0}, Lcom/google/firebase/FirebaseApp;->initializeApp(Landroid/content/Context;)Lcom/google/firebase/FirebaseApp; diff --git a/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent$SettingsActivitySubcomponentImpl.smali.patch b/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent$SettingsActivitySubcomponentImpl.smali.patch index 922e15d6..50e99f66 100644 --- a/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent$SettingsActivitySubcomponentImpl.smali.patch +++ b/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent$SettingsActivitySubcomponentImpl.smali.patch @@ -1,8 +1,8 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl.smali b/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl.smali --- a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl.smali +++ b/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl.smali -@@ -860,9 +860,23 @@ - .line 7332 +@@ -794,9 +794,23 @@ + .line 7702 iput-object p2, p0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl;->settingsActivityModule:Ltv/twitch/android/settings/dagger/SettingsActivityModule; + # BTTV @@ -12,7 +12,7 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppCompo + invoke-static {p2}, Lbttv/settings/SettingsFragmentBindingFactory;->setSettingsActivityModule(Ltv/twitch/android/settings/dagger/SettingsActivityModule;)V + # /BTTV + - .line 7333 + .line 7703 iput-object p3, p0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl;->activityModule:Ltv/twitch/android/app/core/dagger/modules/ActivityModule; + # BTTV @@ -22,10 +22,10 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppCompo + invoke-static {p3}, Lbttv/settings/SettingsFragmentBindingFactory;->setActivityModule(Ltv/twitch/android/app/core/dagger/modules/ActivityModule;)V + # /BTTV + - .line 7334 + .line 7704 invoke-direct {p0, p2, p3, p4}, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl;->initialize(Ltv/twitch/android/settings/dagger/SettingsActivityModule;Ltv/twitch/android/app/core/dagger/modules/ActivityModule;Ltv/twitch/android/settings/SettingsActivity;)V -@@ -1456,6 +1470,12 @@ +@@ -1373,6 +1387,12 @@ move-result-object p3 iput-object p3, p0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl;->provideFragmentActivityProvider:Ljavax/inject/Provider; @@ -36,13 +36,12 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppCompo + invoke-static {p3}, Lbttv/settings/SettingsFragmentBindingFactory;->setFragmentActivityProvider(Ljavax/inject/Provider;)V + # /BTTV - .line 7712 + .line 8078 invoke-static {}, Ltv/twitch/android/shared/billing/postalcodecapture/PostalCodeEventDispatcher_Factory;->create()Ltv/twitch/android/shared/billing/postalcodecapture/PostalCodeEventDispatcher_Factory; -@@ -2222,7 +2242,19 @@ - iget-object v2, p0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent$SettingsActivitySubcomponentImpl;->connectionsSettingsFragmentSubcomponentFactoryProvider:Ljavax/inject/Provider; +@@ -2006,6 +2026,19 @@ + + move-result-object v0 - invoke-virtual {v0, v1, v2}, Ldagger/internal/MapBuilder;->put(Ljava/lang/Object;Ljava/lang/Object;)Ldagger/internal/MapBuilder; -- + # BTTV + # Add bttv's SettingsFragment to DI + # expects: diff --git a/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent.smali.patch b/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent.smali.patch index f88a6bad..f76a81f7 100644 --- a/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent.smali.patch +++ b/patches/tv.twitch.android.app.consumer.dagger.DaggerAppComponent.smali.patch @@ -1,17 +1,17 @@ diff --git a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent.smali b/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent.smali --- a/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent.smali +++ b/smali_classes5/tv/twitch/android/app/consumer/dagger/DaggerAppComponent.smali -@@ -11034,6 +11034,13 @@ +@@ -12372,6 +12372,13 @@ - iput-object v2, v0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent;->pageViewTrackerProvider:Ljavax/inject/Provider; + iput-object v1, v0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent;->pageViewTrackerProvider:Ljavax/inject/Provider; + # BTTV + # Set PageViewTracker Provider + # expects: + # v2: javax.inject.Provider -+ invoke-static {v2}, Lbttv/settings/SettingsFragmentBindingFactory;->setPageViewTrackerProvider(Ljavax/inject/Provider;)V ++ invoke-static {v1}, Lbttv/settings/SettingsFragmentBindingFactory;->setPageViewTrackerProvider(Ljavax/inject/Provider;)V + # /BTTV + - .line 6453 - iget-object v4, v0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent;->provideTwitchAccountManagerProvider:Ljavax/inject/Provider; + .line 6765 + iget-object v3, v0, Ltv/twitch/android/app/consumer/dagger/DaggerAppComponent;->provideTwitchAccountManagerProvider:Ljavax/inject/Provider; diff --git a/patches/tv.twitch.android.app.core.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch b/patches/tv.twitch.android.app.core.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch deleted file mode 100644 index a723ea81..00000000 --- a/patches/tv.twitch.android.app.core.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/smali_classes5/tv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBanners.smali b/smali_classes5/tv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBanners.smali ---- a/smali_classes5/tv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBanners.smali -+++ b/smali_classes5/tv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBanners.smali -@@ -169,10 +169,24 @@ - new-instance v1, Ltv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBanners; - - .line 73 -- sget v6, Ltv/twitch/android/app/R$string;->app_update_available_cta:I -+ # BTTV -+ # Replaces Update Banner's Content with custom string -+ # sets: -+ # v6: I -+ const-string v6, "bttv_app_update_available_cta" -+ invoke-static {v6}, Lbttv/api/Strings;->getStringId(Ljava/lang/String;)I -+ move-result v6 -+ # /BTTV - - .line 74 -- sget v2, Ltv/twitch/android/app/R$string;->app_update_available:I -+ # BTTV -+ # Replaces Update Banner's Title with custom string -+ # sets: -+ # v2: I -+ const-string v2, "bttv_app_update_available" -+ invoke-static {v2}, Lbttv/api/Strings;->getStringId(Ljava/lang/String;)I -+ move-result v2 -+ # /BTTV - - invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; - diff --git a/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter$setMetadata$1.smali.patch b/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter$setMetadata$1.smali.patch index 11348939..7c157d4f 100644 --- a/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter$setMetadata$1.smali.patch +++ b/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter$setMetadata$1.smali.patch @@ -1,6 +1,6 @@ -diff --git a/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali b/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali ---- a/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali -+++ b/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali +diff --git a/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali b/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali +--- a/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali ++++ b/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter$setMetadata$1.smali @@ -89,6 +89,11 @@ const/4 v6, 0x0 diff --git a/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter.smali.patch b/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter.smali.patch index 5c340fe2..f46d9301 100644 --- a/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter.smali.patch +++ b/patches/tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter.smali.patch @@ -1,7 +1,7 @@ -diff --git a/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali b/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali ---- a/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali -+++ b/smali_classes5/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali -@@ -22,7 +22,7 @@ +diff --git a/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali b/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali +--- a/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali ++++ b/smali_classes6/tv/twitch/android/feature/theatre/common/PlayerCoordinatorPresenter.smali +@@ -26,7 +26,7 @@ # instance fields diff --git a/patches/tv.twitch.android.feature.theatre.metadata.ExtendedPlayerMetadataViewDelegate.smali.patch b/patches/tv.twitch.android.feature.theatre.metadata.ExtendedPlayerMetadataViewDelegate.smali.patch index 2923cd50..f0dd5354 100644 --- a/patches/tv.twitch.android.feature.theatre.metadata.ExtendedPlayerMetadataViewDelegate.smali.patch +++ b/patches/tv.twitch.android.feature.theatre.metadata.ExtendedPlayerMetadataViewDelegate.smali.patch @@ -1,6 +1,6 @@ -diff --git a/smali_classes5/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali b/smali_classes5/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali ---- a/smali_classes5/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali -+++ b/smali_classes5/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali +diff --git a/smali_classes6/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali b/smali_classes6/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali +--- a/smali_classes6/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali ++++ b/smali_classes6/tv/twitch/android/feature/theatre/metadata/ExtendedPlayerMetadataViewDelegate.smali @@ -339,6 +339,10 @@ move-result-object v1 diff --git a/patches/tv.twitch.android.feature.theatre.metadata.MetadataViewEvent$SubscribeButtonClicked.smali.patch b/patches/tv.twitch.android.feature.theatre.metadata.MetadataViewEvent$SubscribeButtonClicked.smali.patch index ca551a80..d6e3df9d 100644 --- a/patches/tv.twitch.android.feature.theatre.metadata.MetadataViewEvent$SubscribeButtonClicked.smali.patch +++ b/patches/tv.twitch.android.feature.theatre.metadata.MetadataViewEvent$SubscribeButtonClicked.smali.patch @@ -1,6 +1,6 @@ -diff --git a/smali_classes5/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali b/smali_classes5/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali ---- a/smali_classes5/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali -+++ b/smali_classes5/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali +diff --git a/smali_classes6/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali b/smali_classes6/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali +--- a/smali_classes6/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali ++++ b/smali_classes6/tv/twitch/android/feature/theatre/metadata/MetadataViewEvent$SubscribeButtonClicked.smali @@ -15,7 +15,7 @@ diff --git a/patches/tv.twitch.android.feature.viewer.main.MainActivity.smali.patch b/patches/tv.twitch.android.feature.viewer.main.MainActivity.smali.patch index fbfd9e01..30b531a9 100644 --- a/patches/tv.twitch.android.feature.viewer.main.MainActivity.smali.patch +++ b/patches/tv.twitch.android.feature.viewer.main.MainActivity.smali.patch @@ -1,18 +1,18 @@ diff --git a/smali_classes6/tv/twitch/android/feature/viewer/main/MainActivity.smali b/smali_classes6/tv/twitch/android/feature/viewer/main/MainActivity.smali --- a/smali_classes6/tv/twitch/android/feature/viewer/main/MainActivity.smali +++ b/smali_classes6/tv/twitch/android/feature/viewer/main/MainActivity.smali -@@ -1547,6 +1547,14 @@ +@@ -1526,6 +1526,14 @@ - invoke-virtual {p1, v0}, Ltv/twitch/android/app/core/navigation/PersistentBannerPresenter;->setListener(Ltv/twitch/android/app/core/navigation/PersistentBannerPresenter$PersistentBannerPresenterListener;)V + invoke-virtual {p1, v0}, Ltv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter;->setListener(Ltv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBannerPresenterListener;)V + # BTTV + # Check for Updates + # expects: + # p0: android.app.Activity -+ # p1: tv/twitch/android/app/core/navigation/PersistentBannerPresenter -+ invoke-static {p0, p1}, Lbttv/updater/Updater;->checkForUpdates(Landroid/app/Activity;Ltv/twitch/android/app/core/navigation/PersistentBannerPresenter;)V ++ # p1: tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter ++ invoke-static {p0, p1}, Lbttv/updater/Updater;->checkForUpdates(Landroid/app/Activity;Ltv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter;)V + # /BTTV + - .line 360 + .line 356 iget-object p1, p0, Ltv/twitch/android/feature/viewer/main/MainActivity;->cookieConsentDialogPresenter:Ltv/twitch/android/settings/cookieconsent/CookieConsentDialogPresenter; diff --git a/patches/tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch b/patches/tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch new file mode 100644 index 00000000..210e1897 --- /dev/null +++ b/patches/tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch @@ -0,0 +1,30 @@ +diff --git a/smali_classes6/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBanners.smali b/smali_classes6/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBanners.smali +--- a/smali_classes6/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBanners.smali ++++ b/smali_classes6/tv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBanners.smali +@@ -169,10 +169,24 @@ + new-instance v1, Ltv/twitch/android/feature/viewer/main/navigation/PersistentBannerPresenter$PersistentBanners; + + .line 78 +- sget v6, Ltv/twitch/android/feature/viewer/main/R$string;->app_update_available_cta:I ++ # BTTV ++ # Replaces Update Banner's Content with custom string ++ # sets: ++ # v6: I ++ const-string v6, "bttv_app_update_available_cta" ++ invoke-static {v6}, Lbttv/api/Strings;->getStringId(Ljava/lang/String;)I ++ move-result v6 ++ # /BTTV + + .line 79 +- sget v2, Ltv/twitch/android/feature/viewer/main/R$string;->app_update_available:I ++ # BTTV ++ # Replaces Update Banner's Title with custom string ++ # sets: ++ # v2: I ++ const-string v2, "bttv_app_update_available" ++ invoke-static {v2}, Lbttv/api/Strings;->getStringId(Ljava/lang/String;)I ++ move-result v2 ++ # /BTTV + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + diff --git a/patches/tv.twitch.android.provider.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch b/patches/tv.twitch.android.provider.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch new file mode 100644 index 00000000..a093de87 --- /dev/null +++ b/patches/tv.twitch.android.provider.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch @@ -0,0 +1,9 @@ +diff --git a/smali_classes6/tv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali b/smali_classes6/tv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali +--- a/smali_classes6/tv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali ++++ b/smali_classes6/tv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali +@@ -1,4 +1,4 @@ +-.class public final Ltv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel; ++.class public Ltv/twitch/android/provider/chat/model/EmoteCardModel$GlobalEmoteCardModel; + .super Ltv/twitch/android/provider/chat/model/EmoteCardModel; + .source "SourceFile" + diff --git a/patches/tv.twitch.android.sdk.ChatController.smali.patch b/patches/tv.twitch.android.sdk.ChatController.smali.patch index d2fea2af..3791822e 100644 --- a/patches/tv.twitch.android.sdk.ChatController.smali.patch +++ b/patches/tv.twitch.android.sdk.ChatController.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/sdk/ChatController.smali b/smali_classes6/tv/twitch/android/sdk/ChatController.smali --- a/smali_classes6/tv/twitch/android/sdk/ChatController.smali +++ b/smali_classes6/tv/twitch/android/sdk/ChatController.smali -@@ -241,6 +241,13 @@ +@@ -257,6 +257,13 @@ move-result p1 diff --git a/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter$maybeShowBuyBitsButton$1$1.smali.patch b/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter$maybeShowBuyBitsButton$1$1.smali.patch index acd0034a..1fa33fbd 100644 --- a/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter$maybeShowBuyBitsButton$1$1.smali.patch +++ b/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter$maybeShowBuyBitsButton$1$1.smali.patch @@ -13,6 +13,6 @@ diff --git a/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter$ + goto :goto_0 + # /BTTV + - .line 489 + .line 493 iget-object v0, p0, Ltv/twitch/android/shared/bits/BitsSpendingPresenter$maybeShowBuyBitsButton$1$1;->$productForAmount:Ltv/twitch/android/models/bits/IapBundleModel; diff --git a/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter.smali.patch b/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter.smali.patch index cec8c977..abd974e6 100644 --- a/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter.smali.patch +++ b/patches/tv.twitch.android.shared.bits.BitsSpendingPresenter.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter.smali b/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter.smali --- a/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter.smali +++ b/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter.smali -@@ -18,7 +18,7 @@ +@@ -22,7 +22,7 @@ # instance fields @@ -10,7 +10,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/bits/BitsSpendingPresenter. .field private final availabilityTracker:Ltv/twitch/android/shared/analytics/availbility/AvailabilityTracker; -@@ -796,7 +796,9 @@ +@@ -819,7 +819,9 @@ const/4 v2, 0x1 diff --git a/patches/tv.twitch.android.shared.chat.chatuserdialog.ChatUserDialogPresenter.smali.patch b/patches/tv.twitch.android.shared.chat.chatuserdialog.ChatUserDialogPresenter.smali.patch index 38209079..6f9aeb5f 100644 --- a/patches/tv.twitch.android.shared.chat.chatuserdialog.ChatUserDialogPresenter.smali.patch +++ b/patches/tv.twitch.android.shared.chat.chatuserdialog.ChatUserDialogPresenter.smali.patch @@ -19,7 +19,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/chatuserdialog/ChatUse .field private listeners:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; -@@ -598,6 +598,11 @@ +@@ -603,6 +603,11 @@ invoke-direct {v1, p0, p1}, Ltv/twitch/android/shared/chat/chatuserdialog/ChatUserDialogPresenter$setupClickHandlers$2;->(Ltv/twitch/android/shared/chat/chatuserdialog/ChatUserDialogPresenter;Ltv/twitch/android/models/social/ChatUser;)V @@ -30,4 +30,4 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/chatuserdialog/ChatUse + invoke-virtual {v0, v1}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V - .line 156 + .line 157 diff --git a/patches/tv.twitch.android.shared.chat.chomments.ChommentMessageFactory.smali.patch b/patches/tv.twitch.android.shared.chat.chomments.ChommentMessageFactory.smali.patch index 1677de16..5c984113 100644 --- a/patches/tv.twitch.android.shared.chat.chomments.ChommentMessageFactory.smali.patch +++ b/patches/tv.twitch.android.shared.chat.chomments.ChommentMessageFactory.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/chomments/ChommentMessageFactory.smali b/smali_classes6/tv/twitch/android/shared/chat/chomments/ChommentMessageFactory.smali --- a/smali_classes6/tv/twitch/android/shared/chat/chomments/ChommentMessageFactory.smali +++ b/smali_classes6/tv/twitch/android/shared/chat/chomments/ChommentMessageFactory.smali -@@ -213,7 +213,9 @@ +@@ -237,7 +237,9 @@ :cond_2 iget-object p2, p0, Ltv/twitch/android/shared/chat/chomments/ChommentMessageFactory;->chatMessageFactory:Ltv/twitch/android/shared/chat/messagefactory/ChatMessageFactory; @@ -12,12 +12,12 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/chomments/ChommentMess iget-object v3, p0, Ltv/twitch/android/shared/chat/chomments/ChommentMessageFactory;->sdkServicesController:Ltv/twitch/android/sdk/SDKServicesController; -@@ -227,7 +229,7 @@ +@@ -251,7 +253,7 @@ move-object v2, p1 -- invoke-direct/range {v1 .. v6}, Ltv/twitch/android/shared/chat/chomments/ChommentModelDelegate;->(Ltv/twitch/android/models/chomments/ChommentModel;Ltv/twitch/android/sdk/SDKServicesController;Ltv/twitch/android/shared/chat/ChatMessageParser;ILkotlin/jvm/internal/DefaultConstructorMarker;)V -+ invoke-direct/range {v1 .. v6}, Lbttv/ChommentModelDelegateWrapper;->(Ltv/twitch/android/models/chomments/ChommentModel;Ltv/twitch/android/sdk/SDKServicesController;Ltv/twitch/android/shared/chat/ChatMessageParser;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +- invoke-direct/range {v1 .. v6}, Ltv/twitch/android/shared/chat/chomments/ChommentModelDelegate;->(Ltv/twitch/android/models/chomments/ChommentModel;Ltv/twitch/android/sdk/SDKServicesController;Ltv/twitch/android/shared/chat/ChatMessageParser;Ltv/twitch/android/provider/experiments/ExperimentHelper;Ltv/twitch/android/shared/chat/ChatConnectionManagerWrapper;)V ++ invoke-direct/range {v1 .. v6}, Lbttv/ChommentModelDelegateWrapper;->(Ltv/twitch/android/models/chomments/ChommentModel;Ltv/twitch/android/sdk/SDKServicesController;Ltv/twitch/android/shared/chat/ChatMessageParser;Ltv/twitch/android/provider/experiments/ExperimentHelper;Ltv/twitch/android/shared/chat/ChatConnectionManagerWrapper;)V invoke-virtual {p1}, Ltv/twitch/android/models/chomments/ChommentModel;->getChannelId()Ljava/lang/String; diff --git a/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardUiModel.smali.patch b/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardUiModel.smali.patch deleted file mode 100644 index b05ccf11..00000000 --- a/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardUiModel.smali.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.smali b/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.smali ---- a/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.smali -+++ b/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardUiModel.smali -@@ -26,7 +26,7 @@ - - # direct methods - .method private constructor (Ltv/twitch/android/shared/chat/model/EmoteCardModel;ZLjava/lang/String;)V -- .locals 0 -+ .locals 1 - - .line 14 - invoke-direct {p0}, Ljava/lang/Object;->()V -@@ -35,7 +35,12 @@ - - iput-boolean p2, p0, Ltv/twitch/android/shared/chat/emotecard/EmoteCardUiModel;->isEmoteAnimationIconVisible:Z - -- iput-object p3, p0, Ltv/twitch/android/shared/chat/emotecard/EmoteCardUiModel;->emoteUrl:Ljava/lang/String; -+ # BTTV -+ invoke-static {p1, p3}, Lbttv/emote/EmoteCardUtil;->maybeReplaceEmoteCardUiModelEmoteUrl(Ltv/twitch/android/shared/chat/model/EmoteCardModel;Ljava/lang/String;)Ljava/lang/String; -+ move-result-object v0 -+ # /BTTV -+ -+ iput-object v0, p0, Ltv/twitch/android/shared/chat/emotecard/EmoteCardUiModel;->emoteUrl:Ljava/lang/String; - - return-void - .end method diff --git a/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardViewDelegate.smali.patch b/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardViewDelegate.smali.patch index 6d90beb0..6f18d6c0 100644 --- a/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardViewDelegate.smali.patch +++ b/patches/tv.twitch.android.shared.chat.emotecard.EmoteCardViewDelegate.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardViewDelegate.smali b/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardViewDelegate.smali --- a/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardViewDelegate.smali +++ b/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardViewDelegate.smali -@@ -1966,6 +1966,19 @@ +@@ -2058,6 +2058,19 @@ .line 245 iget-object v0, p0, Ltv/twitch/android/shared/chat/emotecard/EmoteCardViewDelegate;->emoteDesc:Landroid/widget/TextView; @@ -19,5 +19,5 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/emotecard/EmoteCardVie + # /BTTV + .line 246 - instance-of v1, p1, Ltv/twitch/android/shared/chat/model/EmoteCardModel$ChannelPointsEmoteCardModel; + instance-of v1, p1, Ltv/twitch/android/provider/chat/model/EmoteCardModel$ChannelPointsEmoteCardModel; diff --git a/patches/tv.twitch.android.shared.chat.messagefactory.ChatMessageFactory.smali.patch b/patches/tv.twitch.android.shared.chat.messagefactory.ChatMessageFactory.smali.patch index e576d3dd..b763f1c6 100644 --- a/patches/tv.twitch.android.shared.chat.messagefactory.ChatMessageFactory.smali.patch +++ b/patches/tv.twitch.android.shared.chat.messagefactory.ChatMessageFactory.smali.patch @@ -1,35 +1,35 @@ diff --git a/smali_classes6/tv/twitch/android/shared/chat/messagefactory/ChatMessageFactory.smali b/smali_classes6/tv/twitch/android/shared/chat/messagefactory/ChatMessageFactory.smali --- a/smali_classes6/tv/twitch/android/shared/chat/messagefactory/ChatMessageFactory.smali +++ b/smali_classes6/tv/twitch/android/shared/chat/messagefactory/ChatMessageFactory.smali -@@ -641,6 +641,12 @@ +@@ -692,6 +692,12 @@ goto :goto_2 :cond_3 + + # BTTV -+ invoke-static/range {p1 .. p12}, Lbttv/api/Highlight;->replaceNum(Ltv/twitch/android/shared/chat/ChatMessageInterface;ZZIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;ZLjava/lang/Object;Ljava/lang/Integer;)Ljava/lang/Integer; ++ invoke-static/range {p1 .. p12}, Lbttv/api/Highlight;->replaceNum(Ltv/twitch/android/provider/chat/ChatMessageInterface;ZZIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;ZLjava/lang/Object;Ljava/lang/Integer;)Ljava/lang/Integer; + move-result-object p12 + # /BTTV + if-eqz p12, :cond_4 - .line 706 -@@ -2752,6 +2758,13 @@ + .line 741 +@@ -2839,6 +2845,13 @@ - move-object/from16 v0, p1 + invoke-static {v13, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V + # BTTV + # Add bttv emotes + # expects: -+ # v0: tv.twitch.chat.ChatMessageInfo -+ invoke-static {v0}, Lbttv/Tokenizer;->retokenizeLiveChatMessage(Ltv/twitch/chat/ChatMessageInfo;)V ++ # v13: tv.twitch.android.provider.chat.ChatMessageInterface ++ invoke-static {v13}, Lbttv/Tokenizer;->retokenizeLiveChatMessage(Ltv/twitch/android/provider/chat/ChatMessageInterface;)V + # /BTTV + - const-string v1, "chatMessageInfo" + const-string v0, "webViewSource" - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V -@@ -4099,6 +4112,13 @@ - .line 314 + move-object/from16 v8, p8 +@@ -4175,6 +4188,13 @@ + .line 337 iget-object v4, v9, Ltv/twitch/chat/ChatSubscriptionNotice;->userMessage:Ltv/twitch/chat/ChatMessageInfo; + # BTTV diff --git a/patches/tv.twitch.android.shared.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch b/patches/tv.twitch.android.shared.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch deleted file mode 100644 index e82c3dc8..00000000 --- a/patches/tv.twitch.android.shared.chat.model.EmoteCardModel$GlobalEmoteCardModel.smali.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff --git a/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali b/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali ---- a/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali -+++ b/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel.smali -@@ -1,4 +1,4 @@ --.class public final Ltv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel; -+.class public Ltv/twitch/android/shared/chat/model/EmoteCardModel$GlobalEmoteCardModel; - .super Ltv/twitch/android/shared/chat/model/EmoteCardModel; - .source "SourceFile" - diff --git a/patches/tv.twitch.android.shared.chat.model.EmoteCardModel.smali.patch b/patches/tv.twitch.android.shared.chat.model.EmoteCardModel.smali.patch deleted file mode 100644 index 8a12688a..00000000 --- a/patches/tv.twitch.android.shared.chat.model.EmoteCardModel.smali.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel.smali b/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel.smali ---- a/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel.smali -+++ b/smali_classes6/tv/twitch/android/shared/chat/model/EmoteCardModel.smali -@@ -23,7 +23,7 @@ - # instance fields - .field private final assetType:Ltv/twitch/android/models/emotes/EmoteModelAssetType; - --.field private final emoteId:Ljava/lang/String; -+.field public final emoteId:Ljava/lang/String; - - .field private final emoteToken:Ljava/lang/String; - diff --git a/patches/tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.smali.patch b/patches/tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.smali.patch index 1a10916b..e54c84ff 100644 --- a/patches/tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.smali.patch +++ b/patches/tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/emotes/emotepicker/EmotePickerPresenter.smali b/smali_classes6/tv/twitch/android/shared/emotes/emotepicker/EmotePickerPresenter.smali --- a/smali_classes6/tv/twitch/android/shared/emotes/emotepicker/EmotePickerPresenter.smali +++ b/smali_classes6/tv/twitch/android/shared/emotes/emotepicker/EmotePickerPresenter.smali -@@ -1553,6 +1553,11 @@ +@@ -1521,6 +1521,11 @@ :cond_0 invoke-interface {p1, p3}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z diff --git a/patches/tv.twitch.android.shared.emotes.utils.AnimatedEmotesUrlUtil.smali.patch b/patches/tv.twitch.android.shared.emotes.utils.AnimatedEmotesUrlUtil.smali.patch index 57a37e16..8a22b10f 100644 --- a/patches/tv.twitch.android.shared.emotes.utils.AnimatedEmotesUrlUtil.smali.patch +++ b/patches/tv.twitch.android.shared.emotes.utils.AnimatedEmotesUrlUtil.smali.patch @@ -1,7 +1,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/emotes/utils/AnimatedEmotesUrlUtil.smali b/smali_classes6/tv/twitch/android/shared/emotes/utils/AnimatedEmotesUrlUtil.smali --- a/smali_classes6/tv/twitch/android/shared/emotes/utils/AnimatedEmotesUrlUtil.smali +++ b/smali_classes6/tv/twitch/android/shared/emotes/utils/AnimatedEmotesUrlUtil.smali -@@ -126,6 +126,16 @@ +@@ -132,6 +132,16 @@ :goto_2 new-instance p4, Ltv/twitch/android/shared/emotes/utils/AnimatedEmotesUrlUtil$EmoteUrlDetails; @@ -18,7 +18,7 @@ diff --git a/smali_classes6/tv/twitch/android/shared/emotes/utils/AnimatedEmotes .line 115 new-instance v1, Ljava/lang/StringBuilder; -@@ -159,6 +169,8 @@ +@@ -165,6 +175,8 @@ move-result-object p1 diff --git a/patches/tv.twitch.android.shared.player.overlay.BottomPlayerControlOverlayViewDelegate.smali.patch b/patches/tv.twitch.android.shared.player.overlay.BottomPlayerControlOverlayViewDelegate.smali.patch index 07fa2bfd..7c03b73e 100644 --- a/patches/tv.twitch.android.shared.player.overlay.BottomPlayerControlOverlayViewDelegate.smali.patch +++ b/patches/tv.twitch.android.shared.player.overlay.BottomPlayerControlOverlayViewDelegate.smali.patch @@ -1,7 +1,7 @@ -diff --git a/smali_classes6/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali b/smali_classes6/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali ---- a/smali_classes6/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali -+++ b/smali_classes6/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali -@@ -54,6 +54,13 @@ +diff --git a/smali_classes7/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali b/smali_classes7/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali +--- a/smali_classes7/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali ++++ b/smali_classes7/tv/twitch/android/shared/player/overlay/BottomPlayerControlOverlayViewDelegate.smali +@@ -126,6 +126,13 @@ .line 70 invoke-direct {p0, p1, p2}, Ltv/twitch/android/core/mvp/viewdelegate/BaseViewDelegate;->(Landroid/content/Context;Landroid/view/View;)V