bttv
A mod of the Twitch Android Mobile App adding BetterTTV, FrankerFaceZ and 7TV emotes
파일 탐색기
최종 버전 다운로드 (.zip)- build.png
- interaction.png
- monke.png
- source.png
- bug_report.yaml
- Feature_request.md
- ci.yml
- docker.yml
- bttvog.jpg
- config.yml
- dltut.webp
- pull_request_template.md
- ExampleInstrumentedTest.java
- AnonChat.java
- Autocomplete.java
- Badges.java
- Bits.java
- Blacklist.java
- DeletedMessages.java
- DevTools.java
- EmotePicker.java
- Glide.java
- Highlight.java
- SettingsBottom.java
- SleepTimer.java
- SplitChat.java
- StreamSettings.java
- Strings.java
- SubscribeRedirect.java
- Util.java
- WatchParties.java
- ChannelEmoteData.java
- Emote.java
- EmoteCardUtil.java
- EmotePicker.java
- Emotes.java
- EmoteUrlUtil.java
- Glide.java
- Svg.java
- SvgDecoder.java
- SvgDrawableTranscoder.java
- SvgModule.java
- Webp.java
- Blacklist.java
- Highlight.java
- StringSetUI.java
- StringSetUIAdapter.java
- Link.java
- Toggle.java
- Dropdown.java
- Link.java
- Switch.java
- Settings.java
- SettingsBottom.java
- SettingsFragment.java
- SettingsFragmentBinding.java
- SettingsFragmentBindingFactory.java
- SettingsFragmentBindingImpl.java
- SettingsFragmentProvider.java
- SettingsPresenter.java
- StreamSettings.java
- UserPreferences.java
- Notifications.java
- Updater.java
- UpdaterActivity.java
- UpdaterJobService.java
- AnonChat.java
- Autocomplete.java
- Badges.java
- BitsRedirect.java
- ChannelPoints.java
- ChommentModelDelegateWrapper.java
- Credits.java
- Data.java
- DevTools.java
- Network.java
- Res.java
- ResUtil.java
- SleepTimer.java
- SplitChat.java
- SubscribeRedirect.java
- Tokenizer.java
- Util.java
- WatchParties.java
- bttv_ic_bedtime.xml
- bttv_ic_trashbin.xml
- bttv_blacklist_dialog.xml
- bttv_credits_dialog.xml
- bttv_highlight_dialog.xml
- bttv_highlight_list_view.xml
- bttv_stream_settings.xml
- bttv_updater_activity.xml
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- ic_launcher.png
- ic_launcher_foreground.png
- ic_launcher_round.png
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- strings.xml
- provider_paths.xml
- ic_launcher.png
- AndroidManifest.xml
- Log.java
- ExampleUnitTest.java
- RetokenizeTest.java
- TokenizerTest.java
- .gitignore
- .project
- build.gradle
- proguard-rules.pro
- ExampleInstrumentedTest.java
- MainActivity.java
- ic_launcher_background.xml
- ic_launcher_foreground.xml
- ic_launcher.xml
- ic_launcher_round.xml
- ic_launcher.png
- ic_launcher_round.png
- colors.xml
- strings.xml
- themes.xml
- themes.xml
- AndroidManifest.xml
- ExampleUnitTest.java
- .gitignore
- .project
- build.gradle
- proguard-rules.pro
- gradle-wrapper.jar
- gradle-wrapper.properties
- BTTVDefaultConstructorMarker.java
- ActivityModule.java
- ActivityModule_ProvideMenuAdapterBinderFactory.java
- ThemeManager.java
- AbstractTwitchRecyclerViewHolder.java
- ActionListener.java
- ContentAdapterSection.java
- HeaderConfig.java
- RecyclerAdapterItem.java
- SectionHeaderDisplayConfig.java
- SectionHeaderStyle.java
- TwitchArrayAdapter.java
- TwitchArrayAdapterModel.java
- TwitchSectionAdapter.java
- VisibilityProvider.java
- BaseViewDelegate.java
- EventDispatcher.java
- IEventDispatcher.java
- RxViewDelegate.java
- ViewDelegateEvent.java
- ViewDelegateState.java
- StringResource.java
- PlayerCoordinatorPresenter.java
- StreamSettingsViewDelegate.java
- PersistentBannerPresenter.java
- ChannelInfo.java
- ChannelModel.java
- MessageBadge.java
- ChommentModel.java
- EmoteCardModel.java
- EmoteCardModelResponse.java
- EmoteCardType.java
- EmoteModel.java
- EmoteModelAssetType.java
- EmoteModelType.java
- EmoteSet.java
- SettingsDestination.java
- ChatUser.java
- StreamModel.java
- StreamType.java
- ExperimentHelper.java
- SDKServicesController.java
- SettingsActivityModule.java
- SettingsActivityModule_ProvideSettingsTrackerFactory.java
- PageViewTracker.java
- BitsSpendingPresenter.java
- ChatMessageViewHolder.java
- MessageRecyclerItem.java
- ChatUserDialogInfo.java
- ChatUserDialogPresenter.java
- ChommentModelDelegate.java
- ChommentRecyclerItem.java
- EmoteCardViewDelegate.java
- UserNoticeRecyclerItem.java
- ChatConnectionController.java
- ChatMessageInterface.java
- AutoModMessageFlags.java
- MessageToken.java
- ChatMessageTokenizerWrapper.java
- ChatMessageDelegate.java
- ChatMessageParser.java
- ChatViewPresenter.java
- KmpChatExperiment.java
- ClickedEmote.java
- EmoteHeaderUiModel.java
- EmoteImageDescriptor.java
- EmotePickerSection.java
- EmoteUiModel.java
- EmoteUiSet.java
- EmotePickerTrackingMetadata.java
- EmoteMessageInput.java
- AnimatedEmotesUrlUtil.java
- BottomPlayerOverlayControlsBinding.java
- RxBottomPlayerControlOverlayViewDelegate.java
- BaseSettingsFragment.java
- BaseSettingsPresenter.java
- SettingsNavigationController.java
- SettingsTracker.java
- GlideChatImageCustomTarget.java
- GlideChatImageTarget.java
- UrlDrawable.java
- MenuAdapterBinder.java
- MenuModel.java
- MenuSection.java
- DropDownMenuModel.java
- InfoMenuViewDelegate.java
- SubMenuModel.java
- SimpleToggleRowViewDelegate.java
- ToggleMenuModel.java
- SettingActionListener.java
- SettingsPreferencesController.java
- EmoteUrlUtil.java
- AutoModFlags.java
- ChatMessageBadge.java
- ChatMessageFlags.java
- ChatMessageInfo.java
- ChatUserInfo.java
- MessageToken.java
- AutoModFlags.java
- ChatEmoticonToken.java
- ChatMentionToken.java
- ChatMessageInfo.java
- ChatMessageToken.java
- ChatMessageTokenType.java
- ChatTextToken.java
- ChatUrlToken.java
- ic_send.xml
- rounded_input_border.xml
- colors.xml
- dimens.xml
- strings.xml
- AndroidManifest.xml
- .gitignore
- .project
- build.gradle
- consumer-rules.pro
- proguard-rules.pro
- .gitignore
- .project
- build.gradle
- gradle.properties
- gradlew
- gradlew.bat
- settings.gradle
- tv.twitch.android.shared.chat.ChatViewPresenter.smali.patch
- tv.twitch.android.shared.chat.observables.ChatConnectionController.smali.patch
- tv.twitch.android.shared.messageinput.impl.ChatMessageInputViewDelegate$State.smali.patch
- tv.twitch.android.shared.community.points.viewdelegate.CommunityPointsButtonViewDelegate.smali.patch
- tv.twitch.android.shared.bits.BitsSpendingPresenter$maybeShowBuyBitsButton$1$2.smali.patch
- tv.twitch.android.shared.bits.BitsSpendingPresenter.smali.patch
- tv.twitch.android.shared.chat.util.ChatUtil$Companion.smali.patch
- tv.twitch.android.feature.viewer.main.navigation.ToolbarPresenter.smali.patch
- tv.twitch.android.models.emotes.EmoteCardModel$GenericEmoteCardModel.smali.patch
- tv.twitch.android.models.emotes.EmoteCardModel.smali.patch
- tv.twitch.android.models.emotes.EmoteCardType$GenericEmoteCardType$Global.smali.patch
- tv.twitch.android.shared.chat.emotecard.EmoteCardPresenter.smali.patch
- tv.twitch.android.feature.theatre.refactor.datasource.StreamMetadataModelProvider$dataObserver$1.smali.patch
- tv.twitch.android.shared.chat.ChatMessageDelegate.smali.patch
- tv.twitch.android.shared.chat.chomments.ChommentMessageFactory.smali.patch
- tv.twitch.android.shared.chat.chomments.ChommentModelDelegate.smali.patch
- tv.twitch.android.shared.chat.messagefactory.ChatMessageFactory.smali.patch
- tv.twitch.android.shared.chat.messagefactory.ChatMessageSpanFactory.smali.patch
- tv.twitch.android.shared.chat.messagefactory.SubNoticeChatMessageFactory.smali.patch
- tv.twitch.android.shared.chomments.impl.ChommentsFetcherImpl.smali.patch
- tv.twitch.android.shared.emotes.network.EmoteApiImpl.smali.patch
- tv.twitch.android.shared.emotes.utils.AnimatedEmotesUrlUtil.smali.patch
- tv.twitch.android.shared.ui.elements.span.GlideChatImageCustomTarget.smali.patch
- tv.twitch.android.shared.ui.elements.span.GlideChatImageTarget.smali.patch
- tv.twitch.android.util.EmoteUrlUtil.smali.patch
- tv.twitch.chat.library.model.ChatMessageInfo.smali.patch
- com.bumptech.glide.GeneratedAppGlideModuleImpl.smali.patch
- com.bumptech.glide.load.resource.bitmap.DrawableToBitmapConverter.smali.patch
- com.bumptech.glide.provider.ResourceDecoderRegistry.smali.patch
- com.bumptech.glide.provider.ResourceEncoderRegistry.smali.patch
- com.bumptech.glide.Registry.smali.patch
- tv.twitch.android.shared.ui.elements.GlideHelper$generateGlideRequestListener$1.smali.patch
- tv.twitch.android.shared.ui.elements.GlideHelper.smali.patch
- tv.twitch.android.shared.ui.elements.span.UrlDrawable.smali.patch
- tv.twitch.android.shared.emotes.emotepicker.EmotePickerPresenter.smali.patch
- tv.twitch.android.shared.messageinput.impl.autocomplete.EmoteAutoCompleteMapProvider$1.smali.patch
- tv.twitch.android.app.consumer.DaggerTwitchApplication_HiltComponents_SingletonC$ActivityCImpl.smali.patch
- tv.twitch.android.models.settings.SettingsDestination.smali.patch
- tv.twitch.android.settings.main.MainSettingsPresenter$navController$1.smali.patch
- tv.twitch.android.settings.main.MainSettingsPresenter.smali.patch
- tv.twitch.android.shared.ui.menus.SettingsPreferencesController$SettingsPreference.smali.patch
- res.layout-v22.chat_settings_bottom_sheet.xml.patch
- res.layout.chat_settings_bottom_sheet.xml.patch
- tv.twitch.android.shared.chat.settings.entry.ChatSettingsViewDelegate.smali.patch
- res.layout-v22.bottom_player_overlay_controls.xml.patch
- res.layout.bottom_player_control_overlay_widget.xml.patch
- res.layout.bottom_player_overlay_controls.xml.patch
- tv.twitch.android.shared.player.overlay.BottomPlayerControlOverlayViewDelegate.smali.patch
- tv.twitch.android.shared.player.overlay.databinding.BottomPlayerOverlayControlsBinding.smali.patch
- tv.twitch.android.shared.player.overlay.RxBottomPlayerControlOverlayViewDelegate.smali.patch
- tv.twitch.android.core.adapters.AbstractTwitchRecyclerViewAdapter.smali.patch
- tv.twitch.android.shared.chat.adapter.ChannelChatAdapter.smali.patch
- res.layout-v22.stream_settings_fragment.xml.patch
- res.layout.stream_settings_fragment.xml.patch
- tv.twitch.android.feature.theatre.common.StreamSettingsViewDelegate.smali.patch
- tv.twitch.android.feature.theatre.common.PlayerCoordinatorPresenter.smali.patch
- tv.twitch.android.feature.theatre.metadata.ExtendedPlayerMetadataViewDelegate.smali.patch
- tv.twitch.android.models.social.ChatUser.smali.patch
- tv.twitch.android.shared.billing.RxBillingClient.smali.patch
- tv.twitch.android.shared.chat.chatuserdialog.ChatUserDialogPresenter.smali.patch
- tv.twitch.android.shared.subscriptions.SubscriptionFlowProvider.smali.patch
- tv.twitch.android.shared.subscriptions.SubscriptionPresenterFactory.smali.patch
- res.layout.settings_logout_footer.xml.patch
- res.mipmap-anydpi-v26.ic_launcher.xml.patch
- tv.twitch.android.feature.viewer.main.MainActivity.smali.patch
- tv.twitch.android.feature.viewer.main.navigation.PersistentBannerPresenter$PersistentBanners.smali.patch
- com.amazon.identity.auth.device.appid.APIKeyDecoder.smali.patch
- com.amazon.identity.auth.device.authorization.AuthorizationHelper.smali.patch
- com.amazon.identity.auth.device.authorization.InternalAuthManager$1.smali.patch
- com.amazon.identity.auth.device.authorization.ThirdPartyServiceHelper.smali.patch
- com.amazon.identity.auth.device.utils.ThirdPartyResourceParser.smali.patch
- tv.twitch.android.feature.theatre.watchparty.PrimeVideoPlayerPresenter$watchPartySdkCache$2.smali.patch
- tv.twitch.android.shared.amazon.login.AmazonLoginSdkWrapperImpl$$ExternalSyntheticLambda0.smali.patch
- AndroidManifest.xml.patch
- res.values.colors.xml.patch
- res.values.ids.xml.patch
- res.values.public.xml.patch
- res.values.styles.xml.patch
- tv.twitch.android.app.consumer.ApplicationDelegate$Companion.smali.patch
- tv.twitch.android.app.consumer.TwitchApplication.smali.patch
- tv.twitch.android.settings.cookieconsent.CookieConsentBottomSheetDialogPresenter.smali.patch
- tv.twitch.android.shared.badges.ChatBadgeProvider.smali.patch
- .all-contributorsrc
- .dockerignore
- .gitignore
- .mergify.yml
- .ubignore
- architecture.md
- bttv.manifest.json
- build
- buildsource
- CHANGELOG.md
- CODE_OF_CONDUCT.md
- compose.yaml
- CONTRIBUTING.md
- crowdin.yml
- decompile
- disassemble
- Dockerfile
- genmonke
- initworkspace
- install
- LICENSE
- patch
- README.md
- ubi
- update.sh
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/bttv-android/bttv
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd bttv
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. Docker
쉬움 추천사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker run --rm -ti \
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Gradle (Java/Kotlin)
보통사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- JDK (Java) Java/Kotlin 프로젝트를 빌드/실행하려면 필요합니다.
- Gradle 레포에 포함된 gradlew(Gradle Wrapper)를 쓰면 Gradle을 따로 설치할 필요가 없습니다.
cd mod/app
이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.
./gradlew build
Gradle로 빌드를 진행합니다.
BUILD SUCCESSFUL 메시지가 뜨면 성공입니다. build/ 폴더에 결과물이 생성됩니다.
// repository documentation
Was this content helpful?
(0 ratings)
