Prechádzať zdrojové kódy

commit by xulin
2019/3/19

lyn 6 rokov pred
rodič
commit
a92f59ec94

+ 2 - 0
app/src/main/java/com/hc/webapp/video/VideoControlDelegate.java

@@ -168,8 +168,10 @@ public class VideoControlDelegate implements VideoPauseDialog.OnPlayItemSelected
     public void playCollect() {
         if (hadCollectedVideo) {
             userViewModel.deleteCollection(uid, sourceId);
+            //OttLoginUtil.getInstance().reportLog(5,"1");    //上传取消收藏日志
         } else {
             userViewModel.collectSource(uid, sourceId);
+            //OttLoginUtil.getInstance().reportLog(5,"0");    //上传添加收藏日志
         }
     }
 

+ 7 - 7
app/src/main/java/com/hc/webapp/web/AndroidToJS.java

@@ -174,11 +174,11 @@ public class AndroidToJS {
     private void playFull(String url,String sourceId, String title, int limitTime, boolean hadFloat,
                           String examineId, String examineType, boolean isShowCompletedDialog, boolean isNextVideo) {
         if (isNextVideo) { // 播放下一条视频时,直接在当前全屏窗口开启新视频的播放
-            playVideoListener.playFullVideo(url, title, getUser(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
+            playVideoListener.playFullVideo(url, title, getUserId(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
         } else if (hadFloat) { // 有小窗时,直接切换成全屏
-            playVideoListener.playFullVideo(null, title, getUser(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
+            playVideoListener.playFullVideo(null, title, getUserId(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
         } else { // 开启新的全屏播放窗口
-            playVideoListener.playFullVideo(url, title, getUser(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
+            playVideoListener.playFullVideo(url, title, getUserId(), sourceId, limitTime, hadFloat, examineId, examineType, isShowCompletedDialog);
         }
     }
 
@@ -236,7 +236,7 @@ public class AndroidToJS {
                            String examineId, String examineType, int limitTime) {
         playVideoListener.playFloatVideo(url,
                 x, y, width, height,
-                getUser(), sourceId, title, examineId, examineType, limitTime);
+                getUserId(), sourceId, title, examineId, examineType, limitTime);
     }
 
     /**
@@ -256,7 +256,7 @@ public class AndroidToJS {
             @Override
             public void onSuccess(int what, @NonNull String data) {
                 super.onSuccess(what, data);
-                String userId = getUser();
+                String userId = getUserId();
                 if (TextUtils.isEmpty(userId)) {
                     userId = "1506006516501";
                 }
@@ -398,10 +398,10 @@ public class AndroidToJS {
 
     //陕西计费参数 end
 
-    @JavascriptInterface
+   /* @JavascriptInterface
     public String getUser() {
         return fjydContentProvider.getUserName();
-    }
+    }*/
 
 
 

+ 6 - 2
app/src/main/java/com/hc/webapp/web/BaseWebActivity.java

@@ -184,7 +184,7 @@ public abstract class BaseWebActivity extends AppCompatActivity {
     }
 
     protected void updateApk(){
-        String url = "http://112.35.32.145:8090/index.php?m=Home&c=AndroidApi&a=uploadVersion&origin="+platformType;
+        String url = com.hc.model.BuildConfig.Domain + com.hc.model.BuildConfig.port+"/index.php?m=Home&c=AndroidApi&a=uploadVersion&origin="+platformType;
         GetRuquest getRuquest = new GetRuquest();
         getRuquest.RequestAsync(url, new GetRequestListener() {
             @Override
@@ -207,7 +207,7 @@ public abstract class BaseWebActivity extends AppCompatActivity {
                             int size = data.getInt("size");
                             String updateContent = data.getString("updateContent");
                             String md5 = data.getString("md5");
-                            new DownloadInstall(BaseWebActivity.this).start(url,md5);
+                            DownloadInstallApk(url,md5);
                         }
 
                     }
@@ -218,6 +218,10 @@ public abstract class BaseWebActivity extends AppCompatActivity {
         });
     }
 
+    protected void DownloadInstallApk(String url,String md5){
+        new DownloadInstall(BaseWebActivity.this).start(url,md5);
+    }
+
     private void Toast(String msg){
         BaseWebActivity.this.runOnUiThread(new Runnable() {
             @Override

+ 31 - 10
app/src/main/java/com/hc/webapp/yst/MainActivity.java

@@ -444,8 +444,8 @@ public class MainActivity extends BaseWebActivity implements OttLoginUtil.OnOttL
 
     public void favoritePlay(String sourceId,String title){
         new LastPlayTimeStore(this).insert(title,sourceId);
-        String url = "http://112.35.32.145:8090/index.php?m=Home&c=Order&a=authorize&sourceId="
-                + sourceId + "&EpgServer=" + getUserEpgServer() + "&token=" + getUserToken();
+        String url = com.hc.model.BuildConfig.Domain + com.hc.model.BuildConfig.port +"/index.php?m=Home&c=ApiV2&a=getExamineData&source_id="
+                + sourceId ;
         new GetRequest().RequestAsync(url, new GetRequestListener() {
             @Override
             public void onResult(String msg) {
@@ -454,24 +454,40 @@ public class MainActivity extends BaseWebActivity implements OttLoginUtil.OnOttL
                     if(jsonObject.getInt("code") == 0){
                         String data = jsonObject.getString("data");
                         JSONObject dataObject = new JSONObject(data);
-                        if(dataObject.getString("returncode").equals("0")){
+                        /*if(dataObject.getString("returncode").equals("0")){
                             if(dataObject.has("urls")){
                                 JSONArray urls = dataObject.getJSONArray("urls");
                                 String playUrl = urls.getJSONObject(0).getString("playurl");
                                 playUrl = "http://111.20.105.60:6060/GZHC/32/HC_SXYD_Movie_1640?AuthInfo=fYRn6wHTB6eMAGUKu9tiy1%2BoDGkdNRH1eBdnpkXBr1uXi01TWCEl%2Fzmj166sZ1RueACMTnEjP0frBL2xVTz0ZJ3iOictBjY4f8JCCb0%2BAijeL2gMxcVwASPkY0a8jA6k&version=v1.0&virtualDomain=GZHC.vod_hpd.zte.com&stbid=0057030000010070181058B42DAE192D&terminalflag=1&userid=58B42DAE192D";
-                                VideoData data1 = videoDataFactory(playUrl,"测试","1618",-1,"10001","program");
-                                MainActivity.this.runOnUiThread(new Runnable() {
-                                    @Override
-                                    public void run() {
-                                        YSTVideoPlayer.switchVideo(data1);
-                                    }
-                                });
+
                             }else{
                                 Log.i(TAG,"没有获取到播放链接");
                             }
                         }else{
                             Log.i(TAG,"鉴权失败");
+                        }*/
+                        String title ="";
+                        String url = "";
+                        String examineId = "";
+                        String examineType = "";
+                        if(dataObject.has("source_data")){
+                            JSONObject sourceData = dataObject.getJSONObject("source_data");
+                            title = sourceData.getString("source_name");
+                            url = sourceData.getString("url");
+                        }
+                        if(dataObject.has("examine_data")){
+                            JSONObject examineData = dataObject.getJSONObject("examine_data");
+                            examineId = examineData.getString("id");
+                            examineType = examineData.getString("type");
                         }
+                        VideoData data1 = videoDataFactory(url,title,sourceId,-1,examineId,examineType);
+                        MainActivity.this.runOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                YSTVideoPlayer.switchVideo(data1);
+                                controlDelegate.setSourceId(sourceId);
+                            }
+                        });
                     }
                 }catch (Exception e){
                     e.printStackTrace();
@@ -545,6 +561,11 @@ public class MainActivity extends BaseWebActivity implements OttLoginUtil.OnOttL
         loginMsg.setValue(throwable == null ? "发生未知异常" : throwable.getMessage());
     }
 
+    @Override
+    public void onOttLoginUpdate(String upgradeAddr, String md5) {
+        DownloadInstallApk(upgradeAddr,md5);
+    }
+
     ////////////////////////////////////网页加载异常/////////////////////////////////////
 
     @Override

+ 8 - 3
app/src/main/java/com/hc/webapp/yst/OttLoginUtil.java

@@ -35,6 +35,7 @@ public class OttLoginUtil {
     private String channelCode ="2626061001";
     private String appKey = "a9a403148bc93d0a06c08b82c7c59a6b";
     private String appSecret = "699bf23437a0490b42a7562a6d436f2b";
+    private OnOttListener onOttListener;
 
 
     public static OttLoginUtil getInstance() {
@@ -45,6 +46,7 @@ public class OttLoginUtil {
     }
 
     public void init(Context c, OnOttListener loginListener) {
+        this.onOttListener = loginListener;
         Context context = c.getApplicationContext();
         try {
             loginSDK.getInstance().sdkInit(loginSDK.TYPE_COMMON,channelCode,appKey,appSecret, context);
@@ -299,7 +301,8 @@ public class OttLoginUtil {
                     int upgradeVersionCode = Integer.parseInt(updateJson.getString("versionCode"));
                     if(upgradeVersionCode > versionCode){
                         String upgradeAddr = updateJson.getString("packageAddr");
-                        updateApk(upgradeAddr);
+                        String md5 = updateJson.getString("packageMD5");
+                        updateApk(upgradeAddr,md5);
                     }
                 }catch (Exception e){
                     e.printStackTrace();
@@ -313,8 +316,8 @@ public class OttLoginUtil {
         }
     }
 
-    private void updateApk(String upgradeAddr){
-
+    private void updateApk(String upgradeAddr,String md5){
+           this.onOttListener.onOttLoginUpdate(upgradeAddr,md5);
     }
 
     private void updateVersionOnUiThread(final String updateSer,final int versionCode) {
@@ -372,6 +375,8 @@ public class OttLoginUtil {
         void onOttLoginFail(String msg);
 
         void onOttLoginError(Throwable throwable);
+
+        void onOttLoginUpdate(String upgradeAddr,String md5);
     }
 
 }

+ 26 - 3
app/src/main/java/com/hc/webapp/yst/YSTVideoPlayer.java

@@ -45,6 +45,7 @@ import static com.hc.webapp.web.AndroidToJS.JS_EVENT_PLAY_START;
 public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayersdk.iICntvPlayInterface, IVideoPlayer, Runnable {
 
     private static final int TIME = 10 * 1000;
+    String TAG ="YSTVideoPlayer";
 
     // 计时器
 //    private Timer timer_pay;
@@ -76,6 +77,8 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
     private TimerTask timerTask;
 
 
+    private boolean isSeeking = false;  //当前是否在拖动滑动条,此过程中不允许暂停视频
+
     //本地存储
     private LastPlayTimeStore lastPlayTimeStore;       //本地数据库储存对象
     private String mLastPlayTime = "";                  //临时存储上次播放位置
@@ -198,6 +201,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
      * CNTV播放器初始化并播放视频
      */
     public void setData(@NonNull VideoData data,Context context) {
+        isSeeking = false;
         lastPlayTimeStore = new LastPlayTimeStore(context);
         this.context = context;
         this.videoData = data;
@@ -220,9 +224,11 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
             AndroidToJS.evaluateJavascript(webView, String.format(JS_EVENT_PLAY_START, 0, e.getMessage()));
             Logger.e("视频初始化完成但是异常%s", e);
         }
+        lastPlayTimeStore.delete(videoData.getId());
     }
 
     private void setVideoData(VideoData data){
+        hasCompletion = false;
         IcntvPlayerInfo icntvPlayerInfo = new IcntvPlayerInfo();    //播放器所需传入参数实例
         icntvPlayerInfo.setPlayUrl(data.getUrl());
         icntvPlayerInfo.setApp_id(data.getAppId());
@@ -320,7 +326,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
                     resumePlay();
                 }else{
                     if (event.getAction() == KeyEvent.ACTION_DOWN) {
-                        if(icntvPlayer.isPlaying()){
+                        if(icntvPlayer.isPlaying() && !isSeeking ){
                             pauseOrPlay(false);
                         }
                     }
@@ -328,7 +334,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
                 break;
             case KeyEvent.KEYCODE_ENTER:
                 if (event.getAction() == KeyEvent.ACTION_DOWN) {
-                    if(icntvPlayer.isPlaying()){
+                    if(icntvPlayer.isPlaying() && !isSeeking ){
                         pauseOrPlay(false);
                     }
                 }
@@ -349,6 +355,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
         if (icntvPlayer == null) {
             return;
         }
+
         if (!play && icntvPlayer.isPlaying()) {
             onVideoPause();
             playOrPause.setImageResource(R.drawable.btn_icon_stop);
@@ -441,7 +448,12 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
 
     @Override
     public void restart() {
+        isSeeking = false;
+        lastPlayTimeStore.delete(videoData.getId());
+        mLastPlayTime = "0";
+        videoData.setLastTimePosition(0);
         onVideoResume();
+        hasCompletion = false;
     }
 
     @Override
@@ -450,7 +462,9 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
             lastPlayBar.setVisibility(INVISIBLE);
             isShowLastPlayBar = false;
         }else{
-            pauseOrPlay(false);
+            if(icntvPlayer.isPlaying() && !isSeeking ){
+                pauseOrPlay(false);
+            }
         }
     }
 
@@ -478,7 +492,11 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
 
     //切换视频
     public void switchVideo(VideoData videoData) {
+        isSeeking = false;
         this.videoData = videoData;
+        if(videoTitle != null){
+            videoTitle.setText(videoData.getTitle());
+        }
         setVideoData(videoData);
         showControlWidget(true);
     }
@@ -556,6 +574,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
         if(timer == null){
             timer = new Timer();
         }
+        isSeeking = true;
         timerTask = new TimerTask() {
             @Override
             public void run() {
@@ -563,6 +582,9 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
                 activity.runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
+                        if(hasCompletion){
+                            return;
+                        }
                         long myCurrentTime = Calendar.getInstance().getTimeInMillis();
                         if(myCurrentTime - seekCurrentTime > 3){
                             int position = seekByTvBar.getProgress();
@@ -571,6 +593,7 @@ public class YSTVideoPlayer extends FrameLayout implements tv.icntv.icntvplayers
                             float fDuration = duration;
                             position = (int)(fPostion*fDuration/1000);
                             seekTo(position);
+                            isSeeking = false;
                             seekContainer.setVisibility(GONE);
                         }
                     }

+ 5 - 2
lib/src/main/java/com/hc/lib/video/VideoPauseDialog.java

@@ -45,6 +45,8 @@ public class VideoPauseDialog extends Dialog implements View.OnClickListener {
     private TextView title2;
     private TextView title3;
 
+    private boolean isSeeking = false;
+
 
     public VideoPauseDialog(@NonNull Context context, @NonNull boolean hasComplete) {
         super(context, R.style.dialog);
@@ -58,6 +60,8 @@ public class VideoPauseDialog extends Dialog implements View.OnClickListener {
                         dialogDismiss();
                         if(!hasDialogComplete){
                             onPlayItemSelectedListener.playResume(true);
+                        }else{
+                            onPlayItemSelectedListener.playReStart();
                         }
                         return true;
                     }
@@ -137,9 +141,8 @@ public class VideoPauseDialog extends Dialog implements View.OnClickListener {
 
     private void getFavoriteData(){
         resetLoadingImage();
-        String url ="http://112.35.32.145:8090/index.php?m=Home&c=ApiV2&a=guessFav&uid=" + getUserName();
+        String url ="http://dudu.a088.ottcn.com:8090/index.php?m=Home&c=ApiV2&a=guessFav&uid=" + getUserName();
         new GetRequest().RequestAsync(url,new GetRequestListener(){
-
             @Override
             public void onResult(final String msg) {
                 Activity activity = (Activity)context;

+ 4 - 4
model/src/main/java/com/hc/request/Config.java

@@ -27,19 +27,19 @@ public final class Config {
      * 浩传数据请求接口
      */
     public static class URL {
-        private static final String BASE = BuildConfig.Domain + BuildConfig.port + "/tv";
+        private static final String BASE = BuildConfig.Domain + BuildConfig.port ;
         /**
          * 查询素材是否已经收藏
          */
-        public static final String IS_COLLECT = BASE + "/index.php?m=Home&c=TvApi&a=isCollect";
+        public static final String IS_COLLECT = BASE + "/index.php?m=Home&c=DuduApi&a=isCollect";
         /**
          * 添加观看历史,我的收藏
          */
-        public static final String COLLECT = BASE + "/index.php?m=Home&c=TvApi&a=upWatchCollectLog";
+        public static final String COLLECT = BASE + "/index.php?m=Home&c=DuduApi&a=upWatchCollectLog";
         /**
          * 删除观看历史,我的收藏
          */
-        public static final String COLLECT_CANCEL = BASE + "/index.php?m=Home&c=TvApi&a=delWatchCollectLog";
+        public static final String COLLECT_CANCEL = BASE + "/index.php?m=Home&c=DuduApi&a=delWatchCollectLog";
 
         /**
          * 新安装用户收集

+ 1 - 0
model/src/main/java/com/hc/request/business/UserService.java

@@ -37,6 +37,7 @@ public class UserService {
      */
     public void isCollect(String uId, String sourceId, final IHttpCallback<Boolean> callback) {
         Request<BaseResponse<Object>> request = new FastJsonRequest<>(Config.URL.IS_COLLECT, Object.class);
+
         request.add(Config.PARAMS.UID, uId);
         request.add(Config.PARAMS.SOURCE_ID, sourceId);