admin
2021-02-20 f8a5683d08f2e6f832578b2fd5c795888ddcae64
极光推送集成,PPTV播放页某些图片无法显示的bug修改
59个文件已添加
52个文件已修改
4902 ■■■■ 已修改文件
BuWanVideo/AndroidManifest.xml 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/build.gradle 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/libs/com.heytap.msp-push-2.1.0.aar 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_video_vip.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/act_help.xml 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_movie.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/VideoInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/video/holder/VideoHolder.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/receiver/MyJPushReceiver.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/service/JPushService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/BaseActivity.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/category/MVideosActivity.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/category/SpecificDetailActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/category/StarDetailActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/common/FollowActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/common/LiveBrowserActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/common/MVideosActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/common/VideosLiveActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsDetailActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsReviewActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/ReleaseGoodsActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/ReleasePromptActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/SpecificListActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/StarsActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/live/Activity_LiveCateGory.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/ForgetPwdActivity.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PersonInfoActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/BrowserActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/DownLoadUrlActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/DownloadActivity.java 335 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/FeedBackActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/HelpAndTicklingActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/MyFavouriteActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SettingsActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SuggestionActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SystemMessageActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/WatchHistoryActivity.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/push/OpenClickActivity.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recent/DownLoadActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoColumn2Adapter.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/browser/PPJavaInterface.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build.gradle 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/.gitignore 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/build.gradle 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/consumer-rules.pro 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/MiPush_SDK_Client_3_8_5.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/arm64-v8a/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/armeabi-v7a/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/armeabi/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/com.heytap.msp-push-2.1.0.aar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jcore-android-2.6.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-plugin-huawei-v3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-plugin-meizu-v3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-plugin-oppo-v3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-plugin-vivo-v3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/jpush-android-plugin-xiaomi-v3.9.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/meizu-push-4.0.2.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/mips/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/mips64/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/push_sdk_v3.0.0.jar 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/x86/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/libs/x86_64/libjcore260.so 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/proguard-rules.pro 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/AndroidManifest.xml 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/java/com/ExampleUtil.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/java/com/TagAliasOperatorHelper.java 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_cancle.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_close.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_close2.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-nodpi-v4/stat_sys_third_app_notify.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xhdpi-v4/push_pure_close.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xhdpi-v4/stat_sys_third_app_notify.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xxhdpi-v4/push_pure_close.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xxhdpi-v4/stat_sys_third_app_notify.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xxxhdpi-v4/push_pure_close.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/drawable-xxxhdpi-v4/stat_sys_third_app_notify.png 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout-v21/push_notification.xml 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout-v21/push_notification_large.xml 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout-v21/push_notification_middle.xml 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/jpush_inapp_banner.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/jpush_popwin_layout.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/jpush_webview_layout.xml 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_expandable_big_image_notification.xml 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_expandable_big_text_notification.xml 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_notification.xml 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_notification_large.xml 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_notification_middle.xml 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/layout/push_pure_pic_notification.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/values-zh/jpush_string.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/values/jpush_string.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-jpush/src/main/res/values/jpush_style.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
settings.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/AndroidManifest.xml
@@ -25,6 +25,8 @@
        android:label="@string/permlab_downloadCompletedIntent"
        android:protectionLevel="normal" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
@@ -49,12 +51,8 @@
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
    <!-- 【必须】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <application
        android:name="com.weikou.beibeivideo.BeibeiVideoApplication"
@@ -511,6 +509,44 @@
                android:resource="@xml/funshion_file_path" />
        </provider>
        <!-- 极光推送 -->
        <service
            android:name=".service.JPushService"
            android:enabled="true"
            android:exported="false"
            android:process=":pushcore">
            <intent-filter>
                <action android:name="cn.jiguang.user.service.action" />
            </intent-filter>
        </service>
        <receiver
            android:name=".receiver.MyJPushReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>
        <activity
            android:name=".ui.push.OpenClickActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="com.weikou.beibeivideo.ui.push.OpenClickActivity" />
            </intent-filter>
        </activity>
    </application>
</manifest>
BuWanVideo/build.gradle
@@ -1,5 +1,4 @@
apply plugin: 'android'
dependencies {
    implementation project(':library-ViewPagerIndicator')
    implementation files('libs/SohuPlayerExtend_4.1.0_0_201606121225_open_release.jar')
@@ -59,6 +58,7 @@
    implementation project(path: ':library-EventBus')
    implementation project(path: ':library-VideoPlayer')
    implementation project(path: ':library-common')
    implementation project(path: ':library-jpush')
    annotationProcessor 'com.github.jokermonn:permissions4m:2.1.2-processor'
    //微信SDK
    api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
@@ -66,6 +66,9 @@
    //加载动画库
    implementation 'com.github.ybq:Android-SpinKit:1.4.0'
    //oppo_dependencies_start
    // oppo 厂商 aar 需要单独引入
    implementation(name: 'com.heytap.msp-push-2.1.0', ext: 'aar')
}
android {
@@ -102,6 +105,29 @@
        ndk {
            abiFilters "armeabi"
        }
        manifestPlaceholders = [
                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "c26d6c58b6aa5d0391248edf", //极光开发平台上注册的包名对应的appkey.
                JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
                //meizu_config_start
                MEIZU_APPKEY  : "MZ-dc40ea74e19948a683cb1876d5a8813e",
                MEIZU_APPID   : "MZ-139085",
                //meizu_config_end
                //xiaomi_config_start
                XIAOMI_APPID  : "MI-2882303761517505364",
                XIAOMI_APPKEY : "MI-5681750540364",
                //xiaomi_config_end
                //oppo_config_start
                OPPO_APPKEY   : "OP-9w8ke27Mlk8osgCoOkg4Ow8cg",
                OPPO_APPID    : "OP-3375605",
                OPPO_APPSECRET: "OP-eAbC32A01d02E8073b7788F687769502",
                //oppo_config_end
                //vivo_config_start
                VIVO_APPKEY   : "e9add1dfed7086061119d407857628ef",
                VIVO_APPID    : "100061268",
                //vivo_config_end
        ]
    }
    dexOptions {
        javaMaxHeapSize = "4g"
BuWanVideo/libs/com.heytap.msp-push-2.1.0.aar
Binary files differ
BuWanVideo/res/drawable-xhdpi/icon_video_vip.png
BuWanVideo/res/layout/act_help.xml
@@ -2,132 +2,190 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/content_bg_color"
    android:orientation="vertical">
    <View
        android:id="@+id/v_status_bar"
    <include layout="@layout/view_activity_top_navbar"></include>
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="15dp"
        android:background="@color/top_bar_color" />
        android:layout_height="match_parent"
        android:padding="15dp">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="@color/top_bar_color">
        <TextView
            android:id="@+id/help_tv_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:drawableLeft="@drawable/ic_back_two"
            android:drawablePadding="3dp"
            android:gravity="center_vertical"
            android:padding="8dp"
            android:text="返回"
            android:textColor="@color/white"
            android:textSize="16sp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="6dp"
            android:paddingTop="6dp"
            android:text="帮助与反馈"
            android:textColor="@color/white"
            android:textSize="20sp" />
    </FrameLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="76dp"
        android:background="@color/white"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="12dp"
            android:paddingBottom="10dp"
            android:paddingTop="18dp"
            android:text="联系我们"
            android:textSize="18sp" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:layout_marginLeft="12dp"
            android:layout_marginRight="12dp"
            android:background="#DBDBDB" />
        <RelativeLayout
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="12dp"
            android:paddingTop="12dp">
            android:orientation="vertical">
            <ImageView
                android:id="@+id/help_iv"
                android:layout_width="wrap_content"
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="14dp"
                android:layout_marginRight="14dp"
                android:src="@drawable/img_qq2" />
                android:background="@drawable/shape_help_item_bg"
                android:gravity="center_vertical"
                android:padding="28dp">
            <TextView
                android:id="@+id/help_tv1"
                android:layout_width="wrap_content"
                <ImageView
                    android:layout_width="105dp"
                    android:layout_height="105dp"
                    android:src="@drawable/ic_help_logo"></ImageView>
                <View
                    android:layout_width="0dp"
                    android:layout_height="1px"
                    android:layout_weight="1"></View>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="在线客服"
                        android:textColor="#ff2c2c2c"
                        android:textSize="21sp" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="9.5dp"
                        android:text="有问题,找客服"
                        android:textColor="#ff868686"
                        android:textSize="12sp" />
                    <TextView
                        android:id="@+id/tv_copy_qq"
                        android:layout_width="145dp"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="15dp"
                        android:background="@drawable/shape_login_btn"
                        android:gravity="center"
                        android:padding="10dp"
                        android:text="复制客服QQ号"
                        android:textColor="#fffffefe"
                        android:textSize="15sp" />
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_common_question"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="@id/help_iv"
                android:layout_toRightOf="@id/help_iv"
                android:text="QQ客服"
                android:textColor="@color/black1"
                android:textSize="16sp" />
                android:layout_marginTop="20dp"
                android:background="@drawable/shape_help_item_bg"
                android:gravity="center_vertical"
                android:paddingLeft="28dp"
                android:paddingTop="13dp"
                android:paddingRight="28dp"
                android:paddingBottom="13dp">
            <TextView
                android:id="@+id/help_tv_num"
                android:layout_width="wrap_content"
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/icon_help_question"></ImageView>
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="17.5dp"
                    android:layout_weight="1"
                    android:orientation="vertical">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="常见问题"
                        android:textColor="#ff0052f6"
                        android:textSize="18sp" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="经常会遇到的一些问题~"
                        android:textColor="#ff8c8c8d"
                        android:textSize="12sp" />
                </LinearLayout>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/icon_input_help">
                </ImageView>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_common_advice"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/help_tv1"
                android:layout_marginTop="4dp"
                android:layout_toRightOf="@id/help_iv"
                android:text="2100723373"
                android:textColor="@color/text_color_small"
                android:textSize="14sp" />
                android:layout_marginTop="20dp"
                android:background="@drawable/shape_help_item_bg"
                android:gravity="center_vertical"
                android:paddingLeft="28dp"
                android:paddingTop="13dp"
                android:paddingRight="28dp"
                android:paddingBottom="13dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@id/help_tv_num"
                android:layout_toRightOf="@id/help_tv_num"
                android:text="(长按可复制)"
                android:textColor="#B9B7B8"
                android:textSize="14sp" />
        </RelativeLayout>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/icon_feedback"></ImageView>
        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="#DBDBDB" />
        <TextView
            android:id="@+id/help_tv_commonquestion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_color_item_bg"
            android:drawableRight="@drawable/img_arrow_r"
            android:padding="14dp"
            android:text="常见问题"
            android:textColor="@color/black"
            android:textSize="18sp" />
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="17.5dp"
                    android:layout_weight="1"
                    android:orientation="vertical">
        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="#DBDBDB" />
    </LinearLayout>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="意见反馈"
                        android:textColor="#ff0052f6"
                        android:textSize="18sp" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:text="我有想法给你讲~"
                        android:textColor="#ff8c8c8d"
                        android:textSize="12sp" />
                </LinearLayout>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/icon_input_help">
                </ImageView>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>
BuWanVideo/res/layout/item_movie.xml
@@ -28,6 +28,13 @@
                    android:scaleType="centerCrop" />
                <ImageView
                    android:id="@+id/iv_vip"
                    android:layout_width="29.5dp"
                    android:layout_height="17.5dp"
                    android:layout_gravity="top|right"
                    android:src="@drawable/icon_video_vip" />
                <ImageView
                    android:id="@+id/iv_spread"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -40,6 +40,8 @@
import org.apache.http.Header;
import org.json.JSONObject;
import cn.jpush.android.api.JPushInterface;
public class BeibeiVideoApplication extends Application {
    private final String TAG = BeibeiVideoApplication.class.getName();
@@ -164,6 +166,9 @@
        } catch (Exception e) {
        }
        //极光推送
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);
    }
@@ -191,7 +196,7 @@
            @Override
            public void onFailure(int code, String msg) {
                Log.i(TAG,"百川初始化失败:"+code+"-"+msg);
                Log.i(TAG, "百川初始化失败:" + code + "-" + msg);
            }
        });
BuWanVideo/src/com/weikou/beibeivideo/entity/VideoInfo.java
@@ -75,6 +75,17 @@
    @Expose
    private String evalueate;
    @Expose
    private int free;
    public int getFree() {
        return free;
    }
    public void setFree(int free) {
        this.free = free;
    }
    public String getVpicture() {
        return vpicture;
    }
BuWanVideo/src/com/weikou/beibeivideo/entity/video/holder/VideoHolder.java
@@ -16,6 +16,7 @@
    public LinearLayout ll_video_show;
    public ImageView iv_movie_cover;
    public ImageView iv_spread;
    public ImageView iv_vip;
    public TextView tv_movie_rating;
    public ImageView iv_ad_logo;
    public TextView tv_movie_play_num;
@@ -35,5 +36,6 @@
        tv_movie_play_num = view.findViewById(R.id.tv_movie_play_num);
        tv_movie_comment_num = view.findViewById(R.id.tv_movie_comment_num);
        tv_movie_title = view.findViewById(R.id.tv_movie_title);
        iv_vip = view.findViewById(R.id.iv_vip);
    }
}
BuWanVideo/src/com/weikou/beibeivideo/receiver/MyJPushReceiver.java
New file
@@ -0,0 +1,125 @@
package com.weikou.beibeivideo.receiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.TagAliasOperatorHelper;
import com.weikou.beibeivideo.ui.push.OpenClickActivity;
import cn.jpush.android.api.CmdMessage;
import cn.jpush.android.api.CustomMessage;
import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.api.NotificationMessage;
import cn.jpush.android.service.JPushMessageReceiver;
public class MyJPushReceiver
        extends JPushMessageReceiver {
    private static final String TAG = "MyJPushReceiver";
    @Override
    public void onMessage(Context context, CustomMessage customMessage) {
        Log.e(TAG, "[onMessage] " + customMessage);
//        processCustomMessage(context, customMessage);
    }
    @Override
    public void onNotifyMessageOpened(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageOpened] " + message);
        Log.i(TAG, "[notificationExtras] " + message.notificationExtras);
        try {
            //打开自定义的Activity
            Intent i = new Intent(context, OpenClickActivity.class);
            Bundle bundle = new Bundle();
            bundle.putString(JPushInterface.EXTRA_NOTIFICATION_TITLE, message.notificationTitle);
            bundle.putString(JPushInterface.EXTRA_ALERT, message.notificationContent);
            i.putExtras(bundle);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
            context.startActivity(i);
        } catch (Throwable throwable) {
        }
    }
    @Override
    public void onMultiActionClicked(Context context, Intent intent) {
        Log.e(TAG, "[onMultiActionClicked] 用户点击了通知栏按钮");
        String nActionExtra = intent.getExtras().getString(JPushInterface.EXTRA_NOTIFICATION_ACTION_EXTRA);
        //开发者根据不同 Action 携带的 extra 字段来分配不同的动作。
        if (nActionExtra == null) {
            Log.d(TAG, "ACTION_NOTIFICATION_CLICK_ACTION nActionExtra is null");
            return;
        }
        if (nActionExtra.equals("my_extra1")) {
            Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮一");
        } else if (nActionExtra.equals("my_extra2")) {
            Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮二");
        } else if (nActionExtra.equals("my_extra3")) {
            Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮三");
        } else {
            Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮未定义");
        }
    }
    @Override
    public void onNotifyMessageArrived(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageArrived] " + message);
    }
    @Override
    public void onNotifyMessageDismiss(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageDismiss] " + message);
    }
    @Override
    public void onRegister(Context context, String registrationId) {
        Log.e(TAG, "[onRegister] " + registrationId);
    }
    @Override
    public void onConnected(Context context, boolean isConnected) {
        Log.e(TAG, "[onConnected] " + isConnected);
    }
    @Override
    public void onCommandResult(Context context, CmdMessage cmdMessage) {
        Log.e(TAG, "[onCommandResult] " + cmdMessage);
    }
    @Override
    public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onTagOperatorResult(context, jPushMessage);
        super.onTagOperatorResult(context, jPushMessage);
    }
    @Override
    public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context, jPushMessage);
        super.onCheckTagOperatorResult(context, jPushMessage);
    }
    @Override
    public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context, jPushMessage);
        super.onAliasOperatorResult(context, jPushMessage);
    }
    @Override
    public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context, jPushMessage);
        super.onMobileNumberOperatorResult(context, jPushMessage);
    }
    @Override
    public void onNotificationSettingsCheck(Context context, boolean isOn, int source) {
        super.onNotificationSettingsCheck(context, isOn, source);
        Log.e(TAG, "[onNotificationSettingsCheck] isOn:" + isOn + ",source:" + source);
    }
}
BuWanVideo/src/com/weikou/beibeivideo/service/JPushService.java
New file
@@ -0,0 +1,7 @@
package com.weikou.beibeivideo.service;
import cn.jpush.android.service.JCommonService;
public class JPushService
        extends JCommonService {
}
BuWanVideo/src/com/weikou/beibeivideo/ui/BaseActivity.java
@@ -6,10 +6,13 @@
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import com.umeng.analytics.MobclickAgent;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
//import com.umeng.message.PushAgent;
@@ -30,6 +33,26 @@
        }
    }
    protected void initStatusBar() {
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
            findViewById(R.id.v_status_bar).setVisibility(View.VISIBLE);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
    }
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (newConfig.fontScale != 1)//非默认值
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java
@@ -84,23 +84,7 @@
        }
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_splash);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        vg_ad = findViewById(R.id.fl_splash_ad);
        vg_input = findViewById(R.id.fl_input);
BuWanVideo/src/com/weikou/beibeivideo/ui/category/MVideosActivity.java
@@ -35,6 +35,7 @@
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.entity.VideoType;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.common.VideosFragment;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.ui.mine.WatchHistoryActivity;
@@ -49,7 +50,7 @@
import java.util.Date;
import java.util.List;
public class MVideosActivity extends FragmentActivity implements
public class MVideosActivity extends BaseActivity implements
        OnClickListener {
    private VideoType mVideoType;
@@ -79,25 +80,7 @@
        preferences = getSharedPreferences("user",
                Context.MODE_PRIVATE);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        mVideoInfos = new ArrayList<VideoType>();
        mVideoType = (VideoType) getIntent().getSerializableExtra("video_type");
        pager = (ViewPager) findViewById(R.id.pager);
@@ -220,12 +203,12 @@
    }
    @Override
    protected void onResume() {
    public void onResume() {
        super.onResume();
    }
    @Override
    protected void onPause() {
    public void onPause() {
        super.onPause();
    }
BuWanVideo/src/com/weikou/beibeivideo/ui/category/SpecificDetailActivity.java
@@ -35,22 +35,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.specific_detail_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left.setOnClickListener(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/category/StarDetailActivity.java
@@ -27,22 +27,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.star_detail_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left.setOnClickListener(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/common/FollowActivity.java
@@ -60,25 +60,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_follow);
           /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        ll_no_data = (LinearLayout) findViewById(R.id.ll_no_data);
        lv_follow = (ListView) findViewById(R.id.lv_activity_follow);
        lv_follow.addHeaderView(new View(this));
BuWanVideo/src/com/weikou/beibeivideo/ui/common/LiveBrowserActivity.java
@@ -51,22 +51,7 @@
        super.onCreate(savedInstanceState);
        setContentView(R.layout.live_browser_activity);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
            /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        webview = (WebView) findViewById(R.id.webview);
BuWanVideo/src/com/weikou/beibeivideo/ui/common/MVideosActivity.java
@@ -68,22 +68,7 @@
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏
        setContentView(R.layout.mvideos_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        if (getIntent().getSerializableExtra("home_type") == null) {
            id = getIntent().getStringExtra("id");
BuWanVideo/src/com/weikou/beibeivideo/ui/common/VideosLiveActivity.java
@@ -61,22 +61,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.videos_live_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        mHomeType = getIntent().getStringExtra("home_type");
        mVideoType = getIntent().getStringExtra("video_type");
        mStarId = getIntent().getStringExtra("star_id");
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsDetailActivity.java
@@ -90,23 +90,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_goods_detail);
         /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        }
        initStatusBar();
        View topView = LayoutInflater.from(this).inflate(R.layout.item_goods_detail_top, null);
        View bottom = LayoutInflater.from(this).inflate(R.layout.item_good_detail_bottom, null);
        tv_top_left = (TextView) findViewById(R.id.tv_top_bar_left);
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/GoodsReviewActivity.java
@@ -48,25 +48,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_goods_review);
         /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_middle.setText("全部评论");
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/ReleaseGoodsActivity.java
@@ -23,25 +23,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_release_goods);
         /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_middle.setText("发布");
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/ReleasePromptActivity.java
@@ -31,25 +31,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_release_prompt);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_middle.setText("发布");
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/SpecificListActivity.java
@@ -36,25 +36,7 @@
            fm.beginTransaction().add(R.id.fl_add_container, fragment, "DiscoverNowFragment").commitAllowingStateLoss();
        }
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
    }
    @Override
BuWanVideo/src/com/weikou/beibeivideo/ui/discover/StarsActivity.java
@@ -31,25 +31,7 @@
            fragment = new StarFragment();
            fm.beginTransaction().add(R.id.fl_add_container, fragment, "StarFragment").commitAllowingStateLoss();
        }
          /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
    }
    @Override
BuWanVideo/src/com/weikou/beibeivideo/ui/live/Activity_LiveCateGory.java
@@ -52,22 +52,7 @@
        super.onCreate(arg0);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activty_live_category);
          /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left.setText("返回");
BuWanVideo/src/com/weikou/beibeivideo/ui/login/ForgetPwdActivity.java
@@ -47,19 +47,7 @@
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_forget_pwd);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        et_email = (EditText) findViewById(R.id.et_email);
        et_verfication_code = (EditText) findViewById(R.id.et_verfication_code);
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java
@@ -67,22 +67,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_login);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        uid = getSharedPreferences("user", Context.MODE_PRIVATE).getString(
                "uid", "");
        ll_login_qq = findViewById(R.id.ll_login_qq);
@@ -297,7 +282,6 @@
            SingleToast.showToast(this, "账号或密码为空!");
            return;
        }
        SingleToast.showToast(this, "开始登录了");
        BeibeiVideoAPI.emailLogin(this, uid, name, pwd, new BasicTextHttpResponseHandler() {
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PersonInfoActivity.java
@@ -90,22 +90,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_person_info);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        ll_portrait = (LinearLayout) findViewById(R.id.ll_portrait_select);
        ll_nickName = (LinearLayout) findViewById(R.id.ll_nickName);
        ll_birthday = (LinearLayout) findViewById(R.id.ll_birthday);
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java
@@ -110,22 +110,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_phone_login);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        initView();
        login = getIntent().getBooleanExtra("login", false);
        tv_title.setText(login ? "登录" : "绑定手机号");
BuWanVideo/src/com/weikou/beibeivideo/ui/login/RegisterActivity.java
@@ -50,22 +50,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_register);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        et_email = (EditText) findViewById(R.id.et_name);
        et_pwd = (EditText) findViewById(R.id.et_pwd);
        et_verfication_code = (EditText) findViewById(R.id.et_verfication_code);
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java
@@ -127,26 +127,7 @@
        exitDialog = exitDialogBuilder.create();
        exitDialog.setCanceledOnTouchOutside(true);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
            findViewById(R.id.v_status_bar).setVisibility(View.VISIBLE);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        // 将imei mac lat lng存入sharedpreference中
        SharedPreferences mPre = getSharedPreferences("user",
                Context.MODE_PRIVATE);
@@ -183,26 +164,7 @@
        iv_taobao.setOnClickListener(this);
        iv_red_dot = findViewById(R.id.iv_red_dot);
        fl_right_ad = findViewById(R.id.fl_right_ad);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        initialer.run();
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity.java
@@ -10,7 +10,6 @@
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -33,7 +32,6 @@
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.TTFullScreenVideoAd;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -46,6 +44,7 @@
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.db.WatchHistoryTable;
import com.weikou.beibeivideo.entity.AccumulateRule;
import com.weikou.beibeivideo.entity.Follow;
@@ -60,12 +59,10 @@
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.ad.PlayVideoPreADFragment;
import com.weikou.beibeivideo.ui.common.ShareActivity;
import com.weikou.beibeivideo.ui.video.VideoPlayerBrowserActivity;
import com.weikou.beibeivideo.ui.video.VideoPlayerActivity;
import com.weikou.beibeivideo.ui.video.VideoPlayerBrowserActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.ad.FullVideoAdManager;
import com.weikou.beibeivideo.R;
import org.apache.http.Header;
import org.json.JSONArray;
@@ -134,22 +131,7 @@
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_detail_activity);
        VideoUtil.clearVideoEpisodeList(this);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        /**
         * 广告
@@ -270,19 +252,7 @@
    private void loadFullVideoAd() {
        //加载广告
        if (BeibeiConstant.AD_TYPE.isVideoDetailSplashAd()) {
            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(VideoDetailActivity.this);
                    }
                });
            }
        }
    }
    private static FrameLayout fl_video_play_background;
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -155,22 +155,7 @@
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_detail_activity);
        VideoUtil.clearVideoEpisodeList(this);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        //广告
        mVideoDetailVideoAdFragment = new PlayVideoPreADFragment();
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/BrowserActivity.java
@@ -161,23 +161,7 @@
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.browser_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
            findViewById(R.id.v_status_bar).setVisibility(View.VISIBLE);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
        tv_top_bar_left2 = findViewById(R.id.tv_top_bar_left2);
        tv_top_bar_left2.setVisibility(View.VISIBLE);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/DownLoadUrlActivity.java
@@ -43,22 +43,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.download_url_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left.setText("返回");
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/DownloadActivity.java
@@ -18,199 +18,182 @@
import com.lcjian.library.util.FragmentSwitchHelper;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.recent.DownloadAdapter2;
import com.weikou.beibeivideo.ui.recent.OfflineCacheFragment2;
import com.weikou.beibeivideo.ui.recent.WatchHistoryFragment;
public class DownloadActivity extends FragmentActivity implements
        DownloadAdapter2.IGetDeleteCallback, OnClickListener {
    private FragmentSwitchHelper mFragmentSwitchHelper;
public class DownloadActivity extends BaseActivity implements
        DownloadAdapter2.IGetDeleteCallback, OnClickListener {
    private FragmentSwitchHelper mFragmentSwitchHelper;
    private ToggleButton btn_delete;
    private ToggleButton btn_delete;
    private LinearLayout ll_recent_bottom;
    private LinearLayout ll_recent_bottom;
    private Button btn_select_all;
    private Button btn_select_all;
    private Button btn_delete_item;
    private Button btn_delete_item;
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_download);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        OfflineCacheFragment2 cacheFragment2 = new OfflineCacheFragment2();
        cacheFragment2.setDeleteCallback(this);
        mFragmentSwitchHelper = FragmentSwitchHelper.create(
                R.id.fl_offlinecache_fragment_container,
                getSupportFragmentManager(), cacheFragment2);
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_download);
        initStatusBar();
        OfflineCacheFragment2 cacheFragment2 = new OfflineCacheFragment2();
        cacheFragment2.setDeleteCallback(this);
        mFragmentSwitchHelper = FragmentSwitchHelper.create(
                R.id.fl_offlinecache_fragment_container,
                getSupportFragmentManager(), cacheFragment2);
        ((TextView) findViewById(R.id.tv_top_bar_left)).setText("返回");
        ((TextView) findViewById(R.id.tv_top_bar_middle)).setText("离线缓存");
        mFragmentSwitchHelper.changeFragment(OfflineCacheFragment2.class);
        findViewById(R.id.tv_top_bar_left).setOnClickListener(
                new OnClickListener() {
        ((TextView) findViewById(R.id.tv_top_bar_left)).setText("返回");
        ((TextView) findViewById(R.id.tv_top_bar_middle)).setText("离线缓存");
        mFragmentSwitchHelper.changeFragment(OfflineCacheFragment2.class);
        findViewById(R.id.tv_top_bar_left).setOnClickListener(
                new OnClickListener() {
                    @Override
                    public void onClick(View arg0) {
                        finish();
                    }
                });
        btn_delete = (ToggleButton) findViewById(R.id.btn_delete);
        btn_delete.setOnClickListener(this);
                    @Override
                    public void onClick(View arg0) {
                        finish();
                    }
                });
        btn_delete = (ToggleButton) findViewById(R.id.btn_delete);
        btn_delete.setOnClickListener(this);
        ll_recent_bottom = (LinearLayout) findViewById(R.id.ll_recent_bottom);
        btn_select_all = (Button) findViewById(R.id.btn_select_all);
        btn_delete_item = (Button) findViewById(R.id.btn_delete_item);
        btn_select_all.setOnClickListener(this);
        btn_delete_item.setOnClickListener(this);
        ll_recent_bottom.post(new Runnable() {
        ll_recent_bottom = (LinearLayout) findViewById(R.id.ll_recent_bottom);
        btn_select_all = (Button) findViewById(R.id.btn_select_all);
        btn_delete_item = (Button) findViewById(R.id.btn_delete_item);
        btn_select_all.setOnClickListener(this);
        btn_delete_item.setOnClickListener(this);
        ll_recent_bottom.post(new Runnable() {
            @Override
            public void run() {
                updateView();
            }
        });
    }
            @Override
            public void run() {
                updateView();
            }
        });
    }
    @Override
    public void onGetNum(int count) {
        if (count == 0) {
            btn_delete_item.setText("删除");
        } else {
            btn_delete_item.setText("删除(" + count + ")");
        }
    }
    @Override
    public void onGetNum(int count) {
        if (count == 0) {
            btn_delete_item.setText("删除");
        } else {
            btn_delete_item.setText("删除(" + count + ")");
        }
    }
    boolean isSelected = false;
    boolean isDeleted = false;// 是否已经执行删除操作,如过为true:删除已经执行,ll_recent_bottom设置为gone,如果给false,删除操作未执行,ll_recent_bottom设置为Visibilily;
    boolean isSelected = false;
    boolean isDeleted = false;// 是否已经执行删除操作,如过为true:删除已经执行,ll_recent_bottom设置为gone,如果给false,删除操作未执行,ll_recent_bottom设置为Visibilily;
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn_delete: {
            Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                    OfflineCacheFragment2.class.getName());
            if (fragment != null && fragment.isResumed()) {
                ((OfflineCacheFragment2) fragment)
                        .setSelectedMode(!((OfflineCacheFragment2) fragment)
                                .isSelectedMode());
            } else {
                fragment = getSupportFragmentManager().findFragmentByTag(
                        WatchHistoryFragment.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((WatchHistoryFragment) fragment)
                            .setSelectedMode(!((WatchHistoryFragment) fragment)
                                    .isSelectedMode());
                }
            }
            updateView();
        }
            break;
        case R.id.btn_select_all: {
            isSelected = !isSelected;
            if (isSelected) {
                btn_select_all.setText("全不选");
            } else {
                btn_select_all.setText("全选");
            }
            Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                    OfflineCacheFragment2.class.getName());
            if (fragment != null && fragment.isResumed()) {
                ((OfflineCacheFragment2) fragment).selectAll(isSelected);
            } else {
                fragment = getSupportFragmentManager().findFragmentByTag(
                        WatchHistoryFragment.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((WatchHistoryFragment) fragment).selectAll(isSelected);
                }
            }
        }
            break;
        case R.id.btn_delete_item: {
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_delete: {
                Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                        OfflineCacheFragment2.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((OfflineCacheFragment2) fragment)
                            .setSelectedMode(!((OfflineCacheFragment2) fragment)
                                    .isSelectedMode());
                } else {
                    fragment = getSupportFragmentManager().findFragmentByTag(
                            WatchHistoryFragment.class.getName());
                    if (fragment != null && fragment.isResumed()) {
                        ((WatchHistoryFragment) fragment)
                                .setSelectedMode(!((WatchHistoryFragment) fragment)
                                        .isSelectedMode());
                    }
                }
                updateView();
            }
            break;
            case R.id.btn_select_all: {
                isSelected = !isSelected;
                if (isSelected) {
                    btn_select_all.setText("全不选");
                } else {
                    btn_select_all.setText("全选");
                }
                Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                        OfflineCacheFragment2.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((OfflineCacheFragment2) fragment).selectAll(isSelected);
                } else {
                    fragment = getSupportFragmentManager().findFragmentByTag(
                            WatchHistoryFragment.class.getName());
                    if (fragment != null && fragment.isResumed()) {
                        ((WatchHistoryFragment) fragment).selectAll(isSelected);
                    }
                }
            }
            break;
            case R.id.btn_delete_item: {
            Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                    OfflineCacheFragment2.class.getName());
            if (fragment != null && fragment.isResumed()) {
                ((OfflineCacheFragment2) fragment).deleteDownload();
                btn_delete_item.setText("删除");
            } else {
                fragment = getSupportFragmentManager().findFragmentByTag(
                        WatchHistoryFragment.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((WatchHistoryFragment) fragment).deleteWatchHistory();
                    btn_delete_item.setText("删除");
                }
            }
            ll_recent_bottom.postDelayed(new Runnable() {
                Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                        OfflineCacheFragment2.class.getName());
                if (fragment != null && fragment.isResumed()) {
                    ((OfflineCacheFragment2) fragment).deleteDownload();
                    btn_delete_item.setText("删除");
                } else {
                    fragment = getSupportFragmentManager().findFragmentByTag(
                            WatchHistoryFragment.class.getName());
                    if (fragment != null && fragment.isResumed()) {
                        ((WatchHistoryFragment) fragment).deleteWatchHistory();
                        btn_delete_item.setText("删除");
                    }
                }
                ll_recent_bottom.postDelayed(new Runnable() {
                @Override
                public void run() {
                    isDeleted = true;
                    updateView();
                }
            }, 500);
        }
            break;
        case R.id.tv_no_network: {
            Intent intent = new Intent(Settings.ACTION_SETTINGS);
            startActivity(intent);
        }
            break;
        default:
            break;
        }
    }
                    @Override
                    public void run() {
                        isDeleted = true;
                        updateView();
                    }
                }, 500);
            }
            break;
            case R.id.tv_no_network: {
                Intent intent = new Intent(Settings.ACTION_SETTINGS);
                startActivity(intent);
            }
            break;
            default:
                break;
        }
    }
    private void updateView() {
        boolean noData = false;
        boolean selectedMode = false;
        Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                OfflineCacheFragment2.class.getName());
        if (fragment != null && fragment.isResumed()) {
            noData = ((OfflineCacheFragment2) fragment).getCount() == 0;
            if (noData) {
                ((OfflineCacheFragment2) fragment).setSelectedMode(false);
            }
            selectedMode = ((OfflineCacheFragment2) fragment).isSelectedMode();
        } else {
            fragment = getSupportFragmentManager().findFragmentByTag(
                    WatchHistoryFragment.class.getName());
            if (fragment != null && fragment.isResumed()) {
                noData = ((WatchHistoryFragment) fragment).getCount() == 0;
                if (noData) {
                    ((WatchHistoryFragment) fragment).setSelectedMode(false);
                }
                selectedMode = ((WatchHistoryFragment) fragment)
                        .isSelectedMode();
            }
        }
        ll_recent_bottom.setVisibility(selectedMode ? View.VISIBLE : View.GONE);
        if (ll_recent_bottom.isShown()) {
        } else {
            btn_delete_item.setText("删除");
            if (isSelected) {
                isSelected = false;
                btn_select_all.setText("全选");
            }
        }
    }
    private void updateView() {
        boolean noData = false;
        boolean selectedMode = false;
        Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                OfflineCacheFragment2.class.getName());
        if (fragment != null && fragment.isResumed()) {
            noData = ((OfflineCacheFragment2) fragment).getCount() == 0;
            if (noData) {
                ((OfflineCacheFragment2) fragment).setSelectedMode(false);
            }
            selectedMode = ((OfflineCacheFragment2) fragment).isSelectedMode();
        } else {
            fragment = getSupportFragmentManager().findFragmentByTag(
                    WatchHistoryFragment.class.getName());
            if (fragment != null && fragment.isResumed()) {
                noData = ((WatchHistoryFragment) fragment).getCount() == 0;
                if (noData) {
                    ((WatchHistoryFragment) fragment).setSelectedMode(false);
                }
                selectedMode = ((WatchHistoryFragment) fragment)
                        .isSelectedMode();
            }
        }
        ll_recent_bottom.setVisibility(selectedMode ? View.VISIBLE : View.GONE);
        if (ll_recent_bottom.isShown()) {
        } else {
            btn_delete_item.setText("删除");
            if (isSelected) {
                isSelected = false;
                btn_select_all.setText("全选");
            }
        }
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/FeedBackActivity.java
@@ -26,22 +26,7 @@
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_feedback);
        aQuery = new AQuery(this);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        aQuery.id(R.id.tv_submit).clicked(this);
        aQuery.id(R.id.tv_top_bar_left).clicked(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/HelpAndTicklingActivity.java
@@ -26,22 +26,7 @@
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_help);
        aQuery = new AQuery(this);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        aQuery.id(R.id.tv_copy_qq).clicked(this);
        aQuery.id(R.id.ll_common_question).clicked(this);
        aQuery.id(R.id.ll_common_advice).clicked(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/MyFavouriteActivity.java
@@ -99,22 +99,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.myfavourites_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            android.widget.LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams(
                    LayoutParams.MATCH_PARENT, result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_right = findViewById(R.id.tv_top_bar_right);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -7,6 +7,7 @@
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -81,11 +82,6 @@
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
                return super.shouldOverrideUrlLoading(webView, webResourceRequest);
            }
            @Override
            public void onPageFinished(WebView webView, String s) {
                super.onPageFinished(webView, s);
                if (showAd)
@@ -98,6 +94,7 @@
            @Override
            public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
                sslErrorHandler.proceed();
            }
        });
@@ -106,15 +103,6 @@
            View myVideoView;
            View myNormalView;
            CustomViewCallback callback;
            @Override
            public void onReceivedTitle(WebView view, String title) {
            }
            @Override
            public void onProgressChanged(WebView webView, int i) {
                super.onProgressChanged(webView, i);
            }
            @Override
            public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
@@ -161,6 +149,10 @@
        WebSettings webSetting = webview.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setTextZoom(100);
        webSetting.setBlockNetworkImage(false);
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
            webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        webview.addJavascriptInterface(new PPJavaInterface(BeibeiVideoApplication.application, new PPJavaInterface.IEventListener() {
            @Override
            public void onLogin() {
@@ -196,6 +188,7 @@
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                        }
                    });
@@ -207,6 +200,8 @@
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return super.onCreateView(inflater, container, savedInstanceState);
    }
    @Override
@@ -325,6 +320,7 @@
                }
            }
            break;
            case R.id.iv_add_to_favourite:
                collect(collected);
                break;
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SettingsActivity.java
@@ -147,22 +147,7 @@
        rl_user_agreement.setOnClickListener(this);
        rl_privacy_policy.setOnClickListener(this);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        final SharedPreferences settings = getSharedPreferences("settings",
                Context.MODE_PRIVATE);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SuggestionActivity.java
@@ -36,22 +36,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.suggestion_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_middle.setText(R.string.suggestion);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/SystemMessageActivity.java
@@ -45,22 +45,7 @@
        super.onCreate(arg0);
        setContentView(R.layout.system_message_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left.setOnClickListener(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/WatchHistoryActivity.java
@@ -21,11 +21,12 @@
import com.lcjian.library.util.FragmentSwitchHelper;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.recent.DownloadAdapter2;
import com.weikou.beibeivideo.ui.recent.OfflineCacheFragment2;
import com.weikou.beibeivideo.ui.recent.WatchHistoryFragment;
public class WatchHistoryActivity extends FragmentActivity implements
public class WatchHistoryActivity extends BaseActivity implements
        DownloadAdapter2.IGetDeleteCallback, OnClickListener {
    private FragmentSwitchHelper mFragmentSwitchHelper;
@@ -44,25 +45,7 @@
        super.onCreate(arg0);
        setContentView(R.layout.activity_watch_history);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_right = findViewById(R.id.tv_top_bar_right);
        tv_top_bar_right.setText("编辑");
BuWanVideo/src/com/weikou/beibeivideo/ui/push/OpenClickActivity.java
New file
@@ -0,0 +1,123 @@
package com.weikou.beibeivideo.ui.push;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
/**
 * Created by jiguang on 17/7/5.
 */
public class OpenClickActivity extends Activity {
    private static final String TAG = "OpenClickActivity";
    /**消息Id**/
    private static final String KEY_MSGID = "msg_id";
    /**该通知的下发通道**/
    private static final String KEY_WHICH_PUSH_SDK = "rom_type";
    /**通知标题**/
    private static final String KEY_TITLE = "n_title";
    /**通知内容**/
    private static final String KEY_CONTENT = "n_content";
    /**通知附加字段**/
    private static final String KEY_EXTRAS = "n_extras";
    private TextView mTextView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);
        setContentView(mTextView);
        handleOpenClick();
    }
    /**
     * 处理点击事件,当前启动配置的Activity都是使用
     * Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
     * 方式启动,只需要在onCreat中调用此方法进行处理
     */
    private void handleOpenClick() {
        Log.d(TAG, "用户点击打开了通知");
        String data = null;
        //获取华为平台附带的jpush信息
        if (getIntent().getData() != null) {
            data = getIntent().getData().toString();
        }
        //获取fcm、oppo、vivo、华硕、小米平台附带的jpush信息
        if (TextUtils.isEmpty(data) && getIntent().getExtras() != null) {
            data = getIntent().getExtras().getString("JMessageExtra");
        }
        Log.w(TAG, "msg content is " + String.valueOf(data));
        if (TextUtils.isEmpty(data)) return;
        try {
            JSONObject jsonObject = new JSONObject(data);
            String msgId = jsonObject.optString(KEY_MSGID);
            byte whichPushSDK = (byte) jsonObject.optInt(KEY_WHICH_PUSH_SDK);
            String title = jsonObject.optString(KEY_TITLE);
            String content = jsonObject.optString(KEY_CONTENT);
            String extras = jsonObject.optString(KEY_EXTRAS);
            StringBuilder sb = new StringBuilder();
            sb.append("msgId:");
            sb.append(String.valueOf(msgId));
            sb.append("\n");
            sb.append("title:");
            sb.append(String.valueOf(title));
            sb.append("\n");
            sb.append("content:");
            sb.append(String.valueOf(content));
            sb.append("\n");
            sb.append("extras:");
            sb.append(String.valueOf(extras));
            sb.append("\n");
            sb.append("platform:");
            sb.append(getPushSDKName(whichPushSDK));
            mTextView.setText(sb.toString());
            //上报点击事件
//            JPushInterface.reportNotificationOpened(this, msgId, whichPushSDK);
        } catch (JSONException e) {
            Log.w(TAG, "parse notification error");
        }
    }
    private String getPushSDKName(byte whichPushSDK) {
        String name;
        switch (whichPushSDK) {
            case 0:
                name = "jpush";
                break;
            case 1:
                name = "xiaomi";
                break;
            case 2:
                name = "huawei";
                break;
            case 3:
                name = "meizu";
                break;
            case 4:
                name = "oppo";
                break;
            case 5:
                name = "vivo";
                break;
            case 6:
                name = "asus";
                break;
            case 8:
                name = "fcm";
                break;
            default:
                name = "jpush";
        }
        return name;
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/recent/DownLoadActivity.java
@@ -51,22 +51,7 @@
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.download_group_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
        tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_right = (ToggleButton) findViewById(R.id.btn_delete);
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java
@@ -422,6 +422,13 @@
                    holder.tv_movie_rating.setVisibility(View.VISIBLE);
                }
                //vip标识
                if (info.getVideo() != null && info.getVideo().getFree() == 1) {
                    holder.iv_vip.setVisibility(View.VISIBLE);
                } else {
                    holder.iv_vip.setVisibility(View.GONE);
                }
                DecimalFormat df = new DecimalFormat("###.0");
                holder.tv_movie_play_num.setText(VideoUtil.getWatchCountShortName(info.getVideo().getWatchCount()));
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java
@@ -87,22 +87,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search_actvity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        initView();
        et_search_key.setOnEditorActionListener(new TextView.OnEditorActionListener() {
BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -102,23 +102,7 @@
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search_result_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        rl_search_result = findViewById(R.id.rl_search_result);
        et_search_key = findViewById(R.id.et_search_key);
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoColumn2Adapter.java
@@ -425,6 +425,14 @@
                    e.printStackTrace();
                }
            }
            //vip标识
            if (info.getFree() == 1) {
                holder.iv_vip.setVisibility(View.VISIBLE);
            } else {
                holder.iv_vip.setVisibility(View.GONE);
            }
            holder.tv_movie_title.setText(info.getName());
            String tag = StringUtils.isBlank(info.getTag()) ? "" : info
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
@@ -207,23 +207,7 @@
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.activity_video_player);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
            findViewById(R.id.v_status_bar).setVisibility(View.VISIBLE);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        initX5WebView();
        tv_title = findViewById(R.id.tv_title);
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java
@@ -69,22 +69,7 @@
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.browser_fengxing_activity);
        /*
         * 计算状态栏高度并设置
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            int result = 0;
            int resourceId = getResources().getIdentifier("status_bar_height",
                    "dimen", "android");
            if (resourceId > 0) {
                result = getResources().getDimensionPixelSize(resourceId);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    result);
            findViewById(R.id.v_status_bar).setLayoutParams(params);
        } else {
            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
        }
        initStatusBar();
        tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
        tv_url = findViewById(R.id.tv_url);
BuWanVideo/src/com/weikou/beibeivideo/util/browser/PPJavaInterface.java
@@ -3,6 +3,7 @@
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
@@ -35,6 +36,7 @@
import static android.content.Context.MODE_PRIVATE;
public class PPJavaInterface {
    private static final String TAG = "PPJavaInterface";
    private Context mContext;
    private IEventListener eventListener;
@@ -102,6 +104,7 @@
        eventListener.onPlayFinish();
    }
    public interface IEventListener {
        public void onLogin();
build.gradle
@@ -7,10 +7,12 @@
        maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }
        maven { url 'http://developer.huawei.com/repo/'}
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
        classpath 'com.huawei.agconnect:agcp:1.2.1.301'
    }
}
@@ -24,5 +26,6 @@
        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/'}
    }
}
library-jpush/.gitignore
New file
@@ -0,0 +1,41 @@
# Built application files
*.apk
*.ap_
# Files for the ART/Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
out/
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
# Android Studio Navigation editor temp files
.navigation/
# Android Studio captures folder
captures/
# Intellij
*.iml
*.iws.idea/
.idea/
# Keystore files
*.jks
library-jpush/build.gradle
New file
@@ -0,0 +1,49 @@
apply plugin: 'com.android.library'
android {
    compileSdkVersion 29
    buildToolsVersion "29.0.0"
    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        consumerProguardFiles 'consumer-rules.pro'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    //huawei_dependencies_start
    //华为请按照厂商文档配置主 gradle 华为镜像依赖和添加 agconnect-services.json 后再打开此依赖
    implementation 'com.huawei.hms:push:5.0.2.300'
    //huawei_dependencies_end
    //oppo_dependencies_start
    compileOnly(name: 'com.heytap.msp-push-2.1.0', ext: 'aar')
    //oppo_dependencies_end
}
library-jpush/consumer-rules.pro
library-jpush/libs/MiPush_SDK_Client_3_8_5.jar
Binary files differ
library-jpush/libs/arm64-v8a/libjcore260.so
Binary files differ
library-jpush/libs/armeabi-v7a/libjcore260.so
Binary files differ
library-jpush/libs/armeabi/libjcore260.so
Binary files differ
library-jpush/libs/com.heytap.msp-push-2.1.0.aar
Binary files differ
library-jpush/libs/jcore-android-2.6.0.jar
Binary files differ
library-jpush/libs/jpush-android-3.9.1.jar
Binary files differ
library-jpush/libs/jpush-android-plugin-huawei-v3.9.1.jar
Binary files differ
library-jpush/libs/jpush-android-plugin-meizu-v3.9.1.jar
Binary files differ
library-jpush/libs/jpush-android-plugin-oppo-v3.9.1.jar
Binary files differ
library-jpush/libs/jpush-android-plugin-vivo-v3.9.1.jar
Binary files differ
library-jpush/libs/jpush-android-plugin-xiaomi-v3.9.1.jar
Binary files differ
library-jpush/libs/meizu-push-4.0.2.jar
Binary files differ
library-jpush/libs/mips/libjcore260.so
Binary files differ
library-jpush/libs/mips64/libjcore260.so
Binary files differ
library-jpush/libs/push_sdk_v3.0.0.jar
Binary files differ
library-jpush/libs/x86/libjcore260.so
Binary files differ
library-jpush/libs/x86_64/libjcore260.so
Binary files differ
library-jpush/proguard-rules.pro
New file
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
library-jpush/src/main/AndroidManifest.xml
New file
@@ -0,0 +1,281 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="cn.jiguang.sdk">
    <uses-sdk
        tools:ignore="MultipleUsesSdk"
        tools:overrideLibrary="com.heytap.mcssdk" />
    <!-- 极光推送权限 -->
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <permission
        android:name="${applicationId}.permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
    <!-- 华为角标 -->
    <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
    <!--xiaomi_permission_start-->
    <permission
        android:name="${applicationId}.permission.MIPUSH_RECEIVE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
    <!--xiaomi_permission_end-->
    <!--oppo_permission_start-->
    <uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" />
    <uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE" />
    <!--oppo_permission_end-->
    <application>
        <service
            android:name="cn.jpush.android.service.PushService"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER" />
                <action android:name="cn.jpush.android.intent.REPORT" />
                <action android:name="cn.jpush.android.intent.PushService" />
                <action android:name="cn.jpush.android.intent.PUSH_TIME" />
            </intent-filter>
        </service>
        <provider
            android:name="cn.jpush.android.service.DataProvider"
            android:authorities="${applicationId}.DataProvider"
            android:exported="true" />
        <provider
            android:name="cn.jpush.android.service.DownloadProvider"
            android:authorities="${applicationId}.DownloadProvider"
            android:exported="true" />
        <receiver
            android:name="cn.jpush.android.service.PushReceiver"
            android:enabled="true">
            <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <category android:name="${applicationId}" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <!-- Optional -->
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>
        <!-- Required SDK 核心功能-->
        <activity
            android:name="cn.jpush.android.ui.PushActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="false"
            android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </activity>
        <!-- SDK 核心功能-->
        <activity
            android:name="cn.jpush.android.ui.PopWinActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="false"
            android:theme="@style/MyDialogStyle">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </activity>
        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />
        <activity
            android:name="cn.jpush.android.service.JNotifyActivity"
            android:exported="true"
            android:taskAffinity="jpush.custom"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.JNotifyActivity" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </activity>
        <!--xiaomi_config_start-->
        <service
            android:name="com.xiaomi.push.service.XMJobService"
            android:enabled="true"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"
            android:process=":pushcore" />
        <service
            android:name="com.xiaomi.push.service.XMPushService"
            android:enabled="true"
            android:process=":pushcore" />
        <service
            android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
            android:enabled="true"
            android:exported="true" />
        <service
            android:name="com.xiaomi.mipush.sdk.MessageHandleService"
            android:enabled="true" />
        <receiver
            android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.xiaomi.push.service.receivers.PingReceiver"
            android:exported="false"
            android:process=":pushcore">
            <intent-filter>
                <action android:name="com.xiaomi.push.PING_TIMER" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="cn.jpush.android.service.PluginXiaomiPlatformsReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.ERROR" />
            </intent-filter>
        </receiver>
        <meta-data
            android:name="XIAOMI_APPKEY"
            android:value="${XIAOMI_APPKEY}" />
        <meta-data
            android:name="XIAOMI_APPID"
            android:value="${XIAOMI_APPID}" />
        <!--xiaomi_config_end-->
        <!--huawei_config_start-->
        <service
            android:name="cn.jpush.android.service.PluginHuaweiPlatformsService"
            android:exported="false"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <!--huawei_config_end-->
        <!--meizu_config_start-->
        <receiver android:name="cn.jpush.android.service.PluginMeizuPlatformsReceiver">
            <intent-filter>
                <!-- 接收 push 消息 -->
                <action android:name="com.meizu.flyme.push.intent.MESSAGE" />
                <!-- 接收 register 消息 -->
                <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
                <!-- 接收 unregister 消息-->
                <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
                <!-- 兼容低版本 Flyme3 推送服务配置 -->
                <action android:name="com.meizu.c2dm.intent.REGISTRATION" />
                <action android:name="com.meizu.c2dm.intent.RECEIVE" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>
        <meta-data
            android:name="MEIZU_APPKEY"
            android:value="${MEIZU_APPKEY}" />
        <meta-data
            android:name="MEIZU_APPID"
            android:value="${MEIZU_APPID}" />
        <!--meizu_config_end-->
        <!--oppo_config_start-->
        <service
            android:name="cn.jpush.android.service.PluginOppoPushService"
            android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
            <intent-filter>
                <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
            </intent-filter>
        </service>
        <!-- since JPushv3.6.8 ,oppov2.1.0 oppo 核心功能-->
        <service
            android:name="com.heytap.msp.push.service.DataMessageCallbackService"
            android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">
            <intent-filter>
                <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
                <action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE" />
            </intent-filter>
        </service> <!--兼容Q版本-->
        <meta-data
            android:name="OPPO_APPKEY"
            android:value="${OPPO_APPKEY}" />
        <meta-data
            android:name="OPPO_APPID"
            android:value="${OPPO_APPID}" />
        <meta-data
            android:name="OPPO_APPSECRET"
            android:value="${OPPO_APPSECRET}" />
        <!--oppo_config_end-->
        <!--vivo_config_start-->
        <receiver android:name="cn.jpush.android.service.PluginVivoMessageReceiver">
            <intent-filter>
                <!-- 接收 push 消息 -->
                <action android:name="com.vivo.pushclient.action.RECEIVE" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.vivo.push.sdk.service.CommandClientService"
            android:exported="true" />
        <activity
            android:name="com.vivo.push.sdk.LinkProxyClientActivity"
            android:exported="false"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <meta-data
            android:name="com.vivo.push.api_key"
            android:value="${VIVO_APPKEY}" />
        <meta-data
            android:name="com.vivo.push.app_id"
            android:value="${VIVO_APPID}" />
        <!--vivo_config_end-->
        <!--Required_config-->
        <meta-data
            android:name="JPUSH_CHANNEL"
            android:value="${JPUSH_CHANNEL}" />
        <meta-data
            android:name="JPUSH_APPKEY"
            android:value="${JPUSH_APPKEY}" /> <!-- </>值来自开发者平台取得的AppKey -->
    </application>
</manifest>
library-jpush/src/main/java/com/ExampleUtil.java
New file
@@ -0,0 +1,134 @@
package com;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Looper;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.helper.Logger;
public class ExampleUtil {
    public static final String PREFS_NAME = "JPUSH_EXAMPLE";
    public static final String PREFS_DAYS = "JPUSH_EXAMPLE_DAYS";
    public static final String PREFS_START_TIME = "PREFS_START_TIME";
    public static final String PREFS_END_TIME = "PREFS_END_TIME";
    public static final String KEY_APP_KEY = "JPUSH_APPKEY";
    public static boolean isEmpty(String s) {
        if (null == s)
            return true;
        if (s.length() == 0)
            return true;
        if (s.trim().length() == 0)
            return true;
        return false;
    }
    /**
     * 只能以 “+” 或者 数字开头;后面的内容只能包含 “-” 和 数字。
     * */
    private final static String MOBILE_NUMBER_CHARS = "^[+0-9][-0-9]{1,}$";
    public static boolean isValidMobileNumber(String s) {
        if(TextUtils.isEmpty(s)) return true;
        Pattern p = Pattern.compile(MOBILE_NUMBER_CHARS);
        Matcher m = p.matcher(s);
        return m.matches();
    }
    // 校验Tag Alias 只能是数字,英文字母和中文
    public static boolean isValidTagAndAlias(String s) {
        Pattern p = Pattern.compile("^[\u4E00-\u9FA50-9a-zA-Z_!@#$&*+=.|]+$");
        Matcher m = p.matcher(s);
        return m.matches();
    }
    // 取得AppKey
    public static String getAppKey(Context context) {
        Bundle metaData = null;
        String appKey = null;
        try {
            ApplicationInfo ai = context.getPackageManager().getApplicationInfo(
                    context.getPackageName(), PackageManager.GET_META_DATA);
            if (null != ai)
                metaData = ai.metaData;
            if (null != metaData) {
                appKey = metaData.getString(KEY_APP_KEY);
                if ((null == appKey) || appKey.length() != 24) {
                    appKey = null;
                }
            }
        } catch (NameNotFoundException e) {
        }
        return appKey;
    }
    // 取得版本号
    public static String GetVersion(Context context) {
        try {
            PackageInfo manager = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), 0);
            return manager.versionName;
        } catch (NameNotFoundException e) {
            return "Unknown";
        }
    }
    public static void showToast(final String toast, final Context context)
    {
        new Thread(new Runnable() {
            @Override
            public void run() {
                Looper.prepare();
                Toast.makeText(context, toast, Toast.LENGTH_SHORT).show();
                Looper.loop();
            }
        }).start();
    }
    public static boolean isConnected(Context context) {
        ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = conn.getActiveNetworkInfo();
        return (info != null && info.isConnected());
    }
    public static String getImei(Context context, String imei) {
        String ret = null;
        try {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            ret = telephonyManager.getDeviceId();
        } catch (Exception e) {
            Logger.e(ExampleUtil.class.getSimpleName(), e.getMessage());
        }
        if (isReadableASCII(ret)){
            return ret;
        } else {
            return imei;
        }
    }
    private static boolean isReadableASCII(CharSequence string){
        if (TextUtils.isEmpty(string)) return false;
        try {
            Pattern p = Pattern.compile("[\\x20-\\x7E]+");
            return p.matcher(string).matches();
        } catch (Throwable e){
            return true;
        }
    }
    public static String getDeviceId(Context context) {
        return JPushInterface.getUdid(context);
    }
}
library-jpush/src/main/java/com/TagAliasOperatorHelper.java
New file
@@ -0,0 +1,339 @@
package com;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.SparseArray;
import java.util.Locale;
import java.util.Set;
import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.helper.Logger;
/**
 * 处理tagalias相关的逻辑
 * */
public class TagAliasOperatorHelper {
    private static final String TAG = "JIGUANG-TagAliasHelper";
    public static int sequence = 1;
    /**增加*/
    public static final int ACTION_ADD = 1;
    /**覆盖*/
    public static final int ACTION_SET = 2;
    /**删除部分*/
    public static final int ACTION_DELETE = 3;
    /**删除所有*/
    public static final int ACTION_CLEAN = 4;
    /**查询*/
    public static final int ACTION_GET = 5;
    public static final int ACTION_CHECK = 6;
    public static final int DELAY_SEND_ACTION = 1;
    public static final int DELAY_SET_MOBILE_NUMBER_ACTION = 2;
    private Context context;
    private static TagAliasOperatorHelper mInstance;
    private TagAliasOperatorHelper(){
    }
    public static TagAliasOperatorHelper getInstance(){
        if(mInstance == null){
            synchronized (TagAliasOperatorHelper.class){
                if(mInstance == null){
                    mInstance = new TagAliasOperatorHelper();
                }
            }
        }
        return mInstance;
    }
    public void init(Context context){
        if(context != null) {
            this.context = context.getApplicationContext();
        }
    }
    private SparseArray<Object> setActionCache = new SparseArray<Object>();
    public Object get(int sequence){
        return setActionCache.get(sequence);
    }
    public Object remove(int sequence){
        return setActionCache.get(sequence);
    }
    public void put(int sequence,Object tagAliasBean){
        setActionCache.put(sequence,tagAliasBean);
    }
    private Handler delaySendHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what){
                case DELAY_SEND_ACTION:
                    if(msg.obj !=null && msg.obj instanceof  TagAliasBean){
                        Logger.i(TAG,"on delay time");
                        sequence++;
                        TagAliasBean tagAliasBean = (TagAliasBean) msg.obj;
                        setActionCache.put(sequence, tagAliasBean);
                        if(context!=null) {
                            handleAction(context, sequence, tagAliasBean);
                        }else{
                            Logger.e(TAG,"#unexcepted - context was null");
                        }
                    }else{
                        Logger.w(TAG,"#unexcepted - msg obj was incorrect");
                    }
                    break;
                case DELAY_SET_MOBILE_NUMBER_ACTION:
                    if(msg.obj !=null && msg.obj instanceof  String) {
                        Logger.i(TAG, "retry set mobile number");
                        sequence++;
                        String mobileNumber = (String) msg.obj;
                        setActionCache.put(sequence, mobileNumber);
                        if(context !=null) {
                            handleAction(context, sequence, mobileNumber);
                        }else {
                            Logger.e(TAG, "#unexcepted - context was null");
                        }
                    }else{
                        Logger.w(TAG,"#unexcepted - msg obj was incorrect");
                    }
                    break;
            }
        }
    };
    public void handleAction(Context context,int sequence,String mobileNumber){
        put(sequence,mobileNumber);
        Logger.d(TAG,"sequence:"+sequence+",mobileNumber:"+mobileNumber);
        JPushInterface.setMobileNumber(context,sequence,mobileNumber);
    }
    /**
     * 处理设置tag
     * */
    public void handleAction(Context context,int sequence, TagAliasBean tagAliasBean){
        init(context);
        if(tagAliasBean == null){
            Logger.w(TAG,"tagAliasBean was null");
            return;
        }
        put(sequence,tagAliasBean);
        if(tagAliasBean.isAliasAction){
            switch (tagAliasBean.action){
                case ACTION_GET:
                    JPushInterface.getAlias(context,sequence);
                    break;
                case ACTION_DELETE:
                    JPushInterface.deleteAlias(context,sequence);
                    break;
                case ACTION_SET:
                    JPushInterface.setAlias(context,sequence,tagAliasBean.alias);
                    break;
                default:
                    Logger.w(TAG,"unsupport alias action type");
                    return;
            }
        }else {
            switch (tagAliasBean.action) {
                case ACTION_ADD:
                    JPushInterface.addTags(context, sequence, tagAliasBean.tags);
                    break;
                case ACTION_SET:
                    JPushInterface.setTags(context, sequence, tagAliasBean.tags);
                    break;
                case ACTION_DELETE:
                    JPushInterface.deleteTags(context, sequence, tagAliasBean.tags);
                    break;
                case ACTION_CHECK:
                    //一次只能check一个tag
                    String tag = (String)tagAliasBean.tags.toArray()[0];
                    JPushInterface.checkTagBindState(context,sequence,tag);
                    break;
                case ACTION_GET:
                    JPushInterface.getAllTags(context, sequence);
                    break;
                case ACTION_CLEAN:
                    JPushInterface.cleanTags(context, sequence);
                    break;
                default:
                    Logger.w(TAG,"unsupport tag action type");
                    return;
            }
        }
    }
    private boolean RetryActionIfNeeded(int errorCode,TagAliasBean tagAliasBean){
        if(!ExampleUtil.isConnected(context)){
            Logger.w(TAG,"no network");
            return false;
        }
        //返回的错误码为6002 超时,6014 服务器繁忙,都建议延迟重试
        if(errorCode == 6002 || errorCode == 6014){
            Logger.d(TAG,"need retry");
            if(tagAliasBean!=null){
                Message message = new Message();
                message.what = DELAY_SEND_ACTION;
                message.obj = tagAliasBean;
                delaySendHandler.sendMessageDelayed(message,1000*60);
                String logs =getRetryStr(tagAliasBean.isAliasAction, tagAliasBean.action,errorCode);
                ExampleUtil.showToast(logs, context);
                return true;
            }
        }
        return false;
    }
    private boolean RetrySetMObileNumberActionIfNeeded(int errorCode,String mobileNumber){
        if(!ExampleUtil.isConnected(context)){
            Logger.w(TAG,"no network");
            return false;
        }
        //返回的错误码为6002 超时,6024 服务器内部错误,建议稍后重试
        if(errorCode == 6002 || errorCode == 6024){
            Logger.d(TAG,"need retry");
            Message message = new Message();
            message.what = DELAY_SET_MOBILE_NUMBER_ACTION;
            message.obj = mobileNumber;
            delaySendHandler.sendMessageDelayed(message,1000*60);
            String str = "Failed to set mobile number due to %s. Try again after 60s.";
            str = String.format(Locale.ENGLISH,str,(errorCode == 6002 ? "timeout" : "server internal error”"));
            ExampleUtil.showToast(str, context);
            return true;
        }
        return false;
    }
    private String getRetryStr(boolean isAliasAction,int actionType,int errorCode){
        String str = "Failed to %s %s due to %s. Try again after 60s.";
        str = String.format(Locale.ENGLISH,str,getActionStr(actionType),(isAliasAction? "alias" : " tags") ,(errorCode == 6002 ? "timeout" : "server too busy"));
        return str;
    }
    private String getActionStr(int actionType){
        switch (actionType){
            case ACTION_ADD:
                return "add";
            case ACTION_SET:
                return "set";
            case ACTION_DELETE:
                return "delete";
            case ACTION_GET:
                return "get";
            case ACTION_CLEAN:
                return "clean";
            case ACTION_CHECK:
                return "check";
        }
        return "unkonw operation";
    }
    public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
        int sequence = jPushMessage.getSequence();
        Logger.i(TAG,"action - onTagOperatorResult, sequence:"+sequence+",tags:"+jPushMessage.getTags());
        Logger.i(TAG,"tags size:"+jPushMessage.getTags().size());
        init(context);
        //根据sequence从之前操作缓存中获取缓存记录
        TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence);
        if(tagAliasBean == null){
            ExampleUtil.showToast("获取缓存记录失败", context);
            return;
        }
        if(jPushMessage.getErrorCode() == 0){
            Logger.i(TAG,"action - modify tag Success,sequence:"+sequence);
            setActionCache.remove(sequence);
            String logs = getActionStr(tagAliasBean.action)+" tags success";
            Logger.i(TAG,logs);
            ExampleUtil.showToast(logs, context);
        }else{
            String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags";
            if(jPushMessage.getErrorCode() == 6018){
                //tag数量超过限制,需要先清除一部分再add
                logs += ", tags is exceed limit need to clean";
            }
            logs += ", errorCode:" + jPushMessage.getErrorCode();
            Logger.e(TAG, logs);
            if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) {
                ExampleUtil.showToast(logs, context);
            }
        }
    }
    public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){
        int sequence = jPushMessage.getSequence();
        Logger.i(TAG,"action - onCheckTagOperatorResult, sequence:"+sequence+",checktag:"+jPushMessage.getCheckTag());
        init(context);
        //根据sequence从之前操作缓存中获取缓存记录
        TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence);
        if(tagAliasBean == null){
            ExampleUtil.showToast("获取缓存记录失败", context);
            return;
        }
        if(jPushMessage.getErrorCode() == 0){
            Logger.i(TAG,"tagBean:"+tagAliasBean);
            setActionCache.remove(sequence);
            String logs = getActionStr(tagAliasBean.action)+" tag "+jPushMessage.getCheckTag() + " bind state success,state:"+jPushMessage.getTagCheckStateResult();
            Logger.i(TAG,logs);
            ExampleUtil.showToast(logs, context);
        }else{
            String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags, errorCode:" + jPushMessage.getErrorCode();
            Logger.e(TAG, logs);
            if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) {
                ExampleUtil.showToast(logs, context);
            }
        }
    }
    public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
        int sequence = jPushMessage.getSequence();
        Logger.i(TAG,"action - onAliasOperatorResult, sequence:"+sequence+",alias:"+jPushMessage.getAlias());
        init(context);
        //根据sequence从之前操作缓存中获取缓存记录
        TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence);
        if(tagAliasBean == null){
            ExampleUtil.showToast("获取缓存记录失败", context);
            return;
        }
        if(jPushMessage.getErrorCode() == 0){
            Logger.i(TAG,"action - modify alias Success,sequence:"+sequence);
            setActionCache.remove(sequence);
            String logs = getActionStr(tagAliasBean.action)+" alias success";
            Logger.i(TAG,logs);
            ExampleUtil.showToast(logs, context);
        }else{
            String logs = "Failed to " + getActionStr(tagAliasBean.action)+" alias, errorCode:" + jPushMessage.getErrorCode();
            Logger.e(TAG, logs);
            if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) {
                ExampleUtil.showToast(logs, context);
            }
        }
    }
    //设置手机号码回调
    public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
        int sequence = jPushMessage.getSequence();
        Logger.i(TAG,"action - onMobileNumberOperatorResult, sequence:"+sequence+",mobileNumber:"+jPushMessage.getMobileNumber());
        init(context);
        if(jPushMessage.getErrorCode() == 0){
            Logger.i(TAG,"action - set mobile number Success,sequence:"+sequence);
            setActionCache.remove(sequence);
        }else{
            String logs = "Failed to set mobile number, errorCode:" + jPushMessage.getErrorCode();
            Logger.e(TAG, logs);
            if(!RetrySetMObileNumberActionIfNeeded(jPushMessage.getErrorCode(),jPushMessage.getMobileNumber())){
                ExampleUtil.showToast(logs, context);
            }
        }
    }
    public static class TagAliasBean{
        int action;
        Set<String> tags;
        String alias;
        boolean isAliasAction;
        @Override
        public String toString() {
            return "TagAliasBean{" +
                    "action=" + action +
                    ", tags=" + tags +
                    ", alias='" + alias + '\'' +
                    ", isAliasAction=" + isAliasAction +
                    '}';
        }
    }
}
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_cancle.png
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_close.png
library-jpush/src/main/res/drawable-hdpi/jpush_ic_action_close2.png
library-jpush/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_back.png
library-jpush/src/main/res/drawable-hdpi/jpush_ic_richpush_actionbar_divider.png
library-jpush/src/main/res/drawable-hdpi/jpush_richpush_btn_selector.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 获得焦点但未按下时的背景图片 -->
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:state_pressed="false"
        android:drawable="@drawable/jpush_ic_richpush_actionbar_back" />
     <!-- 按下时的背景图片 -->
    <item
        android:state_enabled="true"
        android:state_pressed="true"
        android:drawable="@android:color/darker_gray" />
    <!-- 按下时的背景图片 -->
    <item
        android:state_enabled="true"
        android:state_checked="true"
        android:drawable="@android:color/darker_gray" />
    <!-- 默认时的背景图片 -->
    <item android:drawable="@drawable/jpush_ic_richpush_actionbar_back" />
</selector>
library-jpush/src/main/res/drawable-hdpi/jpush_richpush_progressbar.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 背景  gradient是渐变,corners定义的是圆角 -->
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
    <!-- 进度条 -->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#4393ea" />
            </shape>
        </clip>
    </item>
</layer-list>
library-jpush/src/main/res/drawable-nodpi-v4/stat_sys_third_app_notify.png
library-jpush/src/main/res/drawable-xhdpi-v4/push_pure_close.png
library-jpush/src/main/res/drawable-xhdpi-v4/stat_sys_third_app_notify.png
library-jpush/src/main/res/drawable-xxhdpi-v4/push_pure_close.png
library-jpush/src/main/res/drawable-xxhdpi-v4/stat_sys_third_app_notify.png
library-jpush/src/main/res/drawable-xxxhdpi-v4/push_pure_close.png
library-jpush/src/main/res/drawable-xxxhdpi-v4/stat_sys_third_app_notify.png
library-jpush/src/main/res/layout-v21/push_notification.xml
New file
@@ -0,0 +1,296 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <FrameLayout
        android:id="@+id/v21"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="gone"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:weightSum="1"
                android:orientation="horizontal">
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="invisible"
            android:gravity="center">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout-v21/push_notification_large.xml
New file
@@ -0,0 +1,298 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="256dp">
    <FrameLayout
        android:id="@+id/v21"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="visible"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_marginRight="4dp"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="4dp"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="invisible"
            android:gravity="center">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout-v21/push_notification_middle.xml
New file
@@ -0,0 +1,298 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="202dp">
    <FrameLayout
        android:id="@+id/v21"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="visible"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_marginRight="4dp"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="4dp"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="invisible"
            android:gravity="center">
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                style="@android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/jpush_inapp_banner.xml
New file
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/banner_root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clipChildren="false"
    android:clipToPadding="false">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1.0">
        <RelativeLayout
            android:id="@+id/banner_content_root"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:clickable="true"
            android:focusable="true"
            android:gravity="center"
            android:padding="15dp"
            android:orientation="vertical"
            android:visibility="visible">
            <ImageView
                android:id="@+id/banner_image_only"
                android:adjustViewBounds="true"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:scaleType="fitXY"/>
            <ImageView
                android:id="@+id/banner_image"
                android:adjustViewBounds="true"
                android:layout_width="64dp"
                android:layout_height="64dp"
                android:layout_centerVertical="true"
                android:padding="5dp"
                android:layout_marginLeft="3dp"
                android:visibility="visible" />
            <LinearLayout
                android:id="@+id/banner_text_container"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:minHeight="74dp"
                android:layout_toRightOf="@id/banner_image"
                android:layout_marginLeft="3dp"
                android:gravity="center_vertical"
                android:orientation="vertical"
                android:layout_centerInParent="true">
                <TextView
                    android:id="@+id/banner_title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@+id/banner_image"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:layout_marginRight="4dp"
                    android:text=""
                    android:textSize="14sp"
                    android:visibility="visible" />
                <TextView
                    android:id="@+id/banner_body"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/banner_title"
                    android:layout_toRightOf="@+id/banner_image"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:layout_marginRight="4dp"
                    android:text=""
                    android:textSize="14sp" />
            </LinearLayout>
        </RelativeLayout>
    </LinearLayout>
</FrameLayout>
library-jpush/src/main/res/layout/jpush_popwin_layout.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/popLayoutId"
    style="@style/MyDialogStyle"
    android:orientation="vertical"
    android:layout_width="280dp"
    android:layout_height="250dp" >
        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/wvPopwin"/>
</LinearLayout>
library-jpush/src/main/res/layout/jpush_webview_layout.xml
New file
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<cn.jpush.android.ui.FullScreenView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/actionbarLayoutId"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:id="@+id/rlRichpushTitleBar"
        android:layout_width="match_parent"
        android:layout_height="40.0dp"
        android:background="#29313a">
        <ImageButton
            android:id="@+id/imgRichpushBtnBack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="9dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/jpush_richpush_btn_selector" />
        <ImageView
            android:id="@+id/imgView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/imgRichpushBtnBack"
            android:clickable="false"
            android:src="@drawable/jpush_ic_richpush_actionbar_divider" />
        <TextView
            android:id="@+id/tvRichpushTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="5dp"
            android:layout_toRightOf="@id/imgView"
            android:clickable="false"
            android:text=" "
            android:textSize="20sp"
            android:textColor="#ffffff" />
    </RelativeLayout>
    <ProgressBar
        android:id="@+id/pushPrograssBar"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:progress="0"
        android:progressDrawable="@drawable/jpush_richpush_progressbar"
        style="?android:attr/progressBarStyleHorizontal" />
    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fullWebView"
        android:background="#000000" />
</cn.jpush.android.ui.FullScreenView>
library-jpush/src/main/res/layout/push_expandable_big_image_notification.xml
New file
@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent">
    <RelativeLayout
        android:id="@+id/push_big_pic_default_Content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:background="@android:color/transparent">
        <RelativeLayout
            android:id="@+id/push_big_defaultView"
            android:layout_width="match_parent"
            android:layout_height="64dp" >
            <ImageView
                android:id="@+id/push_big_notification_icon"
                android:layout_width="42dp"
                android:layout_height="42dp"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="10dp"
                android:scaleType="centerInside" />
            <ImageView
                android:id="@+id/push_big_notification_icon2"
                android:layout_width="22dp"
                android:layout_height="22dp"
                android:layout_alignBottom="@id/push_big_notification_icon"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5dp"
                android:scaleType="centerInside" />
            <RelativeLayout
                android:id="@+id/push_big_notification"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="0dp"
                android:layout_toRightOf="@id/push_big_notification_icon"
                android:gravity="center_vertical"
                android:orientation="vertical">
                <DateTimeView
                    android:id="@+id/push_big_notification_date"
                    style="@android:style/TextAppearance.StatusBar.EventContent"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="0dp"
                    android:textSize="12sp"
                    android:textColor="#ffffff"
                    android:alpha="0.6"/>
                <TextView
                    android:id="@+id/push_big_notification_title"
                    style="@android:style/TextAppearance.StatusBar.EventContent.Title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:singleLine="true"
                    android:textSize="18sp"
                    android:layout_toLeftOf="@id/push_big_notification_date"
                    android:textStyle="normal"
                    android:textColor="#ffffff"/>
                <TextView
                    android:id="@+id/push_big_notification_content"
                    style="@android:style/TextAppearance.StatusBar.EventContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/push_big_notification_title"
                    android:layout_marginTop="0dp"
                    android:layout_marginRight="10dp"
                    android:singleLine="true"
                    android:textSize="14sp"
                    android:textStyle="normal"
                    android:textColor="#ffffff"/>
            </RelativeLayout>
        </RelativeLayout>
        <LinearLayout
            android:id="@+id/push_big_text_notification_area"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="69dp"
            android:layout_marginRight="13dp"
            android:layout_marginTop="34dp"
            android:layout_marginBottom="10dp"
            android:gravity="center_vertical"
            android:orientation="vertical">
            <TextView
                android:id="@+id/push_big_bigtext_defaultView"
                style="@android:style/TextAppearance.StatusBar.EventContent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxHeight="192dp"
                android:textColor="#ffffff"
                android:alpha="0.9"
                android:visibility="gone"
                android:textStyle="normal"
                android:ellipsize = "end"
                android:textSize="14sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_big_bigview_defaultView"
            android:layout_width="match_parent"
            android:layout_height="192dp"
            android:scaleType="centerCrop"
            android:layout_below="@+id/push_big_defaultView"
            android:visibility="gone"/>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/push_expandable_big_text_notification.xml
New file
@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent">
    <RelativeLayout
        android:id="@+id/push_big_pic_default_Content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:background="@android:color/transparent">
        <RelativeLayout
            android:id="@+id/push_big_defaultView"
            android:layout_width="match_parent"
            android:layout_height="65dp" >
            <ImageView
                android:id="@+id/push_big_notification_icon"
                android:layout_width="42dp"
                android:layout_height="42dp"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="10dp"
                android:scaleType="centerInside" />
            <ImageView
                android:id="@+id/push_big_notification_icon2"
                android:layout_width="22dp"
                android:layout_height="22dp"
                android:layout_alignBottom="@id/push_big_notification_icon"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5dp"
                android:scaleType="centerInside" />
            <RelativeLayout
                android:id="@+id/push_big_notification"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="0dp"
                android:layout_toRightOf="@id/push_big_notification_icon"
                android:gravity="center_vertical"
                android:orientation="vertical">
                <DateTimeView
                    android:id="@+id/push_big_notification_date"
                    style="@android:style/TextAppearance.StatusBar.EventContent"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="0dp"
                    android:textSize="12sp"
                    android:textColor="#ffffff"
                    android:alpha="0.6"/>
                <TextView
                    android:id="@+id/push_big_notification_title"
                    style="@android:style/TextAppearance.StatusBar.EventContent.Title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:singleLine="true"
                    android:textSize="18sp"
                    android:layout_toLeftOf="@id/push_big_notification_date"
                    android:textStyle="normal"
                    android:textColor="#ffffff"/>
                <TextView
                    android:id="@+id/push_big_notification_content"
                    style="@android:style/TextAppearance.StatusBar.EventContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/push_big_notification_title"
                    android:layout_marginTop="0dp"
                    android:layout_marginRight="10dp"
                    android:singleLine="true"
                    android:textSize="14sp"
                    android:textStyle="normal"
                    android:textColor="#ffffff"/>
            </RelativeLayout>
        </RelativeLayout>
        <LinearLayout
            android:id="@+id/push_big_text_notification_area"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="69dp"
            android:layout_marginRight="13dp"
            android:layout_marginTop="34dp"
            android:layout_marginBottom="10dp"
            android:gravity="center_vertical"
            android:orientation="vertical">
            <TextView
                android:id="@+id/push_big_bigtext_defaultView"
                style="@android:style/TextAppearance.StatusBar.EventContent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxHeight="192dp"
                android:textColor="#ffffff"
                android:alpha="0.9"
                android:visibility="gone"
                android:textStyle="normal"
                android:ellipsize = "end"
                android:textSize="14sp" />
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/push_notification.xml
New file
@@ -0,0 +1,297 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <FrameLayout
        android:id="@+id/v"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="gone"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_marginRight="4dp"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="4dp"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="gone"
            android:gravity="center">
            <TextView
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/push_notification_large.xml
New file
@@ -0,0 +1,297 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="256dp">
    <FrameLayout
        android:id="@+id/v"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="gone"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_marginRight="4dp"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="4dp"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="gone"
            android:gravity="center">
            <TextView
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/push_notification_middle.xml
New file
@@ -0,0 +1,297 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/push_root_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="202dp">
    <FrameLayout
        android:id="@+id/v"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/layout_version_2"
        android:layout_width="0dp"
        android:layout_height="0dp" />
    <RelativeLayout
        android:id="@+id/push_notification_style_default"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <LinearLayout
            android:id="@+id/push_notification_layout_lefttop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/push_notification_small_icon"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:scaleType="centerInside" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:maxLines="1"
                android:maxWidth="200dp"
                android:maxLength="24"
                android:textSize="12sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:textStyle="bold"
                android:text="·"
                android:textSize="16sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Time"
                android:maxLines="1"
                android:id="@+id/push_notification_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/push_notification_for_bottom_margin"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="0dp"/>
        <ImageView
            android:id="@+id/push_notification_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_above="@+id/push_notification_for_bottom_margin"
            android:layout_marginBottom="8dp"
            android:visibility="gone"
            android:scaleType="centerCrop" />
        <LinearLayout
            android:id="@+id/push_notification_main_layout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/push_notification_banner_icon"
            android:gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="5dp"
            android:layout_toLeftOf="@+id/push_notification_big_icon"
            android:layout_below="@id/push_notification_layout_lefttop">
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Title"
                android:id="@+id/push_notification_sub_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:ellipsize="end"
                android:textSize="13sp"
                android:visibility="gone" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="2"
                android:textSize="13sp" />
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_content_one_line"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:textSize="13sp"
                android:maxLines="1"
                android:visibility="gone" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_big_icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@+id/push_notification_main_layout"
            android:layout_alignBottom="@+id/push_notification_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/push_notification_style_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:visibility="gone">
        <ImageView
            android:id="@+id/push_notification_style_1_big_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:scaleType="centerInside" />
        <LinearLayout
            android:id="@+id/push_notification_style_1_main_layout"
            android:layout_toRightOf="@+id/push_notification_style_1_big_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/push_notification_layout_time"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Title"
                    android:id="@+id/push_notification_style_1_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:layout_marginRight="8dp"
                    android:textSize="12sp"
                    android:textStyle="bold" />
                <TextView
                    style="@*android:style/TextAppearance.Material.Notification.Time"
                    android:id="@+id/push_notification_style_1_date"
                    android:layout_height="wrap_content"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_marginRight="4dp"
                    android:gravity="right"
                    android:textSize="12sp" />
                <TextView android:id="@+id/push_notification_null"
                    android:layout_width="24dp"
                    android:visibility="gone"
                    android:layout_height="20dp"/>
            </LinearLayout>
            <TextView
                style="@*android:style/TextAppearance.Material.Notification.Info"
                android:id="@+id/push_notification_style_1_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="4dp"
                android:ellipsize="end"
                android:layout_marginTop="1dp"
                android:maxLines="1"
                android:textSize="13sp" />
        </LinearLayout>
        <ImageView
            android:id="@+id/push_notification_style_1_banner_icon"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_alignParentBottom="true"
            android:visibility="gone"
            android:layout_below="@id/push_notification_style_1_main_layout"
            android:scaleType="centerInside" />
    </RelativeLayout>
    <FrameLayout
        android:id="@+id/push_notification_banner_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/push_notification_banner_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:visibility="gone" />
    </FrameLayout>
    <RelativeLayout
        android:id="@+id/push_notification_header_neg_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="gone">
        <ImageView android:id="@+id/push_notification_header_expand"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:layout_width="14dp"
            android:layout_height="14dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerInside"
            android:background="#08000000"
            android:src="@drawable/jpush_ic_action_close"
            android:visibility="visible"/>
        <LinearLayout
            android:id="@+id/push_notification_fb_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="8dp"
            android:layout_below="@id/push_notification_header_expand"
            android:orientation="horizontal"
            android:visibility="gone"
            android:gravity="center">
            <TextView
                android:id="@+id/push_notification_fb_content_no_like1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="不感兴趣"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="重复收到"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容低质"/>
            <TextView
                android:id="@+id/push_notification_fb_content_no_like4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#88000000"
                android:background="#0f000000"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="14sp"
                android:gravity="center"
                android:maxLines="1"
                android:layout_margin="5dp"
                android:text="内容不宜"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
library-jpush/src/main/res/layout/push_pure_pic_notification.xml
New file
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingLeft="11dp"
                android:paddingTop="10dp"
                android:paddingRight="11dp"
                android:paddingBottom="10dp"
                android:background="@android:color/transparent">
    <ImageView
        android:id="@+id/push_pure_bigview_expanded"
        android:layout_width="match_parent"
        android:layout_height="192dp"
        android:scaleType="centerCrop"
        android:visibility="gone"/>
    <ImageView
        android:id="@+id/push_pure_bigview_banner"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:scaleType="centerCrop"
        android:visibility="gone"/>
    <ImageView
        android:id="@+id/push_pure_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="6dp"
        android:layout_marginRight="6dp"
        android:visibility="gone"
        android:src="@drawable/push_pure_close"/>
</RelativeLayout>
library-jpush/src/main/res/values-zh/jpush_string.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="jg_channel_name_p_min">不重要</string>
    <string name="jg_channel_name_p_low">不重要</string>
    <string name="jg_channel_name_p_default">普通</string>
    <string name="jg_channel_name_p_high">重要</string>
</resources>
library-jpush/src/main/res/values/jpush_string.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="jg_channel_name_p_min">LOW</string>
    <string name="jg_channel_name_p_low">LOW</string>
    <string name="jg_channel_name_p_default">NORMAL</string>
    <string name="jg_channel_name_p_high">HIGH</string>
</resources>
library-jpush/src/main/res/values/jpush_style.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="MyDialogStyle">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>
</resources>
settings.gradle
@@ -8,4 +8,5 @@
include ':library-DownloadProvider'
include ':library-common'
include ':library-APPUpdate'
include ':library-jpush'
include ':BuWanVideo'