├── app
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── drawable
│ │ │ │ ├── me.png
│ │ │ │ ├── find.png
│ │ │ │ ├── main.png
│ │ │ │ ├── sale.png
│ │ │ │ ├── search.png
│ │ │ │ ├── game_icon.png
│ │ │ │ ├── encrypt_icon.png
│ │ │ │ ├── find_selected.png
│ │ │ │ ├── main_selected.png
│ │ │ │ ├── me_selected.png
│ │ │ │ ├── sale_selected.png
│ │ │ │ ├── search_selected.png
│ │ │ │ ├── default_head_image.jpg
│ │ │ │ ├── ic_image_loading.jpg
│ │ │ │ ├── tab_selector_color.xml
│ │ │ │ └── main_func_selector.xml
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── me.png
│ │ │ │ ├── back.png
│ │ │ │ ├── find.png
│ │ │ │ ├── main.png
│ │ │ │ ├── sale.png
│ │ │ │ ├── share.png
│ │ │ │ ├── banner.png
│ │ │ │ ├── menu_dm.png
│ │ │ │ ├── menu_tv.png
│ │ │ │ ├── menu_zy.png
│ │ │ │ ├── poster.png
│ │ │ │ ├── search.png
│ │ │ │ ├── game_icon.png
│ │ │ │ ├── menu_film.png
│ │ │ │ ├── menu_funny.png
│ │ │ │ ├── menu_live.png
│ │ │ │ ├── reco_ico.png
│ │ │ │ ├── encrypt_icon.png
│ │ │ │ ├── home_message.png
│ │ │ │ ├── me_selected.png
│ │ │ │ ├── refresh_end.png
│ │ │ │ ├── search_film.png
│ │ │ │ ├── expend_bottom.png
│ │ │ │ ├── find_selected.png
│ │ │ │ ├── main_selected.png
│ │ │ │ ├── sale_selected.png
│ │ │ │ ├── search_selected.png
│ │ │ │ ├── me_selector.xml
│ │ │ │ ├── find_selector.xml
│ │ │ │ ├── main_selector.xml
│ │ │ │ └── search_selector.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
│ │ │ ├── layout
│ │ │ │ ├── irecyclerview_load_more_footer.xml
│ │ │ │ ├── irecyclerview_refresh_header.xml
│ │ │ │ ├── irecyclerview_load_more_footer_loading_view.xml
│ │ │ │ ├── irecyclerview_load_more_footer_error_view.xml
│ │ │ │ ├── irecyclerview_load_more_footer_the_end_view.xml
│ │ │ │ ├── item_tv_type.xml
│ │ │ │ ├── item_main_banner.xml
│ │ │ │ ├── item_tv_area.xml
│ │ │ │ ├── item_tv_episode.xml
│ │ │ │ ├── irecyclerview_load_more_footer_view.xml
│ │ │ │ ├── activity_web_play.xml
│ │ │ │ ├── fragment_main.xml
│ │ │ │ ├── fragment_episode.xml
│ │ │ │ ├── fragment_film.xml
│ │ │ │ ├── item_main_title.xml
│ │ │ │ ├── irecyclerview_refresh_header_view.xml
│ │ │ │ ├── activity_film.xml
│ │ │ │ ├── item_variety_main.xml
│ │ │ │ ├── activity_live.xml
│ │ │ │ ├── item_main_movie.xml
│ │ │ │ ├── fragment_sale.xml
│ │ │ │ ├── item_tv_main.xml
│ │ │ │ ├── activity_variety.xml
│ │ │ │ ├── fragment_search.xml
│ │ │ │ ├── activity_tv.xml
│ │ │ │ ├── fragment_me.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── item_main_fun.xml
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ ├── anim
│ │ │ │ ├── rotate_up.xml
│ │ │ │ └── rotate_down.xml
│ │ │ ├── values-w820dp
│ │ │ │ └── dimens.xml
│ │ │ ├── menu
│ │ │ │ └── menu_main.xml
│ │ │ └── values-v21
│ │ │ │ └── styles.xml
│ │ ├── jniLibs
│ │ │ ├── x86
│ │ │ │ └── liblbs.so
│ │ │ └── armeabi
│ │ │ │ └── liblbs.so
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── andy
│ │ │ │ └── free
│ │ │ │ ├── utils
│ │ │ │ ├── WebViewJavaScriptFunction.java
│ │ │ │ ├── ConstantUtil.java
│ │ │ │ ├── GlideRoundTransformUtil.java
│ │ │ │ └── ImageLoaderUtils.java
│ │ │ │ ├── VarietyDetailActivity.java
│ │ │ │ ├── adapter
│ │ │ │ ├── TvAreaRecyclerViewAdapter.java
│ │ │ │ ├── TvTypeRecyclerViewAdapter.java
│ │ │ │ ├── MainViewPagerAdapter.java
│ │ │ │ ├── TvDetailFragmentAdapter.java
│ │ │ │ ├── EpisodeFragmentAdapter.java
│ │ │ │ ├── VarietyRecyclerViewAdapter.java
│ │ │ │ ├── TvContentRecyclerViewAdapter.java
│ │ │ │ └── FilmFragmentAdapter.java
│ │ │ │ ├── fragment
│ │ │ │ ├── SaleFragment.java
│ │ │ │ ├── EpisodeFragment.java
│ │ │ │ ├── MeFragment.java
│ │ │ │ ├── SearchFragment.java
│ │ │ │ └── MainFragment.java
│ │ │ │ ├── service
│ │ │ │ └── PreLoadX5Service.java
│ │ │ │ ├── app
│ │ │ │ └── BaseApplication.java
│ │ │ │ ├── widget
│ │ │ │ ├── LoadMoreFooterView.java
│ │ │ │ ├── ClassicRefreshHeaderView.java
│ │ │ │ └── NestedScrollWebView.java
│ │ │ │ ├── bean
│ │ │ │ ├── Movie.java
│ │ │ │ ├── Variety.java
│ │ │ │ ├── TvSeries.java
│ │ │ │ └── FullMovie.java
│ │ │ │ ├── FilmActivity.java
│ │ │ │ ├── Jsoup
│ │ │ │ ├── IqiyiJsoupThread.java
│ │ │ │ ├── TvDetailJsoup.java
│ │ │ │ └── VarietyJsoup.java
│ │ │ │ ├── x5
│ │ │ │ └── X5WebView.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── LiveActivity.java
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── andy
│ │ │ └── free
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── andy
│ │ └── free
│ │ └── ExampleInstrumentedTest.java
├── libs
│ └── tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025.jar
├── proguard-rules.pro
└── build.gradle
├── settings.gradle
├── app-debug.apk
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .idea
├── copyright
│ └── profiles_settings.xml
├── dictionaries
│ └── Administrator.xml
├── markdown-navigator
│ └── profiles_settings.xml
├── vcs.xml
├── inspectionProfiles
│ ├── profiles_settings.xml
│ └── Project_Default.xml
├── modules.xml
├── runConfigurations.xml
├── compiler.xml
└── gradle.xml
├── .gitignore
├── gradle.properties
├── README.md
├── gradlew.bat
└── gradlew
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/app-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app-debug.apk
--------------------------------------------------------------------------------
/app/src/main/res/drawable/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/me.png
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86/liblbs.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/jniLibs/x86/liblbs.so
--------------------------------------------------------------------------------
/app/src/main/res/drawable/find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/find.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/main.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/sale.png
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi/liblbs.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/jniLibs/armeabi/liblbs.so
--------------------------------------------------------------------------------
/app/src/main/res/drawable/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/me.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/game_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/game_icon.png
--------------------------------------------------------------------------------
/.idea/dictionaries/Administrator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/find.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/main.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/sale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/sale.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/share.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/encrypt_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/encrypt_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/find_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/find_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/main_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/me_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/me_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sale_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/sale_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/banner.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_dm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_dm.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_tv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_tv.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_zy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_zy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/poster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/poster.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/search_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/search_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/game_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/game_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_film.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_film.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_funny.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_funny.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/menu_live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/menu_live.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/reco_ico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/reco_ico.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/default_head_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/default_head_image.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_image_loading.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable/ic_image_loading.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/encrypt_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/encrypt_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/home_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/home_message.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/me_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/me_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/refresh_end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/refresh_end.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/search_film.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/search_film.png
--------------------------------------------------------------------------------
/.idea/markdown-navigator/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/expend_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/expend_bottom.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/find_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/find_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/main_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/main_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/sale_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/sale_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/search_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/src/main/res/drawable-xxxhdpi/search_selected.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/libs/tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elimy/starCinema/HEAD/app/libs/tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025.jar
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/utils/WebViewJavaScriptFunction.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.utils;
2 |
3 | /**
4 | * Created by Administrator on 2017/10/14.
5 | */
6 |
7 | public interface WebViewJavaScriptFunction {
8 | void onJsFunctionCalled(String tag);
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_load_more_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tab_selector_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 星空影院
3 | Settings
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main_func_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_refresh_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/me_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/find_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/main_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/search_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_load_more_footer_loading_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_load_more_footer_error_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_load_more_footer_the_end_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/rotate_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_tv_type.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/app/src/test/java/com/andy/free/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.andy.free;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/VarietyDetailActivity.java:
--------------------------------------------------------------------------------
1 | package com.andy.free;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v7.app.AppCompatActivity;
6 |
7 | /**
8 | * Created by Andy Lau on 2017/11/13.
9 | */
10 |
11 | public class VarietyDetailActivity extends AppCompatActivity {
12 |
13 | @Override
14 | protected void onCreate(@Nullable Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 |
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/utils/ConstantUtil.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.utils;
2 |
3 | import android.support.annotation.NonNull;
4 |
5 | import java.util.Collection;
6 | import java.util.Map;
7 | import java.util.Set;
8 |
9 | /**
10 | * Created by Administrator on 2017/10/20.
11 | */
12 |
13 | public class ConstantUtil {
14 |
15 | public static final String BASE_URL="http://api.baiyug.cn/vip/index.php?url=";
16 | public static final String MOVIE_BASE_2345_URL="http://dianying.2345.com/list/";
17 |
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_main_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #345784
4 | #345784
5 | #345784
6 | #000
7 | #fff
8 | #eeeeee
9 | #ff1744
10 | #515151
11 | #345784
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_tv_area.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_tv_episode.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_load_more_footer_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
12 |
13 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/adapter/TvAreaRecyclerViewAdapter.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.adapter;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.ViewGroup;
5 |
6 | /**
7 | * Created by Administrator on 2017/11/2.
8 | */
9 | public class TvAreaRecyclerViewAdapter extends RecyclerView.Adapter {
10 | @Override
11 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
12 | return null;
13 | }
14 |
15 | @Override
16 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
17 |
18 | }
19 |
20 | @Override
21 | public int getItemCount() {
22 | return 0;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/adapter/TvTypeRecyclerViewAdapter.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.adapter;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.ViewGroup;
5 |
6 | /**
7 | * Created by Administrator on 2017/11/2.
8 | */
9 | public class TvTypeRecyclerViewAdapter extends RecyclerView.Adapter {
10 | @Override
11 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
12 | return null;
13 | }
14 |
15 | @Override
16 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
17 |
18 | }
19 |
20 | @Override
21 | public int getItemCount() {
22 | return 0;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_web_play.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\AndroidStudio\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/rotate_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_episode.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
20 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_film.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/fragment/SaleFragment.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v4.app.Fragment;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 |
10 | import com.andy.free.R;
11 |
12 | /**
13 | * Created by Administrator on 2017/10/18.
14 | */
15 |
16 | public class SaleFragment extends Fragment {
17 | @Override
18 | public void onCreate(@Nullable Bundle savedInstanceState) {
19 | super.onCreate(savedInstanceState);
20 | }
21 |
22 | @Nullable
23 | @Override
24 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
25 | return inflater.inflate(R.layout.fragment_sale,null);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/andy/free/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.andy.free;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.andy.free", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_main_title.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
16 |
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/adapter/MainViewPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.adapter;
2 |
3 | import android.support.v4.app.Fragment;
4 | import android.support.v4.app.FragmentManager;
5 | import android.support.v4.app.FragmentPagerAdapter;
6 |
7 | import java.util.ArrayList;
8 |
9 | /**
10 | * Created by Administrator on 2017/10/18.
11 | */
12 |
13 | public class MainViewPagerAdapter extends FragmentPagerAdapter {
14 |
15 | private ArrayList fragments;
16 |
17 | public MainViewPagerAdapter(FragmentManager fm) {
18 | super(fm);
19 | }
20 |
21 | public MainViewPagerAdapter(FragmentManager fm, ArrayList fragments) {
22 | super(fm);
23 | this.fragments = fragments;
24 | }
25 |
26 | @Override
27 | public Fragment getItem(int position) {
28 | return fragments.get(position);
29 | }
30 |
31 | @Override
32 | public int getCount() {
33 | return fragments.size();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/adapter/TvDetailFragmentAdapter.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.adapter;
2 |
3 | import android.support.v4.app.Fragment;
4 | import android.support.v4.app.FragmentManager;
5 | import android.support.v4.app.FragmentPagerAdapter;
6 |
7 | import java.util.ArrayList;
8 |
9 | /**
10 | * Created by Andy Lau on 2017/11/9.
11 | */
12 |
13 | public class TvDetailFragmentAdapter extends FragmentPagerAdapter {
14 |
15 | private ArrayList fragments;
16 | private String[] tabs;
17 |
18 | public TvDetailFragmentAdapter(FragmentManager fm) {
19 | super(fm);
20 | }
21 |
22 | public TvDetailFragmentAdapter(FragmentManager fm, ArrayList fragments,String[] tabs) {
23 | super(fm);
24 | this.fragments = fragments;
25 | this.tabs=tabs;
26 | }
27 |
28 | @Override
29 | public Fragment getItem(int position) {
30 | return fragments.get(position);
31 | }
32 |
33 | @Override
34 | public int getCount() {
35 | return fragments.size();
36 | }
37 |
38 | @Override
39 | public CharSequence getPageTitle(int position) {
40 | return tabs[position];
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | #功能介绍
2 | 1.全网VIP视频免广告播放
3 | 2.全网电视剧免广告播放
4 | 3.视频互动直播,支持打赏
5 | 4.支持视频地址输入直接播放
6 |
7 | #待完善功能
8 | 1.登录/注册功能
9 | 2.视频播放历史记录功能
10 | 3.其他更多...
11 |
12 | #开源第三方库
13 |
14 | ` compile 'com.android.support:appcompat-v7:25.3.1'
15 | compile 'com.android.support:design:25.3.1'
16 | testCompile 'junit:junit:4.12'
17 | compile 'com.android.support:percent:25.3.1'
18 | compile 'com.android.support:cardview-v7:25.3.1'
19 | compile 'com.android.support:recyclerview-v7:25.3.1'
20 | /*一个炫酷的RecyclerView*/
21 | compile 'com.github.Aspsine:IRecyclerView:0.0.5'
22 | //视图绑定 butterknife
23 | compile 'com.jakewharton:butterknife:8.4.0'
24 | apt 'com.jakewharton:butterknife-compiler:8.4.0'
25 | //漂亮的弹框
26 | compile 'cn.pedant.sweetalert:library:1.3'
27 | //jsoup解析html
28 | compile 'org.jsoup:jsoup:1.9.2'
29 | //自动轮播
30 | compile 'com.youth.banner:banner:1.4.9'
31 | //图片加载
32 | compile 'com.github.bumptech.glide:glide:3.7.0'
33 | //FlycoTabLayout
34 | compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
35 | compile files('libs/tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025.jar')`
36 |
37 | #声明
38 |
39 | 该作品属于个人开发作品,仅做学习交流使用。诸位勿传播于非技术人员,拒绝用于商业用途,数据均属于非正常渠道获取,原作公司拥有所有权利。
40 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/irecyclerview_refresh_header_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
13 |
14 |
22 |
23 |
31 |
32 |
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/service/PreLoadX5Service.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.service;
2 |
3 | import android.app.Service;
4 | import android.content.Intent;
5 | import android.os.IBinder;
6 | import android.support.annotation.Nullable;
7 | import android.util.Log;
8 |
9 | import com.andy.free.X5PlayWebActivity;
10 | import com.andy.free.x5.X5WebView;
11 | import com.tencent.smtt.sdk.QbSdk;
12 |
13 | /**
14 | * Created by Andy Lau on 2017/10/27.
15 | */
16 |
17 | public class PreLoadX5Service extends Service {
18 |
19 | /*
20 | * 初始化回调
21 | * */
22 | QbSdk.PreInitCallback cb=new QbSdk.PreInitCallback() {
23 | @Override
24 | public void onCoreInitFinished() {
25 | Log.d("PreLoadX5Service","x5 core init Finished!");
26 | }
27 |
28 | @Override
29 | public void onViewInitFinished(boolean b) {
30 | Log.d("PreLoadX5Service","view init Finished "+b+"!");
31 | }
32 | };
33 |
34 | @Nullable
35 | @Override
36 | public IBinder onBind(Intent intent) {
37 | return null;
38 | }
39 |
40 | @Override
41 | public void onCreate() {
42 | super.onCreate();
43 |
44 | initX5();
45 | preInitX5WebCore();
46 | }
47 |
48 |
49 |
50 | /*
51 | * 预加载一次X5核心
52 | * */
53 | private void preInitX5WebCore() {
54 |
55 | if (!QbSdk.isTbsCoreInited()){
56 | QbSdk.preInit(getApplicationContext(),cb);
57 | }
58 | }
59 |
60 | private void initX5() {
61 | QbSdk.initX5Environment(getApplicationContext(),cb);
62 | }
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/app/BaseApplication.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.app;
2 |
3 | import android.app.Application;
4 | import android.content.Intent;
5 | import android.util.Log;
6 |
7 | import com.andy.free.service.PreLoadX5Service;
8 | import com.tencent.smtt.sdk.QbSdk;
9 | import com.tencent.smtt.sdk.TbsDownloader;
10 | import com.tencent.smtt.sdk.TbsListener;
11 |
12 | /**
13 | * Created by Administrator on 2017/10/14.
14 | */
15 |
16 | public class BaseApplication extends Application {
17 | @Override
18 | public void onCreate() {
19 |
20 | initX5c();
21 | }
22 |
23 | private void initX5() {
24 |
25 | Intent intent=new Intent(this,PreLoadX5Service.class);
26 | startService(intent);
27 | }
28 | private void initX5c(){
29 |
30 | QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
31 |
32 | @Override
33 | public void onViewInitFinished(boolean arg0) {
34 | //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
35 | Log.d("initX5c", " onViewInitFinished is " + arg0);
36 | }
37 |
38 | @Override
39 | public void onCoreInitFinished() {
40 | }
41 | };
42 |
43 | QbSdk.setTbsListener(
44 | new TbsListener() {
45 | @Override
46 | public void onDownloadFinish(int i) {
47 | Log.d("initX5c", "onDownloadFinish");
48 | }
49 | @Override
50 | public void onInstallFinish(int i) {
51 | Log.d("initX5c", "onInstallFinish");
52 | }
53 | @Override
54 | public void onDownloadProgress(int i) {
55 | Log.d("initX5c", "onDownloadProgress:" + i);
56 | }
57 | });
58 |
59 | if (!QbSdk.isTbsCoreInited()){
60 | QbSdk.preInit(getApplicationContext(),cb);
61 | }
62 |
63 | //x5内核初始化接口
64 | QbSdk.initX5Environment(getApplicationContext(), cb);
65 |
66 |
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply plugin: 'com.neenbedankt.android-apt'
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "26.0.1"
6 | defaultConfig {
7 | applicationId "com.andy.free"
8 | minSdkVersion 14
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 |
14 | //支持各类CPU
15 | ndk {
16 | abiFilters"armeabi","armeabi-v7a","x86","mips"
17 | }
18 | }
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 |
26 | //自动生成jniLibs包
27 | /* sourceSets{
28 | main{
29 | jniLibs.srcDirs=['libs']
30 | }
31 | }*/
32 | }
33 |
34 | dependencies {
35 | compile fileTree(include: ['*.jar'], dir: 'libs')
36 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
37 | exclude group: 'com.android.support', module: 'support-annotations'
38 | })
39 | compile 'com.android.support:appcompat-v7:25.3.1'
40 | compile 'com.android.support:design:25.3.1'
41 | testCompile 'junit:junit:4.12'
42 | compile 'com.android.support:percent:25.3.1'
43 | compile 'com.android.support:cardview-v7:25.3.1'
44 | compile 'com.android.support:recyclerview-v7:25.3.1'
45 | /*一个炫酷的RecyclerView*/
46 | compile 'com.github.Aspsine:IRecyclerView:0.0.5'
47 | //视图绑定 butterknife
48 | compile 'com.jakewharton:butterknife:8.4.0'
49 | apt 'com.jakewharton:butterknife-compiler:8.4.0'
50 | //漂亮的弹框
51 | compile 'cn.pedant.sweetalert:library:1.3'
52 | //jsoup解析html
53 | compile 'org.jsoup:jsoup:1.9.2'
54 | //自动轮播
55 | compile 'com.youth.banner:banner:1.4.9'
56 | //图片加载
57 | compile 'com.github.bumptech.glide:glide:3.7.0'
58 | //FlycoTabLayout
59 | compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
60 | compile files('libs/tbs_sdk_thirdapp_v3.5.0.1004_43500_sharewithdownload_withoutGame_obfs_20170801_113025.jar')
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/utils/GlideRoundTransformUtil.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.utils;
2 |
3 |
4 |
5 | import android.content.Context;
6 | import android.graphics.Bitmap;
7 | import android.graphics.BitmapShader;
8 | import android.graphics.Canvas;
9 | import android.graphics.Paint;
10 |
11 | import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
12 | import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
13 |
14 | /**
15 | * Created by Andy Lau on 2017/8/14.
16 | * description:glide转换圆角图片
17 | */
18 | public class GlideRoundTransformUtil extends BitmapTransformation {
19 | public GlideRoundTransformUtil(Context context) {
20 | super(context);
21 | }
22 |
23 | @Override
24 | protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
25 | return circleCrop(pool, toTransform);
26 | }
27 |
28 | private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
29 | if (source == null) return null;
30 |
31 | //去最小的边
32 | int size = Math.min(source.getWidth(), source.getHeight());
33 | //设置中心点
34 | int x = (source.getWidth() - size) / 2;
35 | int y = (source.getHeight() - size) / 2;
36 |
37 | // 创建最小边的正方形
38 | Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
39 |
40 | Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
41 | if (result == null) {
42 | result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
43 | }
44 |
45 | //创建画布
46 | Canvas canvas = new Canvas(result);
47 |
48 | //设置画笔
49 | Paint paint = new Paint();
50 | //CLAMP : 如果渲染器超出原始边界范围,会复制范围内边缘染色
51 | //REPEAT :横向和纵向的重复渲染器图片,平铺。
52 | //MIRROR :横向和纵向的重复渲染器图片,这个和REPEAT 重复方式不一样,他是以镜像方式平铺
53 | paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
54 | paint.setAntiAlias(true);
55 | float r = size / 2f;
56 | canvas.drawCircle(r, r, r, paint);
57 | return result;
58 | }
59 |
60 | @Override
61 | public String getId() {
62 | return getClass().getName();
63 | }
64 | }
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_film.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
22 |
23 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_variety_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
19 |
20 |
26 |
36 |
37 |
38 |
39 |
50 |
61 |
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/fragment/EpisodeFragment.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.fragment;
2 |
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 | import android.support.annotation.Nullable;
6 | import android.support.v4.app.Fragment;
7 | import android.support.v7.widget.StaggeredGridLayoutManager;
8 | import android.util.Log;
9 | import android.view.LayoutInflater;
10 | import android.view.View;
11 | import android.view.ViewGroup;
12 | import android.widget.Toast;
13 |
14 | import com.andy.free.R;
15 | import com.andy.free.X5PlayWebActivity;
16 | import com.andy.free.adapter.EpisodeFragmentAdapter;
17 | import com.andy.free.bean.TvSeries;
18 | import com.andy.free.utils.ConstantUtil;
19 | import com.aspsine.irecyclerview.IRecyclerView;
20 |
21 | /**
22 | * Created by Administrator on 2017/11/9.
23 | */
24 |
25 | public class EpisodeFragment extends Fragment {
26 |
27 | private TvSeries series;
28 | private View rootView;
29 | private IRecyclerView mIRecyclerView;
30 | private EpisodeFragmentAdapter episodeAdapter;
31 |
32 | public EpisodeFragment() {
33 | }
34 |
35 | public EpisodeFragment(TvSeries series) {
36 | this.series = series;
37 | }
38 |
39 | @Nullable
40 | @Override
41 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
42 |
43 | if (null==rootView){
44 | rootView=inflater.inflate(R.layout.fragment_episode,container,false);
45 | }
46 |
47 | mIRecyclerView= (IRecyclerView) rootView.findViewById(R.id.eqisode_recyclerView);
48 |
49 | initRecyclerView();
50 |
51 | return rootView;
52 | }
53 |
54 | private void initRecyclerView() {
55 |
56 | episodeAdapter=new EpisodeFragmentAdapter(getActivity(),series.getPlayNumAndUrls());
57 | mIRecyclerView.setIAdapter(episodeAdapter);
58 |
59 | //设置剧集点击监听
60 | episodeAdapter.setOnItemClickListener(new EpisodeFragmentAdapter.onItemClickListener() {
61 | @Override
62 | public void onItemClick(int pos, String playUrl) {
63 |
64 | Intent intent=new Intent(getActivity(), X5PlayWebActivity.class);
65 | intent.putExtra("trueUrl",ConstantUtil.BASE_URL+playUrl);
66 | startActivity(intent);
67 |
68 | Log.d("trueUrl",ConstantUtil.BASE_URL+playUrl);
69 | }
70 | });
71 |
72 | StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(5,StaggeredGridLayoutManager.VERTICAL);
73 | mIRecyclerView.setLayoutManager(manager);
74 |
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_live.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
22 |
26 |
27 |
36 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_main_movie.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
14 |
17 |
23 |
35 |
36 |
37 |
38 |
39 |
50 |
60 |
--------------------------------------------------------------------------------
/app/src/main/java/com/andy/free/adapter/EpisodeFragmentAdapter.java:
--------------------------------------------------------------------------------
1 | package com.andy.free.adapter;
2 |
3 | import android.content.Context;
4 | import android.support.v4.app.Fragment;
5 | import android.support.v4.app.FragmentManager;
6 | import android.support.v4.app.FragmentPagerAdapter;
7 | import android.support.v7.widget.RecyclerView;
8 | import android.util.Log;
9 | import android.view.LayoutInflater;
10 | import android.view.View;
11 | import android.view.ViewGroup;
12 | import android.widget.Button;
13 |
14 | import com.andy.free.R;
15 |
16 | import java.util.ArrayList;
17 | import java.util.Map;
18 |
19 | /**
20 | * Created by Administrator on 2017/11/9.
21 | */
22 |
23 | public class EpisodeFragmentAdapter extends RecyclerView.Adapter{
24 |
25 | private Context context;
26 | private ArrayList