admin
2021-08-27 799b8662790850240bc6e7e6d16241c1a8869a3d
穿山甲广告SDK更新,64位处理器兼容
28个文件已删除
63个文件已修改
1255 ■■■■ 已修改文件
BuWanVideo/AndroidManifest.xml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/build.gradle 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/Xg_sdk_v2.46_20160602_1638.jar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libDecRes_sdk.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libMMANDKSignature.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libSHMoblieUgcodeJni.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libbreakpad_util_jni.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libmeet.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libsecurities_sdk.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libtpnsSecurity.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi-v7a/libxguardian.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libDecRes_sdk.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libMMANDKSignature.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libSHMoblieUgcodeJni.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libbreakpad_util_jni.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libfsp2p.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libmeet.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libsecurities_sdk.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libtpnsSecurity.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/armeabi/libxguardian.so 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/open_ad_sdk.aar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/act_login.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/activity_register.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_exit.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/search_actvity.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiMessageHandler.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoAPI.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/VideoDetailAdInfoVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/service/DownLoadFileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashAdActivity.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/UserProtocolDialog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsReviewPopupWindow.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MineFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/IQYVideoFragment.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailFragment.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment2.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment3.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment4.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoReviewFragment.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoReviewPopupWindow.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/CommentMessageAdapter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SettingsActivity.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/XGPush.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/CSJConstant.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/FullVideoAdManager.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/RewardVideoAdManager.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/browser/BaseBWJavaInterface.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/downutil/DownLoadApks.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build.gradle 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-APPUpdate/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-APPUpdate/src/com/yeshi/appupdate/AppUpdate.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-APPUpdate/src/com/yeshi/appupdate/GoReview.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-DownloadProvider/src/com/mozillaonline/providers/downloads/DownloadReceiver.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-EventBus/src/de/greenrobot/event/util/AsyncExecutor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-EventBus/src/de/greenrobot/event/util/ErrorDialogConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-EventBus/src/de/greenrobot/event/util/ErrorDialogFragments.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-EventBus/src/de/greenrobot/event/util/ErrorDialogManager.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-EventBus/src/de/greenrobot/event/util/ExceptionToResourceMapping.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/build.gradle 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-asms-armeabi-v1.1.3.aar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-common-9.2.4.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-share-QQ-full-7.1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-share-core-7.1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-share-sina-full-7.1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-share-wechat-full-7.1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-SocialSdk/libs/umeng-sharetool-7.1.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-VideoPlayer/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-VideoPlayer/src/main/java/com/yeshi/video/player/common/VideoPlayerController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/build.gradle 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/src/com/lcjian/library/dialog/DialogUtil.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-common/src/com/lcjian/library/util/common/SoftKeyboardUtils.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-push/build.gradle 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-push/src/main/java/com/yeshi/push/PushUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
settings.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/AndroidManifest.xml
@@ -263,6 +263,7 @@
            android:exported="false"
            android:launchMode="singleTop"
            android:screenOrientation="behind" />
        <activity
            android:name="com.cmic.sso.sdk.activity.LoginAuthActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
@@ -307,7 +308,7 @@
            android:value="570f28a578d6e12cba6f7f200b8d1c83"></meta-data>
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="huawei"></meta-data>
            android:value="QQ"></meta-data>
        <provider
@@ -346,72 +347,6 @@
            </intent-filter>
        </receiver>
        <!-- 【必须】 信鸽receiver广播接收 -->
        <receiver
            android:name="com.tencent.android.tpush.XGPushReceiver"
            android:process=":xg_service_v2">
            <intent-filter android:priority="0x7fffffff">
                <!-- 【必须】 信鸽SDK的内部广播 -->
                <action android:name="com.tencent.android.tpush.action.SDK" />
                <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
                <!-- 【必须】 系统广播:开屏和网络切换 -->
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service -->
                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.weikou.beibeivideo.BeibeiMessageHandler"
            android:exported="true">
            <intent-filter>
                <!-- 接收消息透传 -->
                <action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />
                <!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 -->
                <action android:name="com.tencent.android.tpush.action.FEEDBACK" />
            </intent-filter>
        </receiver>
        <!-- 【必须】 (2.30及以上版新增)展示通知的activity -->
        <!-- 【注意】 如果被打开的activity是启动模式为SingleTop,SingleTask或SingleInstance,请根据通知的异常自查列表第8点处理-->
        <activity
            android:name="com.tencent.android.tpush.XGPushActivity"
            android:exported="false">
            <intent-filter>
                <!-- 若使用AndroidStudio,请设置android:name="android.intent.action"-->
                <action android:name="android.intent.action" />
            </intent-filter>
        </activity>
        <!-- 【必须】 信鸽service -->
        <service
            android:name="com.tencent.android.tpush.service.XGPushService"
            android:exported="true"
            android:persistent="true"
            android:process=":xg_service_v2" />
        <!-- 【必须】 通知service,此选项有助于提高抵达率 -->
        <service
            android:name="com.tencent.android.tpush.rpc.XGRemoteService"
            android:exported="true">
            <intent-filter>
                <action android:name="com.doudou.ysvideo.PUSH_ACTION" />
            </intent-filter>
        </service>
        <!-- 【必须】 请将YOUR_ACCESS_ID修改为APP的AccessId,“21”开头的10位数字,中间没空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_ID"
            android:value="2100218527" />
        <!-- 【必须】 请将YOUR_ACCESS_KEY修改为APP的AccessKey,“A”开头的12位字符串,中间没空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_KEY"
            android:value="A5H4W4C3RG8T" />
        <!--PPTV-->
        <!-- 必须配置action,否则无法跨进程启动 -->
        <!--<service android:name="com.pplive.sdk.PPTVSdkService">-->
@@ -437,7 +372,8 @@
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/gdt_file_path" />
                android:resource="@xml/gdt_file_path"
                tools:replace="android:resource" />
        </provider>
@@ -545,10 +481,9 @@
        <!-- 华为推送自动初始化 -->
        <meta-data
            android:name="push_kit_auto_init_enabled"
            android:value="true" />
            android:value="false" />
        <!-- 华为推送服务注册 -->
        <service android:name=".service.HWPushService">
            <intent-filter>
BuWanVideo/build.gradle
@@ -5,7 +5,6 @@
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation files('libs/jg_filter_sdk_1.1.jar')
    implementation files('libs/wup-1.0.0.E-SNAPSHOT.jar')
    implementation files('libs/Xg_sdk_v2.46_20160602_1638.jar')
    implementation files('libs/FunshionAD-1.3.16.aar')
//    implementation files('libs/FunshionBase-1.6.1.aar')
    implementation files('libs/FunshionBase-2.0.0.0.aar')
@@ -26,10 +25,11 @@
    implementation project(path: ':library-GDTSDK')
    implementation project(path: ':library-SocialSdk')
    implementation project(path: ':library-APPUpdate')
    //穿山甲广告
    implementation(name: 'open_ad_sdk', ext: 'aar')
    //阿里百川
    //穿山甲广告
    implementation files('libs/open_ad_sdk_3.9.0.2.aar')
    //阿里百川
    implementation files('libs/avmpaar3-5.4.36.aar')
    implementation files('libs/securitybodyaar3-5.4.99.aar')
    implementation files('libs/securityguardaar3-5.4.171.aar')
@@ -50,12 +50,14 @@
    implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.15@aar'
    implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.15@aar'
    implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.15@aar'
    implementation 'androidx.cardview:cardview:1.0.0'
    //权限请求
    implementation 'com.github.jokermonn:permissions4m:2.1.2-lib'
    implementation project(path: ':library-EventBus')
//    implementation project(path: ':library-EventBus')
    implementation project(path: ':library-VideoPlayer')
    implementation project(path: ':library-common')
    implementation project(path: ':library-push')
@@ -79,7 +81,7 @@
        }
    }
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 28
    compileSdkVersion 29
    buildToolsVersion '29.0.2'
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
@@ -96,13 +98,14 @@
    defaultConfig {
        applicationId "com.doudou.ysvideo"
        versionCode 114
        versionName "3.9.5"
        versionCode 118
        versionName "3.9.9"
        multiDexEnabled = true
        minSdkVersion 17
        targetSdkVersion 27
        targetSdkVersion 29
        ndk {
            abiFilters "armeabi"
            //兼容64位与32位系统
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        manifestPlaceholders = [
@@ -186,6 +189,25 @@
    }
}
project.afterEvaluate {
    project.android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.processResources.doFirst { pm ->
                String manifestPath = output.processResources.manifestFile;
                def manifestContent = file(manifestPath).getText()
                //删除注释,防止注释里面的中文乱码导致更改后的内容系统无法正常解析
                manifestContent = manifestContent.replaceAll("<!--[\\s\\S]*?-->", "")
                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.CAMERA" />', '')
                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.BLUETOOTH" />', '')
                println "AndroidManifest-Content:"
                println manifestContent
                file(manifestPath).write(manifestContent)
            }
        }
    }
}
repositories {
    flatDir {
        dirs 'libs'
BuWanVideo/libs/Xg_sdk_v2.46_20160602_1638.jar
Binary files differ
BuWanVideo/libs/armeabi-v7a/libDecRes_sdk.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libMMANDKSignature.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libSHMoblieUgcodeJni.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libbreakpad_util_jni.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libmeet.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libsecurities_sdk.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libtpnsSecurity.so
Binary files differ
BuWanVideo/libs/armeabi-v7a/libxguardian.so
Binary files differ
BuWanVideo/libs/armeabi/libDecRes_sdk.so
Binary files differ
BuWanVideo/libs/armeabi/libMMANDKSignature.so
Binary files differ
BuWanVideo/libs/armeabi/libSHMoblieUgcodeJni.so
Binary files differ
BuWanVideo/libs/armeabi/libbreakpad_util_jni.so
Binary files differ
BuWanVideo/libs/armeabi/libfsp2p.so
Binary files differ
BuWanVideo/libs/armeabi/libmeet.so
Binary files differ
BuWanVideo/libs/armeabi/libsecurities_sdk.so
Binary files differ
BuWanVideo/libs/armeabi/libtpnsSecurity.so
Binary files differ
BuWanVideo/libs/armeabi/libxguardian.so
Binary files differ
BuWanVideo/libs/open_ad_sdk.aar
Binary files differ
BuWanVideo/res/layout/act_login.xml
@@ -295,15 +295,15 @@
                android:layout_gravity="center_vertical"
                android:background="@drawable/selector_user_agreement_checkbox"
                android:button="@null"
                android:checked="true"
                android:checked="false"
                android:gravity="center"
                android:visibility="gone" />
                android:visibility="visible" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="6.5dp"
                android:text="登录即表示同意"
                android:text="勾选即代表同意"
                android:textColor="#B3B8D3"
                android:textSize="11sp" />
BuWanVideo/res/layout/activity_register.xml
@@ -177,14 +177,14 @@
                android:orientation="horizontal">
                <CheckBox
                    android:visibility="gone"
                    android:visibility="visible"
                    android:id="@+id/cb_user_agreement"
                    android:layout_width="15dp"
                    android:layout_height="15dp"
                    android:layout_gravity="center_vertical"
                    android:background="@drawable/selector_user_agreement_checkbox"
                    android:button="@null"
                    android:checked="true"
                    android:checked="false"
                    android:gravity="center" />
@@ -193,7 +193,7 @@
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6.5dp"
                    android:text="注册即表示同意"
                    android:text="勾选即代表同意"
                    android:textColor="@color/login_protocol_text_color"
                    android:textSize="11sp" />
BuWanVideo/res/layout/item_exit.xml
@@ -32,7 +32,7 @@
            <FrameLayout
                android:id="@+id/fl_advertisement"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                android:layout_height="wrap_content">
                <ImageView
                    android:id="@+id/iv_ad_pic"
BuWanVideo/res/layout/search_actvity.xml
@@ -167,7 +167,7 @@
                    <ImageView
                        android:id="@+id/iv_search_ad"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />
                        android:layout_height="match_parent" />
                </FrameLayout>
BuWanVideo/src/com/weikou/beibeivideo/BeibeiMessageHandler.java
File was deleted
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoAPI.java
@@ -66,7 +66,6 @@
    private static AsyncHttpClient sortTimeAsyncHttpClient = new AsyncHttpClient();
    static {
        mOkHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(10 * 1000, TimeUnit.SECONDS)//设置超时时间
                .readTimeout(10 * 1000, TimeUnit.SECONDS)//设置读取超时时间
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -12,16 +12,11 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import androidx.multidex.MultiDex;
import android.util.Log;
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback;
import com.baidu.mobads.AppActivity;
import com.fun.xm.FSPlayer;
import com.funshion.playsdk.callback.FunshionPlayInitCallback;
import com.funshion.playsdk.register.IAuthCodeGetter;
import com.lcjian.library.util.ManifestDataUtil;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
@@ -46,24 +41,25 @@
import com.weikou.beibeivideo.ui.push.PushOpenClickActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.CrashHandler;
import com.weikou.beibeivideo.util.FunshionConstant;
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.CSJConstant;
import com.weikou.beibeivideo.util.ad.GDTConstant;
import com.weikou.beibeivideo.util.ad.TTAdManagerHolder;
import com.weikou.beibeivideo.util.downutil.StringUtils;
import com.yeshi.push.PushUtil;
import org.apache.http.Header;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONException;
import org.json.JSONObject;
import de.greenrobot.event.EventBus;
import androidx.multidex.MultiDex;
public class BeibeiVideoApplication extends Application {
    private final String TAG = BeibeiVideoApplication.class.getName();
    private final static String TAG = BeibeiVideoApplication.class.getName();
    public static BeibeiVideoApplication application = null;
    public static String deviceName = null;
@@ -79,7 +75,7 @@
        return instance;
    }
    private Handler handler = new Handler() {
    private static Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
@@ -126,7 +122,7 @@
    };
    private IAuthCodeGetter.AuthCodeCallBack authCodeCallBack;
    private static IAuthCodeGetter.AuthCodeCallBack authCodeCallBack;
    @Override
    public void onCreate() {
@@ -134,73 +130,69 @@
            CrashHandler crashHandler = CrashHandler.getInstance();
            crashHandler.init(getApplicationContext());
        }
        //取消热启动开屏广告
//        this.registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks());
        application = this;
        instance = this;
        MultiDex.install(this);
        if (UserUtil.isAgreeUserProtocol(this)||BeibeiConstant.IS_TEST) {
            //如果同意了用户协议
            init(application);
        }
    }
    /**
     * 静态初始化
     *
     * @param application
     */
    public static void init(final Application application) {
        //友盟初始化
        String description = ManifestDataUtil.getAppMetaData(this, "UMENG_CHANNEL");
        UMConfigure.init(this, getResources().getString(R.string.umeng_key), description, UMConfigure.DEVICE_TYPE_PHONE, null);
        String description = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL");
        UMConfigure.init(application, application.getResources().getString(R.string.umeng_key), description, UMConfigure.DEVICE_TYPE_PHONE, null);
        // 选用AUTO页面采集模式
        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
        UMShareAPI.get(this);
        UMShareAPI.get(application);
        PlatformConfig.setWeixin(BeibeiConstant.WECHAT_ID, BeibeiConstant.WECHAT_KEY);
        PlatformConfig.setQQZone(BeibeiConstant.QQ_ID, BeibeiConstant.QQ_KEY);
        PlatformConfig.setSinaWeibo(BeibeiConstant.SINA_ID, BeibeiConstant.SINA_KEY, "http://sns.whalecloud.com/sina2/callback");
        super.onCreate();
        instance = this;
        ImageLoader.getInstance().init(buildDefaultILC(this));
        ImageLoader.getInstance().init(buildDefaultILC(application));
//        initX5();
        initCSJAd();
        GDTADManager.getInstance().initWith(this, BeibeiConstant.GDT_ID);
        initWX();
        initTaoKe();
        try {
            //初始化播放插件
            FSPlayer.init(this, FunshionConstant.APP_ID, new IAuthCodeGetter() {
                @Override
                public void getAuthCode(AuthCodeCallBack authCodeCallBack) {
                    BeibeiVideoApplication.this.authCodeCallBack = authCodeCallBack;
                    handler.sendEmptyMessage(0);
                }
            }, new FunshionPlayInitCallback() {
        initCSJAd(application);
        GDTADManager.getInstance().initWith(application, BeibeiConstant.GDT_ID);
        initWX(application);
        initTaoKe(application);
                @Override
                public void onSuccess() {
                    Log.i(TAG, "风行播放器初始化成功");
                }
                @Override
                public void onFail(int i, String s) {
                    Log.i(TAG, "风行播放器初始化失败:" + i + "-" + s);
                }
            });
        } catch (Exception e) {
        }
//        try {
//            //初始化播放插件
//            FSPlayer.init(application, FunshionConstant.APP_ID, new IAuthCodeGetter() {
//                @Override
//                public void getAuthCode(AuthCodeCallBack authCodeCallBack) {
//                    BeibeiVideoApplication.authCodeCallBack = authCodeCallBack;
//                    handler.sendEmptyMessage(0);
//                }
//            }, new FunshionPlayInitCallback() {
//
//                @Override
//                public void onSuccess() {
//                    Log.i(TAG, "风行播放器初始化成功");
//                }
//
//                @Override
//                public void onFail(int i, String s) {
//                    Log.i(TAG, "风行播放器初始化失败:" + i + "-" + s);
//                }
//            });
//        } catch (Exception e) {
//
//        }
        //百度内容联盟
        try {
            AppActivity.setActionBarColorTheme(AppActivity.ActionBarColorTheme.ACTION_BAR_WHITE_THEME);
        } catch (Exception e) {
        }
        //推送
        PushUtil.inintPush(this, new PushUtil.ITokenListener() {
            @Override
            public void onToken(String romType, String regId) {
                BeibeiVideoAPI.pushBindToken(application, romType, regId, new BasicTextHttpResponseHandler() {
                    @Override
                    public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                    }
                }, true);
            }
        });
        Intent intent = new Intent(this, PushOpenClickActivity.class);
        Intent intent = new Intent(application, PushOpenClickActivity.class);
        intent.putExtra("activity", "test");
        JSONObject params = new JSONObject();
        try {
@@ -214,12 +206,12 @@
    }
    private void initWX() {
    private static void initWX(Context context) {
        //AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换
        mWxApi = WXAPIFactory.createWXAPI(this, BeibeiConstant.WECHAT_ID, true);
        mWxApi = WXAPIFactory.createWXAPI(context, BeibeiConstant.WECHAT_ID, true);
        // 将该app注册到微信
        mWxApi.registerApp(BeibeiConstant.WECHAT_ID);
        registerReceiver(new BroadcastReceiver() {
        context.registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // 将该app注册到微信
@@ -229,8 +221,8 @@
    }
    private void initTaoKe() {
        AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {
    private static void initTaoKe(Application application) {
        AlibcTradeSDK.asyncInit(application, new AlibcTradeInitCallback() {
            @Override
            public void onSuccess() {
            }
@@ -245,7 +237,7 @@
    }
    private ImageLoaderConfiguration buildDefaultILC(Context context) {
    private static ImageLoaderConfiguration buildDefaultILC(Context context) {
        // This configuration tuning is custom. You can tune every option, you may tune some of them,
        // or you can create default configuration by
        //  ImageLoaderConfiguration.createDefault(this); method.
@@ -283,8 +275,8 @@
    /**
     * 穿山甲广告初始化
     */
    private void initCSJAd() {
        TTAdManagerHolder.init(this);
    private static void initCSJAd(Context context) {
        TTAdManagerHolder.init(context);
    }
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/VideoDetailAdInfoVO.java
@@ -10,6 +10,14 @@
    @Expose
    private boolean fullVideo;
    //全屏视频广告比例
    @Expose
    private int fullVideoWeight;
    //插屏广告比例
    @Expose
    private int interstitialWeight;
    public boolean isPlayVideo() {
        return playVideo;
    }
@@ -27,4 +35,19 @@
    }
    public int getFullVideoWeight() {
        return fullVideoWeight;
    }
    public void setFullVideoWeight(int fullVideoWeight) {
        this.fullVideoWeight = fullVideoWeight;
    }
    public int getInterstitialWeight() {
        return interstitialWeight;
    }
    public void setInterstitialWeight(int interstitialWeight) {
        this.interstitialWeight = interstitialWeight;
    }
}
BuWanVideo/src/com/weikou/beibeivideo/service/DownLoadFileService.java
@@ -18,7 +18,7 @@
import java.io.File;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class DownLoadFileService extends Service {
    private NotificationManager manager;
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java
@@ -57,6 +57,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import static android.content.pm.PackageManager.PERMISSION_DENIED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
public class SplashActivity extends BaseActivity {
@@ -152,6 +153,8 @@
                    vg_ad.post(new Runnable() {
                        @Override
                        public void run() {
                            //初始化
                            BeibeiVideoApplication.init(BeibeiVideoApplication.application);
                            myRequetPermission();
                        }
                    });
@@ -444,78 +447,88 @@
    private void myRequetPermission() {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
            SharedPreferences sharedPreferences = getSharedPreferences("permission", Context.MODE_PRIVATE);
            //是否需要再次请求权限
            if (sharedPreferences.getBoolean("show", true))
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
            else
                next();
        } else {
            //百度内容联盟
            next();
        }
    }
    private void next() {
        //百度内容联盟
//            MobadsPermissionSettings.setPermissionReadDeviceID(true);
            getUid();
            vg_ad.postDelayed(new Runnable() {
        getUid();
        vg_ad.postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (!BeibeiConstant.AD_SETTING_KAIPIN)
                        toMainActivity();
                    BeibeiVideoAPI.getConfig(getApplicationContext(), new BasicTextHttpResponseHandler() {
            @Override
            public void run() {
                if (!BeibeiConstant.AD_SETTING_KAIPIN)
                    toMainActivity();
                BeibeiVideoAPI.getConfig(getApplicationContext(), new BasicTextHttpResponseHandler() {
                        @Override
                        public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                            if (jsonObject != null) {
                                if (jsonObject.getBoolean("IsPost")) {
                                    JSONObject data = jsonObject.getJSONObject("Data");
                                    JSONObject ad = data.optJSONObject("adNew");
                                    String vipLink = data.optString("vipLink");
                                    int pptvNoAdRewardHour = data.optInt("pptvNoAdRewardHour", 3);
                    @Override
                    public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                        if (jsonObject != null) {
                            if (jsonObject.getBoolean("IsPost")) {
                                JSONObject data = jsonObject.getJSONObject("Data");
                                JSONObject ad = data.optJSONObject("adNew");
                                String vipLink = data.optString("vipLink");
                                int pptvNoAdRewardHour = data.optInt("pptvNoAdRewardHour", 3);
                                    //网页加速域名
                                    String webSpeedUpHost = data.optString("webSpeedUpHost");
                                    ConfigUtil.saveWebSpeedUpHost(getApplicationContext(), webSpeedUpHost);
                                    //设置我的页面banner
                                    ConfigUtil.saveMinePageBanner(getApplicationContext(), data.optString("minePageBanner"));
                                //网页加速域名
                                String webSpeedUpHost = data.optString("webSpeedUpHost");
                                ConfigUtil.saveWebSpeedUpHost(getApplicationContext(), webSpeedUpHost);
                                //设置我的页面banner
                                ConfigUtil.saveMinePageBanner(getApplicationContext(), data.optString("minePageBanner"));
                                    ConfigUtil.savePlayerJumpOutProtocolPrefix(getApplicationContext(), data.optString("jumpAppProtocolPrefix"));
                                ConfigUtil.savePlayerJumpOutProtocolPrefix(getApplicationContext(), data.optString("jumpAppProtocolPrefix"));
                                    //保存购买记录
                                    ConfigUtil.saveBuyRecordUrl(getApplicationContext(), data.optString("buyRecordUrl"));
                                //保存购买记录
                                ConfigUtil.saveBuyRecordUrl(getApplicationContext(), data.optString("buyRecordUrl"));
                                    //保存免广告权益持续时间
                                    AdUtil.setPPTVNoAdRewardHour(getApplicationContext(), pptvNoAdRewardHour);
                                //保存免广告权益持续时间
                                AdUtil.setPPTVNoAdRewardHour(getApplicationContext(), pptvNoAdRewardHour);
                                    AdUtil.saveAdConfig(getApplicationContext(), ad);
                                    AdUtil.AD_TYPE splash = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.splash);
                                    String pid = AdUtil.getAdPid(getApplicationContext(), AdPositionEnum.splash);
                                    if (StringUtils.isBlank(pid)) {
                                        if (splash != null) {
                                            if (splash == AdUtil.AD_TYPE.csj) {
                                                pid = CSJConstant.SPLASH_AD;
                                            } else if (splash == AdUtil.AD_TYPE.gdt) {
                                                pid = BeibeiConstant.GDT_SPLASH_POSITION_ID;
                                            }
                                AdUtil.saveAdConfig(getApplicationContext(), ad);
                                AdUtil.AD_TYPE splash = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.splash);
                                String pid = AdUtil.getAdPid(getApplicationContext(), AdPositionEnum.splash);
                                if (StringUtils.isBlank(pid)) {
                                    if (splash != null) {
                                        if (splash == AdUtil.AD_TYPE.csj) {
                                            pid = CSJConstant.SPLASH_AD;
                                        } else if (splash == AdUtil.AD_TYPE.gdt) {
                                            pid = BeibeiConstant.GDT_SPLASH_POSITION_ID;
                                        }
                                    }
                                    ConfigUtil.saveVipLink(getApplicationContext(), vipLink);
                                    loadSplashAd(splash, pid);
                                }
                            } else {
                                loadSplashAd(AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD);
                                ConfigUtil.saveVipLink(getApplicationContext(), vipLink);
                                loadSplashAd(splash, pid);
                            }
                        }
                        @Override
                        public void onSuccess(int statusCode, Header[] headers, String responseString) {
                            super.onSuccess(statusCode, headers, responseString);
                        }
                        @Override
                        public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                            super.onFailure(statusCode, headers, responseString, throwable);
                        } else {
                            loadSplashAd(AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD);
                        }
                    });
                    }
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, String responseString) {
                        super.onSuccess(statusCode, headers, responseString);
                    }
                    @Override
                    public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                        super.onFailure(statusCode, headers, responseString, throwable);
                        loadSplashAd(AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD);
                    }
                });
                }
            }, 1000);
        }
            }
        }, 1000);
    }
    Dialog mDialog;
@@ -529,42 +542,49 @@
                if (grantResults[i] == PERMISSION_GRANTED) {//选择了“始终允许”
                    myRequetPermission();
                } else {
                    if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {//用户选择了禁止不再询问
                        AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this);
                        builder.setTitle("权限请求")
                                .setMessage("当前应用缺少必要的权限\n请点击设置-权限 打开电话和存储权限,以正常使用APP的功能")
                                .setPositiveButton("去设置", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        if (mDialog != null && mDialog.isShowing()) {
                                            mDialog.dismiss();
                                        }
                                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                        Uri uri = Uri.fromParts("package", getPackageName(), null);//注意就是"package",不用改成自己的包名
                                        intent.setData(uri);
                                        startActivityForResult(intent, REQUEST_CODE);
                                    }
                                });
                        mDialog = builder.create();
                        mDialog.setCanceledOnTouchOutside(false);
                        mDialog.show();
                    } else {//选择禁止
                        AlertDialog.Builder builder = new AlertDialog.Builder(this);
                        builder.setTitle("权限请求")
                                .setMessage("点击允许才可以使用哦")
                                .setPositiveButton("去允许", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        if (alertDialog != null && alertDialog.isShowing()) {
                                            alertDialog.dismiss();
                                        }
                                        ActivityCompat.requestPermissions(SplashActivity.this,
                                                new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
                                    }
                                });
                        alertDialog = builder.create();
                        alertDialog.setCanceledOnTouchOutside(false);
                        alertDialog.show();
                    //拒绝了授权
                    if (grantResults[i] == PERMISSION_DENIED) {
                        SharedPreferences sharedPreferences = getSharedPreferences("permission", Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor = sharedPreferences.edit();
                        editor.putBoolean("show", false);
                        editor.commit();
                    }
                    next();
//                    if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {//用户选择了禁止不再询问
//                        AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this);
//                        builder.setTitle("权限请求")
//                                .setMessage("当前应用缺少必要的权限\n请点击设置-权限 打开电话和存储权限,以正常使用APP的功能")
//                                .setPositiveButton("去设置", new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int id) {
//                                        if (mDialog != null && mDialog.isShowing()) {
//                                            mDialog.dismiss();
//                                        }
//                                        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//                                        Uri uri = Uri.fromParts("package", getPackageName(), null);//注意就是"package",不用改成自己的包名
//                                        intent.setData(uri);
//                                        startActivityForResult(intent, REQUEST_CODE);
//                                    }
//                                });
//                        mDialog = builder.create();
//                        mDialog.setCanceledOnTouchOutside(false);
//                        mDialog.show();
//                    } else {//选择禁止
//                        AlertDialog.Builder builder = new AlertDialog.Builder(this);
//                        builder.setTitle("权限请求")
//                                .setMessage("点击允许才可以使用哦")
//                                .setPositiveButton("去允许", new DialogInterface.OnClickListener() {
//                                    public void onClick(DialogInterface dialog, int id) {
//                                        if (alertDialog != null && alertDialog.isShowing()) {
//                                            alertDialog.dismiss();
//                                        }
//                                        ActivityCompat.requestPermissions(SplashActivity.this,
//                                                new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE);
//                                    }
//                                });
//                        alertDialog = builder.create();
//                        alertDialog.setCanceledOnTouchOutside(false);
//                        alertDialog.show();
//                    }
                }
            }
        }
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashAdActivity.java
@@ -8,7 +8,8 @@
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
public class SplashAdActivity extends BaseActivity {
@@ -53,6 +54,7 @@
            return super.onKeyDown(keyCode, event);
    }
    @Subscribe
    public void onEventMainThread(SplashAdLoadInfo adLoadInfo) {
        finish();
    }
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/UserProtocolDialog.java
@@ -104,7 +104,7 @@
            dialog.setCanceledOnTouchOutside(true);
            final View layout = inflater.inflate(R.layout.dialog_user_protocol, null);
            dialog.addContentView(layout, new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
                    FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
            TextView tv_title = layout.findViewById(R.id.tv_title);
            TextView tv_content = layout.findViewById(R.id.tv_content);
            tv_content.setText(TextViewUtil.getClickableHtml(webviewData, context, Color.rgb(23,106,230)));
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsReviewPopupWindow.java
@@ -32,7 +32,7 @@
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class GoodsReviewPopupWindow extends PopupWindow {
    private LayoutInflater mInflater;
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java
@@ -1,13 +1,11 @@
package com.weikou.beibeivideo.ui.login;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -18,7 +16,6 @@
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
@@ -26,7 +23,6 @@
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.StringUtils;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -35,10 +31,8 @@
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.XGPush;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import org.apache.http.Header;
@@ -256,7 +250,6 @@
                            SingleToast.showToast(LoginActivity.this,
                                    "登录成功");
                            XGPush.registerPush(LoginActivity.this);
                            onResult(RESULT_OK);
                        }
@@ -420,7 +413,6 @@
                                    SingleToast.showToast(LoginActivity.this,
                                            "登录成功");
                                    XGPush.registerPush(LoginActivity.this);
                                    onResult(RESULT_OK);
                                }
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java
@@ -1,69 +1,43 @@
package com.weikou.beibeivideo.ui.login;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
import com.cmic.sso.sdk.AuthRegisterViewConfig;
import com.lcjian.library.dialog.DialogUtil;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.StringUtils;
import com.mobile.auth.gatewayauth.AuthUIConfig;
import com.mobile.auth.gatewayauth.CustomInterface;
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
import com.mobile.auth.gatewayauth.ResultCode;
import com.mobile.auth.gatewayauth.TokenResultListener;
import com.mobile.auth.gatewayauth.model.TokenRet;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.DimenUtils;
import com.weikou.beibeivideo.util.IsEmail;
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.XGPush;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import org.apache.http.Header;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.regex.Matcher;
public class PhoneLoginActivity extends BaseActivity implements OnClickListener, TokenResultListener {
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java
@@ -111,7 +111,7 @@
            case R.id.tv_confirm:
                if (!cb_user_agreement.isChecked()) {
                    SingleToast.showToast(RegisterActivity.this, "请同意《用户使用协议》");
                    SingleToast.showToast(RegisterActivity.this, "请同意《用户使用协议》与《隐私政策》");
                    break;
                }
BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java
@@ -47,6 +47,7 @@
import com.weikou.beibeivideo.util.cache.DiskLruCacheManager;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONObject;
import java.util.ArrayList;
@@ -54,7 +55,7 @@
import java.util.List;
import java.util.Map;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * Created by weikou2015 on 2017/9/14.
@@ -245,10 +246,12 @@
        EventBus.getDefault().unregister(this);
    }
    @Subscribe
    public void onEventMainThread(VideoType type) {
        getCategories();
    }
    @Subscribe
    public void onEventMainThread(HomeTabChangeInfo changeInfo) {
        if (changeInfo == null)
            return;
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java
@@ -43,7 +43,6 @@
import com.lcjian.library.util.common.StringUtils;
import com.mozillaonline.providers.downloads.DownloadService;
import com.qq.e.ads.cfg.VideoOption;
import com.tencent.android.tpush.XGPushTextMessage;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -72,6 +71,7 @@
import com.weikou.beibeivideo.util.ad.manager.SearchResultAdManager;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import com.yeshi.appupdate.AppUpdate;
import com.yeshi.push.PushUtil;
import org.apache.http.Header;
import org.json.JSONArray;
@@ -86,7 +86,7 @@
import java.util.List;
import java.util.Random;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
//import com.umeng.message.PushAgent;
@@ -208,23 +208,27 @@
        });
        preLoadCommonAD();
        if (BeibeiConstant.IS_TEST) {
            tv_search.postDelayed(new Runnable() {
                @Override
                public void run() {
                    VideoInfo videoInfo = new VideoInfo();
                    videoInfo.setId("8065880");
                    videoInfo.setThirdType("0");
                    Intent intent = new Intent(MainActivity.this, SearchActivity.class);
                    intent.putExtra("video_info", videoInfo);
                    startActivity(intent);
                }
            }, 2000);
        }
        //拉取详情问题
        UserUtil.updateUserInfo(getApplicationContext(), null);
        //推送
        PushUtil.inintPush(getApplication(), new PushUtil.ITokenListener() {
            @Override
            public void onToken(String romType, String regId) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        BeibeiVideoAPI.pushBindToken(getApplication(), romType, regId, new BasicTextHttpResponseHandler() {
                            @Override
                            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                            }
                        }, true);
                    }
                });
            }
        });
    }
@@ -260,24 +264,6 @@
    private boolean isLogin = false;
    /**
     * 初始化用户登录信息
     */
    public void onEventMainThread(XGPushTextMessage text) {
        SharedPreferences preferences1 = getSharedPreferences("user",
                Context.MODE_PRIVATE);
        isLogin = StringUtils.isEmpty(preferences1.getString("LoginUid", "")) ? false
                : true;
        if (text != null && isLogin) {
            if (preferences1.getBoolean("PushType", false)) {
                iv_msg_dot.setVisibility(View.VISIBLE);
            } else {
                iv_msg_dot.setVisibility(View.GONE);
            }
        }
    }
    @Override
    public void onResume() {
        super.onResume();
@@ -287,7 +273,6 @@
        if (!StringUtils.isEmpty(preferences.getString("shopurl", "")) && !preferences.getBoolean("isDown", false)) {
            addDownloadBuxin(preferences.getString("shopurl", ""));
        }
        EventBus.getDefault().register(this);
        PushOpenClickActivity.resumeJumpActivity(this);
    }
@@ -336,7 +321,6 @@
    public void onPause() {
        super.onPause();
        AppUpdate.destoryAppUpdate();
        EventBus.getDefault().unregister(this);
    }
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MineFragment.java
@@ -60,7 +60,7 @@
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.widget.BadgeView;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 原主页--我的-----3.2.4版本后已经放弃此页面
BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java
@@ -10,25 +10,14 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
@@ -73,13 +62,16 @@
import com.weikou.beibeivideo.util.ad.ExpressAdManager;
import org.apache.http.Header;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
 * 节目选集列表,可设置电视剧6列;电影,综艺1列
@@ -360,14 +352,14 @@
        EventBus.getDefault().register(this);
    }
    @Subscribe
    public void onEventMainThread(Playlocation playlocation) {
        mPlayingPosition = playlocation.getPosition();
//        loadEpisode();
        refresh();
    }
    @Subscribe
    public void onEventMainThread(FunshionPlayInfo info) {
        Log.i(TAG, "风行选集:" + info.getPosition());
        mPlayingPosition = info.getPosition();
@@ -655,6 +647,7 @@
    List<VideoResource> urlList;
    VideoResource selectedUrl = null;
    @Subscribe
    public void onEventMainThread(VideoInfo videoInfo) {
        mVideoInfo = videoInfo;
        if (VideoUtil.videoEpisodeList != null && VideoUtil.videoEpisodeList.size() > 1) {
BuWanVideo/src/com/weikou/beibeivideo/ui/media/IQYVideoFragment.java
@@ -32,7 +32,8 @@
import com.weikou.beibeivideo.util.x5.X5WebView;
import com.weikou.beibeivideo.R;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
/**
 * 网页加载页面
@@ -263,6 +264,7 @@
        }
    }
    @Subscribe
    public void onEventMainThread(ChangeVideoEvent changeVideoEvent) {
        if ("VideoPlayerFragment".equals(changeVideoEvent.getTag())) {
            changeVideoEvent.setTag("VideoDetailActivity");
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity.java
@@ -66,13 +66,14 @@
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
@@ -264,6 +265,7 @@
    private int mPosition = 0;
    @Subscribe
    public void onEventMainThread(Playlocation location) {
        Log.i(TAG, "onEventMainThread:Playlocation");
        fl_ad.setVisibility(View.VISIBLE);
@@ -403,6 +405,7 @@
    private PlayUrl info;
    @Subscribe
    public void onEventMainThread(PlayUrl info) {
        this.info = info;
        Toast.makeText(this, "播放", Toast.LENGTH_SHORT).show();
@@ -446,6 +449,7 @@
        }
    }
    @Subscribe
    public void onEventMainThread(AccumulateRule info) {// 播放界面返回替代使用
        clickBack();
    }
@@ -573,6 +577,7 @@
        EventBus.getDefault().unregister(this);
    }
    @Subscribe
    public void onEventMainThread(ChangeVideoEvent changeVideoEvent) {
        VideoInfo videoInfo = changeVideoEvent.getVideoInfo();
        resourceId = "";
@@ -582,6 +587,7 @@
        getVideoDetail(this, videoInfo.getId(), videoInfo.getThirdType(), false);
    }
    @Subscribe
    public void onEventMainThread(Play info) {
        Log.i("mResult", "VideoDetailActivity-----onEventMainThread----开始播放");
        playUrl = info.getPlayUrl();
@@ -596,6 +602,7 @@
    }
    @Subscribe
    public void onEventMainThread(VideoInfo info) {
        videoInfo = info;
    }
@@ -845,6 +852,7 @@
    private VideoResource resource;
    @Subscribe
    public void onEventMainThread(VideoResource resource) {
        this.resource = resource;
    }
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -35,7 +35,12 @@
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd;
import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -72,19 +77,21 @@
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.UmengEventUtil;
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.ad.CSJConstant;
import com.weikou.beibeivideo.util.ad.FullVideoAdManager;
import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil;
import com.weikou.beibeivideo.util.ui.IPageEventListener;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
@@ -293,18 +300,102 @@
            return;
        //加载广告
        if (BeibeiConstant.AD_TYPE.isVideoDetailSplashAd()) {
            if (FullVideoAdManager.getInstance().isCacahed()) {
                FullVideoAdManager.getInstance().showAd(this);
            //判断加载广告的类型
            int fullvideo = adInfo.getFullVideoWeight();
            int interstitial = adInfo.getInterstitialWeight();
            int random = (int) ((fullvideo + interstitial) * Math.random());
            if (random <= fullvideo) {
                if (FullVideoAdManager.getInstance().isCacahed()) {
                    FullVideoAdManager.getInstance().showAd(this);
                } else {
                    FullVideoAdManager.getInstance().loadAd(BeibeiVideoApplication.application, new FullVideoAdManager.IFullVideoAdListener() {
                        @Override
                        public void onSuccess(TTFullScreenVideoAd ad) {
                            FullVideoAdManager.getInstance().showAd(VideoDetailActivity2.this);
                        }
                    });
                }
            } else {
                FullVideoAdManager.getInstance().loadAd(BeibeiVideoApplication.application, new FullVideoAdManager.IFullVideoAdListener() {
                    @Override
                    public void onSuccess(TTFullScreenVideoAd ad) {
                        FullVideoAdManager.getInstance().showAd(VideoDetailActivity2.this);
                    }
                });
                showInterstitialAd();
            }
        }
    }
    /**
     * 穿山甲插屏广告
     */
    private TTFullScreenVideoAd mTTFullScreenVideoAd;
    private void showInterstitialAd() {
        TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(VideoDetailActivity2.this);
        AdSlot adSlot = new AdSlot.Builder()
                .setCodeId("946608275")
                //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
                .setExpressViewAcceptedSize(300, 500)
                .setSupportDeepLink(true)
                .setOrientation(TTAdConstant.VERTICAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL
                .build();
        mTTAdNative.loadFullScreenVideoAd(adSlot, new TTAdNative.FullScreenVideoAdListener() {
            @Override
            public void onError(int i, String s) {
                Log.i(TAG, s);
            }
            @Override
            public void onFullScreenVideoAdLoad(TTFullScreenVideoAd ttFullScreenVideoAd) {
                mTTFullScreenVideoAd = ttFullScreenVideoAd;
            }
            @Override
            public void onFullScreenVideoCached() {
            }
            @Override
            public void onFullScreenVideoCached(TTFullScreenVideoAd ttFullScreenVideoAd) {
                if (ttFullScreenVideoAd != null) {
                    ttFullScreenVideoAd.setFullScreenVideoAdInteractionListener(new TTFullScreenVideoAd.FullScreenVideoAdInteractionListener() {
                        @Override
                        public void onAdShow() {
                            Log.i(TAG, "广告展示----");
                        }
                        @Override
                        public void onAdVideoBarClick() {
                        }
                        @Override
                        public void onAdClose() {
                        }
                        @Override
                        public void onVideoComplete() {
                        }
                        @Override
                        public void onSkippedVideo() {
                        }
                    });
                    //展示广告,并传入广告展示的场景
                    ttFullScreenVideoAd.showFullScreenVideoAd(VideoDetailActivity2.this, TTAdConstant.RitScenes.GAME_GIFT_BONUS, null);
                }
            }
        });
    }
    private static FrameLayout fl_video_play_background;
@@ -482,6 +573,7 @@
    private PlayUrl info;
    @Subscribe
    public void onEventMainThread(Playlocation location) {
        fl_ad.setVisibility(View.VISIBLE);
        mPosition = location.getPosition();
@@ -498,6 +590,7 @@
    }
    @Subscribe
    public void onEventMainThread(PlayUrl info) {
        this.info = info;
        Toast.makeText(this, "播放", Toast.LENGTH_SHORT).show();
@@ -539,14 +632,17 @@
        }
    }
    @Subscribe
    public void onEventMainThread(AccumulateRule info) {// 播放界面返回替代使用
        clickBack();
    }
    @Subscribe
    public void onEventMainThread(PlayerLock info) {//播放器锁屏
        playerLock = info.isLock();
    }
    @Subscribe
    public void onEventMainThread(PlayerControllerShow show) {//播放控制器显示
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            tv_back.setVisibility(View.GONE);
@@ -711,6 +807,7 @@
        EventBus.getDefault().unregister(this);
    }
    @Subscribe
    public void onEventMainThread(ChangeVideoEvent changeVideoEvent) {
        VideoInfo videoInfo = changeVideoEvent.getVideoInfo();
        resourceId = "";
@@ -721,6 +818,7 @@
        getVideoDetail(this, videoInfo.getId(), videoInfo.getThirdType(), false, changeVideoEvent.getFrom());
    }
    @Subscribe
    public void onEventMainThread(Play info) {
        Log.i("mResult", "VideoDetailActivity-----onEventMainThread----开始播放");
        playUrl = info.getPlayUrl();
@@ -734,6 +832,7 @@
        }
    }
    @Subscribe
    public void onEventMainThread(VideoInfo info) {
        Log.i(TAG, "onEventMainThread-videoInfo");
        videoInfo = info;
@@ -1042,6 +1141,7 @@
    private VideoResource resource;
    @Subscribe
    public void onEventMainThread(VideoResource resource) {
        this.resource = resource;
    }
@@ -1195,6 +1295,8 @@
        GoldCornUtil.removeCallbacks(fl_video_play_background, makeGoldCornRunnable);
        //屏幕常亮
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        if (mTTFullScreenVideoAd != null)
            mTTFullScreenVideoAd = null;
        super.onDestroy();
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailFragment.java
@@ -22,7 +22,8 @@
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
/**
 * 视频详情
@@ -106,6 +107,7 @@
    }
    @Subscribe
    public void onEventMainThread(VideoInfo videoInfo) {
        mVideoInfo = videoInfo;
@@ -123,6 +125,7 @@
    VideoDetailInfo mVideoDetailInfo;
    @Subscribe
    public void onEventMainThread(VideoDetailInfo videoDetailInfo) {
        mVideoDetailInfo = videoDetailInfo;
        int playingPosition = 0;
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment.java
@@ -41,11 +41,12 @@
import com.weikou.beibeivideo.util.ad.ExpressAdManager;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONObject;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 播放详情--选集页面
@@ -381,6 +382,7 @@
        Log.i(TAG, "onPause");
    }
    @Subscribe
    public void onEventMainThread(VideoInfo info) {
        int playingPosition = 0;
        if (mPlayingPosition != playingPosition) {
@@ -393,6 +395,7 @@
        vp_episode.setAdapter(mEpisodePagerAdapter);
    }
    @Subscribe
    public void onEventMainThread(PushEpisode info) {
        if (mVideoInfo == null)
            return;
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment2.java
@@ -1,6 +1,7 @@
package com.weikou.beibeivideo.ui.media;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONObject;
import android.app.Dialog;
@@ -35,7 +36,7 @@
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.util.VideoUtil;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 全屏播放-选集页面
@@ -184,6 +185,7 @@
        super.onDismiss(dialog);
    }
    @Subscribe
    public void onEventMainThread(VideoDetailInfo videoDetailInfo) {
        int playingPosition = 0;
        for (int i = 0; i < VideoUtil.videoEpisodeList.size(); i++) {
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment3.java
@@ -42,7 +42,7 @@
import com.weikou.beibeivideo.util.SDCardUtil;
import com.weikou.beibeivideo.util.VideoUtil;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 播放页小屏底部下载详情页面,也是多集下载详情页面点击下载更多 弹出页面
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoEpisodeFragment4.java
@@ -38,7 +38,7 @@
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.util.VideoUtil;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 全屏播放-下载页面
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoReviewFragment.java
@@ -31,12 +31,13 @@
import com.weikou.beibeivideo.widget.MySwipeRefreshLayout;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 小屏播放-评论
@@ -141,6 +142,7 @@
        EventBus.getDefault().unregister(this);
    }
    @Subscribe
    public void onEventMainThread(VideoDetailInfo videoDetailInfo) {
        for (int i = 0; i < VideoUtil.videoEpisodeList.size(); i++) {
            if (videoDetailInfo.getId().equals(
@@ -245,6 +247,7 @@
    }
    // EventBus事件响应
    @Subscribe
    public void onEventMainThread(Boolean e) {
        if (e) {
            getReviewList();
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoReviewPopupWindow.java
@@ -28,7 +28,7 @@
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.login.LoginActivity;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class VideoReviewPopupWindow extends PopupWindow {
    private LayoutInflater mInflater;
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/CommentMessageAdapter.java
@@ -37,7 +37,7 @@
import java.util.Date;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class CommentMessageAdapter extends BaseAdapter {
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -994,7 +994,7 @@
        TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(getContext());
        AdSlot adSlot = new AdSlot.Builder()
                .setCodeId(CSJConstant.PPTV_INTERSTITIALAD)
                .setCodeId(CSJConstant.VIDEO_DETAIL_INTERSTITIALAD)
                //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
                .setExpressViewAcceptedSize(300, 500)
                .setSupportDeepLink(true)
@@ -1054,6 +1054,15 @@
                    mttFullVideoAd = null;
                }
            }
            @Override
            public void onFullScreenVideoCached(TTFullScreenVideoAd ttFullScreenVideoAd) {
                if (ttFullScreenVideoAd != null) {
                    //展示广告,并传入广告展示的场景
                    if (getActivity() != null)
                        ttFullScreenVideoAd.showFullScreenVideoAd(getActivity(), TTAdConstant.RitScenes.GAME_GIFT_BONUS, null);
                }
            }
        });
    }
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SettingsActivity.java
@@ -38,7 +38,6 @@
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.SDCardUtil;
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.XGPush;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import com.weikou.beibeivideo.widget.BadgeView;
import com.yeshi.appupdate.AppUpdate;
@@ -228,7 +227,6 @@
                                            UMShareAPI.get(SettingsActivity.this).deleteOauth(SettingsActivity.this, SHARE_MEDIA.QQ, authListener);
                                        UserUtil.logout(getApplicationContext());
                                        MineFragment.isLogin = false;// 改为未登录状态
                                        XGPush.unRegisterPush(SettingsActivity.this);
                                        finish();
                                    }
                                });
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -261,6 +261,7 @@
        } else {
            mCurrentKey = et_search_key.getEditableText().toString();
        }
        SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this);
        mCurrentPage = 1;
        rl_search_result.setRefreshing(true);
BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
@@ -70,11 +70,13 @@
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.ui.IPageEventListener;
import com.yeshi.video.player.common.IVideoPlayerListener;
import com.yeshi.video.player.common.VideoDefinition;
import com.yeshi.video.player.common.VideoEpisode;
import com.yeshi.video.player.common.VideoPlayerController;
import org.apache.http.Header;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONObject;
import java.io.IOException;
@@ -84,9 +86,9 @@
import java.util.Collections;
import java.util.List;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class FunshionPlayerFragment extends RetainViewFragment implements OnClickListener, VideoPlayerController.IVideoPlayerListener {
public class FunshionPlayerFragment extends RetainViewFragment implements OnClickListener, IVideoPlayerListener {
    private final static String TAG = FunshionPlayerFragment.class.getName();
    //媒体视频播放器
@@ -975,6 +977,7 @@
    }
    @Subscribe
    public void onEventMainThread(FunshionPlayInfo info) {
        if (VideoUtil.videoEpisodeList == null || VideoUtil.videoEpisodeList.size() == 0) {
            //加载缓存内容
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java
@@ -294,7 +294,6 @@
            @Override
            public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
                Log.i(TAG, consoleMessage.message());
                return super.onConsoleMessage(consoleMessage);
            }
        });
BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java
@@ -4,8 +4,10 @@
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.lcjian.library.util.SystemCommon;
@@ -103,7 +105,7 @@
            View layout = inflater.inflate(R.layout.item_exit, null);
            fl_advertisement = layout.findViewById(R.id.fl_advertisement);
            dialog.addContentView(layout, new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
                    FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
            // set the confirm button
            layout.findViewById(R.id.tv_login)
                    .setOnClickListener(new View.OnClickListener() {
@@ -156,12 +158,17 @@
                                            fl_advertisement.removeAllViews();
                                        }
                                    });
                                    if (adList.get(0).getGdt2() != null) {
                                        if (adList.get(0).getGdt2().getAdView().getParent() != null) {
                                            ((ViewGroup) adList.get(0).getGdt2().getAdView().getParent()).removeAllViews();
                                        }
                                        fl_advertisement.addView(adList.get(0).getGdt2().getAdView());
                                    }
                                }
                            }
                            @Override
                            public void onRenderFail(List<ExpressAdContainer> adList) {
                            }
                        }, null);
BuWanVideo/src/com/weikou/beibeivideo/util/XGPush.java
File was deleted
BuWanVideo/src/com/weikou/beibeivideo/util/ad/CSJConstant.java
@@ -42,4 +42,7 @@
    public static String PPTV_INTERSTITIALAD="946078773";
    public static String VIDEO_DETAIL_INTERSTITIALAD="946608275";
}
BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
@@ -525,15 +525,19 @@
                    @Override
                    public void onRenderSuccess() {
                        if (ad.getGdt2().getAdView().getParent() != null) {
                            ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
                        try {
                            if (ad.getGdt2().getAdView().getParent() != null) {
                                ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
                            }
                            fl_ad.addView(ad.getGdt2().getAdView());
                        } catch (Exception e) {
                        }
                        fl_ad.addView(ad.getGdt2().getAdView());
                    }
                    @Override
                    public void onRenderFail() {
                        Log.i(TAG, "onRenderFail");
                    }
                    @Override
@@ -565,6 +569,8 @@
                            adEventListener.closeAd(ad);
                        }
                    }
                    @Override
                    public void onCancel() {
@@ -684,10 +690,13 @@
                        }
                    }
                    @Override
                    public void onCancel() {
                    }
                });
@@ -777,11 +786,13 @@
                    }
                }
                @Override
                public void onCancel() {
                }
            });
        }
BuWanVideo/src/com/weikou/beibeivideo/util/ad/FullVideoAdManager.java
@@ -77,6 +77,11 @@
            @Override
            public void onFullScreenVideoCached() {
            }
            @Override
            public void onFullScreenVideoCached(TTFullScreenVideoAd ttFullScreenVideoAd) {
            }
        });
    }
BuWanVideo/src/com/weikou/beibeivideo/util/ad/RewardVideoAdManager.java
@@ -137,6 +137,11 @@
                adLoadListener.onSuccess(mTTRewardVideoAd);
            }
            @Override
            public void onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd) {
                adLoadListener.onSuccess(mTTRewardVideoAd);
            }
            //视频广告的素材加载完毕,比如视频url等,在此回调后,可以播放在线视频,网络不好可能出现加载缓冲,影响体验。
            @Override
            public void onRewardVideoAdLoad(TTRewardVideoAd ad) {
BuWanVideo/src/com/weikou/beibeivideo/util/browser/BaseBWJavaInterface.java
@@ -17,6 +17,7 @@
import com.lcjian.library.util.security.MD5Utils;
import com.umeng.analytics.MobclickAgent;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.util.JumpActivityUtil;
@@ -41,6 +42,10 @@
    public String getUid() {
        return mContext.getSharedPreferences("user", MODE_PRIVATE).getString("LoginUid", "");
    }
    @JavascriptInterface
    public String getAppName(){
        return mContext.getString(R.string.app_name);
    }
    @JavascriptInterface
    public String getVersion() {
BuWanVideo/src/com/weikou/beibeivideo/util/downutil/DownLoadApks.java
@@ -5,16 +5,17 @@
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import androidx.core.content.FileProvider;
import android.util.Log;
import com.weikou.beibeivideo.BuildConfig;
import com.weikou.beibeivideo.entity.AdType;
import com.weikou.beibeivideo.service.DownLoadFileService;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import de.greenrobot.event.EventBus;
import androidx.core.content.FileProvider;
/**
 * @author weikou2015 下载工具类
build.gradle
@@ -1,13 +1,23 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        maven {
            url "https://maven.aliyun.com/repository/public"
        }
        maven {
            url "https://maven.aliyun.com/repository/google"
        }
        jcenter()
        mavenCentral()
        google()
        maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }
        maven { url 'http://developer.huawei.com/repo/'}
        maven { url 'http://developer.huawei.com/repo/' }
        maven { url 'https://artifact.bytedance.com/repository/pangle'}
    }
    dependencies {
@@ -18,14 +28,24 @@
allprojects {
    repositories {
        maven {
            url "https://maven.aliyun.com/repository/public"
        }
        maven {
            url "https://maven.aliyun.com/repository/google"
        }
        jcenter()
        google()
        maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }
        maven { url 'https://jitpack.io' }
        maven { url 'https://dl.bintray.com/umsdk/release' }
        maven { url "https://dl.bintray.com/thelasterstar/maven/" }
        maven { url 'http://developer.huawei.com/repo/'}
        maven { url 'http://developer.huawei.com/repo/' }
        maven { url 'https://artifact.bytedance.com/repository/pangle'}
    }
}
library-APPUpdate/build.gradle
@@ -3,7 +3,7 @@
dependencies {
    api fileTree(include: '*.jar', dir: 'libs')
    api 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation project(path: ':library-EventBus')
//    implementation project(path: ':library-EventBus')
    implementation project(path: ':library-common')
}
library-APPUpdate/src/com/yeshi/appupdate/AppUpdate.java
@@ -14,7 +14,9 @@
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import androidx.core.content.ContextCompat;
import android.telephony.TelephonyManager;
import android.text.Html;
import android.widget.Toast;
@@ -59,12 +61,16 @@
    private void getUpdateInfo() {
        TelephonyManager manager = (TelephonyManager) mActivity
                .getSystemService(Activity.TELEPHONY_SERVICE);
        String deviceId="";
        String deviceId = "";
        if (ContextCompat.checkSelfPermission(mActivity, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(mActivity, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
             deviceId = manager.getDeviceId();// 获取deviceId
            try {
                deviceId = manager.getDeviceId();// 获取deviceId
            } catch (Exception e) {
            }
        }
            int versionCode = 1;// 版本号
        int versionCode = 1;// 版本号
        try {
            versionCode = mActivity.getPackageManager().getPackageInfo(
                    mActivity.getPackageName(),
@@ -88,6 +94,8 @@
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        if (jsonObject == null)
                            return;
                        if (Integer.parseInt(jsonObject.optString("code")) == 0) {
                            Gson gson = new GsonBuilder().setPrettyPrinting()
                                    .create();
library-APPUpdate/src/com/yeshi/appupdate/GoReview.java
@@ -6,9 +6,8 @@
import com.yeshi.appupdate.api.AppUpdateAPI;
import org.apache.http.Header;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import de.greenrobot.event.EventBus;
/**
 * Created by weikou2015 on 2017/9/15.
library-DownloadProvider/src/com/mozillaonline/providers/downloads/DownloadReceiver.java
@@ -30,6 +30,7 @@
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.util.Log;
/**
@@ -46,7 +47,8 @@
        String action = intent.getAction();
        /*if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
            startService(context);
        } else */if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
        } else */
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            NetworkInfo info = (NetworkInfo)
                    intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
            if (info != null && info.isConnected()) {
@@ -101,7 +103,8 @@
    /**
     * Hide a system notification for a download.
     * @param uri URI to update the download
     *
     * @param uri    URI to update the download
     * @param cursor Cursor for reading the download's fields
     */
    private void hideNotification(Context context, Uri uri, Cursor cursor) {
@@ -128,7 +131,7 @@
    private void openDownload(Context context, Cursor cursor) {
        String filename = cursor.getString(cursor.getColumnIndexOrThrow(Downloads._DATA));
        String mimetype =
            cursor.getString(cursor.getColumnIndexOrThrow(Downloads.COLUMN_MIME_TYPE));
                cursor.getString(cursor.getColumnIndexOrThrow(Downloads.COLUMN_MIME_TYPE));
        Uri path = Uri.parse(filename);
        // If there is no scheme, then it must be a file
        if (path.getScheme() == null) {
@@ -147,6 +150,7 @@
    /**
     * Notify the owner of a running download that its notification was clicked.
     *
     * @param intent the broadcast intent sent by the notification manager
     * @param cursor Cursor for reading the download's fields
     */
@@ -185,6 +189,11 @@
    }
    private void startService(Context context) {
        context.startService(new Intent(context, DownloadService.class));
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            context.startForegroundService(new Intent(context, DownloadService.class));
        } else {
            context.startService(new Intent(context, DownloadService.class));
        }
    }
}
library-EventBus/src/de/greenrobot/event/util/AsyncExecutor.java
@@ -21,7 +21,7 @@
import android.app.Activity;
import android.util.Log;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * Executes an {@link RunnableEx} using a thread pool. Thrown exceptions are propagated by posting failure events of any
library-EventBus/src/de/greenrobot/event/util/ErrorDialogConfig.java
@@ -2,7 +2,7 @@
import android.content.res.Resources;
import android.util.Log;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class ErrorDialogConfig {
    final Resources resources;
library-EventBus/src/de/greenrobot/event/util/ErrorDialogFragments.java
@@ -10,7 +10,7 @@
import android.os.Build;
import android.os.Bundle;
import androidx.fragment.app.DialogFragment;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
public class ErrorDialogFragments {
    /** TODO Use config:  Icon res ID to use for all error dialogs. May be configured by each app (optional). */
library-EventBus/src/de/greenrobot/event/util/ErrorDialogManager.java
@@ -10,7 +10,7 @@
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import android.util.Log;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * Central class for app that want to use event based error dialogs.<br/>
@@ -61,6 +61,7 @@
            super.onPause();
        }
        @Subscribe
        public void onEventMainThread(ThrowableFailureEvent event) {
            if (!isInExecutionScope(executionScope, event)) {
                return;
@@ -118,6 +119,7 @@
            super.onPause();
        }
        @Subscribe
        public void onEventMainThread(ThrowableFailureEvent event) {
            if (!isInExecutionScope(executionScope, event)) {
                return;
library-EventBus/src/de/greenrobot/event/util/ExceptionToResourceMapping.java
@@ -6,7 +6,7 @@
import java.util.Set;
import android.util.Log;
import de.greenrobot.event.EventBus;
import org.greenrobot.eventbus.EventBus;
/**
library-SocialSdk/build.gradle
@@ -3,18 +3,20 @@
dependencies {
    api fileTree(include: '*', dir: 'libs')
    api 'com.sina.weibo.sdk:core:4.4.3:openDefaultRelease@aar'
    api 'com.umeng.umsdk:asms:1.2.3' //必选
    api files('libs/umeng-asms-armeabi-v1.1.3.aar')
    api files('libs/umeng-common-9.2.4.jar')
    api files('libs/umeng-crash-armeabi-v0.0.4.aar')
    api files('libs/umeng-common-9.4.2.jar')
    api files('libs/open_sdk_r8353806_lite.jar')
    api files('libs/umeng-share-core-7.1.1.jar')
    api files('libs/umeng-share-QQ-full-7.1.1.jar')
    api files('libs/umeng-share-sina-full-7.1.1.jar')
    api files('libs/umeng-share-wechat-full-7.1.1.jar')
    api files('libs/umeng-sharetool-7.1.1.jar')
//    api files('libs/core-4.1.0-openDefaultRelease.aar')
    api files('libs/sina-weibo-openDefault-10.10.0.aar')
    api files('libs/umeng-share-core-7.1.6.jar')
    api files('libs/umeng-sharetool-7.1.6.jar')
    api files('libs/umeng-shareboard-widget-7.1.6.jar')
    api files('libs/umeng-share-QQ-full-7.1.6.jar')
    api files('libs/umeng-share-sina-full-7.1.6.jar')
    api files('libs/umeng-share-wechat-full-7.1.6.jar')
}
android {
library-SocialSdk/libs/umeng-asms-armeabi-v1.1.3.aar
Binary files differ
library-SocialSdk/libs/umeng-common-9.2.4.jar
Binary files differ
library-SocialSdk/libs/umeng-share-QQ-full-7.1.1.jar
Binary files differ
library-SocialSdk/libs/umeng-share-core-7.1.1.jar
Binary files differ
library-SocialSdk/libs/umeng-share-sina-full-7.1.1.jar
Binary files differ
library-SocialSdk/libs/umeng-share-wechat-full-7.1.1.jar
Binary files differ
library-SocialSdk/libs/umeng-sharetool-7.1.1.jar
Binary files differ
library-VideoPlayer/build.gradle
@@ -27,7 +27,7 @@
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation project(path: ':library-common')
    implementation project(path: ':library-EventBus')
//    implementation project(path: ':library-EventBus')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
library-VideoPlayer/src/main/java/com/yeshi/video/player/common/VideoPlayerController.java
@@ -8,9 +8,11 @@
import android.media.MediaPlayer;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector;
@@ -38,11 +40,12 @@
import com.lcjian.library.util.common.TimeUtil;
import com.yeshi.video.player.R;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import de.greenrobot.event.EventBus;
import static android.content.Context.AUDIO_SERVICE;
@@ -410,14 +413,16 @@
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            isTouch = true;
            mediaPlayer.pause();
            if (mediaPlayer != null)
                mediaPlayer.pause();
            canHiddenController = false;
        }
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            isTouch = false;
            mediaPlayer.start();
            if (mediaPlayer != null)
                mediaPlayer.start();
            int currentPosition = getSeconds(mediaPlayer.getCurrentPosition());
            tv_progress.setText(TimeUtil.getTimeDesc(currentPosition));
            canHiddenController = true;
@@ -871,28 +876,6 @@
    }
    public interface IVideoPlayerListener {
        //暂停
        public void onVideoPause();
        //播放
        public void onVideoPlay();
        //下一集
        public void onNext();
        //返回
        public void onBack();
        //选集
        public void selectEpisode(int p, VideoEpisode episode);
        //搜藏
        public void collect(boolean collect);
        //切换清晰度
        public void changeDefinition(int p, VideoDefinition definition);
    }
    //手势处理
    private class MSimpleGestureDectListener extends GestureDetector.SimpleOnGestureListener {
library-common/build.gradle
@@ -13,6 +13,8 @@
//    api files('libs/android-async-http-1.4.8.jar')
    api 'com.taobao.android:utdid4all:1.5.2'
    api files('libs/eventbus-3.1.1.jar')
    api files('libs/fastjson-1.2.7.jar')
}
android {
library-common/src/com/lcjian/library/dialog/DialogUtil.java
@@ -4,14 +4,21 @@
public class DialogUtil {
    public static void show(Dialog dialog) {
        if (dialog != null && !dialog.isShowing()) {
            dialog.show();
        try {
            if (dialog != null && !dialog.isShowing()) {
                dialog.show();
            }
        } catch (Exception e) {
        }
    }
    public static void dismiss(Dialog dialog) {
        if (dialog != null && dialog.isShowing()) {
            dialog.dismiss();
        try {
            if (dialog != null && dialog.isShowing()) {
                dialog.dismiss();
            }
        } catch (Exception e) {
        }
    }
library-common/src/com/lcjian/library/util/common/SoftKeyboardUtils.java
@@ -13,8 +13,13 @@
     * @param context Activity
     */
    public static void hideSoftInput(Context context) {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(((Activity) context).getCurrentFocus().getWindowToken(), 0);
        try {
            InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(((Activity) context).getCurrentFocus().getWindowToken(), 0);
        }catch(Exception e){
        }
    }
    
    /**
library-push/build.gradle
@@ -24,6 +24,12 @@
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}
dependencies {
library-push/src/main/java/com/yeshi/push/PushUtil.java
@@ -5,10 +5,13 @@
import android.content.Context;
import android.os.Build;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
import com.heytap.msp.push.HeytapPushManager;
import com.heytap.msp.push.callback.ICallBackResultService;
import com.huawei.hms.aaid.HmsInstanceId;
import com.huawei.hms.common.ApiException;
import com.lcjian.library.util.ManifestDataUtil;
import com.lcjian.library.util.common.StringUtils;
import com.meizu.cloud.pushsdk.PushManager;
@@ -31,7 +34,27 @@
            switch (Build.BRAND.toLowerCase()) {
                case "huawei":
                case "honor":
                    //华为是自动初始化
                    //获取token
                    new Thread() {
                        @Override
                        public void run() {
                            try {
                                // 从agconnect-service.json文件中读取appId
                                String appId = "10409568";
                                // 输入token标识"HCM"
                                String tokenScope = "HCM";
                                String token = HmsInstanceId.getInstance(context).getToken(appId, tokenScope);
                                Log.i(TAG, "get token: " + token);
                                // 判断token是否为空
                                if(!TextUtils.isEmpty(token)) {
                                    tokenListener.onToken("hw",token);
                                }
                            } catch (ApiException e) {
                                Log.e(TAG, "hw: get token failed, " + e);
                            }
                        }
                    }.start();
                    return;
                case "oppo"://上面官方判断
                    /***OPPO官方判断方法*/
@@ -119,7 +142,6 @@
    public interface ITokenListener {
        public void onToken(String romType, String regId);
    }
}
settings.gradle
@@ -2,7 +2,6 @@
include ':library-BaiduCPU'
include ':library-VideoPlayer'
include ':library-GDTSDK'
include ':library-EventBus'
include ':library-SocialSdk'
include ':library-NineOldAndroids'
include ':library-ViewPagerIndicator'