BuWanVideo/build.gradle
@@ -94,8 +94,8 @@ defaultConfig { applicationId "com.doudou.ysvideo" versionCode 110 versionName "3.9.1" versionCode 111 versionName "3.9.2" multiDexEnabled = true minSdkVersion 17 targetSdkVersion 27 BuWanVideo/res/drawable-xhdpi/ic_goldcorn_bg.pngBuWanVideo/res/drawable-xhdpi/ic_goldcorn_logo.pngBuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn.png
BuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn_highlight.png
BuWanVideo/res/drawable-xhdpi/icon_gold_corn_title.png
BuWanVideo/res/drawable/selector_gold_corn_task_list_btn_bg.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_gold_corn_task_list_btn" android:state_enabled="true"></item> <item android:drawable="@drawable/shape_gold_corn_task_list_btn_novalid" android:state_enabled="false"></item> </selector> BuWanVideo/res/drawable/selector_nav_gold_corn.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_nav_gold_corn_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/ic_nav_gold_corn" android:state_checked="false"></item> </selector> BuWanVideo/res/drawable/selector_sign_in_btn_bg.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_gold_corn_sign_in_btn" android:state_enabled="true" android:state_pressed="false"></item> <item android:drawable="@drawable/shape_gold_corn_sign_in_btn_novalid" android:state_enabled="false"></item> <item android:drawable="@drawable/shape_gold_corn_sign_in_btn_press" android:state_enabled="true" android:state_pressed="true"></item> </selector> BuWanVideo/res/drawable/shape_gold_corn_coupon_exchange_bg.xml
@@ -5,11 +5,13 @@ <item name="android:shadowDx">0</item> <item name="android:shadowDy">2</item> <item name="android:shadowColor">#ffffdc73</item> <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" /> <corners android:radius="30dp" /> <padding android:bottom="6dp" android:left="57dp" android:right="57dp" android:top="6dp"></padding> </shape> BuWanVideo/res/drawable/shape_gold_corn_sign_in_btn.xml
New file @@ -0,0 +1,33 @@ <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <gradient android:angle="90" android:endColor="#ffffae2e" android:startColor="#D06200" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> </shape> </item> <item android:bottom="3dp"> <shape android:shape="rectangle"> <gradient android:angle="90" android:endColor="#ffffb400" android:startColor="#ffff9600" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> <padding android:bottom="30dp"></padding> </shape> </item> </layer-list> BuWanVideo/res/drawable/shape_gold_corn_sign_in_btn_novalid.xml
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <gradient android:angle="90" android:endColor="#7e7e7e" android:startColor="#7e7e7e" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> </shape> </item> <item android:bottom="3dp"> <shape android:shape="rectangle"> <gradient android:angle="90" android:endColor="#CBCBCB" android:startColor="#919191" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> </shape> </item> </layer-list> BuWanVideo/res/drawable/shape_gold_corn_sign_in_btn_press.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"> <item> <shape android:shape="rectangle"> <gradient android:angle="90" android:endColor="#ffff9600" android:startColor="#ffffb400" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> <padding android:bottom="30dp"></padding> </shape> </item> </layer-list> BuWanVideo/res/drawable/shape_gold_corn_sign_in_cout_bg.xml
@@ -4,8 +4,15 @@ <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="20dp" android:topRightRadius="20dp" /> android:topLeftRadius="30dp" android:topRightRadius="30dp" /> <padding android:left="30dp" android:right="30dp" android:top="7dp"> </padding> </shape> BuWanVideo/res/drawable/shape_gold_corn_sign_in_function_bg.xml
@@ -10,4 +10,10 @@ android:topLeftRadius="5dp" android:topRightRadius="0dp" /> <padding android:bottom="4dp" android:left="4dp" android:right="3dp" android:top="4dp"></padding> </shape> BuWanVideo/res/drawable/shape_gold_corn_sign_in_score_bg_highlight.xml
New file @@ -0,0 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FF9600" /> <corners android:radius="20dp" /> <stroke android:width="2dp" android:color="@color/white"></stroke> </shape> BuWanVideo/res/drawable/shape_gold_corn_sign_in_user_bg.xml
@@ -6,6 +6,11 @@ android:bottomRightRadius="20dp" android:topLeftRadius="0dp" android:topRightRadius="20dp" /> <padding android:bottom="3dp" android:left="3dp" android:right="12dp" android:top="3dp"></padding> </shape> BuWanVideo/res/drawable/shape_gold_corn_task_list_btn_novalid.xml
New file @@ -0,0 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#919191" /> <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" /> </shape> BuWanVideo/res/drawable/shape_gold_corn_toast.xml
New file @@ -0,0 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="90" android:endColor="#CCfe93ff" android:startColor="#CC26ccfc" android:type="linear" android:useLevel="true" /> <corners android:radius="30dp" /> </shape> BuWanVideo/res/layout/activity_splash_ad.xml
@@ -11,10 +11,30 @@ <FrameLayout android:id="@+id/fl_splash_ad" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center"> android:layout_height="0dp" android:layout_gravity="center" android:layout_weight="1"> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:padding="15dp"> <ImageView android:layout_width="28dp" android:layout_height="28dp" android:src="@drawable/ic_launcher"></ImageView> <ImageView android:layout_width="wrap_content" android:layout_height="27dp" android:layout_marginLeft="5dp" android:src="@drawable/ic_splash_bottom_small"></ImageView> </LinearLayout> </LinearLayout> BuWanVideo/res/layout/fragment_goldcorn.xml
@@ -1,14 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <com.weikou.beibeivideo.widget.MySwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/srl_goldcorn" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#0080FF"> android:background="#0080FF" android:focusable="true" android:focusableInTouchMode="true"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_goldcorn" android:layout_width="match_parent" android:layout_height="match_parent"></androidx.recyclerview.widget.RecyclerView> </com.weikou.beibeivideo.widget.MySwipeRefreshLayout> BuWanVideo/res/layout/item_gold_corn_coupon.xml
@@ -1,41 +1,105 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> android:orientation="vertical" android:paddingTop="10dp"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> android:layout_height="wrap_content" android:layout_marginLeft="7dp" android:layout_marginRight="7dp"> <ImageView <com.lcjian.library.widget.RatioLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:src="@drawable/ic_gold_corn_coupon_bg"></ImageView> android:background="@drawable/ic_login_bg_w" app:ratio="0.3698"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_gold_corn_coupon_bg"></ImageView> </com.lcjian.library.widget.RatioLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <com.lzj.gallery.library.views.BannerViewPager android:id="@+id/vp_video" android:layout_width="match_parent" android:layout_height="wrap_content"></com.lzj.gallery.library.views.BannerViewPager> <TextView android:layout_width="wrap_content" <com.lcjian.library.widget.RatioLayout android:layout_width="90dp" android:layout_height="wrap_content" android:background="@drawable/shape_gold_corn_coupon_exchange_bg" android:text="立即兑换" android:textColor="#E74028" android:textSize="15sp" /> android:layout_gravity="center|top" android:layout_marginLeft="80dp" android:layout_marginTop="11dp" android:background="@drawable/ic_login_bg_w" app:ratio="1.39"> <ImageView android:id="@+id/iv_cover_3" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY"></ImageView> </com.lcjian.library.widget.RatioLayout> <com.lcjian.library.widget.RatioLayout android:layout_width="90dp" android:layout_height="wrap_content" android:layout_gravity="center|top" android:layout_marginTop="11dp" android:layout_marginRight="80dp" android:background="@drawable/ic_login_bg_w" app:ratio="1.39"> <ImageView android:id="@+id/iv_cover_2" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY"></ImageView> </com.lcjian.library.widget.RatioLayout> <com.lcjian.library.widget.RatioLayout android:layout_width="90dp" android:layout_height="wrap_content" android:layout_gravity="center|top" android:background="@drawable/ic_login_bg_w" app:ratio="1.39"> <ImageView android:id="@+id/iv_cover_1" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY"></ImageView> </com.lcjian.library.widget.RatioLayout> </FrameLayout> <TextView android:id="@+id/tv_exchange" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="40dp" android:background="@drawable/shape_gold_corn_coupon_exchange_bg" android:gravity="center" android:text="立即兑换" android:textColor="#E74028" android:textSize="15sp" /> </FrameLayout> BuWanVideo/res/layout/item_gold_corn_sign_in.xml
@@ -1,266 +1,344 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- <com.lcjian.library.widget.RatioLayout--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="wrap_content"--> <!-- app:ratio="0.8933">--> <FrameLayout <com.lcjian.library.widget.RatioLayout android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="wrap_content" app:ratio="0.7093"> <ImageView <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_goldcorn_bg"></ImageView> <LinearLayout android:id="@+id/ll_user" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|top" android:layout_marginTop="11.5dp" android:background="@drawable/shape_gold_corn_sign_in_user_bg" android:gravity="center_vertical"> android:layout_height="match_parent"> <ImageView android:layout_width="32dp" android:layout_height="32dp"></ImageView> android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_goldcorn_bg"></ImageView> <LinearLayout android:id="@+id/ll_user" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> android:layout_gravity="left|top" android:layout_marginTop="11.5dp" android:background="@drawable/shape_gold_corn_sign_in_user_bg" android:gravity="center_vertical"> <TextView <ImageView android:id="@+id/iv_portrait" android:layout_width="32dp" android:layout_height="32dp"></ImageView> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="可用影视豆" android:textColor="#ff000000" android:textSize="9sp" /> android:layout_marginLeft="4.5dp" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5.5dp" android:text="888888" android:textColor="#ff0080ff" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="可用影视豆" android:textColor="#ff000000" android:textSize="9sp" /> <TextView android:id="@+id/tv_gold_corn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5.5dp" android:text="888888" android:textColor="#ff0080ff" android:textSize="12sp" /> </LinearLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|top" android:layout_marginTop="11.5dp" android:orientation="vertical"> <TextView <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_gold_corn_sign_in_function_bg" android:text="记\n录" android:textColor="#1F8D00"></TextView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="7dp" android:background="@drawable/shape_gold_corn_sign_in_function_bg" android:text="规\n则" android:textColor="#1F8D00"></TextView> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:orientation="vertical"> <ImageView android:layout_width="76dp" android:layout_height="106dp" android:layout_gravity="center_horizontal|top" android:layout_marginTop="40dp" android:src="@drawable/ic_goldcorn_logo"></ImageView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:shadowColor="#ffab6d00" android:shadowDx="0" android:shadowDy="2" android:shadowRadius="3.0" android:text="影视豆当钱花" android:textColor="#ff000000" android:textSize="30sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> android:layout_gravity="right|top" android:layout_marginTop="11.5dp" android:orientation="vertical"> <TextView android:id="@+id/tv_record" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="立即签到" android:textColor="#ffffffff" android:textSize="18sp" /> </FrameLayout> android:background="@drawable/shape_gold_corn_sign_in_function_bg" android:gravity="center" android:text="记\n录" android:textColor="#219500"></TextView> <TextView <TextView android:id="@+id/tv_rule" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="7dp" android:background="@drawable/shape_gold_corn_sign_in_function_bg" android:gravity="center" android:text="规\n则" android:textColor="#219500"></TextView> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_gold_corn_sign_in_cout_bg" android:text="连续签到:99天"></TextView> android:layout_gravity="bottom|center_horizontal" android:gravity="center_horizontal|bottom" android:orientation="vertical"> <ImageView android:layout_width="76dp" android:layout_height="106dp" android:layout_gravity="center_horizontal|top" android:layout_marginTop="40dp" android:src="@drawable/ic_goldcorn_logo"></ImageView> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:src="@drawable/icon_gold_corn_title"></ImageView> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp"> <TextView android:id="@+id/tv_sign_in" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector_sign_in_btn_bg" android:drawableLeft="@drawable/icon_sign_in" android:drawablePadding="6dp" android:paddingLeft="27dp" android:paddingTop="13dp" android:paddingRight="27dp" android:paddingBottom="13dp" android:text="立即签到" android:enabled="true" android:textColor="#ffffffff" android:textSize="18sp" /> </FrameLayout> <TextView android:id="@+id/tv_sign_in_day_count" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="7dp" android:background="@drawable/shape_gold_corn_sign_in_cout_bg" android:text="连续签到:99天" android:textSize="12sp" android:textColor="#FFFFFF"></TextView> </LinearLayout> </FrameLayout> </com.lcjian.library.widget.RatioLayout> <LinearLayout android:id="@+id/ll_gold_date" android:layout_width="match_parent" android:layout_height="64dp" android:layout_marginTop="-3dp" android:background="#70C957" android:gravity="center_vertical" android:orientation="vertical" android:paddingLeft="20dp" android:paddingRight="20dp"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="64dp" android:orientation="vertical"> android:layout_height="wrap_content" android:layout_gravity="top" android:layout_marginTop="13dp" android:paddingRight="3dp" android:paddingLeft="3dp" android:gravity="center_vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="31dp"> <View android:id="@+id/v_space_1" style="@style/goldCornSignInDateSpaceHighLightStyle"></View> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:gravity="center_vertical"> <View android:id="@+id/v_space_2" style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View android:id="@+id/v_space_3" style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View android:id="@+id/v_space_4" style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View android:id="@+id/v_space_5" style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View style="@style/goldCornSignInDateSpaceStyle"></View> <View android:id="@+id/v_space_6" style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:gravity="center_vertical"> <TextView android:id="@+id/tv_score_1" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_2" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_3" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_4" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_5" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_6" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> <TextView android:id="@+id/tv_score_7" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> </LinearLayout> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:gravity="center_vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_1" style="@style/goldCornSignInDateScoreHighlightStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_1" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_2" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_2" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_3" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_3" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_4" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_4" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_5" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_5" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_6" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_6" style="@style/goldCornSignInDateDateStyle" android:text="+1"></TextView> <View style="@style/goldCornSignInDateSpaceStyle"></View> </LinearLayout> <View style="@style/goldCornSignInDateSpaceTransparent"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_score_7" style="@style/goldCornSignInDateScoreStyle" android:text="+1"></TextView> <TextView android:id="@+id/tv_date_7" @@ -269,15 +347,12 @@ </LinearLayout> </LinearLayout> </LinearLayout> </FrameLayout> </FrameLayout> </LinearLayout> <!-- </com.lcjian.library.widget.RatioLayout>--> </LinearLayout> BuWanVideo/res/layout/item_gold_corn_task.xml
@@ -2,7 +2,12 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> android:background="@color/transparent" android:orientation="vertical" android:paddingLeft="7dp" android:paddingTop="18dp" android:paddingRight="7dp" android:paddingBottom="10dp"> <LinearLayout android:layout_width="match_parent" @@ -40,6 +45,7 @@ <androidx.recyclerview.widget.RecyclerView android:id="@+id/rl_task" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="9dp" BuWanVideo/res/layout/item_gold_corn_task_list.xml
@@ -24,8 +24,8 @@ <TextView android:id="@+id/tv_name" android:layout_width="107dp" android:layout_height="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="看《指定电影》" android:textColor="#ff34353f" android:textSize="15sp" /> @@ -58,7 +58,7 @@ android:layout_height="30dp" android:layout_gravity="right|center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_gold_corn_task_list_btn" android:background="@drawable/selector_gold_corn_task_list_btn_bg" android:gravity="center" android:text="去看看" android:textColor="#ffffffff" BuWanVideo/res/layout/item_gold_corn_toast.xml
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="47dp" android:background="@drawable/shape_gold_corn_toast" android:gravity="center" android:minWidth="160dp"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="9dp" android:src="@drawable/icon_gold_corn"> </ImageView> <TextView android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:paddingBottom="4sp" android:shadowColor="#80ff078d" android:shadowDx="0" android:shadowDy="5" android:shadowRadius="3.0" android:textColor="#ffffffff" android:textSize="24sp" /> </LinearLayout> BuWanVideo/res/layout/navigation_bottom_bar.xml
@@ -47,6 +47,23 @@ android:textSize="10sp" /> <RadioButton android:id="@+id/rb_gold_corn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_nav_gold_corn" android:drawablePadding="4dp" android:gravity="center_horizontal" android:text="影视豆" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" android:textSize="10sp" /> <RadioButton android:id="@+id/rb_guess_like" android:layout_width="0dp" android:layout_height="wrap_content" @@ -55,21 +72,7 @@ android:drawableTop="@drawable/selector_guess_like" android:drawablePadding="4dp" android:gravity="center_horizontal" android:text="推荐" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" android:textSize="10sp" /> <RadioButton android:id="@+id/rb_nav_category" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_category" android:drawablePadding="4dp" android:gravity="center_horizontal" android:text="@string/category" android:text="@string/recommend" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" android:textSize="10sp" /> BuWanVideo/res/values/styles.xml
@@ -385,6 +385,13 @@ <item name="android:background">#2CB3FF</item> </style> <style name="goldCornSignInDateSpaceTransparent"> <item name="android:layout_height">5dp</item> <item name="android:layout_width">0dp</item> <item name="android:layout_weight">1</item> <item name="android:background">@color/transparent</item> </style> <style name="goldCornSignInDateSpaceHighLightStyle" parent="goldCornSignInDateSpaceStyle"> <item name="android:background">#FFFFFF</item> </style> @@ -393,12 +400,25 @@ <item name="android:textColor">#FFFFFF</item> <item name="android:textSize">13dp</item> <item name="android:gravity">center</item> <item name="android:layout_width">27dp</item> <item name="android:layout_height">27dp</item> <item name="android:layout_margin">2dp</item> <item name="android:background">@drawable/shape_gold_corn_sign_in_score_bg</item> </style> <style name="goldCornSignInDateScoreHighlightStyle" parent="goldCornSignInDateScoreStyle"> <item name="android:layout_margin">0dp</item> <item name="android:layout_width">31dp</item> <item name="android:layout_height">31dp</item> <item name="android:background">@drawable/shape_gold_corn_sign_in_score_bg_highlight</item> </style> <style name="goldCornSignInDateDateStyle"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textColor">#FFFFFF</item> <item name="android:textSize">11dp</item> <item name="android:textSize">11sp</item> <item name="android:gravity">center</item> </style> BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoAPI.java
@@ -1378,6 +1378,86 @@ commonPost(context, BASE_URL + "video/play/getPPTVVIPVideoActivity", params, handler); } /** * --------------影视豆-------------- */ /** * 挣影视豆 * * @param context * @param code * @param param1 * @param param2 * @param handler */ public static void makeGoldCorn(Context context, String code, String param1, String param2, ResponseHandlerInterface handler) { String loginUid = UserUtil.getLoginUid(context); if (loginUid == null || StringUtils.isEmpty(loginUid)) { return; } LinkedHashMap<String, String> params = new LinkedHashMap<>(); params.put("loginUid", loginUid); if (code != null) { params.put("code", code); } if (code != null) { params.put("param1", param1); } if (code != null) { params.put("param2", param2); } commonPost(context, BASE_URL + "goldcorn/makeGoldCorn", params, handler); } //获取签到信息 public static void getSignInInfo(Context context, ResponseHandlerInterface handler) { String loginUid = UserUtil.getLoginUid(context); LinkedHashMap<String, String> params = new LinkedHashMap<>(); if (loginUid != null) params.put("loginUid", loginUid); commonPost(context, BASE_URL + "goldcorn/getSignInData", params, handler); } //签到 public static void signIn(Context context, ResponseHandlerInterface handler) { String loginUid = UserUtil.getLoginUid(context); LinkedHashMap<String, String> params = new LinkedHashMap<>(); if (loginUid != null) params.put("loginUid", loginUid); commonPost(context, BASE_URL + "goldcorn/signIn", params, handler); } //获取可以兑换券的视频 public static void getGoldCornCouponVideoList(Context context, ResponseHandlerInterface handler) { String loginUid = UserUtil.getLoginUid(context); LinkedHashMap<String, String> params = new LinkedHashMap<>(); if (loginUid != null) params.put("loginUid", loginUid); commonPost(context, BASE_URL + "goldcorn/getCouponVideoList", params, handler); } //获取任务列表 public static void getGoldCornTaskList(Context context, ResponseHandlerInterface handler) { String loginUid = UserUtil.getLoginUid(context); LinkedHashMap<String, String> params = new LinkedHashMap<>(); if (loginUid != null) params.put("loginUid", loginUid); commonPost(context, BASE_URL + "goldcorn/getTaskList", params, handler); } public static LinkedHashMap<String, String> validateParams( LinkedHashMap<String, String> params, Context context) { BuWanVideo/src/com/weikou/beibeivideo/entity/recommend/HomeTabChangeInfo.java
New file @@ -0,0 +1,24 @@ package com.weikou.beibeivideo.entity.recommend; import java.io.Serializable; public class HomeTabChangeInfo implements Serializable { private int position; public HomeTabChangeInfo() { } public HomeTabChangeInfo(int position) { this.position = position; } public int getPosition() { return position; } public void setPosition(int position) { this.position = position; } } BuWanVideo/src/com/weikou/beibeivideo/entity/vo/CouponVideoInfo.java
New file @@ -0,0 +1,36 @@ package com.weikou.beibeivideo.entity.vo; import com.weikou.beibeivideo.entity.JumpDetail; /** * 用券视频信息 */ public class CouponVideoInfo { private String picture; private JumpDetail jumpDetail; private String params; public String getPicture() { return picture; } public void setPicture(String picture) { this.picture = picture; } public JumpDetail getJumpDetail() { return jumpDetail; } public void setJumpDetail(JumpDetail jumpDetail) { this.jumpDetail = jumpDetail; } public String getParams() { return params; } public void setParams(String params) { this.params = params; } } BuWanVideo/src/com/weikou/beibeivideo/entity/vo/GoldCornTask.java
New file @@ -0,0 +1,80 @@ package com.weikou.beibeivideo.entity.vo; import com.weikou.beibeivideo.entity.JumpDetail; public class GoldCornTask { private String icon; private String title; private String goldCorn; private String desc; private String actionName; private JumpDetail jumpDetail; private String params; private boolean enable; public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getGoldCorn() { return goldCorn; } public void setGoldCorn(String goldCorn) { this.goldCorn = goldCorn; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getActionName() { return actionName; } public void setActionName(String actionName) { this.actionName = actionName; } public JumpDetail getJumpDetail() { return jumpDetail; } public void setJumpDetail(JumpDetail jumpDetail) { this.jumpDetail = jumpDetail; } public String getParams() { return params; } public void setParams(String params) { this.params = params; } public boolean isEnable() { return enable; } public void setEnable(boolean enable) { this.enable = enable; } } BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInGoldCornDateData.java
New file @@ -0,0 +1,31 @@ package com.weikou.beibeivideo.entity.vo; public class SignInGoldCornDateData { private String goldCorn; private String date; private boolean selected; public String getGoldCorn() { return goldCorn; } public void setGoldCorn(String goldCorn) { this.goldCorn = goldCorn; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } } BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInInfo.java
New file @@ -0,0 +1,74 @@ package com.weikou.beibeivideo.entity.vo; import com.weikou.beibeivideo.ui.goldcorn.GoldCornAdapter; import java.util.List; public class SignInInfo { private int balance; private SignInConfig signInConfig; private List<SignInGoldCornDateData> dateList; private int signDay; private boolean canSignIn; public boolean isCanSignIn() { return canSignIn; } public void setCanSignIn(boolean canSignIn) { this.canSignIn = canSignIn; } public int getBalance() { return balance; } public void setBalance(int balance) { this.balance = balance; } public SignInConfig getSignInConfig() { return signInConfig; } public void setSignInConfig(SignInConfig signInConfig) { this.signInConfig = signInConfig; } public List<SignInGoldCornDateData> getDateList() { return dateList; } public void setDateList(List<SignInGoldCornDateData> dateList) { this.dateList = dateList; } public int getSignDay() { return signDay; } public void setSignDay(int signDay) { this.signDay = signDay; } public static class SignInConfig { private String recordUrl; private String ruleUrl; public String getRecordUrl() { return recordUrl; } public void setRecordUrl(String recordUrl) { this.recordUrl = recordUrl; } public String getRuleUrl() { return ruleUrl; } public void setRuleUrl(String ruleUrl) { this.ruleUrl = ruleUrl; } } } BuWanVideo/src/com/weikou/beibeivideo/ui/goldcorn/GoldCornAdapter.java
New file @@ -0,0 +1,401 @@ package com.weikou.beibeivideo.ui.goldcorn; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.text.SpannableString; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.alibaba.fastjson.JSONObject; import com.androidquery.AQuery; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.DrawableImageViewTarget; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.lcjian.library.util.common.DimenUtils; import com.lcjian.library.util.glide.GlideRoundTransform; import com.lcjian.library.widget.RatioLayout; import com.lzj.gallery.library.views.BannerViewPager; import com.weikou.beibeivideo.BasicTextHttpResponseHandler; import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.R; import com.weikou.beibeivideo.entity.HomeType; import com.weikou.beibeivideo.entity.HomeVideo; import com.weikou.beibeivideo.entity.UserInfo; import com.weikou.beibeivideo.entity.VideoType; import com.weikou.beibeivideo.entity.ad.ExpressAdContainer; import com.weikou.beibeivideo.entity.recommend.RecommendContent; import com.weikou.beibeivideo.entity.video.holder.FooterViewHolder; import com.weikou.beibeivideo.entity.video.holder.HeaderViewHolder; import com.weikou.beibeivideo.entity.vo.CouponVideoInfo; import com.weikou.beibeivideo.entity.vo.GoldCornTask; import com.weikou.beibeivideo.entity.vo.SignInGoldCornDateData; import com.weikou.beibeivideo.entity.vo.SignInInfo; import com.weikou.beibeivideo.ui.common.VideosLiveActivity; import com.weikou.beibeivideo.ui.discover.StarsActivity; import com.weikou.beibeivideo.ui.login.LoginActivity; import com.weikou.beibeivideo.ui.main.MainActivity; import com.weikou.beibeivideo.ui.mine.BrowserActivity; import com.weikou.beibeivideo.ui.video.VideoRecommendAdapter; import com.weikou.beibeivideo.util.JumpActivityUtil; import com.weikou.beibeivideo.util.UserUtil; import com.weikou.beibeivideo.util.ad.ExpressAdManager; import com.weikou.beibeivideo.util.downutil.StringUtils; import com.weikou.beibeivideo.util.ui.DividerItemDecoration; import com.weikou.beibeivideo.util.ui.ToastUtil; import org.apache.http.Header; import org.json.JSONArray; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.TreeSet; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade; public class GoldCornAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final static String TAG = "GoldCornAdapter"; private Activity mContext; List<CouponVideoInfo> mVideoList; List<GoldCornTask> mTaskList; private LayoutInflater inflater; private IGoldCornActionListener mTaskClickListener; private String mCouponExchangeUrl; private SignInInfo signInInfo; public final int TYPE_SIGN_IN = 10001; public final int TYPE_COUPON = 10002; public final int TYPE_TASK = 10003; private Gson gson = new GsonBuilder().setVersion(1.0).setFieldNamingPolicy( FieldNamingPolicy.UPPER_CAMEL_CASE) .create(); public GoldCornAdapter(Activity context, List<CouponVideoInfo> videoList, List<GoldCornTask> taskList, String couponExchangeUrl, SignInInfo signInInfo, IGoldCornActionListener taskClickListener) { this.mContext = context; this.mVideoList = videoList; this.mTaskList = taskList; this.mTaskClickListener = taskClickListener; this.mCouponExchangeUrl = couponExchangeUrl; this.signInInfo = signInInfo; inflater = LayoutInflater.from(mContext); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case TYPE_SIGN_IN: return new SignInHolder(inflater.inflate(R.layout.item_gold_corn_sign_in, null, false)); case TYPE_COUPON: return new VideoCouponHolder(inflater.inflate(R.layout.item_gold_corn_coupon, null, false)); case TYPE_TASK: return new TaskHolder(inflater.inflate(R.layout.item_gold_corn_task, null, false)); } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int p) { if (viewHolder instanceof SignInHolder) { SignInHolder signInHolder = (SignInHolder) viewHolder; //个人信息填充 if (UserUtil.isLogin(BeibeiVideoApplication.application)) { UserInfo userInfo = UserUtil.getLoginUserInfo(BeibeiVideoApplication.application); Glide.with(signInHolder.mAquery.id(R.id.iv_portrait).getContext()).load(userInfo.getPortrait()).apply(new RequestOptions().dontAnimate().diskCacheStrategy(DiskCacheStrategy.ALL)).placeholder(R.drawable.ic_portrait_default) .transform(new GlideRoundTransform(signInHolder.mAquery.id(R.id.iv_portrait).getContext(), 50)) .into(signInHolder.mAquery.id(R.id.iv_portrait).getImageView()); signInHolder.mAquery.id(R.id.tv_gold_corn).text(signInInfo.getBalance() + ""); signInHolder.mAquery.id(R.id.ll_user).visibility(View.VISIBLE); } else signInHolder.mAquery.id(R.id.ll_user).visibility(View.GONE); signInHolder.mAquery.id(R.id.tv_record).clicked(new OnClickListener() { @Override public void onClick(View v) { if (!UserUtil.isLogin(mContext)) { mContext.startActivity(new Intent(mContext, LoginActivity.class)); return; } mContext.startActivity(new Intent(mContext, BrowserActivity.class).putExtra("url", signInInfo.getSignInConfig().getRecordUrl()).putExtra("close", false)); } }); signInHolder.mAquery.id(R.id.tv_rule).clicked(new OnClickListener() { @Override public void onClick(View v) { mContext.startActivity(new Intent(mContext, BrowserActivity.class).putExtra("url", signInInfo.getSignInConfig().getRuleUrl()).putExtra("close", false)); } }); signInHolder.mAquery.id(R.id.tv_sign_in).clicked(new OnClickListener() { @Override public void onClick(View v) { if (mTaskClickListener != null) mTaskClickListener.onSignIn(); } }); if (signInInfo.isCanSignIn()) { signInHolder.mAquery.id(R.id.tv_sign_in).enabled(true); } else { signInHolder.mAquery.id(R.id.tv_sign_in).enabled(false); } if (signInInfo.getDateList() == null || signInInfo.getDateList().size() != 7) { signInHolder.mAquery.id(R.id.ll_gold_date).visibility(View.GONE); return; } signInHolder.mAquery.id(R.id.ll_gold_date).visibility(View.VISIBLE); for (int i = 0; i < signInInfo.getDateList().size(); i++) { int scoreId = getId(BeibeiVideoApplication.application, "tv_score_" + (i + 1)); int dateId = getId(BeibeiVideoApplication.application, "tv_date_" + (i + 1)); signInHolder.mAquery.id(scoreId).text(signInInfo.getDateList().get(i).getGoldCorn()); signInHolder.mAquery.id(dateId).text(signInInfo.getDateList().get(i).getDate()); if (signInInfo.getDateList().get(i).isSelected()) { for (int j = i; j > -1; j--) { scoreId = getId(BeibeiVideoApplication.application, "tv_score_" + (j + 1)); signInHolder.mAquery.id(scoreId).background(R.drawable.shape_gold_corn_sign_in_score_bg_highlight); signInHolder.mAquery.id(scoreId).width(31); signInHolder.mAquery.id(scoreId).height(31); signInHolder.mAquery.id(scoreId).margin(0, 0, 0, 0); if (j > 0) { int spaceId = getId(BeibeiVideoApplication.application, "v_space_" + j); signInHolder.mAquery.id(spaceId).backgroundColor(Color.WHITE); } } } else { signInHolder.mAquery.id(scoreId).background(R.drawable.shape_gold_corn_sign_in_score_bg); signInHolder.mAquery.id(scoreId).width(27); signInHolder.mAquery.id(scoreId).height(27); signInHolder.mAquery.id(scoreId).margin(2, 2, 2, 2); if (i > 0) { Log.i(TAG, "tv_space_" + i); int spaceId = getId(BeibeiVideoApplication.application, "v_space_" + i); signInHolder.mAquery.id(spaceId).backgroundColor(Color.parseColor("#2CB3FF")); } } } int start = 5; int end = 5 + (signInInfo.getSignDay() + "").length(); SpannableString spannableString = new SpannableString("连续签到:" + signInInfo.getSignDay() + "天"); spannableString.setSpan(new AbsoluteSizeSpan(com.lcjian.library.util.common.DimenUtils.spToPixels(16, signInHolder.mAquery.getContext())), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFC00")), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); signInHolder.mAquery.id(R.id.tv_sign_in_day_count).text(spannableString); } else if (viewHolder instanceof VideoCouponHolder) { VideoCouponHolder couponHolder = (VideoCouponHolder) viewHolder; Glide.with(mContext).load(mVideoList.get(0).getPicture()).apply(new RequestOptions().centerCrop()).transform(new GlideRoundTransform(mContext, 6)).transition(withCrossFade()).placeholder(R.drawable.shape_video_list_cover_placeholder).diskCacheStrategy(DiskCacheStrategy.ALL).into(couponHolder.iv_cover_1); Glide.with(mContext).load(mVideoList.get(1).getPicture()).apply(new RequestOptions().centerCrop()).transform(new GlideRoundTransform(mContext, 6)).transition(withCrossFade()).placeholder(R.drawable.shape_video_list_cover_placeholder).diskCacheStrategy(DiskCacheStrategy.ALL).into(couponHolder.iv_cover_2); Glide.with(mContext).load(mVideoList.get(2).getPicture()).apply(new RequestOptions().centerCrop()).transform(new GlideRoundTransform(mContext, 6)).transition(withCrossFade()).placeholder(R.drawable.shape_video_list_cover_placeholder).diskCacheStrategy(DiskCacheStrategy.ALL).into(couponHolder.iv_cover_3); couponHolder.tv_exchange.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mContext.startActivity(new Intent(mContext, BrowserActivity.class).putExtra("url", mCouponExchangeUrl).putExtra("close", false)); } }); } else if (viewHolder instanceof TaskHolder) { TaskHolder taskHolder = (TaskHolder) viewHolder; taskHolder.rl_task.setLayoutManager(new LinearLayoutManager(mContext)); DividerItemDecoration decoration = new DividerItemDecoration(); decoration.setSize(DimenUtils.dip2px(mContext, 3)); //清除之前的间隔 if (taskHolder.rl_task.getItemDecorationCount() == 0) { taskHolder.rl_task.addItemDecoration(decoration); } taskHolder.rl_task.setAdapter(new TaskAdapter()); } } private static int getId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "id", paramContext.getPackageName()); } @Override public int getItemCount() { int count = 1; if (mVideoList != null && mVideoList.size() > 0) count++; if (mTaskList != null && mTaskList.size() > 0) count++; return count; } /** * banner第一栏,视频内容第二栏,广告第三栏和最后一栏 * * @param position * @return */ //获取类型 @Override public int getItemViewType(int position) { if (position == 0) return TYPE_SIGN_IN; switch (position) { case 0: return TYPE_SIGN_IN; case 1: { if (mVideoList != null && mVideoList.size() > 0) return TYPE_COUPON; else if (mTaskList != null && mTaskList.size() > 0) { return TYPE_TASK; } } case 2: return TYPE_TASK; } return 0; } class SignInHolder extends RecyclerView.ViewHolder { AQuery mAquery; public SignInHolder(View convertView) { super(convertView); mAquery = new AQuery(convertView); } } class VideoCouponHolder extends RecyclerView.ViewHolder { ImageView iv_cover_1, iv_cover_2, iv_cover_3; TextView tv_exchange; public VideoCouponHolder(View convertView) { super(convertView); iv_cover_1 = convertView.findViewById(R.id.iv_cover_1); iv_cover_2 = convertView.findViewById(R.id.iv_cover_2); iv_cover_3 = convertView.findViewById(R.id.iv_cover_3); tv_exchange = convertView.findViewById(R.id.tv_exchange); } } class TaskHolder extends RecyclerView.ViewHolder { RecyclerView rl_task; public TaskHolder(View convertView) { super(convertView); rl_task = convertView.findViewById(R.id.rl_task); } } class TaskAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new TaskListHolder(inflater.inflate(R.layout.item_gold_corn_task_list, parent, false)); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { GoldCornTask task = mTaskList.get(position); TaskListHolder viewHolder = (TaskListHolder) holder; viewHolder.tv_name.setText(task.getTitle()); viewHolder.tv_goldcorn.setText(task.getGoldCorn()); viewHolder.tv_desc.setText(task.getDesc()); Glide.with(mContext).load(task.getIcon()).into(viewHolder.iv_icon); viewHolder.tv_btn.setText(task.getActionName()); viewHolder.tv_btn.setEnabled(task.isEnable()); viewHolder.tv_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mTaskClickListener != null) mTaskClickListener.onClick(position, task); } }); } @Override public int getItemCount() { return mTaskList == null ? 0 : mTaskList.size(); } class TaskListHolder extends RecyclerView.ViewHolder { ImageView iv_icon; TextView tv_name; TextView tv_goldcorn; TextView tv_desc; TextView tv_btn; public TaskListHolder(@NonNull View itemView) { super(itemView); iv_icon = itemView.findViewById(R.id.iv_icon); tv_name = itemView.findViewById(R.id.tv_name); tv_goldcorn = itemView.findViewById(R.id.tv_goldcorn); tv_desc = itemView.findViewById(R.id.tv_desc); tv_btn = itemView.findViewById(R.id.tv_btn); } } } public interface IGoldCornActionListener { public void onClick(int p, GoldCornTask task); public void onSignIn(); } } BuWanVideo/src/com/weikou/beibeivideo/ui/main/GoldCornFragment.java
New file @@ -0,0 +1,266 @@ package com.weikou.beibeivideo.ui.main; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.Toast; import com.alibaba.fastjson.JSONObject; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.lcjian.library.util.SingleToast; import com.qq.e.ads.cfg.VideoOption; import com.qq.e.ads.nativ.ADSize; import com.qq.e.ads.nativ.NativeExpressAD; import com.qq.e.ads.nativ.NativeExpressADView; import com.qq.e.comm.util.AdError; import com.umeng.analytics.MobclickAgent; import com.weikou.beibeivideo.BasicTextHttpResponseHandler; import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.R; import com.weikou.beibeivideo.entity.JumpDetail; import com.weikou.beibeivideo.entity.VideoInfo; import com.weikou.beibeivideo.entity.vo.CouponVideoInfo; import com.weikou.beibeivideo.entity.vo.GoldCornTask; import com.weikou.beibeivideo.entity.vo.SignInGoldCornDateData; import com.weikou.beibeivideo.entity.vo.SignInInfo; import com.weikou.beibeivideo.ui.MyRetainViewFragment; import com.weikou.beibeivideo.ui.category.bean.UniqueBean; import com.weikou.beibeivideo.ui.goldcorn.GoldCornAdapter; import com.weikou.beibeivideo.ui.login.LoginActivity; import com.weikou.beibeivideo.ui.recommend.DiscoverAdapter; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.JumpActivityUtil; import com.weikou.beibeivideo.util.UserUtil; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.ad.GDTConstant; import com.weikou.beibeivideo.util.ui.ToastUtil; import com.weikou.beibeivideo.widget.MySwipeRefreshLayout; import org.apache.http.Header; import org.json.JSONArray; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; /** * 影视豆 */ public class GoldCornFragment extends MyRetainViewFragment implements GoldCornAdapter.IGoldCornActionListener { private int mCurrentPage = 1; private RecyclerView rv_goldcorn; private MySwipeRefreshLayout srl_goldcorn; private GoldCornAdapter mGoldCornAdapter; private List<CouponVideoInfo> videoList; private List<GoldCornTask> taskList; private String couponExchangeUrl; private SignInInfo signInInfo; public GoldCornFragment() { super(); setName(GoldCornFragment.class.getName()); } public static GoldCornFragment newInstance() { return new GoldCornFragment(); } @Override public int getContentResource() { return R.layout.fragment_goldcorn; } @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); } @Override public void onCreateView(View contentView, Bundle savedInstanceState) { rv_goldcorn = contentView.findViewById(R.id.rv_goldcorn); srl_goldcorn = contentView.findViewById(R.id.srl_goldcorn); first = true; srl_goldcorn.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { first = true; requestData(); } }); requestData(); } private void initData() { mGoldCornAdapter = new GoldCornAdapter(getActivity(), videoList, taskList, couponExchangeUrl, signInInfo, this); rv_goldcorn.setAdapter(mGoldCornAdapter); rv_goldcorn.setLayoutManager(new LinearLayoutManager(getContext())); } private boolean first; private void requestData() { getSignInInfo(); } /** * 获取签到信息 */ private void getSignInInfo() { srl_goldcorn.setRefreshing(true); BeibeiVideoAPI.getSignInInfo(BeibeiVideoApplication.application, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { org.json.JSONObject data = jsonObject.optJSONObject("Data"); signInInfo = new Gson().fromJson(data.toString(), SignInInfo.class); if (mGoldCornAdapter != null) { mGoldCornAdapter.notifyItemChanged(0); } if (first) { getCouponVideoList(); } else { srl_goldcorn.setRefreshing(false); } } else { Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); srl_goldcorn.setRefreshing(false); } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); srl_goldcorn.setRefreshing(false); } }); } private void getCouponVideoList() { BeibeiVideoAPI.getGoldCornCouponVideoList(BeibeiVideoApplication.application, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { org.json.JSONObject data = jsonObject.optJSONObject("Data"); couponExchangeUrl = data.optString("exchangeUrl"); JSONArray list = data.optJSONArray("list"); Type type = new TypeToken<List<CouponVideoInfo>>() { }.getType(); videoList = new Gson().fromJson(list.toString(), type); if (first) { getTask(); }else{ srl_goldcorn.setRefreshing(false); } } else { Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); srl_goldcorn.setRefreshing(false); } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); srl_goldcorn.setRefreshing(false); } }); } private void getTask() { BeibeiVideoAPI.getGoldCornTaskList(BeibeiVideoApplication.application, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { org.json.JSONObject data = jsonObject.optJSONObject("Data"); JSONArray list = data.optJSONArray("list"); Type type = new TypeToken<List<GoldCornTask>>() { }.getType(); taskList = new Gson().fromJson(list.toString(), type); if (first) { first = false; initData(); } } else { Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); } } @Override public void onFinish() { super.onFinish(); srl_goldcorn.setRefreshing(false); } }); } private void signIn() { BeibeiVideoAPI.signIn(BeibeiVideoApplication.application, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { org.json.JSONObject data = jsonObject.optJSONObject("Data"); ToastUtil.showGetGoldGornToast(getContext(), "+" + data.optString("goldCorn")); } else { Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); } } @Override public void onFinish() { super.onFinish(); } }); } @Override public void onClick(int p, GoldCornTask task) { JumpActivityUtil.jumpPage(getActivity(), task.getJumpDetail(), JumpActivityUtil.getParamsJSON(task.getParams())); } @Override public void onSignIn() { if (!UserUtil.isLogin(BeibeiVideoApplication.application)) { startActivity(new Intent(BeibeiVideoApplication.application, LoginActivity.class)); return; } signIn(); } public static class GoldCornExpireInfo { public String goldcorn; public long expireTime; } } BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java
@@ -38,6 +38,7 @@ import com.weikou.beibeivideo.entity.JumpDetail; import com.weikou.beibeivideo.entity.VideoType; import com.weikou.beibeivideo.entity.recommend.HomeClass; import com.weikou.beibeivideo.entity.recommend.HomeTabChangeInfo; import com.weikou.beibeivideo.ui.MyRetainViewFragment; import com.weikou.beibeivideo.ui.dialog.FloatADDialog; import com.weikou.beibeivideo.ui.recommend.RecommendFragment; @@ -248,6 +249,19 @@ getCategories(); } public void onEventMainThread(HomeTabChangeInfo changeInfo) { if (changeInfo == null) return; if (pager == null) return; if (pager.getAdapter() == null) return; if (pager.getAdapter().getCount() < changeInfo.getPosition() + 1) return; pager.setCurrentItem(changeInfo.getPosition()); } List<HomeClass> categories = new ArrayList<>(); BuWanVideo/src/com/weikou/beibeivideo/ui/main/MainActivity.java
@@ -54,6 +54,7 @@ import com.weikou.beibeivideo.db.MessageTable; import com.weikou.beibeivideo.entity.NewComment; import com.weikou.beibeivideo.entity.VideoInfo; import com.weikou.beibeivideo.entity.recommend.HomeTabChangeInfo; import com.weikou.beibeivideo.ui.BaseActivity; import com.weikou.beibeivideo.ui.baidu.BaiDuNewsFragment; import com.weikou.beibeivideo.ui.baidu.BaiDuVideosFragment; @@ -164,8 +165,8 @@ mFragmentSwitchHelper = FragmentSwitchHelper.create( R.id.fl_main_fragment_container, getSupportFragmentManager(), new HomeFragment(), new CategoryFragment(), BaiDuNewsFragment.newInstance(), new MineFragment(), BaiDuVideosFragment.newInstance()); new HomeFragment(), new BaiDuVideosFragment(), BaiDuNewsFragment.newInstance(), new MineFragment(), GoldCornFragment.newInstance()); rg_nav = findViewById(R.id.rg_nav); rg_nav.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @@ -177,14 +178,14 @@ .changeFragment(HomeFragment.class); } break; case R.id.rb_nav_category: { mFragmentSwitchHelper .changeFragment(CategoryFragment.class); } break; case R.id.rb_guess_like: { mFragmentSwitchHelper .changeFragment(BaiDuVideosFragment.class); } break; case R.id.rb_gold_corn: { mFragmentSwitchHelper .changeFragment(GoldCornFragment.class); } break; case R.id.rb_nav_discover: { @@ -643,15 +644,38 @@ switch (Integer.parseInt(position)) { case 0: rg_nav.check(R.id.rb_nav_recommend); final String cposition = intent.getStringExtra("cposition"); if (StringUtils.isEmpty(cposition)) { break; } String goldcorn = intent.getStringExtra("goldcorn"); if (!StringUtils.isEmpty(goldcorn)) { GoldCornFragment.GoldCornExpireInfo info = new GoldCornFragment.GoldCornExpireInfo(); info.goldcorn = goldcorn; //2分钟 info.expireTime = System.currentTimeMillis() + 1000 * 60 * 2; BeibeiConstant.watchVideoGoldCorn = info; } rg_nav.post(new Runnable() { @Override public void run() { EventBus.getDefault().post(new HomeTabChangeInfo(Integer.parseInt(cposition))); } }); break; case 1: rg_nav.check(R.id.rb_nav_discover); break; case 2: rg_nav.check(R.id.rb_guess_like); rg_nav.check(R.id.rb_gold_corn); break; case 3: rg_nav.check(R.id.rb_nav_category); rg_nav.check(R.id.rb_guess_like); break; case 4: rg_nav.check(R.id.rb_nav_mine); BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -11,11 +11,13 @@ import android.database.Cursor; import android.graphics.drawable.Drawable; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import android.util.Log; import android.view.KeyEvent; import android.view.View; @@ -71,6 +73,7 @@ import com.weikou.beibeivideo.util.UmengEventUtil; import com.weikou.beibeivideo.util.VideoUtil; import com.weikou.beibeivideo.util.ad.FullVideoAdManager; import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil; import com.weikou.beibeivideo.util.ui.IPageEventListener; import com.weikou.beibeivideo.util.ui.TopStatusSettings; @@ -746,6 +749,9 @@ }); } //赚影视豆 private Runnable makeGoldCornRunnable; private void getVideoDetail(final Context context, String videoId, String videoThirdType, final boolean isSetup, final String fromName) { int position = getIntent().getIntExtra( @@ -797,6 +803,15 @@ e.printStackTrace(); } if (jsonObject.getBoolean("IsPost")) { if (BeibeiConstant.watchVideoGoldCorn != null && BeibeiConstant.watchVideoGoldCorn.expireTime > System.currentTimeMillis() && getIntent() != null) { getIntent().putExtra("goldcorn", BeibeiConstant.watchVideoGoldCorn.goldcorn); BeibeiConstant.watchVideoGoldCorn = null; } //挣影视豆 makeGoldCornRunnable = GoldCornUtil.makeGoldCorn(getIntent(), fl_video_play_background, videoId, resourceId, null, null); JSONObject data = jsonObject.optJSONObject("Data"); boolean pptv = data.optBoolean("pptv", false); if (pptv) { @@ -1175,5 +1190,6 @@ if (BeibeiConstant.AD_TYPE != null && BeibeiConstant.AD_TYPE.isVideoDetailSplashAd()) FullVideoAdManager.getInstance().loadAd(BeibeiVideoApplication.application, null); uploadSession(); GoldCornUtil.removeCallbacks(fl_video_play_background, makeGoldCornRunnable); } } BuWanVideo/src/com/weikou/beibeivideo/ui/mine/BrowserActivity.java
@@ -249,6 +249,10 @@ tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle); tv_top_bar_left2.setText("关闭"); if (getIntent().getBooleanExtra("close", true)) tv_top_bar_left2.setVisibility(View.VISIBLE); else tv_top_bar_left2.setVisibility(View.GONE); tv_top_bar_left.setOnClickListener(this); tv_top_bar_left2.setOnClickListener(this); BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -10,8 +10,10 @@ import android.net.http.SslError; import android.os.Build; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -337,7 +339,11 @@ } DialogUtil.dismiss(vipNewDialog); //放弃请求 if (vipNewDialog != null && vipNewDialog.isShowing()) { return; } BeibeiVideoAPI.getPPTVVIPVideoActivity(getContext(), url, cid, vid, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { @@ -345,6 +351,7 @@ if (jsonObject.optBoolean("IsPost")) { JSONObject data = jsonObject.optJSONObject("Data"); PPTVVideoActivityInfoVO vo = new Gson().fromJson(data.toString(), PPTVVideoActivityInfoVO.class); vipNewDialog = new VIPNewDialog.Builder(getActivity()).setActivityData(vo.getWayList(), vo.getVideoName()).setCloseListener(new OnClickListener() { @Override public void onClick(View v) { @@ -358,8 +365,7 @@ jumpToVIP(); } else { if (way.getJumpDetail() != null) JumpActivityUtil.jumpPage(getActivity(), way.getJumpDetail(), way.getParams() != null ? com.alibaba.fastjson.JSONObject.parseObject(way.getParams().replace( "\\" + "\"", "\"")) : null); JumpActivityUtil.jumpPage(getActivity(), way.getJumpDetail(), JumpActivityUtil.getParamsJSON(way.getParams())); } } }).create(); @@ -747,7 +753,6 @@ @Override public void noAdRewardClick() { //测试广告 int width = DimenUtils.getScreenWidth(getContext()); int height = DimenUtils.getScreenHeight(getContext()); BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java
@@ -60,6 +60,7 @@ import com.weikou.beibeivideo.util.DimenUtils; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.ad.ExpressAdManager; import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil; import com.weikou.beibeivideo.util.ui.TopStatusSettings; import org.apache.http.Header; @@ -93,6 +94,9 @@ private String value = ""; private boolean touchSearchInput = false; //赚影视豆 private Runnable makeGoldCornRunnable; private void initView() { fl_advertisement = findViewById(R.id.fl_advertisement); @@ -473,9 +477,12 @@ } }); } } }); } //挣影视豆 makeGoldCornRunnable = GoldCornUtil.makeGoldCorn(getIntent(), et_search_key, null, null, 2, null); } }); } @@ -606,4 +613,9 @@ } } @Override protected void onDestroy() { super.onDestroy(); GoldCornUtil.removeCallbacks(et_search_key, makeGoldCornRunnable); } } BuWanVideo/src/com/weikou/beibeivideo/util/BeibeiConstant.java
@@ -1,6 +1,7 @@ package com.weikou.beibeivideo.util; import com.weikou.beibeivideo.entity.ad.AdTypeVO; import com.weikou.beibeivideo.ui.main.GoldCornFragment; public class BeibeiConstant { @@ -133,4 +134,7 @@ public static boolean AD_CLICK_DOWNLOAD = false;//广告下载提示框是否展示 public static final boolean DEBUG = true; //观看视频得影視豆 public static GoldCornFragment.GoldCornExpireInfo watchVideoGoldCorn; } BuWanVideo/src/com/weikou/beibeivideo/util/JumpActivityUtil.java
@@ -25,9 +25,16 @@ import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.WXAPIFactory; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.entity.JumpDetail; import com.weikou.beibeivideo.entity.ad.RewardVideoAdContainer; import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil; import com.weikou.beibeivideo.ui.login.LoginActivity; import com.weikou.beibeivideo.ui.mine.BrowserActivity; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.ad.RewardVideoAdManager; import com.weikou.beibeivideo.util.ad.RewardVideoAdUtil; import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil; import org.json.JSONException; @@ -198,6 +205,60 @@ break; case "rewardVideo": { LoadingDialogUtil.show(context); AdUtil.AD_TYPE adType = AdUtil.AD_TYPE.valueOf(params.getString("adType")); String pid = params.getString("pid"); RewardVideoAdManager.IAdShowListener showListener = new RewardVideoAdManager.IAdShowListener() { @Override public void onShow() { } @Override public void onReward() { String code = params.getString("goldcorn"); if (!StringUtils.isEmpty(code)) { GoldCornUtil.makeGoldCorn(code, null, null, null); } } @Override public void onError(String msg) { LoadingDialogUtil.dismiss(); } @Override public void onClose() { LoadingDialogUtil.dismiss(); } }; RewardVideoAdUtil.showAd(context, adType, pid, new RewardVideoAdManager.IAdLoadListener() { @Override public void onSuccess(RewardVideoAdContainer ad) { LoadingDialogUtil.dismiss(); if (context != null) context.runOnUiThread(new Runnable() { @Override public void run() { LoadingDialogUtil.dismiss(); RewardVideoAdManager.showAd(context, ad, showListener); } }); } @Override public void onError(String msg) { LoadingDialogUtil.dismiss(); } }, showListener); } break; default: { try { Intent intent = new Intent(context, Class.forName(JumpActivityUtil.filterActivityName(detail.getActivity()))); @@ -222,4 +283,16 @@ return activity; } public static JSONObject getParamsJSON(String params) { if (params == null || StringUtils.isEmpty(params)) return null; String fparams = params.replace( "\\" + "\"", "\""); try { return JSONObject.parseObject(fparams); } catch (Exception e) { return null; } } } BuWanVideo/src/com/weikou/beibeivideo/util/ad/RewardVideoAdUtil.java
New file @@ -0,0 +1,25 @@ package com.weikou.beibeivideo.util.ad; import android.app.Activity; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.util.DimenUtils; public class RewardVideoAdUtil { /** * 展示广告 * * @param context * @param adSource * @param pid * @param adLoadListener * @param showListener */ public static void showAd(Activity context, AdUtil.AD_TYPE adSource, String pid, RewardVideoAdManager.IAdLoadListener adLoadListener, RewardVideoAdManager.IAdShowListener showListener) { int width = DimenUtils.px2dip(context, DimenUtils.getScreenWidth(context)); int height = DimenUtils.px2dip(context, DimenUtils.getScreenHeight(context)); new RewardVideoAdManager(adSource, BeibeiVideoApplication.application).loadAd(width, height, pid, false, adLoadListener, showListener); } } BuWanVideo/src/com/weikou/beibeivideo/util/goldcorn/GoldCornUtil.java
New file @@ -0,0 +1,104 @@ package com.weikou.beibeivideo.util.goldcorn; import android.content.Intent; import android.view.View; import com.weikou.beibeivideo.BasicTextHttpResponseHandler; import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.util.downutil.StringUtils; import com.weikou.beibeivideo.util.ui.ToastUtil; import org.apache.http.Header; import org.json.JSONObject; public class GoldCornUtil { /** * 是否为赚影视豆 * * @param intent * @return */ public static String getGoldCornCode(Intent intent) { if (intent == null) return null; if (!StringUtils.isNullOrEmpty(intent.getStringExtra("goldcorn"))) return intent.getStringExtra("goldcorn"); return null; } public static Runnable makeGoldCorn(Intent intent, View view, String param1, String param2, Integer delaySeconds, GetGoldCornListener goldCornListener) { if (view == null) return null; String code = getGoldCornCode(intent); if (code != null) { Runnable runnable = new Runnable() { @Override public void run() { BeibeiVideoAPI.makeGoldCorn(BeibeiVideoApplication.application, code, param1, param2, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { JSONObject data = jsonObject.optJSONObject("Data"); if (data == null) return; int goldCorn = data.optInt("goldCorn"); ToastUtil.showGetGoldGornToast(BeibeiVideoApplication.application, "+" + goldCorn); if (goldCornListener != null) goldCornListener.onGetSuccess(code, goldCorn); } else { if (goldCornListener != null) goldCornListener.onGetFail(code, jsonObject.optString("Error")); } } }); } }; if (view != null) { view.postDelayed(runnable, delaySeconds == null ? 4000 : delaySeconds * 1000); return runnable; } } return null; } public static void makeGoldCorn(String code, String param1, String param2, GetGoldCornListener goldCornListener) { if (code != null) { BeibeiVideoAPI.makeGoldCorn(BeibeiVideoApplication.application, code, param1, param2, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { JSONObject data = jsonObject.optJSONObject("Data"); if (data == null) return; int goldCorn = data.optInt("goldCorn"); ToastUtil.showGetGoldGornToast(BeibeiVideoApplication.application, "+" + goldCorn); if (goldCornListener != null) goldCornListener.onGetSuccess(code, goldCorn); } else { if (goldCornListener != null) goldCornListener.onGetFail(code, jsonObject.optString("Error")); } } }); } } public static void removeCallbacks(View view, Runnable runnable) { if (view != null && runnable != null) { view.removeCallbacks(runnable); } } public interface GetGoldCornListener { public void onGetSuccess(String code, int goldCorn); public void onGetFail(String code, String msg); } } BuWanVideo/src/com/weikou/beibeivideo/util/ui/ToastUtil.java
@@ -2,9 +2,12 @@ import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.weikou.beibeivideo.R; public class ToastUtil { @@ -19,11 +22,12 @@ public static Toast showGetGoldGornToast(Context context, String text) { View view = LayoutInflater.from(context).inflate(R.layout.item_gold_corn_toast, null); Toast toast = new Toast(context); TextView textView = new TextView(context); textView.setText(text); toast.setView(textView); toast.setDuration(Toast.LENGTH_SHORT); TextView textView = view.findViewById(R.id.tv_content); textView.setText(text+" 影视豆"); toast.setView(view); toast.setDuration(Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); return toast;