hanjing лет назад: 6
Родитель
Сommit
42f2765316

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -99,7 +99,7 @@
             android:name="com.sheep.gamegroup.module.task.VideoTaskActivity"
             android:configChanges="keyboardHidden|navigation|orientation|screenSize"
             android:screenOrientation="portrait"
-            android:theme="@style/AppTheme.fullTranslucent"></activity>
+            android:theme="@style/AppTheme.fullScreen"></activity>
 
         <service
             android:name=".service.SyncCheckService"

+ 31 - 26
app/src/main/java/com/sheep/gamegroup/module/task/VideoTaskActivity.java

@@ -32,6 +32,7 @@ import com.sheep.gamegroup.util.LocationUtils;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.customview.SheepGSYVideoView;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
@@ -41,7 +42,6 @@ import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.shuyu.gsyvideoplayer.GSYVideoManager;
 import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
 import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
-import com.shuyu.gsyvideoplayer.video.GSYSampleADVideoPlayer;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -55,11 +55,13 @@ import io.reactivex.schedulers.Schedulers;
 public class VideoTaskActivity extends BaseActivity {
 
     @BindView(R.id.video_player_view)
-    GSYSampleADVideoPlayer videoPlayerView;
+    SheepGSYVideoView videoPlayerView;
     @BindView(R.id.mask_view)
     View mask_view;
     @BindView(R.id.desc_bottom_tv)
     TextView desc_bottom_tv;
+    @BindView(R.id.countdown_view)
+    TextView countdown_view;
 
     private int releaseTaskId = -1;
 
@@ -87,15 +89,6 @@ public class VideoTaskActivity extends BaseActivity {
     @Override
     public void onCreate(Bundle b) {
         super.onCreate(b);
-//        int flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
-//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-//            flag |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-//            flag |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
-//                    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
-//                    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | // hide
-//                    View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
-//        }
-//        getWindow().getDecorView().setSystemUiVisibility(flag);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
     }
 
@@ -128,6 +121,10 @@ public class VideoTaskActivity extends BaseActivity {
 
     @Override
     public void initView() {
+        videoPlayerView.setShowControlView(false);
+        videoPlayerView.getBackButton().setVisibility(View.GONE);
+        videoPlayerView.getFullscreenButton().setVisibility(View.GONE);
+        videoPlayerView.getBottomProgressBar().setVisibility(View.GONE);
         mask_view.setOnTouchListener((v, event) -> {
             if (event.getAction() == MotionEvent.ACTION_UP && currentVideoAd != null) {
                 currentVideoAd.clickX = (int) event.getRawX();
@@ -136,8 +133,7 @@ public class VideoTaskActivity extends BaseActivity {
                 String path = ADDownloader.getUrlPath(currentVideoAd.url);
                 if (PackageUtil.isAppInstalled(SheepApp.getInstance(), currentVideoAd.package_name)) {
                     showOpenAppConfirmDialog();
-                }
-                if (!TextUtils.isEmpty(path)) {
+                } else if (!TextUtils.isEmpty(path)) {
                     currentVideoAd.path = path;
                     showInstallConfigDialog();
                 } else {
@@ -178,12 +174,16 @@ public class VideoTaskActivity extends BaseActivity {
                 return;
             }
             acceptedTask = at;
-            ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                    "提示",
-                    "你需要观看" + releaseTask.getTask().getVideo_num() + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
-                    "放弃", "继续观看",
-                    d -> finish(),
-                    d -> loadAd()).show();
+            if (watchCount == 0) {
+                loadAd();
+            } else {
+                ViewUtil.showConfirmDialog(VideoTaskActivity.this,
+                        "提示",
+                        "你需要观看" + releaseTask.getTask().getVideo_num() + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
+                        "放弃", "继续观看",
+                        d -> finish(),
+                        d -> loadAd()).show();
+            }
         });
     }
 
@@ -195,8 +195,12 @@ public class VideoTaskActivity extends BaseActivity {
                     desc_bottom_tv.setText(currentVideoAd.desc);
                     playVideo();
                 } else {
-                    G.showToast(msg);
-                    finish();
+                    ViewUtil.showConfirmDialog(VideoTaskActivity.this,
+                            "不好",
+                            "没获取到视频小片,需要再次获取吗?",
+                            "放弃", "重试",
+                            d -> finish(),
+                            d -> loadAd()).show();
                 }
             });
         });
@@ -207,11 +211,14 @@ public class VideoTaskActivity extends BaseActivity {
         gsyVideoOption.setIsTouchWiget(false)
                 .setRotateViewAuto(true)
                 .setLockLand(true)
-                .setAutoFullWithSize(true)
+                .setAutoFullWithSize(false)
                 .setShowFullAnimation(false)
                 .setUrl(currentVideoAd.videoUrl)
                 .setNeedLockFull(true)
                 .setCacheWithPlay(false)
+                .setGSYVideoProgressListener((progress, secProgress, currentPosition, duration) -> {
+                    countdown_view.setText("" + ((duration - currentPosition) / 1000));
+                })
                 .setVideoAllCallBack(new GSYSampleCallBack() {
                     @Override
                     public void onPrepared(String url, Object... objects) {
@@ -364,9 +371,7 @@ public class VideoTaskActivity extends BaseActivity {
     }
 
     private void showDownloadDialog() {
-        final DialogProgress progress = DialogProgress.showDialog(this, true);
-        final TextView percentView = new TextView(this);
-        progress.setTextView(percentView);
+        final DialogProgress progress = DialogProgress.showDialog(this, false);
         new ADDownloader()
                 .setListener(new ADDownloader.ProgressListener() {
 
@@ -375,7 +380,7 @@ public class VideoTaskActivity extends BaseActivity {
                         LogUtil.logE(offset + " /// " + total);
                         long percent = offset * 100 / total;
                         runOnUiThread(() -> {
-                            percentView.setText(percent + "%");
+                            progress.getTextView().setText(percent + "%");
                         });
                     }
 

+ 166 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/SheepGSYVideoView.java

@@ -3,16 +3,22 @@ package com.sheep.gamegroup.view.customview;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.GestureDetector;
+import android.view.View;
 
 import com.sheep.jiuyan.samllsheep.R;
+import com.shuyu.gsyvideoplayer.utils.Debuger;
 import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
 
+import moe.codeest.enviews.ENDownloadView;
+
 /**
  * Created by realicing on 2019/1/4.
  * realicing@sina.com
  */
 public class SheepGSYVideoView extends StandardGSYVideoPlayer {
 
+    private boolean showControlView = true;
+
     public SheepGSYVideoView(Context context, Boolean fullFlag) {
         super(context, fullFlag);
     }
@@ -52,4 +58,164 @@ public class SheepGSYVideoView extends StandardGSYVideoPlayer {
     public void disableProgressDrag() {
         mProgressBar.setVisibility(INVISIBLE);
     }
+
+    public View getBottomProgressBar() {
+        return mBottomProgressBar;
+    }
+
+    public View getProgressBar() {
+        return mProgressBar;
+    }
+
+    public void setShowControlView(boolean flag) {
+        showControlView = flag;
+    }
+
+    @Override
+    protected void changeUiToNormal() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToNormal");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, (mIfCurrentIsFullscreen && mNeedLockFull) ? VISIBLE : GONE);
+
+            updateStartImage();
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ((ENDownloadView) mLoadingProgressBar).reset();
+            }
+        }
+    }
+
+    @Override
+    protected void changeUiToPreparingShow() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToPreparingShow");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ENDownloadView enDownloadView = (ENDownloadView) mLoadingProgressBar;
+                if (enDownloadView.getCurrentState() == ENDownloadView.STATE_PRE) {
+                    ((ENDownloadView) mLoadingProgressBar).start();
+                }
+            }
+        }
+    }
+
+    @Override
+    public void changeUiToPlayingShow() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToPlayingShow");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ((ENDownloadView) mLoadingProgressBar).reset();
+            }
+            updateStartImage();
+        }
+    }
+
+    @Override
+    protected void changeUiToPauseShow() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToPauseShow");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, VISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ((ENDownloadView) mLoadingProgressBar).reset();
+            }
+            updateStartImage();
+            updatePauseCover();
+        }
+    }
+
+    @Override
+    protected void changeUiToPlayingBufferingShow() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToPlayingBufferingShow");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ENDownloadView enDownloadView = (ENDownloadView) mLoadingProgressBar;
+                if (enDownloadView.getCurrentState() == ENDownloadView.STATE_PRE) {
+                    ((ENDownloadView) mLoadingProgressBar).start();
+                }
+            }
+        }
+    }
+
+    @Override
+    protected void changeUiToCompleteShow() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToCompleteShow");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ((ENDownloadView) mLoadingProgressBar).reset();
+            }
+            updateStartImage();
+        }
+    }
+
+    @Override
+    protected void changeUiToError() {
+        if (showControlView) {
+            super.changeUiToPlayingShow();
+        } else {
+            Debuger.printfLog("changeUiToError");
+            setViewShowState(mTopContainer, INVISIBLE);
+            setViewShowState(mBottomContainer, INVISIBLE);
+            setViewShowState(mStartButton, INVISIBLE);
+            setViewShowState(mLoadingProgressBar, VISIBLE);
+            setViewShowState(mThumbImageViewLayout, INVISIBLE);
+            setViewShowState(mBottomProgressBar, VISIBLE);
+            setViewShowState(mLockScreen, GONE);
+            if (mLoadingProgressBar instanceof ENDownloadView) {
+                ((ENDownloadView) mLoadingProgressBar).reset();
+            }
+            updateStartImage();
+        }
+    }
 }

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogProgress.java

@@ -34,6 +34,7 @@ public class DialogProgress {
             e.printStackTrace();
         }
         dialogShowLoading.setTextView(dialog_loading);
+        dialogShowLoading.textView = dialog_loading;
         return dialogShowLoading;
     }
 

+ 12 - 1
app/src/main/res/layout/activity_video_task.xml

@@ -6,7 +6,7 @@
     android:layout_height="match_parent"
     tools:context="com.sheep.gamegroup.module.task.VideoTaskActivity">
 
-    <com.shuyu.gsyvideoplayer.video.GSYSampleADVideoPlayer
+    <com.sheep.gamegroup.view.customview.SheepGSYVideoView
         android:id="@+id/video_player_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
@@ -30,4 +30,15 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
 
+    <TextView
+        android:id="@+id/countdown_view"
+        android:textColor="@color/black"
+        android:textSize="16sp"
+        android:gravity="center"
+        android:layout_margin="16dp"
+        android:background="@drawable/shape_oval_solid_10_f5"
+        android:layout_alignParentRight="true"
+        android:layout_width="30dp"
+        android:layout_height="30dp" />
+
 </RelativeLayout>