├── player ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ └── attrs.xml │ │ └── layout │ │ │ └── ijk_demo_activity.xml │ │ ├── jniLibs │ │ └── armeabi-v7a │ │ │ ├── libp2p.so │ │ │ ├── libijksdl.so │ │ │ ├── libplayer.so │ │ │ ├── libxl_stat.so │ │ │ ├── libijkffmpeg.so │ │ │ └── libxl_thunder_sdk.so │ │ └── java │ │ ├── tv │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ ├── player │ │ │ ├── ffmpeg │ │ │ │ └── FFmpegApi.java │ │ │ ├── pragma │ │ │ │ └── Pragma.java │ │ │ ├── IjkLibLoader.java │ │ │ ├── ISurfaceTextureHost.java │ │ │ ├── exceptions │ │ │ │ └── IjkMediaException.java │ │ │ ├── MediaInfo.java │ │ │ ├── ISurfaceTextureHolder.java │ │ │ ├── misc │ │ │ │ ├── IMediaFormat.java │ │ │ │ ├── IMediaDataSource.java │ │ │ │ ├── IAndroidIO.java │ │ │ │ └── ITrackInfo.java │ │ │ └── annotations │ │ │ │ └── AccessedByNative.java │ │ │ └── player_armv7a │ │ │ └── Pragma.java │ │ └── xyz │ │ └── doikki │ │ └── videoplayer │ │ ├── render │ │ ├── RenderViewFactory.java │ │ ├── TextureRenderViewFactory.java │ │ └── IRenderView.java │ │ ├── player │ │ ├── PlayerFactory.java │ │ ├── ProgressManager.java │ │ └── AndroidMediaPlayerFactory.java │ │ ├── ijk │ │ └── IjkPlayerFactory.java │ │ ├── exo │ │ └── ExoMediaPlayerFactory.java │ │ ├── controller │ │ ├── IGestureComponent.java │ │ ├── IVideoController.java │ │ ├── MediaPlayerControl.java │ │ └── OrientationHelper.java │ │ └── util │ │ └── L.java └── proguard-rules.pro ├── TabLayout ├── consumer-rules.pro ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── angcyo │ │ └── tablayout │ │ ├── ITabIndicatorDraw.kt │ │ └── ViewPagerDelegate.kt └── build.gradle ├── crash ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── drawable-hdpi │ │ │ └── customactivityoncrash_error_image.png │ │ ├── drawable-mdpi │ │ │ └── customactivityoncrash_error_image.png │ │ ├── drawable-xhdpi │ │ │ └── customactivityoncrash_error_image.png │ │ ├── drawable-xxhdpi │ │ │ └── customactivityoncrash_error_image.png │ │ ├── drawable-xxxhdpi │ │ │ └── customactivityoncrash_error_image.png │ │ └── values │ │ │ ├── dimens.xml │ │ │ └── strings.xml │ │ └── AndroidManifest.xml └── build.gradle ├── ViewPager1Delegate ├── consumer-rules.pro ├── .gitignore ├── src │ └── main │ │ └── AndroidManifest.xml ├── build.gradle └── proguard-rules.pro ├── app ├── test.jks ├── libs │ ├── thunder.jar │ └── commons-lang3-3.12.0.jar └── src │ └── main │ ├── assets │ └── ua.db │ ├── res │ ├── drawable │ │ ├── app_icon.png │ │ ├── icon_pre.png │ │ ├── app_banner.png │ │ ├── icon_back.png │ │ ├── icon_empty.png │ │ ├── icon_play.png │ │ ├── icon_video.png │ │ ├── scrollview.png │ │ ├── icon_loading.png │ │ ├── scrollviewleft.png │ │ ├── icon_img_placeholder.png │ │ ├── bg_progress_bar_out.xml │ │ ├── bg_transparent.xml │ │ ├── shape_thumb_lang.xml │ │ ├── shape_thumb_note.xml │ │ ├── shape_thumb_year.xml │ │ ├── anim_loading.xml │ │ ├── shape_live_channel_num.xml │ │ ├── bg_channel_list.xml │ │ ├── shape_dialog_pg_search_checkbox.xml │ │ ├── input_search.xml │ │ ├── bg_bottom_dialog.xml │ │ ├── bg_large_round_popup.xml │ │ ├── bg_small_round_gray.xml │ │ ├── shape_play_bottom.xml │ │ ├── bg_large_round_gray.xml │ │ ├── bg_ll_word_indicator.xml │ │ ├── shape_thumb_bottom_name.xml │ │ ├── bg_gradient_black_b2t.xml │ │ ├── bg_gradient_black_r2l.xml │ │ ├── box_controller_top_bg.xml │ │ ├── item_right_bg.xml │ │ ├── shape_dialog_filter_bg.xml │ │ ├── shape_source_flag_line.xml │ │ ├── bottom_navigation_item_selector.xml │ │ ├── shape_play_mobile_center.xml │ │ ├── dkplayer_shape_standard_controller_right_bg.xml │ │ ├── seekbar_thumb_normal.xml │ │ ├── seekbar_thumb_pressed.xml │ │ ├── bg_r_common_stroke_primary.xml │ │ ├── ic_add_24.xml │ │ ├── button_select_normal.xml │ │ ├── button_select_selected.xml │ │ ├── button_red_mask.xml │ │ ├── shape_progressbar_bg.xml │ │ ├── ic_close_24.xml │ │ ├── ic_file_24.xml │ │ ├── shape_player_control_vod_seek_thumb_press.xml │ │ ├── shape_player_control_vod_seek_thumb_normal.xml │ │ ├── ic_push.xml │ │ ├── button_checkbox.xml │ │ ├── ic_unchecked_circle.xml │ │ ├── ic_live.xml │ │ ├── shape_live_focus.xml │ │ ├── bg_r_25_stroke_primary.xml │ │ ├── item_bg_selector_left.xml │ │ ├── item_bg_selector_right.xml │ │ ├── bg_top_container.xml │ │ ├── ic_cast_18.xml │ │ ├── ic_arrow_down.xml │ │ ├── ic_search_18.xml │ │ ├── ic_filter_list.xml │ │ ├── ic_search_48.xml │ │ ├── shape_setting_sort_focus.xml │ │ ├── ic_history_18.xml │ │ ├── img_loading_placeholder.xml │ │ ├── preview_player_block.xml │ │ ├── button_home_sort_focus.xml │ │ ├── shape_user_focus.xml │ │ ├── ic_clear.xml │ │ ├── bg_bottom_container.xml │ │ ├── bg_progressbar.xml │ │ ├── icon_filter_color.xml │ │ ├── ic_check_circle.xml │ │ ├── indicator_flash.xml │ │ ├── shape_source_focus.xml │ │ ├── button_focused.xml │ │ ├── ic_collect_48.xml │ │ ├── shape_source_series_focus.xml │ │ ├── button_detail_collect.xml │ │ ├── button_detail_play.xml │ │ ├── button_detail_sort.xml │ │ ├── button_detail_quick_search.xml │ │ ├── shape_player_control_vod_seek_thumb.xml │ │ ├── shape_setting_model_focus.xml │ │ ├── ic_about_48.xml │ │ ├── shape_source_flag_focus.xml │ │ ├── transparent.xml │ │ ├── bg_r_common_solid_primary.xml │ │ ├── play_progress_horizontal.xml │ │ ├── ic_live_tv_48.xml │ │ ├── button_primary_r25.xml │ │ ├── shape_player_control_vod_seek.xml │ │ ├── ic_history_48.xml │ │ ├── ic_local_video_48.xml │ │ ├── icon_error.xml │ │ ├── seekbar_style.xml │ │ ├── ic_unlock.xml │ │ ├── shape_user_search.xml │ │ ├── ic_use_description_24.xml │ │ ├── ic_lock.xml │ │ ├── shape_live_select.xml │ │ ├── ic_change_20.xml │ │ ├── ic_database_48.xml │ │ ├── ic_settings.xml │ │ ├── input_dialog_api_input.xml │ │ ├── play_volume.xml │ │ └── ic_copyright_48.xml │ ├── drawable-xxhdpi │ │ ├── delete.png │ │ ├── ic_my.png │ │ ├── ic_pip.png │ │ ├── app_icon.png │ │ ├── ic_about.png │ │ ├── ic_cast.png │ │ ├── ic_home.png │ │ ├── ic_menu.png │ │ ├── ic_pause.png │ │ ├── ic_play.png │ │ ├── ic_quit.png │ │ ├── ic_expand.png │ │ ├── ic_play_pre.png │ │ ├── ic_pushpin.png │ │ ├── iv_video.webp │ │ ├── app_icon_bak.png │ │ ├── ic_fullscreen.png │ │ ├── ic_notify_pre.png │ │ ├── ic_play_next.png │ │ ├── ic_notify_close.png │ │ ├── ic_notify_next.png │ │ ├── ic_notify_pause.png │ │ ├── ic_notify_play.png │ │ ├── ic_player_setting.png │ │ ├── ic_private_browsing.png │ │ └── iv_movie_placeholder.png │ ├── drawable-xhdpi │ │ ├── app_icon.png │ │ ├── vod_pause.png │ │ ├── vod_play.png │ │ └── app_icon_bak.png │ ├── drawable-xxxhdpi │ │ ├── app_icon.png │ │ └── app_icon_bak.png │ ├── xml │ │ ├── network_security_config.xml │ │ └── file_paths.xml │ ├── anim │ │ ├── slide_in_bottom.xml │ │ └── slide_out_bottom.xml │ ├── values-night │ │ └── colors.xml │ ├── raw │ │ └── ui.css │ ├── menu │ │ └── main_bottom_navigation.xml │ ├── layout │ │ ├── activity_local_play.xml │ │ ├── item_search_word_split.xml │ │ ├── item_play_parse.xml │ │ ├── dialog_search_uggestions.xml │ │ ├── item_quick_search_lite.xml │ │ ├── item_setting_menu.xml │ │ ├── loadsir_loading_layout.xml │ │ ├── item_keyboard.xml │ │ ├── item_dialog_select.xml │ │ ├── item_search_word_hot.xml │ │ ├── item_live_channel_group.xml │ │ ├── item_title.xml │ │ ├── item_live_setting.xml │ │ ├── item_live_setting_group.xml │ │ ├── item_search_site.xml │ │ ├── loadsir_empty_layout.xml │ │ ├── item_home_sort.xml │ │ ├── item_live_channel_group_new.xml │ │ ├── item_series_group.xml │ │ ├── item_grid_filter.xml │ │ ├── item_dialog_checkbox_search.xml │ │ ├── activity_main.xml │ │ ├── dialog_all_series.xml │ │ ├── activity_setting.xml │ │ ├── item_live_channel.xml │ │ ├── item_series_flag.xml │ │ └── item_grid_filter_value.xml │ ├── values-v29 │ │ └── styles.xml │ └── values │ │ └── strings.xml │ └── java │ └── com │ └── github │ ├── catvod │ └── crawler │ │ ├── SpiderNull.java │ │ ├── SpiderDebug.java │ │ └── JsLoader.java │ └── tvbox │ └── osc │ ├── player │ ├── TrackInfoBean.java │ ├── render │ │ └── SurfaceRenderViewFactory.java │ └── MyVideoView.java │ ├── event │ ├── TopStateEvent.java │ ├── HistoryStateEvent.java │ └── ServerEvent.java │ ├── subtitle │ └── SubtitleLoadSuccessResult.java │ ├── bean │ ├── AbsXml.java │ ├── AbsSortXml.java │ ├── LiveDayListGroup.java │ ├── IpScanningVo.java │ ├── CastVideo.java │ ├── VideoFolder.java │ ├── LiveEpgDate.java │ ├── LiveSettingItem.java │ ├── Source.java │ ├── LiveSettingGroup.java │ ├── Subtitle.java │ ├── SubtitleData.java │ ├── IJKCode.java │ └── Subscription.java │ ├── server │ ├── DataReceiver.java │ └── RequestProcess.java │ ├── util │ ├── urlhttp │ │ └── RealResponse.java │ ├── LOG.java │ ├── HistoryHelper.java │ ├── ScreenUtils.java │ ├── FastClickCheckUtil.java │ ├── AdBlocker.java │ └── js │ │ └── UTF8BOMFighter.java │ ├── ui │ ├── tv │ │ └── widget │ │ │ ├── DefaultTransformer.java │ │ │ ├── LoadMoreView.java │ │ │ ├── MarqueeTextView.java │ │ │ ├── NoScrollViewPager.java │ │ │ └── FixedSpeedScroller.java │ ├── adapter │ │ ├── PinyinAdapter.java │ │ ├── GridFilterKVAdapter.java │ │ ├── TitleWithDelAdapter.java │ │ ├── SearchWordAdapter.java │ │ ├── SettingMenuAdapter.java │ │ ├── SortAdapter.java │ │ ├── SearchSubtitleAdapter.java │ │ ├── SourceAdapter.java │ │ ├── ParseAdapter.java │ │ └── SeriesFlagAdapter.java │ └── dialog │ │ └── AboutDialog.java │ ├── callback │ ├── EmptyCallback.java │ └── LoadingCallback.java │ ├── cache │ ├── Cache.java │ ├── VodRecord.java │ ├── VodCollect.java │ ├── VodCollectDao.java │ ├── CacheDao.java │ └── VodRecordDao.java │ ├── constant │ ├── Constants.java │ └── CacheConst.java │ ├── data │ └── AppDataBase.java │ └── receiver │ └── BatteryReceiver.kt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── quickjs ├── src │ └── main │ │ ├── jniLibs │ │ └── armeabi-v7a │ │ │ └── libquickjs.so │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── tvbox │ │ │ └── quickjs │ │ │ ├── JSCallFunction.java │ │ │ ├── JSMethod.java │ │ │ ├── JSFunction.java │ │ │ ├── QuickJSException.java │ │ │ └── JSArray.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── .idea └── compiler.xml ├── .github └── workflows │ └── test.yml ├── gradle.properties └── README.md /player/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /TabLayout/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /crash/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /TabLayout/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ViewPager1Delegate/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ViewPager1Delegate/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/test.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/test.jks -------------------------------------------------------------------------------- /app/libs/thunder.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/libs/thunder.jar -------------------------------------------------------------------------------- /app/src/main/assets/ua.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/assets/ua.db -------------------------------------------------------------------------------- /player/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ijkPlayer 3 | -------------------------------------------------------------------------------- /app/libs/commons-lang3-3.12.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/libs/commons-lang3-3.12.0.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_pre.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/app_banner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_empty.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_video.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/scrollview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/scrollview.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_my.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_pip.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_loading.png -------------------------------------------------------------------------------- /TabLayout/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/vod_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xhdpi/vod_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/vod_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xhdpi/vod_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_cast.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_home.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_quit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/scrollviewleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/scrollviewleft.png -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libp2p.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libp2p.so -------------------------------------------------------------------------------- /app/src/main/java/com/github/catvod/crawler/SpiderNull.java: -------------------------------------------------------------------------------- 1 | package com.github.catvod.crawler; 2 | 3 | public class SpiderNull extends Spider { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_icon_bak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xhdpi/app_icon_bak.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_expand.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_play_pre.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pushpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_pushpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/iv_video.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/iv_video.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libijksdl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libijksdl.so -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libplayer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libplayer.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_icon_bak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/app_icon_bak.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notify_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_notify_pre.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_play_next.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/app_icon_bak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxxhdpi/app_icon_bak.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_img_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable/icon_img_placeholder.png -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libxl_stat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libxl_stat.so -------------------------------------------------------------------------------- /quickjs/src/main/jniLibs/armeabi-v7a/libquickjs.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/quickjs/src/main/jniLibs/armeabi-v7a/libquickjs.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notify_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_notify_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notify_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_notify_next.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notify_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_notify_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notify_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_notify_play.png -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libijkffmpeg.so -------------------------------------------------------------------------------- /ViewPager1Delegate/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_player_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_player_setting.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_private_browsing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/ic_private_browsing.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/iv_movie_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/app/src/main/res/drawable-xxhdpi/iv_movie_placeholder.png -------------------------------------------------------------------------------- /player/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/player/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = "TVBoxMobile" 2 | include ':app' 3 | include ':player' 4 | include ':quickjs' 5 | include ':TabLayout' 6 | include ':ViewPager1Delegate' 7 | include ':crash' 8 | -------------------------------------------------------------------------------- /crash/src/main/res/drawable-hdpi/customactivityoncrash_error_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/crash/src/main/res/drawable-hdpi/customactivityoncrash_error_image.png -------------------------------------------------------------------------------- /crash/src/main/res/drawable-mdpi/customactivityoncrash_error_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/crash/src/main/res/drawable-mdpi/customactivityoncrash_error_image.png -------------------------------------------------------------------------------- /quickjs/src/main/java/com/github/tvbox/quickjs/JSCallFunction.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.quickjs; 2 | 3 | public interface JSCallFunction { 4 | 5 | Object call(Object... args); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /crash/src/main/res/drawable-xhdpi/customactivityoncrash_error_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/crash/src/main/res/drawable-xhdpi/customactivityoncrash_error_image.png -------------------------------------------------------------------------------- /crash/src/main/res/drawable-xxhdpi/customactivityoncrash_error_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/crash/src/main/res/drawable-xxhdpi/customactivityoncrash_error_image.png -------------------------------------------------------------------------------- /crash/src/main/res/drawable-xxxhdpi/customactivityoncrash_error_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlabalabala/TVBoxOS-Mobile/HEAD/crash/src/main/res/drawable-xxxhdpi/customactivityoncrash_error_image.png -------------------------------------------------------------------------------- /quickjs/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /player/src/main/java/tv/danmaku/ijk/media/player/ffmpeg/FFmpegApi.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.ffmpeg; 2 | 3 | public class FFmpegApi { 4 | public static native String av_base64_encode(byte in[]); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_progress_bar_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_thumb_lang.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_thumb_note.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_thumb_year.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/player/TrackInfoBean.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.player; 2 | 3 | public class TrackInfoBean { 4 | public String name; 5 | public String language; 6 | public int index; 7 | public boolean selected; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/anim_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_live_channel_num.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_channel_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_dialog_pg_search_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Sep 21 09:53:05 CST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/input_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_bottom_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_large_round_popup.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_small_round_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_play_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_large_round_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_ll_word_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #202020 5 | 6 | #282828 7 | #F2808080 8 | #EBEBEB 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_thumb_bottom_name.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_gradient_black_b2t.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_gradient_black_r2l.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/box_controller_top_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_right_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_dialog_filter_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_source_flag_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bottom_navigation_item_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_play_mobile_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dkplayer_shape_standard_controller_right_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/seekbar_thumb_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/seekbar_thumb_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_r_common_stroke_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/event/TopStateEvent.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.event; 2 | 3 | /** 4 | * @author pj567 5 | * @date :2020/12/21 6 | * @description: 7 | */ 8 | public class TopStateEvent { 9 | public final static int TYPE_TOP = 0; 10 | public int type; 11 | 12 | public TopStateEvent(int type) { 13 | this.type = type; 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/subtitle/SubtitleLoadSuccessResult.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.subtitle; 2 | 3 | import com.github.tvbox.osc.subtitle.model.TimedTextObject; 4 | 5 | public class SubtitleLoadSuccessResult { 6 | public String fileName; 7 | public String content; 8 | public TimedTextObject timedTextObject; 9 | public String subtitlePath; 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/event/HistoryStateEvent.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.event; 2 | 3 | /** 4 | * @author pj567 5 | * @date :2020/12/21 6 | * @description: 7 | */ 8 | public class HistoryStateEvent { 9 | public final static int TYPE_TOP = 0; 10 | public int type; 11 | 12 | public HistoryStateEvent(int type) { 13 | this.type = type; 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_select_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_select_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /quickjs/src/main/java/com/github/tvbox/quickjs/JSMethod.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.quickjs; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(value = RetentionPolicy.RUNTIME) 9 | @Target(value = {ElementType.METHOD}) 10 | public @interface JSMethod { 11 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_red_mask.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/bean/AbsXml.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.bean; 2 | 3 | import com.thoughtworks.xstream.annotations.XStreamAlias; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author pj567 9 | * @date :2020/12/18 10 | * @description: 11 | */ 12 | @XStreamAlias("rss") 13 | public class AbsXml implements Serializable { 14 | @XStreamAlias("list") 15 | public Movie movie; 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/server/DataReceiver.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.server; 2 | 3 | /** 4 | * @author pj567 5 | * @date :2021/1/5 6 | * @description: 7 | */ 8 | public interface DataReceiver { 9 | 10 | /** 11 | * @param text 12 | */ 13 | void onTextReceived(String text); 14 | 15 | 16 | void onApiReceived(String url); 17 | 18 | void onPushReceived(String url); 19 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_progressbar_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/util/urlhttp/RealResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.util.urlhttp; 2 | 3 | import java.io.InputStream; 4 | 5 | /** 6 | * Created by fighting on 2017/4/24. 7 | */ 8 | 9 | public class RealResponse { 10 | public InputStream inputStream; 11 | public InputStream errorStream; 12 | public int code; 13 | public long contentLength; 14 | public Exception exception; 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /crash/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 12sp 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/ui/tv/widget/DefaultTransformer.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.ui.tv.widget; 2 | 3 | import android.view.View; 4 | 5 | import androidx.viewpager.widget.ViewPager; 6 | 7 | /** 8 | * @author acer 9 | * @date 2018/8/22 11:46 10 | */ 11 | public class DefaultTransformer implements ViewPager.PageTransformer{ 12 | @Override 13 | public void transformPage(View page, float position) { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_player_control_vod_seek_thumb_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/callback/EmptyCallback.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.callback; 2 | 3 | import com.github.tvbox.osc.R; 4 | import com.kingja.loadsir.callback.Callback; 5 | 6 | /** 7 | * @author pj567 8 | * @date :2020/12/24 9 | * @description: 10 | */ 11 | public class EmptyCallback extends Callback { 12 | @Override 13 | protected int onCreateView() { 14 | return R.layout.loadsir_empty_layout; 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_player_control_vod_seek_thumb_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/callback/LoadingCallback.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.callback; 2 | 3 | import com.github.tvbox.osc.R; 4 | import com.kingja.loadsir.callback.Callback; 5 | 6 | /** 7 | * @author pj567 8 | * @date :2020/12/24 9 | * @description: 10 | */ 11 | public class LoadingCallback extends Callback { 12 | @Override 13 | protected int onCreateView() { 14 | return R.layout.loadsir_loading_layout; 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_push.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/util/LOG.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.util; 2 | 3 | import android.util.Log; 4 | 5 | /** 6 | * @author pj567 7 | * @date :2020/12/18 8 | * @description: 9 | */ 10 | public class LOG { 11 | private static String TAG = "TVBoxJade"; 12 | 13 | public static void e(String msg) { 14 | Log.e(TAG, "" + msg); 15 | } 16 | 17 | public static void i(String msg) { 18 | Log.i(TAG, "" + msg); 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_unchecked_circle.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_live.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/render/RenderViewFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.render; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * 此接口用于扩展自己的渲染View。使用方法如下: 7 | * 1.继承IRenderView实现自己的渲染View。 8 | * 2.重写createRenderView返回步骤1的渲染View。 9 | * 可参考{@link TextureRenderView}和{@link TextureRenderViewFactory}的实现。 10 | */ 11 | public abstract class RenderViewFactory { 12 | 13 | public abstract IRenderView createRenderView(Context context); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_live_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/raw/ui.css: -------------------------------------------------------------------------------- 1 | body, 2 | html { 3 | height: 100%; 4 | -webkit-tap-highlight-color: transparent; 5 | } 6 | body { 7 | font-family: system-ui, -apple-system, Helvetica Neue, sans-serif; 8 | } 9 | .page, 10 | body { 11 | background-color: var(--weui-BG-0); 12 | } 13 | .page { 14 | position: absolute; 15 | top: 0; 16 | right: 0; 17 | bottom: 0; 18 | left: 0; 19 | overflow-y: auto; 20 | -webkit-overflow-scrolling: touch; 21 | box-sizing: border-box; 22 | z-index: 1; 23 | } -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/player/PlayerFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.player; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * 此接口使用方法: 7 | * 1.继承{@link AbstractPlayer}扩展自己的播放器。 8 | * 2.继承此接口并实现{@link #createPlayer(Context)},返回步骤1中的播放器。 9 | * 可参照{@link AndroidMediaPlayer}和{@link AndroidMediaPlayerFactory}的实现。 10 | */ 11 | public abstract class PlayerFactory

{ 12 | 13 | public abstract P createPlayer(Context context); 14 | } 15 | -------------------------------------------------------------------------------- /quickjs/src/main/java/com/github/tvbox/quickjs/JSFunction.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.quickjs; 2 | 3 | public class JSFunction extends JSObject { 4 | 5 | private final long objPointer; 6 | 7 | public JSFunction(QuickJSContext context, long objPointer, long pointer) { 8 | super(context, pointer); 9 | this.objPointer = objPointer; 10 | } 11 | 12 | public Object call(Object... args) { 13 | return getContext().call(this, objPointer, args); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_r_25_stroke_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/render/TextureRenderViewFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.render; 2 | 3 | import android.content.Context; 4 | 5 | public class TextureRenderViewFactory extends RenderViewFactory { 6 | 7 | public static TextureRenderViewFactory create() { 8 | return new TextureRenderViewFactory(); 9 | } 10 | 11 | @Override 12 | public IRenderView createRenderView(Context context) { 13 | return new TextureRenderView(context); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_bg_selector_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/ijk/IjkPlayerFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.ijk; 2 | 3 | import android.content.Context; 4 | 5 | import xyz.doikki.videoplayer.player.PlayerFactory; 6 | 7 | public class IjkPlayerFactory extends PlayerFactory { 8 | 9 | public static IjkPlayerFactory create() { 10 | return new IjkPlayerFactory(); 11 | } 12 | 13 | @Override 14 | public IjkPlayer createPlayer(Context context) { 15 | return new IjkPlayer(context); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/cache/Cache.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.cache; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.room.Entity; 5 | import androidx.room.PrimaryKey; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 类描述: 11 | * 12 | * @author pj567 13 | * @since 2020/5/15 14 | */ 15 | @Entity(tableName = "cache") 16 | public class Cache implements Serializable { 17 | @PrimaryKey(autoGenerate = false) 18 | @NonNull 19 | public String key; 20 | public byte[] data; 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 |

3 | 4 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_bg_selector_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | -------------------------------------------------------------------------------- /crash/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 30 5 | resourcePrefix 'customactivityoncrash_' 6 | 7 | defaultConfig { 8 | minSdkVersion 16 9 | targetSdkVersion 30 10 | } 11 | namespace 'cat.ereza.customactivityoncrash' 12 | } 13 | 14 | ext { 15 | PUBLISH_GROUP_ID = 'cat.ereza' 16 | PUBLISH_ARTIFACT_ID = 'customactivityoncrash' 17 | PUBLISH_VERSION = '2.4.0-SNAPSHOT' 18 | } 19 | 20 | 21 | dependencies { 22 | api 'androidx.appcompat:appcompat:1.3.1' 23 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_top_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cast_18.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/exo/ExoMediaPlayerFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.exo; 2 | 3 | import android.content.Context; 4 | 5 | import xyz.doikki.videoplayer.player.PlayerFactory; 6 | 7 | public class ExoMediaPlayerFactory extends PlayerFactory { 8 | 9 | public static ExoMediaPlayerFactory create() { 10 | return new ExoMediaPlayerFactory(); 11 | } 12 | 13 | @Override 14 | public ExoMediaPlayer createPlayer(Context context) { 15 | return new ExoMediaPlayer(context); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_18.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/bean/AbsSortXml.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.bean; 2 | 3 | import com.thoughtworks.xstream.annotations.XStreamAlias; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * @author pj567 10 | * @date :2020/12/18 11 | * @description: 12 | */ 13 | @XStreamAlias("rss") 14 | public class AbsSortXml implements Serializable { 15 | @XStreamAlias("class") 16 | public MovieSort classes; 17 | 18 | @XStreamAlias("list") 19 | public Movie list; 20 | 21 | public List videoList; 22 | } -------------------------------------------------------------------------------- /TabLayout/src/main/java/com/angcyo/tablayout/ITabIndicatorDraw.kt: -------------------------------------------------------------------------------- 1 | package com.angcyo.tablayout 2 | 3 | import android.graphics.Canvas 4 | 5 | /** 6 | * 用来实现[DslTabIndicator]的自绘 7 | * Email:angcyo@126.com 8 | * @author angcyo 9 | * @date 2022/02/21 10 | * Copyright (c) 2020 ShenZhen Wayto Ltd. All rights reserved. 11 | */ 12 | interface ITabIndicatorDraw { 13 | 14 | /**绘制指示器 15 | * [positionOffset] 页面偏移量*/ 16 | fun onDrawTabIndicator( 17 | tabIndicator: DslTabIndicator, 18 | canvas: Canvas, 19 | positionOffset: Float 20 | ) 21 | 22 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_filter_list.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_48.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_setting_sort_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/player/ProgressManager.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.player; 2 | 3 | /** 4 | * 播放进度管理器,继承此接口实现自己的进度管理器。 5 | */ 6 | public abstract class ProgressManager { 7 | 8 | /** 9 | * 此方法用于实现保存进度的逻辑 10 | * @param url 播放地址 11 | * @param progress 播放进度 12 | */ 13 | public abstract void saveProgress(String url, long progress); 14 | 15 | /** 16 | * 此方法用于实现获取保存的进度的逻辑 17 | * @param url 播放地址 18 | * @return 保存的播放进度 19 | */ 20 | public abstract long getSavedProgress(String url); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_history_18.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_loading_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/preview_player_block.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_home_sort_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_user_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /quickjs/src/main/java/com/github/tvbox/quickjs/QuickJSException.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.quickjs; 2 | 3 | /** 4 | * Created by Harlon Wang on 2022/2/8. 5 | */ 6 | public class QuickJSException extends RuntimeException { 7 | 8 | private final boolean jsError; 9 | 10 | public QuickJSException(String message) { 11 | this(message, false); 12 | } 13 | 14 | public QuickJSException(String message, boolean jsError) { 15 | super(message); 16 | this.jsError = jsError; 17 | } 18 | 19 | public boolean isJSError() { 20 | return jsError; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/catvod/crawler/SpiderDebug.java: -------------------------------------------------------------------------------- 1 | package com.github.catvod.crawler; 2 | 3 | public class SpiderDebug { 4 | public static void log(Throwable th) { 5 | try { 6 | android.util.Log.d("SpiderLog", th.getMessage(), th); 7 | } catch (Throwable th1) { 8 | 9 | } 10 | } 11 | 12 | public static void log(String msg) { 13 | try { 14 | android.util.Log.d("SpiderLog", msg); 15 | } catch (Throwable th1) { 16 | 17 | } 18 | } 19 | 20 | public static String ec(int i) { 21 | return ""; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/bean/LiveDayListGroup.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.bean; 2 | 3 | public class LiveDayListGroup { 4 | private int groupIndex; 5 | private String groupName; 6 | 7 | 8 | public int getGroupIndex() { 9 | return groupIndex; 10 | } 11 | 12 | public void setGroupIndex(int groupIndex) { 13 | this.groupIndex = groupIndex; 14 | } 15 | 16 | public String getGroupName() { 17 | return groupName; 18 | } 19 | 20 | public void setGroupName(String groupName) { 21 | this.groupName = groupName; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TabLayout/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion 30 6 | 7 | defaultConfig { 8 | minSdkVersion 24 9 | targetSdkVersion 30 10 | 11 | consumerProguardFiles 'consumer-rules.pro' 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation 'androidx.core:core-ktx:1.3.1' 24 | } 25 | 26 | -------------------------------------------------------------------------------- /TabLayout/src/main/java/com/angcyo/tablayout/ViewPagerDelegate.kt: -------------------------------------------------------------------------------- 1 | package com.angcyo.tablayout 2 | 3 | /** 4 | * 不依赖ViewPager和ViewPager2 5 | * Email:angcyo@126.com 6 | * @author angcyo 7 | * @date 2019/12/14 8 | */ 9 | interface ViewPagerDelegate { 10 | companion object { 11 | const val SCROLL_STATE_IDLE = 0 12 | const val SCROLL_STATE_DRAGGING = 1 13 | const val SCROLL_STATE_SETTLING = 2 14 | } 15 | 16 | /**获取当前页面索引*/ 17 | fun onGetCurrentItem(): Int 18 | 19 | /**设置当前的页面*/ 20 | fun onSetCurrentItem(fromIndex: Int, toIndex: Int, reselect: Boolean, fromUser: Boolean) 21 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_bottom_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_progressbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_local_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/constant/Constants.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.constant; 2 | 3 | /** 4 | * @Author : Liu XiaoRan 5 | * @Email : 592923276@qq.com 6 | * @Date : on 2023/8/16 09:53. 7 | * @Description : 8 | */ 9 | public class Constants { 10 | 11 | /** 12 | * 画中画/后台服务 13 | */ 14 | public static final String BROADCAST_ACTION = "VOD_CONTROL"; 15 | public static final int BROADCAST_ACTION_PREV = 0; 16 | public static final int BROADCAST_ACTION_PLAYPAUSE = 1; 17 | public static final int BROADCAST_ACTION_NEXT = 2; 18 | public static final int BROADCAST_ACTION_CLOSE = 3; 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/player/render/SurfaceRenderViewFactory.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.player.render; 2 | 3 | import android.content.Context; 4 | 5 | import xyz.doikki.videoplayer.render.IRenderView; 6 | import xyz.doikki.videoplayer.render.RenderViewFactory; 7 | 8 | public class SurfaceRenderViewFactory extends RenderViewFactory { 9 | 10 | public static SurfaceRenderViewFactory create() { 11 | return new SurfaceRenderViewFactory(); 12 | } 13 | 14 | @Override 15 | public IRenderView createRenderView(Context context) { 16 | return new SurfaceRenderView(context); 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/event/ServerEvent.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.event; 2 | 3 | /** 4 | * @author pj567 5 | * @date :2021/1/5 6 | * @description: 7 | */ 8 | public class ServerEvent { 9 | public static final int SERVER_SUCCESS = 0; 10 | public static final int SERVER_CONNECTION = 1; 11 | public static final int SERVER_SEARCH = 2; 12 | public int type; 13 | public Object obj; 14 | 15 | public ServerEvent(int type) { 16 | this.type = type; 17 | } 18 | 19 | public ServerEvent(int type, Object obj) { 20 | this.type = type; 21 | this.obj = obj; 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_filter_color.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /player/src/main/java/xyz/doikki/videoplayer/player/AndroidMediaPlayerFactory.java: -------------------------------------------------------------------------------- 1 | package xyz.doikki.videoplayer.player; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * 创建{@link AndroidMediaPlayer}的工厂类,不推荐,系统的MediaPlayer兼容性较差,建议使用IjkPlayer或者ExoPlayer 7 | */ 8 | public class AndroidMediaPlayerFactory extends PlayerFactory { 9 | 10 | public static AndroidMediaPlayerFactory create() { 11 | return new AndroidMediaPlayerFactory(); 12 | } 13 | 14 | @Override 15 | public AndroidMediaPlayer createPlayer(Context context) { 16 | return new AndroidMediaPlayer(context); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/ui/adapter/PinyinAdapter.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.github.tvbox.osc.R; 6 | 7 | import java.util.ArrayList; 8 | 9 | public class PinyinAdapter extends BaseQuickAdapter { 10 | public PinyinAdapter() { 11 | super(R.layout.item_search_word_hot, new ArrayList<>()); 12 | } 13 | 14 | @Override 15 | protected void convert(BaseViewHolder helper, String item) { 16 | helper.setText(R.id.tvSearchWord, item); 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/util/HistoryHelper.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.util; 2 | 3 | public class HistoryHelper { 4 | private static Integer[] hisNumArray = {30,50,70}; 5 | 6 | public static final String getHistoryNumName(int index){ 7 | Integer value = getHisNum(index); 8 | return value + "条"; 9 | } 10 | 11 | public static final int getHisNum(int index){ 12 | Integer value = null; 13 | if(index>=0 && index < hisNumArray.length){ 14 | value = hisNumArray[index]; 15 | }else{ 16 | value = hisNumArray[0]; 17 | } 18 | return value; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_search_word_split.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_circle.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_play_parse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | -------------------------------------------------------------------------------- /crash/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/ui/adapter/GridFilterKVAdapter.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.github.tvbox.osc.R; 6 | 7 | import java.util.ArrayList; 8 | 9 | public class GridFilterKVAdapter extends BaseQuickAdapter { 10 | public GridFilterKVAdapter() { 11 | super(R.layout.item_grid_filter_value, new ArrayList<>()); 12 | } 13 | 14 | @Override 15 | protected void convert(BaseViewHolder helper, String item) { 16 | helper.setText(R.id.filterValue, item); 17 | } 18 | } -------------------------------------------------------------------------------- /quickjs/src/main/java/com/github/tvbox/quickjs/JSArray.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.quickjs; 2 | 3 | public class JSArray extends JSObject { 4 | 5 | public JSArray(QuickJSContext context, long pointer) { 6 | super(context, pointer); 7 | } 8 | 9 | public int length() { 10 | checkReleased(); 11 | return getContext().length(this); 12 | } 13 | 14 | public Object get(int index) { 15 | checkReleased(); 16 | return getContext().get(this, index); 17 | } 18 | 19 | public void set(Object value, int index) { 20 | checkReleased(); 21 | getContext().set(this, value, index); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/indicator_flash.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_source_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/bean/IpScanningVo.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.bean; 2 | 3 | public class IpScanningVo { 4 | 5 | private String hostName; 6 | private String ip; 7 | 8 | public IpScanningVo(String hostName, String ip) { 9 | this.hostName = hostName; 10 | this.ip = ip; 11 | } 12 | 13 | public String getHostName() { 14 | return hostName; 15 | } 16 | 17 | public void setHostName(String hostName) { 18 | this.hostName = hostName; 19 | } 20 | 21 | public String getIp() { 22 | return ip; 23 | } 24 | 25 | public void setIp(String ip) { 26 | this.ip = ip; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_focused.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_collect_48.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_source_series_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-v29/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_detail_collect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_detail_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_detail_sort.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_detail_quick_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_player_control_vod_seek_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | 13 | 14 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/util/ScreenUtils.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.util; 2 | 3 | import android.app.Activity; 4 | import android.util.DisplayMetrics; 5 | import android.view.WindowManager; 6 | 7 | public class ScreenUtils { 8 | 9 | public static double getSqrt(Activity activity) { 10 | WindowManager wm = activity.getWindowManager(); 11 | DisplayMetrics dm = new DisplayMetrics(); 12 | wm.getDefaultDisplay().getMetrics(dm); 13 | double x = Math.pow(dm.widthPixels / dm.xdpi, 2); 14 | double y = Math.pow(dm.heightPixels / dm.ydpi, 2); 15 | double screenInches = Math.sqrt(x + y);// 屏幕尺寸 16 | return screenInches; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_setting_model_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_about_48.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_source_flag_focus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/ui/adapter/TitleWithDelAdapter.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.github.tvbox.osc.R; 6 | 7 | import java.util.ArrayList; 8 | 9 | public class TitleWithDelAdapter extends BaseQuickAdapter { 10 | public TitleWithDelAdapter() { 11 | super(R.layout.item_stroke_button, new ArrayList<>()); 12 | } 13 | 14 | @Override 15 | protected void convert(BaseViewHolder helper, String item) { 16 | helper.setText(R.id.tvName, item); 17 | helper.addOnClickListener(R.id.tvName,R.id.tvDel); 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_search_uggestions.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_quick_search_lite.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_r_common_solid_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_setting_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/github/tvbox/osc/ui/adapter/SearchWordAdapter.java: -------------------------------------------------------------------------------- 1 | package com.github.tvbox.osc.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.github.tvbox.osc.R; 6 | 7 | import java.util.ArrayList; 8 | 9 | /** 10 | * @author pj567 11 | * @date :2020/12/23 12 | * @description: 13 | */ 14 | public class SearchWordAdapter extends BaseQuickAdapter { 15 | public SearchWordAdapter() { 16 | super(R.layout.item_search_word_hot, new ArrayList<>()); 17 | } 18 | 19 | @Override 20 | protected void convert(BaseViewHolder helper, String item) { 21 | helper.setText(R.id.tvSearchWord, item); 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/loadsir_loading_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /player/src/main/res/layout/ijk_demo_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 |