├── .editorconfig ├── .gitattributes ├── .github ├── pull_request_template.md └── workflows │ ├── build-and-deploy-documentations.yml │ └── phrase-translations-pr.yml ├── .gitignore ├── .gitmodules ├── .idea └── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── .maestro ├── .gitignore ├── Makefile ├── README.md ├── ci.sh ├── flows │ ├── 1_play-shorts.yml │ ├── 2_play-episode.yml │ ├── 3_deep-links-public.yml │ ├── 4_deep-links-bcc.yml │ ├── 5_notifications.yml │ ├── 6_notifications-stopped.yml │ ├── scripts │ │ ├── .env.js.template │ │ └── init.js │ └── subflows │ │ ├── home.yml │ │ ├── home │ │ └── home_ios.yml │ │ ├── init.yml │ │ ├── login.yml │ │ ├── login │ │ ├── login_android.yml │ │ └── login_ios.yml │ │ ├── notification.yml │ │ ├── notification │ │ └── notification_ios.yml │ │ └── playback │ │ └── ios_language.yml └── notifications │ ├── ios │ ├── deep_link_donation.apns │ ├── deep_link_episode.apns │ └── deep_link_shorts.apns │ └── push_ios.sh ├── .metadata ├── .vscode ├── launch.json └── settings.json ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── tv │ │ │ └── brunstad │ │ │ └── app │ │ │ └── MainActivityTest.java │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── dev │ │ ├── AndroidManifest.xml │ │ ├── google-services.json │ │ └── res │ │ │ └── values │ │ │ └── string.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── tv │ │ │ │ └── brunstad │ │ │ │ └── app │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── anim │ │ │ └── dev.xml │ │ │ ├── drawable │ │ │ ├── icon_fullscreen.png │ │ │ ├── icon_fullscreen_off.png │ │ │ ├── icon_pause.png │ │ │ └── icon_settings.png │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── string.xml │ │ │ └── styles.xml │ │ ├── prod │ │ ├── AndroidManifest.xml │ │ ├── google-services.json │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-mdpi │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-v24 │ │ │ └── ic_background.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ │ ├── drawable-xxxhdpi │ │ │ ├── ic_launcher_background.png │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_banner_adaptive_not_used.xml │ │ │ └── ic_launcher.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_banner.png │ │ │ ├── ic_banner_background.png │ │ │ ├── ic_banner_foreground.png │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_banner.png │ │ │ ├── ic_banner_background.png │ │ │ ├── ic_banner_foreground.png │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_banner.png │ │ │ ├── ic_banner_background.png │ │ │ ├── ic_banner_foreground.png │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ ├── string.xml │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── app.code-workspace ├── assets ├── flavors │ └── prod │ │ ├── 1.5x │ │ └── logo.png │ │ ├── 2.0x │ │ └── logo.png │ │ ├── 3.0x │ │ └── logo.png │ │ ├── 4.0x │ │ └── logo.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_bg.png │ │ ├── logo.png │ │ ├── logo_bg.png │ │ ├── logo_icon.png │ │ └── onboarding.png ├── fonts │ └── Barlow │ │ ├── Barlow-Black.ttf │ │ ├── Barlow-BlackItalic.ttf │ │ ├── Barlow-Bold.ttf │ │ ├── Barlow-BoldItalic.ttf │ │ ├── Barlow-ExtraBold.ttf │ │ ├── Barlow-ExtraBoldItalic.ttf │ │ ├── Barlow-ExtraLight.ttf │ │ ├── Barlow-ExtraLightItalic.ttf │ │ ├── Barlow-Italic.ttf │ │ ├── Barlow-Light.ttf │ │ ├── Barlow-LightItalic.ttf │ │ ├── Barlow-Medium.ttf │ │ ├── Barlow-MediumItalic.ttf │ │ ├── Barlow-Regular.ttf │ │ ├── Barlow-SemiBold.ttf │ │ ├── Barlow-SemiBoldItalic.ttf │ │ ├── Barlow-Thin.ttf │ │ ├── Barlow-ThinItalic.ttf │ │ └── OFL.txt ├── icons │ ├── 1.5x │ │ ├── Calendar_Default.png │ │ ├── Calendar_Selected.png │ │ ├── Cancel_Default.png │ │ ├── Close.png │ │ ├── CollectionEvents.png │ │ ├── CollectionFilms.png │ │ ├── CollectionKids.png │ │ ├── CollectionMusic.png │ │ ├── CollectionSeries.png │ │ ├── CollectionWorthWatching.png │ │ ├── ExploreCategorySort.png │ │ ├── Feed_Default.png │ │ ├── Feed_Selected.png │ │ ├── Games_Default.png │ │ ├── Games_Selected.png │ │ ├── Home_Default.png │ │ ├── Home_Selected.png │ │ ├── Left.png │ │ ├── Live_Default.png │ │ ├── Live_Selected.png │ │ ├── Pause.png │ │ ├── Play.png │ │ ├── Playlists_Default.png │ │ ├── Playlists_Selected.png │ │ ├── Poll_Default.png │ │ ├── Poll_Selected.png │ │ ├── Profile.png │ │ ├── Profile_Default.png │ │ ├── Profile_Selected.png │ │ ├── Search_Default.png │ │ ├── Search_Selected.png │ │ ├── Seen.png │ │ ├── Shorts_Default.png │ │ ├── Shorts_Selected.png │ │ ├── Testimony_Default.png │ │ ├── Testimony_Selected.png │ │ ├── Theme_Default.png │ │ ├── Theme_selected.png │ │ └── Wait.png │ ├── 2x │ │ ├── Calendar_Default.png │ │ ├── Calendar_Selected.png │ │ ├── Cancel_Default.png │ │ ├── Close.png │ │ ├── CollectionEvents.png │ │ ├── CollectionFilms.png │ │ ├── CollectionKids.png │ │ ├── CollectionMusic.png │ │ ├── CollectionSeries.png │ │ ├── CollectionWorthWatching.png │ │ ├── ExploreCategorySort.png │ │ ├── Feed_Default.png │ │ ├── Feed_Selected.png │ │ ├── Games_Default.png │ │ ├── Games_Selected.png │ │ ├── Home_Default.png │ │ ├── Home_Selected.png │ │ ├── Left.png │ │ ├── Live_Default.png │ │ ├── Live_Selected.png │ │ ├── Pause.png │ │ ├── Play.png │ │ ├── Playlists_Default.png │ │ ├── Playlists_Selected.png │ │ ├── Poll_Default.png │ │ ├── Poll_Selected.png │ │ ├── Profile.png │ │ ├── Profile_Default.png │ │ ├── Profile_Selected.png │ │ ├── Search_Default.png │ │ ├── Search_Selected.png │ │ ├── Seen.png │ │ ├── Shorts_Default.png │ │ ├── Shorts_Selected.png │ │ ├── Testimony_Default.png │ │ ├── Testimony_Selected.png │ │ ├── Theme_Default.png │ │ ├── Theme_selected.png │ │ └── Wait.png │ ├── 3x │ │ ├── Calendar_Default.png │ │ ├── Calendar_Selected.png │ │ ├── Cancel_Default.png │ │ ├── Close.png │ │ ├── CollectionEvents.png │ │ ├── CollectionFilms.png │ │ ├── CollectionKids.png │ │ ├── CollectionMusic.png │ │ ├── CollectionSeries.png │ │ ├── CollectionWorthWatching.png │ │ ├── ExploreCategorySort.png │ │ ├── Feed_Default.png │ │ ├── Feed_Selected.png │ │ ├── Games_Default.png │ │ ├── Games_Selected.png │ │ ├── Home_Default.png │ │ ├── Home_Selected.png │ │ ├── Left.png │ │ ├── Live_Default.png │ │ ├── Live_Selected.png │ │ ├── Pause.png │ │ ├── Play.png │ │ ├── Playlists_Default.png │ │ ├── Playlists_Selected.png │ │ ├── Poll_Default.png │ │ ├── Poll_Selected.png │ │ ├── Profile.png │ │ ├── Profile_Default.png │ │ ├── Profile_Selected.png │ │ ├── Search_Default.png │ │ ├── Search_Selected.png │ │ ├── Seen.png │ │ ├── Shorts_Default.png │ │ ├── Shorts_Selected.png │ │ ├── Testimony_Default.png │ │ ├── Testimony_Selected.png │ │ ├── Theme_Default.png │ │ ├── Theme_selected.png │ │ └── Wait.png │ ├── 4x │ │ ├── Calendar_Default.png │ │ ├── Calendar_Selected.png │ │ ├── Cancel_Default.png │ │ ├── Close.png │ │ ├── CollectionEvents.png │ │ ├── CollectionFilms.png │ │ ├── CollectionKids.png │ │ ├── CollectionMusic.png │ │ ├── CollectionSeries.png │ │ ├── CollectionWorthWatching.png │ │ ├── ExploreCategorySort.png │ │ ├── Feed_Default.png │ │ ├── Feed_Selected.png │ │ ├── Games_Default.png │ │ ├── Games_Selected.png │ │ ├── Home_Default.png │ │ ├── Home_Selected.png │ │ ├── Left.png │ │ ├── Live_Default.png │ │ ├── Live_Selected.png │ │ ├── Pause.png │ │ ├── Play.png │ │ ├── Playlists_Default.png │ │ ├── Playlists_Selected.png │ │ ├── Poll_Default.png │ │ ├── Poll_Selected.png │ │ ├── Profile.png │ │ ├── Profile_Default.png │ │ ├── Profile_Selected.png │ │ ├── Search_Default.png │ │ ├── Search_Selected.png │ │ ├── Seen.png │ │ ├── Shorts_Default.png │ │ ├── Shorts_Selected.png │ │ ├── Testimony_Default.png │ │ ├── Testimony_Selected.png │ │ ├── Theme_Default.png │ │ ├── Theme_selected.png │ │ └── Wait.png │ ├── Audio_Default.png │ ├── Calendar_Default.png │ ├── Calendar_Selected.png │ ├── Cancel_Default.png │ ├── Close.png │ ├── CollectionEvents.png │ ├── CollectionFilms.png │ ├── CollectionKids.png │ ├── CollectionMusic.png │ ├── CollectionSeries.png │ ├── CollectionWorthWatching.png │ ├── ExploreCategorySort.png │ ├── Feed_Default.png │ ├── Feed_Selected.png │ ├── Games_Default.png │ ├── Games_Selected.png │ ├── Home_Default.png │ ├── Home_Selected.png │ ├── Left.png │ ├── Live_Default.png │ ├── Live_Selected.png │ ├── My_List_Default.png │ ├── My_List_Selected.png │ ├── Pause.png │ ├── Play.png │ ├── Playlists_Default.png │ ├── Playlists_Selected.png │ ├── Poll_Default.png │ ├── Poll_Selected.png │ ├── Profile.png │ ├── Profile_Default.png │ ├── Profile_Selected.png │ ├── Search_Default.png │ ├── Search_Selected.png │ ├── Seen.png │ ├── Shorts_Default.png │ ├── Shorts_Selected.png │ ├── Testimony_Default.png │ ├── Testimony_Selected.png │ ├── Theme_Default.png │ ├── Theme_selected.png │ ├── Wait.png │ ├── app_icon.png │ ├── avatar.svg │ ├── headphones.svg │ └── play_alt.svg └── images │ ├── background.svg │ ├── chromecast_bg.png │ ├── chromecast_bg.svg │ └── line.svg ├── bccm-frontends.code-workspace ├── devtools_options.yaml ├── docs ├── firebase_integration.md ├── flavors.md └── flutter_learnings.md ├── firebase ├── dev │ ├── GoogleService-Info.plist │ └── firebase_app_id_file.json ├── ios_copy_script.sh └── prod │ ├── GoogleService-Info.plist │ └── firebase_app_id_file.json ├── flutter_launcher_icons-prod.yaml ├── flutter_native_splash-prod.yaml ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── PrivacyInfo.xcprivacy ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ ├── prod-release.xcscheme │ │ └── prod.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon-prod.appiconset │ │ │ ├── AppIcon-prod-1024x1024@1x.png │ │ │ ├── AppIcon-prod-20x20@1x.png │ │ │ ├── AppIcon-prod-20x20@2x.png │ │ │ ├── AppIcon-prod-20x20@3x.png │ │ │ ├── AppIcon-prod-29x29@1x.png │ │ │ ├── AppIcon-prod-29x29@2x.png │ │ │ ├── AppIcon-prod-29x29@3x.png │ │ │ ├── AppIcon-prod-40x40@1x.png │ │ │ ├── AppIcon-prod-40x40@2x.png │ │ │ ├── AppIcon-prod-40x40@3x.png │ │ │ ├── AppIcon-prod-50x50@1x.png │ │ │ ├── AppIcon-prod-50x50@2x.png │ │ │ ├── AppIcon-prod-57x57@1x.png │ │ │ ├── AppIcon-prod-57x57@2x.png │ │ │ ├── AppIcon-prod-60x60@2x.png │ │ │ ├── AppIcon-prod-60x60@3x.png │ │ │ ├── AppIcon-prod-72x72@1x.png │ │ │ ├── AppIcon-prod-72x72@2x.png │ │ │ ├── AppIcon-prod-76x76@1x.png │ │ │ ├── AppIcon-prod-76x76@2x.png │ │ │ ├── AppIcon-prod-83.5x83.5@2x.png │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 128.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 16.png │ │ │ ├── 167.png │ │ │ ├── 172.png │ │ │ ├── 180.png │ │ │ ├── 196.png │ │ │ ├── 20.png │ │ │ ├── 216.png │ │ │ ├── 256.png │ │ │ ├── 29.png │ │ │ ├── 32.png │ │ │ ├── 40.png │ │ │ ├── 48.png │ │ │ ├── 50.png │ │ │ ├── 512.png │ │ │ ├── 55.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 64.png │ │ │ ├── 66.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ ├── 88.png │ │ │ ├── 92.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── LaunchBackgroundProd.imageset │ │ │ ├── Contents.json │ │ │ └── background.png │ │ ├── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ └── README.md │ │ └── LaunchImageProd.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ └── LaunchImage@3x.png │ ├── Base.lproj │ │ ├── LaunchScreenProd.storyboard │ │ └── Main.storyboard │ ├── Entitlements │ │ ├── Entitlements-bccm.entitlements │ │ └── Entitlements-kids.entitlements │ ├── Info-Debug-dev.plist │ ├── Info-Debug-prod.plist │ ├── Info-Profile-dev.plist │ ├── Info-Profile-prod.plist │ ├── Info-Release-dev.plist │ ├── Info-Release-prod.plist │ ├── Runner-Bridging-Header.h │ └── logo.png └── RunnerUITests │ └── RunnerUITests.m ├── kids ├── .gitignore ├── .graphqlrc.yml ├── .metadata ├── README.md ├── analysis_options.yaml ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── media │ │ │ │ │ └── bcc │ │ │ │ │ └── kids_app │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable-v21 │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-night │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── build │ │ └── reports │ │ │ └── problems │ │ │ └── problems-report.html │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── assets │ ├── flavors │ │ └── prod │ │ │ ├── logo.png │ │ │ ├── logo_anim.mp4 │ │ │ ├── logo_icon.png │ │ │ ├── logo_icon_square.png │ │ │ ├── logo_neg.png │ │ │ └── onboarding.png │ ├── fonts │ │ ├── ClashDisplay │ │ │ ├── ClashDisplay-Bold.otf │ │ │ ├── ClashDisplay-Extralight.otf │ │ │ ├── ClashDisplay-Light.otf │ │ │ ├── ClashDisplay-Medium.otf │ │ │ ├── ClashDisplay-Regular.otf │ │ │ └── ClashDisplay-Semibold.otf │ │ └── NotoSans │ │ │ ├── NotoSans-Black.ttf │ │ │ ├── NotoSans-BlackItalic.ttf │ │ │ ├── NotoSans-Bold.ttf │ │ │ ├── NotoSans-BoldItalic.ttf │ │ │ ├── NotoSans-ExtraBold.ttf │ │ │ ├── NotoSans-ExtraBoldItalic.ttf │ │ │ ├── NotoSans-ExtraLight.ttf │ │ │ ├── NotoSans-ExtraLightItalic.ttf │ │ │ ├── NotoSans-Italic.ttf │ │ │ ├── NotoSans-Light.ttf │ │ │ ├── NotoSans-LightItalic.ttf │ │ │ ├── NotoSans-Medium.ttf │ │ │ ├── NotoSans-MediumItalic.ttf │ │ │ ├── NotoSans-Regular.ttf │ │ │ ├── NotoSans-SemiBold.ttf │ │ │ ├── NotoSans-SemiBoldItalic.ttf │ │ │ ├── NotoSans-Thin.ttf │ │ │ ├── NotoSans-ThinItalic.ttf │ │ │ └── OFL.txt │ └── sounds │ │ ├── button-1_push.wav │ │ └── button-1_release.wav ├── build.yaml ├── devtools_options.yaml ├── firebase │ └── default │ │ ├── GoogleService-Info.plist │ │ └── firebase_app_id_file.json ├── flutter_launcher_icons.yaml ├── flutter_native_splash.yaml ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Podfile.lock │ ├── PrivacyInfo.xcprivacy │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ ├── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-50x50@1x.png │ │ │ │ ├── Icon-App-50x50@2x.png │ │ │ │ ├── Icon-App-57x57@1x.png │ │ │ │ ├── Icon-App-57x57@2x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-72x72@1x.png │ │ │ │ ├── Icon-App-72x72@2x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ ├── LaunchBackground.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── background.png │ │ │ └── LaunchImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ └── README.md │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── GoogleService-Info.plist │ │ ├── Info.plist │ │ ├── Runner-Bridging-Header.h │ │ ├── Runner.entitlements │ │ └── firebase_app_id_file.json │ └── RunnerTests │ │ └── RunnerTests.swift ├── lib │ ├── app_root.dart │ ├── app_root_inner.dart │ ├── components │ │ ├── buttons │ │ │ ├── appbar_close_button.dart │ │ │ ├── button.dart │ │ │ ├── button_base.dart │ │ │ ├── notification_promt_dismiss_button.dart │ │ │ ├── stack_close_button.dart │ │ │ └── tab_switcher.dart │ │ ├── countdown_circle.dart │ │ ├── dialog │ │ │ └── dialog.dart │ │ ├── grid │ │ │ └── episode_grid.dart │ │ ├── notification_prompt.dart │ │ ├── page │ │ │ ├── section_renderer.dart │ │ │ └── sections │ │ │ │ └── poster_section.dart │ │ ├── player │ │ │ ├── controls.dart │ │ │ ├── player_error.dart │ │ │ └── player_view.dart │ │ ├── search │ │ │ ├── search_bar.dart │ │ │ └── search_results.dart │ │ ├── settings │ │ │ ├── language_list_dialog.dart │ │ │ ├── option_list.dart │ │ │ ├── option_list_dialog.dart │ │ │ ├── setting_list.dart │ │ │ └── toggle_switch.dart │ │ ├── splash_video.dart │ │ └── thumbnails │ │ │ └── posters │ │ │ ├── playlist_poster_large.dart │ │ │ └── poster_large.dart │ ├── design_system.dart │ ├── firebase_options.dart │ ├── helpers │ │ ├── analytics_meta.dart │ │ ├── animation.dart │ │ ├── router_utils.dart │ │ ├── svg_icons.dart │ │ └── transitions.dart │ ├── main.dart │ ├── providers │ │ ├── sound_effects.dart │ │ ├── special_routes.dart │ │ └── unleash.dart │ ├── router │ │ ├── router.dart │ │ └── router.gr.dart │ └── screens │ │ ├── episode.dart │ │ ├── home.dart │ │ ├── init.dart │ │ ├── playlist.dart │ │ ├── search.dart │ │ ├── settings │ │ ├── about.dart │ │ ├── app_language.dart │ │ ├── contact.dart │ │ ├── content_language.dart │ │ ├── device_info.dart │ │ ├── extra_usergroups.dart │ │ ├── faq.dart │ │ ├── privacy_policy.dart │ │ ├── settings.dart │ │ └── terms_of_use.dart │ │ └── show.dart ├── pubspec.lock └── pubspec.yaml ├── l10n.yaml ├── lib ├── api │ ├── bmm.dart │ └── brunstadtv.dart ├── app_bar_with_scroll_to_top.dart ├── app_root.dart ├── app_root_inner.dart ├── background_tasks.dart ├── components │ ├── achievements │ │ ├── achievement_dialog.dart │ │ ├── achievement_list.dart │ │ └── achievement_list_item.dart │ ├── badges │ │ ├── download_expires_badge.dart │ │ ├── download_status_badge.dart │ │ ├── feature_badge.dart │ │ ├── icon_badge.dart │ │ ├── offline_badge.dart │ │ └── watched_badge.dart │ ├── buttons │ │ └── btv_buttons.dart │ ├── contact │ │ ├── contact_input_page.dart │ │ ├── contact_public_input_page.dart │ │ ├── contact_success.dart │ │ └── device_info_table.dart │ ├── contributions │ │ └── contributions_list.dart │ ├── episode │ │ ├── episode_chapters.dart │ │ ├── episode_collection.dart │ │ ├── episode_details.dart │ │ ├── episode_download_button.dart │ │ ├── episode_download_sheet.dart │ │ ├── episode_info.dart │ │ ├── episode_related.dart │ │ ├── episode_season.dart │ │ ├── episode_share_sheet.dart │ │ └── list │ │ │ ├── episode_list_chapter.dart │ │ │ ├── episode_list_episode.dart │ │ │ ├── season_episode_list.dart │ │ │ └── season_episode_list.freezed.dart │ ├── guides │ │ ├── favorite_guides.dart │ │ └── tab_feature_guides.dart │ ├── menus │ │ ├── bottom_sheet_select.dart │ │ ├── dropdown_select.dart │ │ └── option_list.dart │ ├── misc │ │ ├── app_update_dialog.dart │ │ ├── app_version.dart │ │ ├── collapsable_markdown.dart │ │ ├── custom_grid_view.dart │ │ ├── dialog_with_image.dart │ │ ├── generic_dialog.dart │ │ ├── horizontal_slider.dart │ │ ├── parental_gate.dart │ │ ├── see_more.dart │ │ ├── shiny_clipper.dart │ │ └── two_action_generic_dialog.dart │ ├── nav │ │ ├── custom_back_button.dart │ │ ├── custom_nav_tab_bar.dart │ │ ├── general_app_bar.dart │ │ └── web_app_bar.dart │ ├── offline │ │ ├── downloaded_videos.dart │ │ └── offline_home.dart │ ├── onboarding │ │ ├── birth_year_picker.dart │ │ ├── email_text_field.dart │ │ ├── email_verification │ │ │ ├── email_verification_prompt_page.dart │ │ │ └── email_verification_success_page.dart │ │ ├── login │ │ │ └── login_initial_page.dart │ │ ├── onboarding_buttons_auth_enabled.dart │ │ ├── onboarding_page_wrapper.dart │ │ ├── password_text_field.dart │ │ └── signup │ │ │ ├── signup_birthdate_page.dart │ │ │ ├── signup_done_page.dart │ │ │ ├── signup_initial_page.dart │ │ │ ├── signup_name_page.dart │ │ │ └── signup_password_page.dart │ ├── pages │ │ ├── page_renderer.dart │ │ └── sections │ │ │ ├── avatar │ │ │ └── avatar_section_button.dart │ │ │ ├── cards │ │ │ ├── generic_card_large.dart │ │ │ ├── generic_card_mini.dart │ │ │ ├── study_topic_card_large.dart │ │ │ └── study_topic_card_mini.dart │ │ │ ├── icons │ │ │ └── icon_section_button.dart │ │ │ ├── section_item_click_wrapper.dart │ │ │ ├── section_renderer.dart │ │ │ ├── section_with_header.dart │ │ │ └── types │ │ │ ├── achievement_section.dart │ │ │ ├── avatar_section.dart │ │ │ ├── bmm_achievement_section.dart │ │ │ ├── card_list_section.dart │ │ │ ├── card_section.dart │ │ │ ├── featured_section.dart │ │ │ ├── featured_section_v2.dart │ │ │ ├── icon_grid_section.dart │ │ │ ├── icon_section.dart │ │ │ ├── item_section_thumbnail_grid.dart │ │ │ ├── item_section_thumbnail_slider.dart │ │ │ ├── label_section.dart │ │ │ ├── list_section.dart │ │ │ ├── message_section.dart │ │ │ ├── page_details_section.dart │ │ │ └── web_section.dart │ ├── player │ │ ├── bottom_sheet_mini_player.dart │ │ ├── custom_cast_player.dart │ │ ├── player_error_view.dart │ │ └── player_poster.dart │ ├── profile │ │ ├── avatar.dart │ │ ├── developer_options.dart │ │ ├── empty_info.dart │ │ └── setting_list.dart │ ├── prompts │ │ ├── prompts.dart │ │ └── survey_prompt.dart │ ├── search │ │ ├── custom_search_bar.dart │ │ ├── result_programs_list.dart │ │ └── search_results.dart │ ├── shorts │ │ ├── short_error_view.dart │ │ ├── short_scroll_view.dart │ │ ├── short_scroll_view.g.dart │ │ └── short_view.dart │ ├── status │ │ ├── error_adaptive.dart │ │ ├── error_generic.dart │ │ ├── error_no_access.dart │ │ ├── error_not_found.dart │ │ ├── loading_generic.dart │ │ └── loading_indicator.dart │ ├── study │ │ ├── pulse_animation.dart │ │ ├── study_button.dart │ │ ├── study_progress.dart │ │ └── study_progress_row.dart │ ├── surveys │ │ ├── bottom_sheet_survey.dart │ │ ├── dialog_confirm_cancel.dart │ │ ├── rating_bar.dart │ │ ├── survey_form.dart │ │ ├── survey_link.dart │ │ ├── survey_question_rating.dart │ │ └── survey_question_text.dart │ ├── tabs │ │ ├── custom_tab_bar.dart │ │ ├── fade_indexed_stack.dart │ │ └── tab_selector.dart │ ├── thumbnails │ │ ├── episode_thumbnail.dart │ │ ├── grid │ │ │ ├── thumbnail_grid.dart │ │ │ ├── thumbnail_grid_episode.dart │ │ │ └── thumbnail_grid_show.dart │ │ ├── misc │ │ │ ├── bordered_image_container.dart │ │ │ ├── episode_duration.dart │ │ │ └── watch_progress_indicator.dart │ │ ├── show_thumbnail.dart │ │ ├── slider │ │ │ ├── thumbnail_slider.dart │ │ │ ├── thumbnail_slider_episode.dart │ │ │ ├── thumbnail_slider_short.dart │ │ │ └── thumbnail_slider_show.dart │ │ └── widgets │ │ │ └── watch_progress_indicator.dart │ ├── video │ │ ├── center_extra_slot.dart │ │ └── skip_button.dart │ └── web │ │ └── dialog_on_web.dart ├── env │ ├── .env.dart.template │ ├── dev │ │ └── firebase_options.dart │ ├── env.dart │ └── prod │ │ └── firebase_options.dart ├── flavors.dart ├── helpers │ ├── analytics.dart │ ├── app_theme.dart │ ├── bmm │ │ ├── bmm_navigation.dart │ │ └── streak_listener.dart │ ├── constants.dart │ ├── episode_state.dart │ ├── forms │ │ └── range_input_formatter.dart │ ├── insets.dart │ ├── main_js_channel.dart │ ├── markdown.dart │ ├── permanent_cache_manager.dart │ ├── router │ │ ├── custom_transitions.dart │ │ ├── navigation_override.dart │ │ ├── router_utils.dart │ │ └── special_routes.dart │ ├── sections.dart │ ├── share_extension │ │ ├── share_extension.dart │ │ ├── share_extension_shim.dart │ │ └── share_extension_web.dart │ ├── shorts │ │ ├── short_analytics.dart │ │ └── short_controller.dart │ ├── svg_icons.dart │ ├── translations.dart │ ├── watch_progress_bottom_sheet.dart │ └── widget_keys.dart ├── l10n │ ├── app_localizations.dart │ ├── app_localizations_bg.dart │ ├── app_localizations_da.dart │ ├── app_localizations_de.dart │ ├── app_localizations_en.dart │ ├── app_localizations_es.dart │ ├── app_localizations_fi.dart │ ├── app_localizations_fr.dart │ ├── app_localizations_hu.dart │ ├── app_localizations_it.dart │ ├── app_localizations_nb.dart │ ├── app_localizations_nl.dart │ ├── app_localizations_pl.dart │ ├── app_localizations_pt.dart │ ├── app_localizations_ro.dart │ ├── app_localizations_ru.dart │ ├── app_localizations_sl.dart │ ├── app_localizations_ta.dart │ ├── app_localizations_tr.dart │ ├── bccm_bg.arb │ ├── bccm_da.arb │ ├── bccm_de.arb │ ├── bccm_en.arb │ ├── bccm_es.arb │ ├── bccm_fi.arb │ ├── bccm_fr.arb │ ├── bccm_hu.arb │ ├── bccm_it.arb │ ├── bccm_nb.arb │ ├── bccm_nl.arb │ ├── bccm_pl.arb │ ├── bccm_pt.arb │ ├── bccm_ro.arb │ ├── bccm_ru.arb │ ├── bccm_sl.arb │ ├── bccm_ta.arb │ └── bccm_tr.arb ├── main.dart ├── main_dev.dart ├── main_prod.dart ├── models │ ├── breakpoints.dart │ ├── episode_thumbnail_data.dart │ ├── episode_thumbnail_data.freezed.dart │ ├── explore_category.dart │ ├── feature_flags.dart │ ├── feature_flags.freezed.dart │ ├── feature_flags.g.dart │ ├── offline │ │ ├── download_additional_data.dart │ │ └── download_quality.dart │ ├── pagination_status.dart │ ├── survey.dart │ ├── survey.freezed.dart │ └── survey.g.dart ├── providers │ ├── analytics.dart │ ├── auth.dart │ ├── availability.dart │ ├── downloads.dart │ ├── feature_flags.dart │ ├── graphql.dart │ ├── lesson_progress_provider.dart │ ├── me_provider.dart │ ├── notifications.dart │ ├── performance_class_provider.dart │ ├── playback_service.dart │ ├── settings.dart │ ├── settings.freezed.dart │ ├── surveys.dart │ ├── tabs.dart │ └── unleash.dart ├── router │ ├── router.dart │ └── router.gr.dart ├── screens │ ├── audio │ │ ├── audio.dart │ │ └── audio_playlist.dart │ ├── contributors │ │ └── contributor.dart │ ├── episode.dart │ ├── init.dart │ ├── onboarding │ │ ├── email_verification.dart │ │ ├── onboarding.dart │ │ ├── signup.dart │ │ └── social_auth_buttons.dart │ ├── page.dart │ ├── player │ │ └── player.dart │ ├── settings │ │ ├── about.dart │ │ ├── account_deletion.dart │ │ ├── app_language.dart │ │ ├── audio_language.dart │ │ ├── contact.dart │ │ ├── contact_public.dart │ │ ├── device_info.dart │ │ ├── extra_usergroups.dart │ │ ├── faq.dart │ │ ├── privacy_policy.dart │ │ ├── settings.dart │ │ ├── subtitle_language.dart │ │ ├── terms_of_use.dart │ │ └── video_quality.dart │ ├── shorts │ │ ├── short.dart │ │ └── shorts.dart │ ├── show │ │ └── show.dart │ ├── study │ │ ├── achievement_group.dart │ │ ├── achievements.dart │ │ └── study.dart │ ├── tabs │ │ ├── home.dart │ │ ├── profile.dart │ │ ├── search.dart │ │ └── tabs_root.dart │ └── w │ │ └── w.dart └── theme │ ├── bccm_gradients.dart │ └── design_system │ └── bccmedia │ ├── buttons.dart │ ├── colors.dart │ ├── decorations.dart │ ├── design_system.dart │ └── text_styles.dart ├── pubspec.lock ├── pubspec.yaml ├── scripts └── check_analytics.sh ├── submodules └── build │ └── .last_build_id ├── test ├── achievement_dialog_test.dart ├── auth │ ├── signup_test.dart │ └── signup_year_picker_test.dart ├── collapsible_markdown_test.dart └── utils │ └── basic_init.dart ├── web-lib ├── .gitignore ├── index.html ├── package.json ├── pnpm-lock.yaml ├── src │ ├── main.ts │ └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts └── web ├── bccm-video-player ├── bccm-video-player.mjs ├── bccm-video-player.umd.js └── style.css ├── favicon.png ├── firebase-messaging-sw.js ├── icons ├── Icon-192.png ├── Icon-512.png ├── Icon-maskable-192.png └── Icon-maskable-512.png ├── index.html ├── lib └── generated │ ├── bccm-app-web-lib.css │ └── bccm-app-web-lib.js ├── manifest.json └── splash ├── img ├── dark-1x.png ├── dark-2x.png ├── dark-3x.png ├── dark-4x.png ├── light-1x.png ├── light-2x.png ├── light-3x.png └── light-4x.png ├── splash.js └── style.css /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.dart] 4 | max_line_length = 150 5 | 6 | [*.kt] 7 | max_line_length = 150 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | web/lib/generated/* linguist-generated=true -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | ## About the changes 14 | 15 | 21 | ### Important files 22 | 23 | 27 | ## Discussion points 28 | 29 | -------------------------------------------------------------------------------- /.github/workflows/build-and-deploy-documentations.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy to The Documentation Site 2 | 3 | on: 4 | # Runs on pushes targeting the default branch 5 | push: 6 | branches: ["master","main"] 7 | paths: 8 | - docs/** 9 | 10 | # Allows you to run this workflow manually from the Actions tab 11 | workflow_dispatch: 12 | 13 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 14 | permissions: 15 | contents: read 16 | id-token: write 17 | 18 | # Allow one concurrent deployment 19 | concurrency: 20 | group: "pages" 21 | cancel-in-progress: true 22 | 23 | jobs: 24 | build: 25 | runs-on: ubuntu-latest 26 | steps: 27 | - name: Build documentation site and uploads it to Azure storage 28 | uses: bcc-code/bcc-documentation-base@v2 29 | with: 30 | title: BrunstadTV App 31 | description: BrunstadTV app documentation 32 | authentication: 'portal' 33 | -------------------------------------------------------------------------------- /.github/workflows/phrase-translations-pr.yml: -------------------------------------------------------------------------------- 1 | name: Phrase Translations 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'phrase-translations' 7 | 8 | jobs: 9 | create-pr: 10 | if: github.event_name == 'push' 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout repository 14 | uses: actions/checkout@v4 15 | with: 16 | ref: master 17 | fetch-depth: 0 18 | 19 | - name: Reset master branch 20 | run: | 21 | git fetch origin phrase-translations:phrase-translations 22 | git reset --hard phrase-translations 23 | 24 | - name: Create Pull Request 25 | uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e 26 | with: 27 | title: 'New Phrase Updates' 28 | body: 'Update phrase translations' 29 | branch: 'phrase-translations' 30 | commit-message: 'Update phrase translations' 31 | delete-branch: true 32 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external_projects/bccm_player"] 2 | path = submodules/bccm_player 3 | url = https://github.com/bcc-code/bccm-player.git 4 | branch = main 5 | [submodule "submodules/bccm_flutter"] 6 | path = submodules/bccm_flutter 7 | url = https://github.com/bcc-code/bccm-flutter 8 | branch = main -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.maestro/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /.maestro/ci.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -x 4 | 5 | #install maestro 6 | export MAESTRO_VERSION=1.39.7; curl -Ls "https://get.maestro.mobile.dev" | bash 7 | export PATH="$PATH":"$HOME/.maestro/bin" 8 | 9 | #install devicecloud cli 10 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash 11 | export NVM_DIR="$HOME/.nvm" 12 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" 13 | nvm install 22 14 | npm install -g @devicecloud.dev/dcd 15 | 16 | #run maestro e2e tests 17 | envsubst < flows/scripts/.env.js.template > flows/scripts/.env.js 18 | flutter doctor -v 19 | 20 | # build the app for the simulator 21 | make ios-build 22 | 23 | dcd cloud --apiKey $MAESTRO_API_KEY -e PLATFORM=ios --exclude-tags=no-cloud ../build/ios/iphonesimulator/Runner.app flows/ || exit 1 24 | exit 0 -------------------------------------------------------------------------------- /.maestro/flows/1_play-shorts.yml: -------------------------------------------------------------------------------- 1 | # flow.yaml 2 | 3 | appId: tv.brunstad.app 4 | --- 5 | - runScript: scripts/.env.js 6 | - runFlow: subflows/init.yml 7 | - runFlow: subflows/login.yml 8 | - tapOn: Shorts.* 9 | - assertVisible: .*Playing..* 10 | - assertNotVisible: .*Error.* 11 | - openLink: "https://app.bcc.media/shorts/ec5120e8-f4de-4002-9e1e-645f7e324117" # A very short short, available to usergroup "automated-test-accounts". 12 | - assertVisible: .*Playing..* 13 | - assertNotVisible: .*Error.* 14 | -------------------------------------------------------------------------------- /.maestro/flows/2_play-episode.yml: -------------------------------------------------------------------------------- 1 | # flow.yaml 2 | 3 | appId: tv.brunstad.app 4 | --- 5 | - runScript: scripts/.env.js 6 | - runFlow: subflows/init.yml 7 | - launchApp: tv.brunstad.app 8 | - runFlow: 9 | when: 10 | visible: Sign in 11 | file: subflows/login.yml 12 | - openLink: "tv.brunstad.app:///episode/769" 13 | - tapOn: 14 | text: Open 15 | optional: true 16 | - assertVisible: .*Bible.* 17 | - tapOn: 18 | point: "50%,20%" 19 | - tapOn: Profile.* 20 | - assertVisible: .*Bible.* 21 | - assertVisible: Pause 22 | -------------------------------------------------------------------------------- /.maestro/flows/5_notifications.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | tags: 3 | - no-cloud 4 | --- 5 | - runScript: scripts/.env.js 6 | - runFlow: subflows/init.yml 7 | # Login 8 | - stopApp: tv.brunstad.app 9 | - runFlow: subflows/login.yml 10 | # deep_link_donation 11 | - runFlow: subflows/home.yml 12 | - runFlow: 13 | file: subflows/notification.yml 14 | env: 15 | CONTAINING: deep_link_donation 16 | - assertVisible: 17 | id: "TabBarItemTitle" 18 | - assertVisible: "Email.*" 19 | # deep_link_shorts 20 | - runFlow: subflows/home.yml 21 | - runFlow: 22 | file: subflows/notification.yml 23 | env: 24 | CONTAINING: deep_link_shorts 25 | # deep_link_episode 26 | - runFlow: subflows/home.yml 27 | - runFlow: 28 | file: subflows/notification.yml 29 | env: 30 | CONTAINING: deep_link_episode 31 | - assertVisible: .*Joseph.* 32 | -------------------------------------------------------------------------------- /.maestro/flows/6_notifications-stopped.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | tags: 3 | - no-cloud 4 | --- 5 | - runScript: scripts/.env.js 6 | - runFlow: subflows/init.yml 7 | # Login 8 | - stopApp: tv.brunstad.app 9 | - runFlow: subflows/login.yml 10 | # deep_link_donation 11 | - stopApp: tv.brunstad.app 12 | - runFlow: 13 | file: subflows/notification.yml 14 | env: 15 | CONTAINING: deep_link_donation 16 | - assertVisible: 17 | id: "TabBarItemTitle" 18 | - assertVisible: "Email.*" 19 | # deep_link_shorts 20 | - stopApp: tv.brunstad.app 21 | - runFlow: 22 | file: subflows/notification.yml 23 | env: 24 | CONTAINING: deep_link_shorts 25 | # deep_link_episode 26 | - stopApp: tv.brunstad.app 27 | - runFlow: 28 | file: subflows/notification.yml 29 | env: 30 | CONTAINING: deep_link_episode 31 | - assertVisible: .*Joseph.* 32 | -------------------------------------------------------------------------------- /.maestro/flows/scripts/.env.js.template: -------------------------------------------------------------------------------- 1 | output.env = { 2 | LOGIN_EMAIL: '$LOGIN_EMAIL', 3 | LOGIN_PASSWORD: '$LOGIN_PASSWORD' 4 | } -------------------------------------------------------------------------------- /.maestro/flows/scripts/init.js: -------------------------------------------------------------------------------- 1 | output.browserAppId = PLATFORM == 'ios' ? 'com.apple.mobilesafari' : 'com.android.chrome'; -------------------------------------------------------------------------------- /.maestro/flows/subflows/home.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - runFlow: 4 | when: 5 | true: ${PLATFORM == 'ios'} 6 | file: home/home_ios.yml 7 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/home/home_ios.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - pressKey: home 4 | # Had issues with a race condition after clicking home and then doing deep linking quickly after. 5 | # So this assert is just a hack to make maestro wait a few seconds. 6 | - assertVisible: 7 | text: Some text that doesnt exist 8 | optional: true 9 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/init.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - runScript: ../scripts/init.js 4 | - launchApp: 5 | permissions: 6 | all: allow 7 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/login.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - runFlow: 4 | when: 5 | true: ${PLATFORM == 'ios'} 6 | file: login/login_ios.yml 7 | 8 | - runFlow: 9 | when: 10 | true: ${PLATFORM == 'android'} 11 | file: login/login_android.yml 12 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/login/login_ios.yml: -------------------------------------------------------------------------------- 1 | # flow.yaml 2 | 3 | appId: tv.brunstad.app 4 | --- 5 | - launchApp: 6 | appId: com.apple.mobilesafari 7 | clearState: false # we cannot clear state for Safari, as that causes Maestro to reinstall the app (which doesn't work for Safari) 8 | clearKeychain: true 9 | stopApp: true 10 | - launchApp: tv.brunstad.app 11 | - tapOn: 12 | text: Allow 13 | optional: true 14 | - tapOn: "Sign in" 15 | - tapOn: 16 | text: Continue 17 | optional: true 18 | - tapOn: 19 | text: Email 20 | optional: true 21 | - inputText: ${output.env.LOGIN_EMAIL} 22 | - pressKey: Enter 23 | - inputText: ${output.env.LOGIN_PASSWORD} 24 | - pressKey: Enter 25 | - tapOn: 26 | text: Accept 27 | optional: true 28 | - assertVisible: "Home" 29 | - assertVisible: "Search" 30 | - assertVisible: "Signed in" 31 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/notification.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - runFlow: 4 | when: 5 | true: ${PLATFORM == 'ios'} 6 | file: notification/notification_ios.yml 7 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/notification/notification_ios.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - swipe: 4 | start: 50%, 1% 5 | end: 50%, 90% 6 | - tapOn: 7 | id: "NotificationShortLookView" 8 | - swipe: 9 | from: 10 | text: .*${CONTAINING}.* 11 | direction: RIGHT # To (50% of width, 10% of height) 12 | - tapOn: 13 | id: "swipe-action-button-identifier" 14 | optional: true 15 | -------------------------------------------------------------------------------- /.maestro/flows/subflows/playback/ios_language.yml: -------------------------------------------------------------------------------- 1 | appId: tv.brunstad.app 2 | --- 3 | - tapOn: 4 | id: "More Controls" 5 | - tapOn: "Languages" 6 | - assertVisible: 7 | text: ".*German.*" 8 | #selected: true 9 | -------------------------------------------------------------------------------- /.maestro/notifications/ios/deep_link_donation.apns: -------------------------------------------------------------------------------- 1 | { 2 | "aps": { 3 | "alert": "deep_link_donation", 4 | "sound": "bingbong.aiff" 5 | }, 6 | "action": "deep_link", 7 | "deep_link": "/r/donation", 8 | "Simulator Target Bundle": "tv.brunstad.app", 9 | "type": "abc", 10 | "id": 1, 11 | "gcm.message_id": "20021" 12 | } -------------------------------------------------------------------------------- /.maestro/notifications/ios/deep_link_episode.apns: -------------------------------------------------------------------------------- 1 | { 2 | "aps": { 3 | "alert": "deep_link_episode", 4 | "sound": "bingbong.aiff" 5 | }, 6 | "action": "deep_link", 7 | "deep_link": "/episode/769", 8 | "Simulator Target Bundle": "tv.brunstad.app", 9 | "type": "abc", 10 | "id": 1, 11 | "gcm.message_id": "20021" 12 | } -------------------------------------------------------------------------------- /.maestro/notifications/ios/deep_link_shorts.apns: -------------------------------------------------------------------------------- 1 | { 2 | "aps": { 3 | "alert": "deep_link_shorts", 4 | "sound": "bingbong.aiff" 5 | }, 6 | "action": "deep_link", 7 | "deep_link": "/shorts", 8 | "Simulator Target Bundle": "tv.brunstad.app", 9 | "type": "abc", 10 | "id": 1, 11 | "gcm.message_id": "20021" 12 | } -------------------------------------------------------------------------------- /.maestro/notifications/push_ios.sh: -------------------------------------------------------------------------------- 1 | SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) 2 | for file in $SCRIPT_DIR/ios/* 3 | do 4 | xcrun simctl push booted tv.brunstad.app "$file" 5 | done -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled. 5 | 6 | version: 7 | revision: cd41fdd495f6944ecd3506c21e94c6567b073278 8 | channel: stable 9 | 10 | project_type: app 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: cd41fdd495f6944ecd3506c21e94c6567b073278 17 | base_revision: cd41fdd495f6944ecd3506c21e94c6567b073278 18 | - platform: android 19 | create_revision: cd41fdd495f6944ecd3506c21e94c6567b073278 20 | base_revision: cd41fdd495f6944ecd3506c21e94c6567b073278 21 | 22 | # User provided section 23 | 24 | # List of Local paths (relative to this file) that should be 25 | # ignored by the migrate tool. 26 | # 27 | # Files that are not part of the templates will be ignored by default. 28 | unmanaged_files: 29 | - 'lib/main.dart' 30 | - 'ios/Runner.xcodeproj/project.pbxproj' 31 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "dart.lineLength": 150, 3 | "[dart]": { 4 | "editor.rulers": [150] 5 | }, 6 | "git.autoRepositoryDetection": "subFolders", 7 | "git.detectSubmodules": true, 8 | "files.associations": { 9 | ".env.dart": "dart", 10 | ".env.dart.template": "dart" 11 | }, 12 | "editor.formatOnSave": true, 13 | "graphql-config.load.rootDir": "submodules/bccm_flutter/bccm_core" 14 | } 15 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontwarn com.sun.jna.FunctionMapper 2 | -dontwarn com.sun.jna.JNIEnv 3 | -dontwarn com.sun.jna.Library 4 | -dontwarn com.sun.jna.Native 5 | -dontwarn com.sun.jna.Platform 6 | -dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings 7 | -dontwarn java.lang.instrument.ClassDefinition 8 | -dontwarn java.lang.instrument.UnmodifiableClassException 9 | -dontwarn java.lang.management.ManagementFactory 10 | -dontwarn java.lang.management.RuntimeMXBean 11 | -dontwarn org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher -------------------------------------------------------------------------------- /android/app/src/androidTest/java/tv/brunstad/app/MainActivityTest.java: -------------------------------------------------------------------------------- 1 | package tv.brunstad.app; 2 | import org.junit.Rule; 3 | import org.junit.runner.RunWith; 4 | import pl.leancode.patrol.PatrolTestRule; 5 | import pl.leancode.patrol.PatrolTestRunner; 6 | 7 | @RunWith(PatrolTestRunner.class) 8 | public class MainActivityTest { 9 | @Rule 10 | public PatrolTestRule rule = new PatrolTestRule<>(MainActivity.class); 11 | } -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/dev/res/values/string.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | login.bcc.no 4 | tv.brunstad.app.dev 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/anim/dev.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/main/res/drawable/icon_fullscreen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_fullscreen_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/main/res/drawable/icon_fullscreen_off.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/main/res/drawable/icon_pause.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/main/res/drawable/icon_settings.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/string.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/prod/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 14 | 17 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/drawable-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/drawable-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-anydpi-v26/ic_banner_adaptive_not_used.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xhdpi/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xhdpi/ic_banner.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xhdpi/ic_banner_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xhdpi/ic_banner_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xhdpi/ic_banner_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xhdpi/ic_banner_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxhdpi/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxhdpi/ic_banner.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxhdpi/ic_banner_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxhdpi/ic_banner_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxhdpi/ic_banner_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxhdpi/ic_banner_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxxhdpi/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxxhdpi/ic_banner.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxxhdpi/ic_banner_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxxhdpi/ic_banner_background.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxxhdpi/ic_banner_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxxhdpi/ic_banner_foreground.png -------------------------------------------------------------------------------- /android/app/src/prod/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/android/app/src/prod/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/prod/res/values/string.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | login.bcc.no 4 | tv.brunstad.app 5 | -------------------------------------------------------------------------------- /android/app/src/prod/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #0D1623 4 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '2.1.0' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:8.10.0' 10 | // START: FlutterFire Configuration 11 | classpath 'com.google.gms:google-services:4.3.14' 12 | classpath 'com.google.firebase:perf-plugin:1.4.1' 13 | // END: FlutterFire Configuration 14 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | mavenCentral() 22 | } 23 | } 24 | 25 | rootProject.buildDir = '../build' 26 | subprojects { 27 | project.buildDir = "${rootProject.buildDir}/${project.name}" 28 | } 29 | subprojects { 30 | project.evaluationDependsOn(':app') 31 | } 32 | 33 | tasks.register('clean', Delete) { 34 | delete rootProject.buildDir 35 | } -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx3000M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | kotlin.code.style=official -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon May 26 12:18:42 CEST 2025 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | }() 9 | 10 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") 11 | 12 | repositories { 13 | google() 14 | mavenCentral() 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 21 | id "com.android.application" version "8.10.0" apply false 22 | id "org.jetbrains.kotlin.android" version "2.1.0" apply false 23 | } 24 | 25 | include ":app" -------------------------------------------------------------------------------- /app.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | }, 6 | { 7 | "path": "submodules/bccm_player" 8 | }, 9 | { 10 | "path": "submodules/bccm_flutter" 11 | } 12 | ], 13 | "settings": { 14 | "git.autoRepositoryDetection": "subFolders", 15 | "files.associations": { 16 | ".env.dart": "dart", 17 | ".env.dart.template": "dart" 18 | }, 19 | "graphql-config.load.rootDir": "submodules/bccm_flutter/bccm_core", 20 | "dart.lineLength": 150, 21 | "[dart]": { 22 | "editor.rulers": [150] 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /assets/flavors/prod/1.5x/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/1.5x/logo.png -------------------------------------------------------------------------------- /assets/flavors/prod/2.0x/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/2.0x/logo.png -------------------------------------------------------------------------------- /assets/flavors/prod/3.0x/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/3.0x/logo.png -------------------------------------------------------------------------------- /assets/flavors/prod/4.0x/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/4.0x/logo.png -------------------------------------------------------------------------------- /assets/flavors/prod/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/ic_launcher.png -------------------------------------------------------------------------------- /assets/flavors/prod/ic_launcher_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/ic_launcher_bg.png -------------------------------------------------------------------------------- /assets/flavors/prod/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/logo.png -------------------------------------------------------------------------------- /assets/flavors/prod/logo_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/logo_bg.png -------------------------------------------------------------------------------- /assets/flavors/prod/logo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/logo_icon.png -------------------------------------------------------------------------------- /assets/flavors/prod/onboarding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/flavors/prod/onboarding.png -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Black.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-BlackItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-ExtraBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-ExtraLight.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-LightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-MediumItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-SemiBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-Thin.ttf -------------------------------------------------------------------------------- /assets/fonts/Barlow/Barlow-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/fonts/Barlow/Barlow-ThinItalic.ttf -------------------------------------------------------------------------------- /assets/icons/1.5x/Calendar_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Calendar_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Calendar_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Calendar_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Cancel_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Cancel_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Close.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionEvents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionEvents.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionFilms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionFilms.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionKids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionKids.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionMusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionMusic.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionSeries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionSeries.png -------------------------------------------------------------------------------- /assets/icons/1.5x/CollectionWorthWatching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/CollectionWorthWatching.png -------------------------------------------------------------------------------- /assets/icons/1.5x/ExploreCategorySort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/ExploreCategorySort.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Feed_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Feed_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Feed_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Feed_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Games_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Games_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Games_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Games_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Home_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Home_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Home_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Home_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Left.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Live_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Live_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Live_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Live_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Pause.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Play.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Playlists_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Playlists_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Playlists_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Playlists_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Poll_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Poll_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Poll_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Poll_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Profile.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Profile_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Profile_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Profile_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Profile_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Search_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Search_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Search_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Search_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Seen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Seen.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Shorts_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Shorts_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Shorts_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Shorts_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Testimony_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Testimony_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Testimony_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Testimony_Selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Theme_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Theme_Default.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Theme_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Theme_selected.png -------------------------------------------------------------------------------- /assets/icons/1.5x/Wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/1.5x/Wait.png -------------------------------------------------------------------------------- /assets/icons/2x/Calendar_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Calendar_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Calendar_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Calendar_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Cancel_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Cancel_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Close.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionEvents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionEvents.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionFilms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionFilms.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionKids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionKids.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionMusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionMusic.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionSeries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionSeries.png -------------------------------------------------------------------------------- /assets/icons/2x/CollectionWorthWatching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/CollectionWorthWatching.png -------------------------------------------------------------------------------- /assets/icons/2x/ExploreCategorySort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/ExploreCategorySort.png -------------------------------------------------------------------------------- /assets/icons/2x/Feed_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Feed_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Feed_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Feed_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Games_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Games_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Games_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Games_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Home_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Home_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Home_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Home_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Left.png -------------------------------------------------------------------------------- /assets/icons/2x/Live_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Live_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Live_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Live_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Pause.png -------------------------------------------------------------------------------- /assets/icons/2x/Play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Play.png -------------------------------------------------------------------------------- /assets/icons/2x/Playlists_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Playlists_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Playlists_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Playlists_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Poll_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Poll_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Poll_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Poll_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Profile.png -------------------------------------------------------------------------------- /assets/icons/2x/Profile_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Profile_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Profile_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Profile_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Search_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Search_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Search_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Search_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Seen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Seen.png -------------------------------------------------------------------------------- /assets/icons/2x/Shorts_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Shorts_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Shorts_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Shorts_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Testimony_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Testimony_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Testimony_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Testimony_Selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Theme_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Theme_Default.png -------------------------------------------------------------------------------- /assets/icons/2x/Theme_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Theme_selected.png -------------------------------------------------------------------------------- /assets/icons/2x/Wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/2x/Wait.png -------------------------------------------------------------------------------- /assets/icons/3x/Calendar_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Calendar_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Calendar_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Calendar_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Cancel_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Cancel_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Close.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionEvents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionEvents.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionFilms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionFilms.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionKids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionKids.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionMusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionMusic.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionSeries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionSeries.png -------------------------------------------------------------------------------- /assets/icons/3x/CollectionWorthWatching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/CollectionWorthWatching.png -------------------------------------------------------------------------------- /assets/icons/3x/ExploreCategorySort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/ExploreCategorySort.png -------------------------------------------------------------------------------- /assets/icons/3x/Feed_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Feed_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Feed_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Feed_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Games_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Games_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Games_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Games_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Home_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Home_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Home_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Home_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Left.png -------------------------------------------------------------------------------- /assets/icons/3x/Live_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Live_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Live_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Live_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Pause.png -------------------------------------------------------------------------------- /assets/icons/3x/Play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Play.png -------------------------------------------------------------------------------- /assets/icons/3x/Playlists_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Playlists_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Playlists_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Playlists_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Poll_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Poll_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Poll_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Poll_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Profile.png -------------------------------------------------------------------------------- /assets/icons/3x/Profile_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Profile_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Profile_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Profile_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Search_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Search_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Search_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Search_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Seen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Seen.png -------------------------------------------------------------------------------- /assets/icons/3x/Shorts_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Shorts_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Shorts_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Shorts_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Testimony_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Testimony_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Testimony_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Testimony_Selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Theme_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Theme_Default.png -------------------------------------------------------------------------------- /assets/icons/3x/Theme_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Theme_selected.png -------------------------------------------------------------------------------- /assets/icons/3x/Wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/3x/Wait.png -------------------------------------------------------------------------------- /assets/icons/4x/Calendar_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Calendar_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Calendar_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Calendar_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Cancel_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Cancel_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Close.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionEvents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionEvents.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionFilms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionFilms.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionKids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionKids.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionMusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionMusic.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionSeries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionSeries.png -------------------------------------------------------------------------------- /assets/icons/4x/CollectionWorthWatching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/CollectionWorthWatching.png -------------------------------------------------------------------------------- /assets/icons/4x/ExploreCategorySort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/ExploreCategorySort.png -------------------------------------------------------------------------------- /assets/icons/4x/Feed_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Feed_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Feed_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Feed_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Games_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Games_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Games_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Games_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Home_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Home_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Home_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Home_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Left.png -------------------------------------------------------------------------------- /assets/icons/4x/Live_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Live_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Live_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Live_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Pause.png -------------------------------------------------------------------------------- /assets/icons/4x/Play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Play.png -------------------------------------------------------------------------------- /assets/icons/4x/Playlists_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Playlists_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Playlists_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Playlists_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Poll_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Poll_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Poll_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Poll_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Profile.png -------------------------------------------------------------------------------- /assets/icons/4x/Profile_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Profile_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Profile_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Profile_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Search_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Search_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Search_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Search_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Seen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Seen.png -------------------------------------------------------------------------------- /assets/icons/4x/Shorts_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Shorts_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Shorts_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Shorts_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Testimony_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Testimony_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Testimony_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Testimony_Selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Theme_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Theme_Default.png -------------------------------------------------------------------------------- /assets/icons/4x/Theme_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Theme_selected.png -------------------------------------------------------------------------------- /assets/icons/4x/Wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/4x/Wait.png -------------------------------------------------------------------------------- /assets/icons/Audio_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Audio_Default.png -------------------------------------------------------------------------------- /assets/icons/Calendar_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Calendar_Default.png -------------------------------------------------------------------------------- /assets/icons/Calendar_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Calendar_Selected.png -------------------------------------------------------------------------------- /assets/icons/Cancel_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Cancel_Default.png -------------------------------------------------------------------------------- /assets/icons/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Close.png -------------------------------------------------------------------------------- /assets/icons/CollectionEvents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionEvents.png -------------------------------------------------------------------------------- /assets/icons/CollectionFilms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionFilms.png -------------------------------------------------------------------------------- /assets/icons/CollectionKids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionKids.png -------------------------------------------------------------------------------- /assets/icons/CollectionMusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionMusic.png -------------------------------------------------------------------------------- /assets/icons/CollectionSeries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionSeries.png -------------------------------------------------------------------------------- /assets/icons/CollectionWorthWatching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/CollectionWorthWatching.png -------------------------------------------------------------------------------- /assets/icons/ExploreCategorySort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/ExploreCategorySort.png -------------------------------------------------------------------------------- /assets/icons/Feed_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Feed_Default.png -------------------------------------------------------------------------------- /assets/icons/Feed_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Feed_Selected.png -------------------------------------------------------------------------------- /assets/icons/Games_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Games_Default.png -------------------------------------------------------------------------------- /assets/icons/Games_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Games_Selected.png -------------------------------------------------------------------------------- /assets/icons/Home_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Home_Default.png -------------------------------------------------------------------------------- /assets/icons/Home_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Home_Selected.png -------------------------------------------------------------------------------- /assets/icons/Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Left.png -------------------------------------------------------------------------------- /assets/icons/Live_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Live_Default.png -------------------------------------------------------------------------------- /assets/icons/Live_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Live_Selected.png -------------------------------------------------------------------------------- /assets/icons/My_List_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/My_List_Default.png -------------------------------------------------------------------------------- /assets/icons/My_List_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/My_List_Selected.png -------------------------------------------------------------------------------- /assets/icons/Pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Pause.png -------------------------------------------------------------------------------- /assets/icons/Play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Play.png -------------------------------------------------------------------------------- /assets/icons/Playlists_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Playlists_Default.png -------------------------------------------------------------------------------- /assets/icons/Playlists_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Playlists_Selected.png -------------------------------------------------------------------------------- /assets/icons/Poll_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Poll_Default.png -------------------------------------------------------------------------------- /assets/icons/Poll_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Poll_Selected.png -------------------------------------------------------------------------------- /assets/icons/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Profile.png -------------------------------------------------------------------------------- /assets/icons/Profile_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Profile_Default.png -------------------------------------------------------------------------------- /assets/icons/Profile_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Profile_Selected.png -------------------------------------------------------------------------------- /assets/icons/Search_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Search_Default.png -------------------------------------------------------------------------------- /assets/icons/Search_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Search_Selected.png -------------------------------------------------------------------------------- /assets/icons/Seen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Seen.png -------------------------------------------------------------------------------- /assets/icons/Shorts_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Shorts_Default.png -------------------------------------------------------------------------------- /assets/icons/Shorts_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Shorts_Selected.png -------------------------------------------------------------------------------- /assets/icons/Testimony_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Testimony_Default.png -------------------------------------------------------------------------------- /assets/icons/Testimony_Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Testimony_Selected.png -------------------------------------------------------------------------------- /assets/icons/Theme_Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Theme_Default.png -------------------------------------------------------------------------------- /assets/icons/Theme_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Theme_selected.png -------------------------------------------------------------------------------- /assets/icons/Wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/Wait.png -------------------------------------------------------------------------------- /assets/icons/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/icons/app_icon.png -------------------------------------------------------------------------------- /assets/icons/avatar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /assets/icons/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/icons/play_alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/background.svg: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/chromecast_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/assets/images/chromecast_bg.png -------------------------------------------------------------------------------- /assets/images/line.svg: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /devtools_options.yaml: -------------------------------------------------------------------------------- 1 | description: This file stores settings for Dart & Flutter DevTools. 2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states 3 | extensions: 4 | -------------------------------------------------------------------------------- /docs/firebase_integration.md: -------------------------------------------------------------------------------- 1 | ## Flutterfire init new app 2 | 3 | ``` 4 | flutterfire configure -i tv.brunstad.app -a tv.brunstad.app -o lib/env/prod/firebase_options.dart --project=btv-platform-prod-2 5 | ``` 6 | 7 | ## Setting up push 8 | 9 | Firebase needs some keys. 10 | -------------------------------------------------------------------------------- /firebase/dev/firebase_app_id_file.json: -------------------------------------------------------------------------------- 1 | { 2 | "file_generated_by": "FlutterFire CLI", 3 | "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory", 4 | "GOOGLE_APP_ID": "1:16643555326:ios:b69187d4529a7e1e4f8aaf", 5 | "FIREBASE_PROJECT_ID": "btv-platform-dev-2", 6 | "GCM_SENDER_ID": "16643555326" 7 | } -------------------------------------------------------------------------------- /firebase/prod/firebase_app_id_file.json: -------------------------------------------------------------------------------- 1 | { 2 | "file_generated_by": "FlutterFire CLI", 3 | "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory", 4 | "GOOGLE_APP_ID": "1:617519323732:ios:8fd75bf6b4cd0f6d89ebc1", 5 | "FIREBASE_PROJECT_ID": "btv-platform-prod-2", 6 | "GCM_SENDER_ID": "617519323732" 7 | } -------------------------------------------------------------------------------- /flutter_launcher_icons-prod.yaml: -------------------------------------------------------------------------------- 1 | flutter_launcher_icons: 2 | android: true 3 | ios: true 4 | remove_alpha_ios: true 5 | adaptive_icon_background: "assets/flavors/prod/ic_launcher_bg.png" 6 | adaptive_icon_foreground: "assets/flavors/prod/ic_launcher.png" 7 | image_path: "assets/flavors/prod/ic_launcher.png" 8 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | build/ -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 15.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 3 | #include "Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 3 | #include "Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-50x50@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-50x50@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-57x57@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-57x57@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-72x72@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-72x72@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon-prod.appiconset/AppIcon-prod-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackgroundProd.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "background.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackgroundProd.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/LaunchBackgroundProd.imageset/background.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "scale" : "3x" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImageProd.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LaunchImage.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LaunchImage@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LaunchImage@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/Assets.xcassets/LaunchImageProd.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Entitlements/Entitlements-bccm.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.associated-domains 8 | 9 | applinks:brunstad.tv 10 | applinks:app.bcc.media 11 | 12 | 13 | -------------------------------------------------------------------------------- /ios/Runner/Entitlements/Entitlements-kids.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.associated-domains 8 | 9 | applinks:app.biblekids.io 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | #import "SchemePreActions.h" 3 | -------------------------------------------------------------------------------- /ios/Runner/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/ios/Runner/logo.png -------------------------------------------------------------------------------- /ios/RunnerUITests/RunnerUITests.m: -------------------------------------------------------------------------------- 1 | @import XCTest; 2 | @import patrol; 3 | 4 | PATROL_INTEGRATION_TEST_IOS_RUNNER(RunnerUITests) 5 | -------------------------------------------------------------------------------- /kids/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .build/ 9 | .buildlog/ 10 | .history 11 | .svn/ 12 | .swiftpm/ 13 | migrate_working_dir/ 14 | 15 | # IntelliJ related 16 | *.iml 17 | *.ipr 18 | *.iws 19 | .idea/ 20 | 21 | # The .vscode folder contains launch configuration and tasks you configure in 22 | # VS Code which you may wish to be included in version control, so this line 23 | # is commented out by default. 24 | #.vscode/ 25 | 26 | # Flutter/Dart/Pub related 27 | **/doc/api/ 28 | **/ios/Flutter/.last_build_id 29 | .dart_tool/ 30 | .flutter-plugins 31 | .flutter-plugins-dependencies 32 | .packages 33 | .pub-cache/ 34 | .pub/ 35 | /build/ 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Android Studio will place build artifacts here 44 | /android/app/debug 45 | /android/app/profile 46 | /android/app/release 47 | -------------------------------------------------------------------------------- /kids/.graphqlrc.yml: -------------------------------------------------------------------------------- 1 | schema: "../lib/graphql/schema/*.graphql" 2 | documents: "lib/graphql/queries/*.graphql" 3 | -------------------------------------------------------------------------------- /kids/README.md: -------------------------------------------------------------------------------- 1 | # kids 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) 13 | 14 | For help getting started with Flutter development, view the 15 | [online documentation](https://docs.flutter.dev/), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /kids/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /kids/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontwarn com.sun.jna.FunctionMapper 2 | -dontwarn com.sun.jna.JNIEnv 3 | -dontwarn com.sun.jna.Library 4 | -dontwarn com.sun.jna.Native 5 | -dontwarn com.sun.jna.Platform 6 | -dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings 7 | -dontwarn java.lang.instrument.ClassDefinition 8 | -dontwarn java.lang.instrument.UnmodifiableClassException 9 | -dontwarn java.lang.management.ManagementFactory 10 | -dontwarn java.lang.management.RuntimeMXBean 11 | -dontwarn org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher -------------------------------------------------------------------------------- /kids/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /kids/android/app/src/main/kotlin/media/bcc/kids_app/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package media.bcc.kids 2 | 3 | import io.flutter.embedding.android.FlutterFragmentActivity 4 | 5 | class MainActivity : FlutterFragmentActivity() { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /kids/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /kids/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /kids/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /kids/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /kids/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /kids/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /kids/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /kids/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /kids/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '2.1.0' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:8.10.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | tasks.register("clean", Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /kids/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx6g 2 | 3 | android.useAndroidX=true 4 | android.enableJetifier=false 5 | android.nonTransitiveRClass=false 6 | android.nonFinalResIds=false 7 | 8 | kotlin.code.style=official -------------------------------------------------------------------------------- /kids/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon May 26 09:03:23 CEST 2025 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 5 | networkTimeout=10000 6 | validateDistributionUrl=true 7 | zipStoreBase=GRADLE_USER_HOME 8 | zipStorePath=wrapper/dists 9 | -------------------------------------------------------------------------------- /kids/android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | } 9 | settings.ext.flutterSdkPath = flutterSdkPath() 10 | 11 | includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") 12 | 13 | repositories { 14 | google() 15 | mavenCentral() 16 | gradlePluginPortal() 17 | } 18 | } 19 | 20 | plugins { 21 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 22 | id "com.android.application" version '8.10.0' apply false 23 | id "org.jetbrains.kotlin.android" version "2.1.0" apply false 24 | } 25 | 26 | include ":app" -------------------------------------------------------------------------------- /kids/assets/flavors/prod/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/logo.png -------------------------------------------------------------------------------- /kids/assets/flavors/prod/logo_anim.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/logo_anim.mp4 -------------------------------------------------------------------------------- /kids/assets/flavors/prod/logo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/logo_icon.png -------------------------------------------------------------------------------- /kids/assets/flavors/prod/logo_icon_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/logo_icon_square.png -------------------------------------------------------------------------------- /kids/assets/flavors/prod/logo_neg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/logo_neg.png -------------------------------------------------------------------------------- /kids/assets/flavors/prod/onboarding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/flavors/prod/onboarding.png -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Bold.otf -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Extralight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Extralight.otf -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Light.otf -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Medium.otf -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Regular.otf -------------------------------------------------------------------------------- /kids/assets/fonts/ClashDisplay/ClashDisplay-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/ClashDisplay/ClashDisplay-Semibold.otf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Black.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-BlackItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Bold.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-BoldItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-ExtraBold.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-ExtraLight.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Italic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Light.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-LightItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Medium.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-MediumItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-SemiBold.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-Thin.ttf -------------------------------------------------------------------------------- /kids/assets/fonts/NotoSans/NotoSans-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/fonts/NotoSans/NotoSans-ThinItalic.ttf -------------------------------------------------------------------------------- /kids/assets/sounds/button-1_push.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/sounds/button-1_push.wav -------------------------------------------------------------------------------- /kids/assets/sounds/button-1_release.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/assets/sounds/button-1_release.wav -------------------------------------------------------------------------------- /kids/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | graphql_codegen: 5 | options: 6 | assetsPath: lib/graphql/** 7 | clients: 8 | - graphql 9 | - graphql_flutter 10 | -------------------------------------------------------------------------------- /kids/devtools_options.yaml: -------------------------------------------------------------------------------- 1 | description: This file stores settings for Dart & Flutter DevTools. 2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states 3 | extensions: 4 | -------------------------------------------------------------------------------- /kids/firebase/default/firebase_app_id_file.json: -------------------------------------------------------------------------------- 1 | { 2 | "file_generated_by": "FlutterFire CLI", 3 | "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory", 4 | "GOOGLE_APP_ID": "1:617519323732:ios:66c2b6796bb6e59689ebc1", 5 | "FIREBASE_PROJECT_ID": "btv-platform-prod-2", 6 | "GCM_SENDER_ID": "617519323732" 7 | } -------------------------------------------------------------------------------- /kids/flutter_launcher_icons.yaml: -------------------------------------------------------------------------------- 1 | flutter_launcher_icons: 2 | android: true 3 | ios: true 4 | remove_alpha_ios: true 5 | image_path: "assets/flavors/prod/logo_icon.png" 6 | image_path_ios: "assets/flavors/prod/logo_icon_square.png" 7 | -------------------------------------------------------------------------------- /kids/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /kids/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 13.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /kids/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /kids/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /kids/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /kids/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import FirebaseCore 2 | import Flutter 3 | import UIKit 4 | 5 | @main 6 | @objc class AppDelegate: FlutterAppDelegate { 7 | override func application( 8 | _ application: UIApplication, 9 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 10 | ) -> Bool { 11 | FirebaseApp.configure() 12 | GeneratedPluginRegistrant.register(with: self) 13 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "background.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LaunchImage.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LaunchImage@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LaunchImage@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /kids/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /kids/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /kids/ios/Runner/Runner.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.associated-domains 8 | 9 | applinks:app.biblekids.io 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /kids/ios/Runner/firebase_app_id_file.json: -------------------------------------------------------------------------------- 1 | { 2 | "file_generated_by": "FlutterFire CLI", 3 | "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory", 4 | "GOOGLE_APP_ID": "1:617519323732:ios:66c2b6796bb6e59689ebc1", 5 | "FIREBASE_PROJECT_ID": "btv-platform-prod-2", 6 | "GCM_SENDER_ID": "617519323732" 7 | } -------------------------------------------------------------------------------- /kids/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /kids/lib/app_root_inner.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/bccm_core.dart'; 2 | import 'package:bccm_core/platform.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:hooks_riverpod/hooks_riverpod.dart'; 5 | import 'package:brunstadtv_app/components/misc/app_update_dialog.dart'; 6 | 7 | class AppRootInner extends HookConsumerWidget { 8 | const AppRootInner({super.key, required this.child}); 9 | 10 | final Widget child; 11 | 12 | @override 13 | Widget build(BuildContext context, WidgetRef ref) { 14 | ref.listen(appConfigProvider, (prev, next) { 15 | if (next == null) return; 16 | final packageInfo = ref.read(packageInfoProvider); 17 | if (isOldAppVersion(current: packageInfo.version, minimum: next.application.clientVersion)) { 18 | showDialog( 19 | context: context, 20 | builder: (context) => const AppUpdateDialog(), 21 | ); 22 | } 23 | }); 24 | return child; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /kids/lib/components/buttons/stack_close_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:bccm_core/design_system.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_svg/svg.dart'; 5 | import 'package:kids/helpers/svg_icons.dart'; 6 | import 'package:responsive_framework/responsive_framework.dart'; 7 | 8 | class StackCloseButton extends StatelessWidget { 9 | const StackCloseButton({ 10 | super.key, 11 | }); 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | final bp = ResponsiveBreakpoints.of(context); 16 | final design = DesignSystem.of(context); 17 | return Positioned( 18 | top: 0, 19 | left: 0, 20 | child: SafeArea( 21 | child: Padding( 22 | padding: EdgeInsets.all(bp.smallerThan(TABLET) ? 20 : 40), 23 | child: design.buttons.responsive( 24 | labelText: '', 25 | onPressed: () => context.router.maybePop(), 26 | image: SvgPicture.string(SvgIcons.close), 27 | ), 28 | ), 29 | ), 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /kids/lib/helpers/animation.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_animate/flutter_animate.dart'; 2 | 3 | extension AnimationLoop on Animate { 4 | Animate loop(int count, Animate Function(Animate a) builder) { 5 | var temp = this; 6 | for (var i = 0; i < count; i++) { 7 | temp = builder(temp); 8 | } 9 | return temp; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /kids/lib/providers/unleash.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/bccm_core.dart'; 2 | import 'package:bccm_core/platform.dart'; 3 | import 'package:brunstadtv_app/providers/settings.dart'; 4 | 5 | final unleashContextProviderOverride = unleashContextProvider.overrideWith((ref) async { 6 | final anonymousId = await ref.watch(analyticsProvider.select((value) => value.getAnonymousId())); 7 | return getStandardUnleashContext( 8 | userId: anonymousId, 9 | isBetaTester: ref.watch(settingsProvider.select((s) => s.isBetaTester)), 10 | appVersion: formatAppVersion(ref.watch(packageInfoProvider)), 11 | appBuildNumber: ref.watch(packageInfoProvider.select((pi) => pi.buildNumber)), 12 | appLanguage: ref.watch(settingsProvider.select((s) => s.appLanguage.languageCode)), 13 | ); 14 | }); 15 | -------------------------------------------------------------------------------- /kids/lib/screens/settings/contact.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/screens/settings/contact_public.dart' as original; 3 | 4 | @RoutePage() 5 | class ContactScreen extends original.ContactPublicScreen { 6 | const ContactScreen({super.key}); 7 | } 8 | -------------------------------------------------------------------------------- /kids/lib/screens/settings/device_info.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/screens/settings/device_info.dart' as original; 3 | 4 | @RoutePage() 5 | class DeviceInfoScreen extends original.DeviceInfoScreen { 6 | const DeviceInfoScreen({super.key}); 7 | } 8 | -------------------------------------------------------------------------------- /kids/lib/screens/settings/extra_usergroups.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/screens/settings/extra_usergroups.dart' as original; 3 | 4 | @RoutePage() 5 | class ExtraUsergroupsScreen extends original.ExtraUsergroupsScreen { 6 | const ExtraUsergroupsScreen({super.key}); 7 | } 8 | -------------------------------------------------------------------------------- /kids/lib/screens/settings/privacy_policy.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/screens/settings/privacy_policy.dart' as original; 3 | 4 | @RoutePage() 5 | class PrivacyPolicyScreen extends original.PrivacyPolicyScreen { 6 | const PrivacyPolicyScreen({super.key}); 7 | } 8 | -------------------------------------------------------------------------------- /kids/lib/screens/settings/terms_of_use.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/screens/settings/terms_of_use.dart' as original; 3 | 4 | @RoutePage() 5 | class TermsOfUseScreen extends original.TermsOfUseScreen { 6 | const TermsOfUseScreen({super.key}); 7 | } 8 | -------------------------------------------------------------------------------- /l10n.yaml: -------------------------------------------------------------------------------- 1 | arb-dir: lib/l10n 2 | template-arb-file: bccm_en.arb 3 | output-localization-file: app_localizations.dart 4 | output-class: S 5 | output-dir: lib/l10n 6 | synthetic-package: false 7 | nullable-getter: false -------------------------------------------------------------------------------- /lib/components/badges/offline_badge.dart: -------------------------------------------------------------------------------- 1 | import 'package:brunstadtv_app/components/badges/icon_badge.dart'; 2 | import 'package:brunstadtv_app/helpers/svg_icons.dart'; 3 | import 'package:brunstadtv_app/l10n/app_localizations.dart'; 4 | import 'package:bccm_core/design_system.dart'; 5 | import 'package:flutter/material.dart'; 6 | import 'package:flutter_svg/flutter_svg.dart'; 7 | 8 | class OfflineBadge extends StatelessWidget { 9 | const OfflineBadge({super.key}); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | final design = DesignSystem.of(context); 14 | return IconBadge( 15 | icon: SvgPicture.string( 16 | SvgIcons.play, 17 | height: 8, 18 | colorFilter: ColorFilter.mode(design.colors.onTint.withOpacity(0.3), BlendMode.srcIn), 19 | ), 20 | label: S.of(context).offline.toUpperCase(), 21 | color: design.colors.onTint.withOpacity(0.2), 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/components/badges/watched_badge.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:bccm_core/design_system.dart'; 4 | 5 | class WatchedBadge extends StatelessWidget { 6 | const WatchedBadge({super.key}); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | return Container( 11 | padding: const EdgeInsets.symmetric(horizontal: 2), 12 | decoration: BoxDecoration( 13 | color: DesignSystem.of(context).colors.background1.withOpacity(0.7), 14 | borderRadius: BorderRadius.circular(2), 15 | ), 16 | child: Image.asset('assets/icons/Seen.png'), 17 | ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/components/episode/episode_related.dart: -------------------------------------------------------------------------------- 1 | import 'package:brunstadtv_app/components/thumbnails/grid/thumbnail_grid.dart'; 2 | import 'package:bccm_core/platform.dart'; 3 | import 'package:brunstadtv_app/helpers/router/navigation_override.dart'; 4 | import 'package:flutter/material.dart'; 5 | 6 | class EpisodeRelated extends StatelessWidget { 7 | const EpisodeRelated({ 8 | super.key, 9 | required this.episode, 10 | }); 11 | 12 | final Query$FetchEpisode$episode episode; 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Column( 17 | crossAxisAlignment: CrossAxisAlignment.start, 18 | children: [ 19 | Padding( 20 | padding: const EdgeInsets.all(16), 21 | child: NavigationOverride( 22 | pushInsteadOfReplace: true, 23 | child: ThumbnailGrid( 24 | gridSize: Enum$GridSectionSize.half, 25 | sectionItems: episode.relatedItems?.items ?? [], 26 | ), 27 | ), 28 | ) 29 | ], 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/components/misc/app_version.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/bccm_core.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_hooks/flutter_hooks.dart'; 4 | import 'package:package_info_plus/package_info_plus.dart'; 5 | 6 | import '../../../l10n/app_localizations.dart'; 7 | import 'package:bccm_core/design_system.dart'; 8 | 9 | class AppVersion extends HookWidget { 10 | const AppVersion({super.key}); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | final snapshot = useFuture(useMemoized(() => PackageInfo.fromPlatform().then((value) => formatAppVersion(value)))); 15 | if (snapshot.hasData) { 16 | return SelectableText( 17 | '${S.of(context).version}: ${snapshot.data!}', 18 | style: DesignSystem.of(context).textStyles.caption1, 19 | textAlign: TextAlign.center, 20 | ); 21 | } else { 22 | return const Text(''); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/components/misc/see_more.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_svg/svg.dart'; 3 | 4 | import '../../helpers/svg_icons.dart'; 5 | import '../../l10n/app_localizations.dart'; 6 | import 'package:bccm_core/design_system.dart'; 7 | 8 | class SeeMoreSlot extends StatelessWidget { 9 | const SeeMoreSlot({super.key, required this.onTap}); 10 | 11 | final void Function() onTap; 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | return GestureDetector( 16 | onTap: onTap, 17 | child: Align( 18 | alignment: Alignment.bottomRight, 19 | child: Row( 20 | mainAxisSize: MainAxisSize.min, 21 | children: [ 22 | Text(S.of(context).seeMore, style: DesignSystem.of(context).textStyles.button2), 23 | SvgPicture.string(SvgIcons.right), 24 | ], 25 | ), 26 | ), 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/components/player/custom_cast_player.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_player/bccm_player.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_svg/svg.dart'; 4 | 5 | class CustomCastPlayerView extends StatelessWidget { 6 | const CustomCastPlayerView({super.key}); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | return InkWell( 11 | onTap: () { 12 | BccmPlayerInterface.instance.openExpandedCastController(); 13 | }, 14 | splashColor: Colors.transparent, 15 | child: ClipRect( 16 | child: AspectRatio( 17 | aspectRatio: 16 / 9, 18 | child: Container( 19 | decoration: const BoxDecoration(color: Color.fromARGB(255, 29, 40, 56)), 20 | child: SvgPicture.asset('assets/images/chromecast_bg.svg', fit: BoxFit.cover, semanticsLabel: 'Casting'), 21 | ), 22 | ), 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/components/shorts/short_scroll_view.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'short_scroll_view.dart'; 4 | 5 | // ************************************************************************** 6 | // RiverpodGenerator 7 | // ************************************************************************** 8 | 9 | String _$wakeLockCountHash() => r'c1e1fc37ac3f770c568304e29ea863d971bebd3e'; 10 | 11 | /// See also [WakeLockCount]. 12 | @ProviderFor(WakeLockCount) 13 | final wakeLockCountProvider = 14 | AutoDisposeNotifierProvider.internal( 15 | WakeLockCount.new, 16 | name: r'wakeLockCountProvider', 17 | debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') 18 | ? null 19 | : _$wakeLockCountHash, 20 | dependencies: null, 21 | allTransitiveDependencies: null, 22 | ); 23 | 24 | typedef _$WakeLockCount = AutoDisposeNotifier; 25 | // ignore_for_file: type=lint 26 | // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package 27 | -------------------------------------------------------------------------------- /lib/components/status/loading_generic.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_riverpod/flutter_riverpod.dart'; 3 | 4 | import '../../l10n/app_localizations.dart'; 5 | import 'package:bccm_core/design_system.dart'; 6 | import 'loading_indicator.dart'; 7 | 8 | class LoadingGeneric extends ConsumerWidget { 9 | const LoadingGeneric({super.key, this.text}); 10 | 11 | final String? text; 12 | 13 | @override 14 | Widget build(BuildContext context, WidgetRef ref) { 15 | return Center( 16 | child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ 17 | Container( 18 | margin: const EdgeInsets.only(bottom: 12), 19 | child: const LoadingIndicator(), 20 | ), 21 | Text( 22 | text ?? S.of(context).loadingContent, 23 | style: DesignSystem.of(context).textStyles.body2, 24 | ), 25 | ]), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/components/status/loading_indicator.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class LoadingIndicator extends StatelessWidget { 4 | const LoadingIndicator({super.key, this.width, this.height}); 5 | 6 | final double? width; 7 | final double? height; 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return RepaintBoundary( 12 | child: SizedBox( 13 | width: width ?? 32, 14 | height: height ?? 32, 15 | child: const CircularProgressIndicator(strokeWidth: 2), 16 | ), 17 | ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/components/thumbnails/misc/episode_duration.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import 'package:bccm_core/design_system.dart'; 4 | 5 | class EpisodeDuration extends StatelessWidget { 6 | final String duration; 7 | 8 | const EpisodeDuration({super.key, required this.duration}); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return Container( 13 | height: 12, 14 | padding: const EdgeInsets.symmetric(horizontal: 4), 15 | decoration: BoxDecoration( 16 | color: DesignSystem.of(context).colors.background1.withOpacity(0.7), 17 | borderRadius: BorderRadius.circular(2), 18 | ), 19 | child: Text( 20 | duration, 21 | style: DesignSystem.of(context).textStyles.caption3.copyWith(color: DesignSystem.of(context).colors.onTint), 22 | ), 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/components/web/dialog_on_web.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class DialogOnWeb extends StatelessWidget { 5 | const DialogOnWeb({super.key, required this.child}); 6 | 7 | final Widget child; 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | if (!kIsWeb) return child; 12 | return Dialog( 13 | child: ClipRRect( 14 | borderRadius: BorderRadius.circular(8), 15 | child: SizedBox( 16 | width: 500, 17 | height: 800, 18 | child: child, 19 | ), 20 | ), 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/env/.env.dart.template: -------------------------------------------------------------------------------- 1 | part of 'env.dart'; 2 | 3 | class _Secrets { 4 | static const String npawAccountCode = "$NPAW_ACCOUNT_CODE"; // can be '' 5 | static const String rudderstackWriteKey = "$RUDDERSTACK_WRITE_KEY"; // Must not be empty. Anything goes, e.g. 'dev' 6 | static const String webUrl = "$WEB_URL"; // Can be '' 7 | static const bool enableStudy = $ENABLE_STUDY; // true for dev 8 | static const String unleashClientKey = "$UNLEASH_CLIENT_KEY"; // can be '' 9 | static const String unleashProxyUrl = "$UNLEASH_PROXY"; // can be '' 10 | static const String unleashAppName = "$UNLEASH_APP_NAME"; // can be '' 11 | static const bool forceFlutterControls = true; 12 | static const bool forceShorts = false; 13 | static const String sentryDsn = "$SENTRY_DSN"; // If it is '', Sentry will not send any events 14 | static const String sentryDsnKids = "$SENTRY_DSN_KIDS"; 15 | static const String bmmApiUrl = "$BMM_API_URL"; 16 | } 17 | -------------------------------------------------------------------------------- /lib/helpers/analytics.dart: -------------------------------------------------------------------------------- 1 | import 'package:auto_route/auto_route.dart'; 2 | import 'package:brunstadtv_app/helpers/constants.dart'; 3 | import 'package:collection/collection.dart'; 4 | import 'package:flutter/material.dart'; 5 | 6 | class AnalyticsPageCodes { 7 | const AnalyticsPageCodes._(); 8 | static const String signup = 'signup'; 9 | static const String signupEmail = 'signup-email'; 10 | static const String signupPassword = 'signup-password'; 11 | static const String signupName = 'signup-name'; 12 | static const String signupBirthdate = 'signup-birthdate'; 13 | static const String signupDone = 'signup-done'; 14 | static const String verifyEmail = 'verify-email'; 15 | } 16 | 17 | String? analyticsNameForRouteName(BuildContext context, String pageName) { 18 | return context.router.matcher.collection.routes.firstWhereOrNull((element) => element.name == pageName)?.meta[RouteMetaConstants.analyticsName]; 19 | } 20 | -------------------------------------------------------------------------------- /lib/helpers/bmm/bmm_navigation.dart: -------------------------------------------------------------------------------- 1 | import 'package:url_launcher/url_launcher.dart'; 2 | 3 | Future openBmmPage(String path) async { 4 | final url = Uri.https('bmm.bcc.media', path); 5 | if (await canLaunchUrl(url)) { 6 | await launchUrl( 7 | url, 8 | mode: LaunchMode.externalApplication, 9 | ); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/helpers/forms/range_input_formatter.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | 3 | // Based on https://stackoverflow.com/a/68072967 4 | class RangeInputFormatter extends TextInputFormatter { 5 | final int min; 6 | final int max; 7 | 8 | RangeInputFormatter({required this.min, required this.max}); 9 | 10 | @override 11 | TextEditingValue formatEditUpdate( 12 | TextEditingValue oldValue, 13 | TextEditingValue newValue, 14 | ) { 15 | if (newValue.text == '') { 16 | return newValue; 17 | } 18 | final newInt = int.tryParse(newValue.text); 19 | if (newInt == null || newInt < min) { 20 | return const TextEditingValue().copyWith(text: min.toString()); 21 | } else { 22 | return newInt > max ? oldValue : newValue; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/helpers/permanent_cache_manager.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_cache_manager/flutter_cache_manager.dart'; 2 | 3 | class PermanentCacheManager extends CacheManager with ImageCacheManager { 4 | static const key = 'permanentCache'; 5 | 6 | static final PermanentCacheManager _instance = PermanentCacheManager._(); 7 | 8 | factory PermanentCacheManager() { 9 | return _instance; 10 | } 11 | 12 | PermanentCacheManager._() 13 | : super( 14 | Config( 15 | key, 16 | stalePeriod: const Duration(days: 365 * 10), 17 | ), 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /lib/helpers/router/navigation_override.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/widgets.dart'; 2 | 3 | class NavigationOverride extends InheritedWidget { 4 | const NavigationOverride({super.key, required this.pushInsteadOfReplace, required super.child}); 5 | 6 | final bool pushInsteadOfReplace; 7 | 8 | static NavigationOverride? of(BuildContext context) { 9 | final NavigationOverride? result = context.dependOnInheritedWidgetOfExactType(); 10 | return result; 11 | } 12 | 13 | @override 14 | bool updateShouldNotify(NavigationOverride oldWidget) => pushInsteadOfReplace != oldWidget.pushInsteadOfReplace; 15 | } 16 | -------------------------------------------------------------------------------- /lib/helpers/sections.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/platform.dart'; 2 | 3 | bool sectionIsVertical(element) => 4 | element is Fragment$Section$$ListSection || 5 | element is Fragment$Section$$DefaultGridSection || 6 | element is Fragment$Section$$IconGridSection || 7 | element is Fragment$Section$$PosterGridSection; 8 | -------------------------------------------------------------------------------- /lib/helpers/share_extension/share_extension.dart: -------------------------------------------------------------------------------- 1 | export 'share_extension_shim.dart' if (dart.library.html) 'share_extension_web.dart'; 2 | -------------------------------------------------------------------------------- /lib/helpers/share_extension/share_extension_shim.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | import 'package:share_plus/share_plus.dart'; 4 | 5 | extension ShareUrl on Share { 6 | Future shareUrl( 7 | String url, { 8 | String? title, 9 | Rect? sharePositionOrigin, 10 | }) async { 11 | await Share.share( 12 | url, 13 | sharePositionOrigin: sharePositionOrigin, 14 | ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/helpers/share_extension/share_extension_web.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: avoid_web_libraries_in_flutter 2 | 3 | import 'dart:html' as html; 4 | import 'dart:ui'; 5 | 6 | import 'package:share_plus/share_plus.dart'; 7 | 8 | extension ShareUrl on Share { 9 | Future shareUrl( 10 | String url, { 11 | String? title, 12 | Rect? sharePositionOrigin, 13 | }) async { 14 | html.window.navigator.share({ 15 | 'url': url, 16 | if (title != null) 'title': title, 17 | }); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/helpers/widget_keys.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | 3 | typedef K = WidgetKeys; 4 | 5 | class WidgetKeys { 6 | const WidgetKeys._(); 7 | 8 | static const privacyPolicyAgreeSwitch = Key('privacyPolicyAgreeSwitch'); 9 | static const registerButton = Key('registerButton'); 10 | static const exploreButton = Key('exploreButton'); 11 | static const playPoster = Key('playPoster'); 12 | static const backButton = Key('backButton'); 13 | static const bottomSheetMiniPlayer = Key('bottomSheetMiniPlayer'); 14 | static const episodePageEpisodeTitle = Key('episodePageEpisodeTitle'); 15 | static const miniPlayerTitle = Key('miniPlayerTitle'); 16 | static const signInButton = Key('signInButton'); 17 | static const signUpButton = Key('signUpButton'); 18 | static const liveTabButton = Key('liveTabButton'); 19 | } 20 | -------------------------------------------------------------------------------- /lib/l10n/bccm_bg.arb: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /lib/models/breakpoints.dart: -------------------------------------------------------------------------------- 1 | import 'package:responsive_framework/responsive_framework.dart'; 2 | 3 | class BP { 4 | static const String sm = MOBILE; 5 | static const String md = TABLET; 6 | static const String lg = DESKTOP; 7 | static const String xl = 'extraLarge'; 8 | static const String xxl = 'extraExtraLarge'; 9 | } 10 | 11 | const breakpoints = [ 12 | Breakpoint(start: 0, end: 450, name: BP.sm), 13 | Breakpoint(start: 451, end: 800, name: BP.md), 14 | Breakpoint(start: 801, end: 1024, name: BP.lg), 15 | Breakpoint(start: 1025, end: 1920, name: BP.xl), 16 | Breakpoint(start: 1921, end: double.infinity, name: BP.xxl), 17 | ]; 18 | -------------------------------------------------------------------------------- /lib/models/episode_thumbnail_data.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/platform.dart'; 2 | import 'package:freezed_annotation/freezed_annotation.dart'; 3 | 4 | part 'episode_thumbnail_data.freezed.dart'; 5 | 6 | @freezed 7 | class EpisodeThumbnailData with _$EpisodeThumbnailData { 8 | const factory EpisodeThumbnailData({ 9 | required String title, 10 | int? duration, 11 | String? image, 12 | required bool locked, 13 | int? progress, 14 | String? publishDate, 15 | int? number, 16 | String? showTitle, 17 | int? seasonNumber, 18 | }) = _EpisodeThumbnailData; 19 | 20 | factory EpisodeThumbnailData.fromFragment(Fragment$EpisodeThumbnail e) { 21 | return EpisodeThumbnailData( 22 | title: e.title, 23 | image: e.image, 24 | duration: e.duration, 25 | locked: e.locked, 26 | progress: e.progress, 27 | publishDate: e.publishDate, 28 | number: e.number, 29 | seasonNumber: e.season?.number, 30 | showTitle: e.season?.$show.title, 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/models/explore_category.dart: -------------------------------------------------------------------------------- 1 | class ExploreCategory { 2 | final String label; 3 | String image; 4 | 5 | ExploreCategory({required this.label, required this.image}) { 6 | image = 'assets/icons/$image'; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/models/pagination_status.dart: -------------------------------------------------------------------------------- 1 | class PaginationStatus { 2 | bool reachedMax; 3 | int currentOffset; 4 | List items; 5 | PaginationStatus({required this.currentOffset, required this.items, this.reachedMax = false}); 6 | } 7 | -------------------------------------------------------------------------------- /lib/models/survey.dart: -------------------------------------------------------------------------------- 1 | import 'package:freezed_annotation/freezed_annotation.dart'; 2 | 3 | part 'survey.freezed.dart'; 4 | part 'survey.g.dart'; 5 | 6 | @freezed 7 | class CompletedSurveys with _$CompletedSurveys { 8 | const factory CompletedSurveys(List completedSurveys) = _CompletedSurveys; 9 | factory CompletedSurveys.fromJson(Map json) => _$CompletedSurveysFromJson(json); 10 | } 11 | 12 | @freezed 13 | class CompletedSurvey with _$CompletedSurvey { 14 | const factory CompletedSurvey({ 15 | required String id, 16 | required DateTime expiry, 17 | }) = _CompletedSurvey; 18 | 19 | factory CompletedSurvey.fromJson(Map json) => _$CompletedSurveyFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /lib/providers/me_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/platform.dart'; 2 | import 'package:flutter_riverpod/flutter_riverpod.dart'; 3 | 4 | final meProvider = FutureProvider((ref) { 5 | return ref.read(bccmGraphQLProvider).query$me().then((value) { 6 | if (value.exception != null) { 7 | throw value.exception!; 8 | } 9 | return value.parsedData; 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/providers/performance_class_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_player/bccm_player.dart'; 2 | import 'package:hooks_riverpod/hooks_riverpod.dart'; 3 | 4 | final androidPerformanceClassProvider = FutureProvider((ref) { 5 | return BccmPlayerInterface.instance.getAndroidPerformanceClass(); 6 | }); 7 | -------------------------------------------------------------------------------- /lib/providers/unleash.dart: -------------------------------------------------------------------------------- 1 | import 'package:bccm_core/bccm_core.dart'; 2 | import 'package:bccm_core/platform.dart'; 3 | import 'package:brunstadtv_app/providers/settings.dart'; 4 | 5 | final unleashContextProviderOverride = unleashContextProvider.overrideWith((ref) async { 6 | return getStandardUnleashContext( 7 | userId: ref.watch(authStateProvider.select((value) => value.user?.bccPersonId)), 8 | gender: ref.watch(authStateProvider.select((value) => value.user?.gender)), 9 | birthDate: ref.watch(authStateProvider.select((value) => value.user?.birthdate)), 10 | isBetaTester: ref.watch(settingsProvider.select((s) => s.isBetaTester)), 11 | appVersion: formatAppVersion(ref.watch(packageInfoProvider)), 12 | appBuildNumber: ref.watch(packageInfoProvider.select((pi) => pi.buildNumber)), 13 | appLanguage: ref.watch(settingsProvider.select((value) => value.appLanguage.languageCode)), 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /lib/theme/design_system/bccmedia/colors.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | import 'package:bccm_core/design_system.dart'; 4 | 5 | class BccMediaColors extends DesignSystemColors { 6 | BccMediaColors() 7 | : super( 8 | tint1: const Color(0xff6EB0E6), 9 | tint1Dark: const Color(0xff6EB0E6), 10 | tint2: const Color(0xffE63C62), 11 | tint3: const Color(0xff71D2A4), 12 | onTint: const Color(0xffFFFFFF), 13 | label1: const Color(0xffFEFEFE), 14 | label2: const Color(0xffD9E0EB), 15 | label3: const Color(0xffB4C0D2), 16 | label4: const Color(0xff707C8E), 17 | background1: const Color(0xff0D1623), 18 | background2: const Color(0xff1D2838), 19 | separatorOnLight: const Color.fromRGBO(204, 221, 255, 0.1), 20 | separator2: const Color.fromRGBO(204, 221, 255, 0.1), 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /scripts/check_analytics.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ensure the URL environment variable is set 4 | # https://analytics-test-webhook/get_data/prod?api_key=THE_API_KEY 5 | if [ -z "$ANALYTICS_WEBHOOK_URL" ]; then 6 | echo "Error: ANALYTICS_WEBHOOK_URL environment variable is not set." 7 | exit 1 8 | fi 9 | 10 | # Fetch data from the provided URL 11 | RESPONSE=$(curl -s "$ANALYTICS_WEBHOOK_URL") 12 | 13 | # Check if the response is empty 14 | if [ -z "$RESPONSE" ] || [ "$RESPONSE" = "[]" ]; then 15 | echo "Error: No data received or data is empty." 16 | exit 1 17 | fi 18 | 19 | # Check for specific events in the response 20 | if echo "$RESPONSE" | grep -q "Application Opened" && \ 21 | echo "$RESPONSE" | grep -q "identify" && \ 22 | echo "$RESPONSE" | grep -q "featureFlags"; then 23 | echo "Success: Required events found in the response." 24 | exit 0 25 | else 26 | echo "Error: Required events not found in the response." 27 | exit 1 28 | fi 29 | -------------------------------------------------------------------------------- /submodules/build/.last_build_id: -------------------------------------------------------------------------------- 1 | 6f8190af5d6eca9415b19694c90f1da6 -------------------------------------------------------------------------------- /web-lib/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /web-lib/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /web-lib/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bccm-app-web-lib", 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "tsc && vite build", 7 | "preview": "vite preview" 8 | }, 9 | "devDependencies": { 10 | "@types/node": "^18.15.11", 11 | "typescript": "^4.9.3", 12 | "vite": "^4.2.0" 13 | }, 14 | "dependencies": { 15 | "bccm-video-player": "^1.5.0" 16 | } 17 | } -------------------------------------------------------------------------------- /web-lib/src/main.ts: -------------------------------------------------------------------------------- 1 | import * as bccmVideoPlayer from 'bccm-video-player'; 2 | import 'bccm-video-player/css'; 3 | 4 | (window as any).externalPackages = { 5 | bccmVideoPlayer 6 | }; 7 | 8 | (window as any).bccmVideoPlayer = bccmVideoPlayer; -------------------------------------------------------------------------------- /web-lib/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /web-lib/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ESNext", "DOM"], 7 | "moduleResolution": "Node", 8 | "types": ["node"], 9 | "strict": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "noEmit": true, 14 | "noUnusedLocals": true, 15 | "noUnusedParameters": true, 16 | "noImplicitReturns": true, 17 | "skipLibCheck": true 18 | }, 19 | "include": ["src"] 20 | } 21 | -------------------------------------------------------------------------------- /web-lib/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /web-lib/vite.config.ts: -------------------------------------------------------------------------------- 1 | // vite.config.js 2 | import { resolve } from 'path' 3 | import { defineConfig } from 'vite' 4 | 5 | export default defineConfig({ 6 | define: { 7 | 'process.env': {} 8 | }, 9 | build: { 10 | lib: { 11 | entry: resolve(__dirname, 'src/main.ts'), 12 | name: 'BccmAppWebLib', 13 | fileName: 'bccm-app-web-lib', 14 | formats: ['es'] 15 | }, 16 | outDir: '../web/lib/generated', 17 | rollupOptions: { 18 | external: [], 19 | output: { 20 | globals: {}, 21 | assetFileNames: "bccm-app-web-lib.[ext]", 22 | }, 23 | }, 24 | }, 25 | }) -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/favicon.png -------------------------------------------------------------------------------- /web/firebase-messaging-sw.js: -------------------------------------------------------------------------------- 1 | // 2 | // To resolve error "The script has an unsupported MIME type ('text/html')" from firebase 3 | // https://stackoverflow.com/questions/66641382/the-script-has-an-unsupported-mime-type-text-html 4 | // -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BCC Media", 3 | "short_name": "BCC Media", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "BCC Media", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /web/splash/img/dark-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/dark-1x.png -------------------------------------------------------------------------------- /web/splash/img/dark-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/dark-2x.png -------------------------------------------------------------------------------- /web/splash/img/dark-3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/dark-3x.png -------------------------------------------------------------------------------- /web/splash/img/dark-4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/dark-4x.png -------------------------------------------------------------------------------- /web/splash/img/light-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/light-1x.png -------------------------------------------------------------------------------- /web/splash/img/light-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/light-2x.png -------------------------------------------------------------------------------- /web/splash/img/light-3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/light-3x.png -------------------------------------------------------------------------------- /web/splash/img/light-4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcc-code/bcc-media-app/c7b861f14d91c3d89ae2b07eacf90a8ce715b4bd/web/splash/img/light-4x.png -------------------------------------------------------------------------------- /web/splash/splash.js: -------------------------------------------------------------------------------- 1 | function removeSplashFromWeb() { 2 | document.getElementById("splash")?.remove(); 3 | document.getElementById("splash-branding")?.remove(); 4 | document.body.style.background = "transparent"; 5 | } 6 | -------------------------------------------------------------------------------- /web/splash/style.css: -------------------------------------------------------------------------------- 1 | html { 2 | height: 100% 3 | } 4 | 5 | body { 6 | margin: 0; 7 | min-height: 100%; 8 | background-color: #0D1623; 9 | background-size: 100% 100%; 10 | } 11 | 12 | .center { 13 | margin: 0; 14 | position: absolute; 15 | top: 50%; 16 | left: 50%; 17 | -ms-transform: translate(-50%, -50%); 18 | transform: translate(-50%, -50%); 19 | } 20 | 21 | .contain { 22 | display:block; 23 | width:100%; height:100%; 24 | object-fit: contain; 25 | } 26 | 27 | .stretch { 28 | display:block; 29 | width:100%; height:100%; 30 | } 31 | 32 | .cover { 33 | display:block; 34 | width:100%; height:100%; 35 | object-fit: cover; 36 | } 37 | 38 | .bottom { 39 | position: absolute; 40 | bottom: 0; 41 | left: 50%; 42 | -ms-transform: translate(-50%, 0); 43 | transform: translate(-50%, 0); 44 | } 45 | 46 | .bottomLeft { 47 | position: absolute; 48 | bottom: 0; 49 | left: 0; 50 | } 51 | 52 | .bottomRight { 53 | position: absolute; 54 | bottom: 0; 55 | right: 0; 56 | } 57 | --------------------------------------------------------------------------------