浏览代码

video task

billyyoyo 6 年之前
父节点
当前提交
2fe12f09de

+ 1 - 1
app/build.gradle

@@ -19,7 +19,6 @@ android {
 //        jackOptions {
 //            enabled true
 //        }
-        multiDexEnabled true
         flavorDimensions "versionCode"
         packagingOptions {
             exclude 'META-INF/proguard/androidx-annotations.pro'
@@ -176,6 +175,7 @@ dependencies {
     //    implementation 'com.liulishuo.filedownloader:library:1.6.9'
     implementation 'com.tencent.bugly:crashreport_upgrade:1.3.5'
     implementation(name: 'alipaySdk-15.5.9', ext: 'aar')
+    implementation(name: 'ad_dk_sdk', ext: 'aar')
 
     //其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.2.0
     implementation 'com.tencent.bugly:nativecrashreport:3.3.1'

二进制
app/libs/ad_dk_sdk.aar


+ 5 - 1
app/proguard-rules.pro

@@ -575,4 +575,8 @@
 }
 #===============百度人脸识别======================
 -keep class com.baidu.idl.** { *; }
--keep class com.baidu.aip.** { *; }
+-keep class com.baidu.aip.** { *; }
+#===============点客广告SDK======================
+-keep class btmsdkobf. { *; }
+-Keep Class Com.Tmsdk. { ; }
+-keep class tmsdk.** { ; }

+ 16 - 0
app/src/main/AndroidManifest.xml

@@ -1017,6 +1017,22 @@
             android:configChanges="keyboardHidden|navigation|orientation|screenSize"
             android:exported="false"
             android:theme="@android:style/Theme.Dialog" />
+
+        <!-- =================点客广告SDK================== -->
+        <activity
+            android:name="com.tencent.tmsecure.dksdk.ad.TxRewardVideoActivity"
+            android:theme="@android:style/Theme.NoTitleBar" />
+        <activity
+            android:name="com.tencent.tmsecure.dksdk.ad.TxDownCoinActivity"
+            android:theme="@android:style/Theme.NoTitleBar" />
+        <activity
+            android:name="com.tencent.tmsecure.dksdk.ad.PlayGiveCoinActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:theme="@style/dk_dialogstyle" />
+        <activity
+            android:name="com.tencent.tmsecure.dksdk.ad.WebViewActivity"
+            android:hardwareAccelerated="true"
+            android:theme="@android:style/Theme.NoTitleBar" />
     </application>
 
 </manifest>

二进制
app/src/main/assets/40805.dat


+ 43 - 444
app/src/main/java/com/sheep/gamegroup/module/task/VideoTaskActivity.java

@@ -6,96 +6,47 @@ import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.v4.app.ActivityCompat;
+import android.support.v4.app.FragmentTransaction;
 import android.support.v4.content.ContextCompat;
-import android.text.TextUtils;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.WindowManager;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.kfzs.duanduan.cardview.ScreenUtil;
-import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.Release_task;
-import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.module.task.helper.ADDownloader;
-import com.sheep.gamegroup.module.task.helper.ADVideoHelper;
-import com.sheep.gamegroup.module.task.helper.VideoAd;
+import com.sheep.gamegroup.module.task.fragments.FgtVideoTaskBase;
+import com.sheep.gamegroup.module.task.fragments.FgtVideoTaskDK;
+import com.sheep.gamegroup.module.task.fragments.FgtVideoTaskZK;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.GlideImageLoader;
-import com.sheep.gamegroup.util.Jump2View;
-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;
-import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
-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.base.GSYVideoView;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.schedulers.Schedulers;
-import rx.functions.Action1;
 
 public class VideoTaskActivity extends BaseActivity {
 
-    @BindView(R.id.video_player_view)
-    SheepGSYVideoView videoPlayerView;
-    @BindView(R.id.mask_view)
-    View mask_view;
-    @BindView(R.id.desc_tv)
-    TextView desc_tv;
-    @BindView(R.id.name_tv)
-    TextView name_tv;
-    @BindView(R.id.action_btn)
-    Button action_btn;
-    @BindView(R.id.logo_iv)
-    ImageView logo_iv;
-    @BindView(R.id.countdown_view)
-    TextView countdown_view;
-
-    private int releaseTaskId = -1;
-
-    private Release_task releaseTask;
-    private TaskAcceptedEty acceptedTask;
-
-    private VideoAd currentVideoAd;
-    private int watchCount = 0;
+    protected FgtVideoTaskBase mFragment;
 
     @Override
     protected int getLayoutId() {
-        return R.layout.activity_video_task;
+        return R.layout.common_container;
     }
 
     @Override
-    public void onBackPressed() {
-        ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                "提示",
-                "你确定要放弃奖励吗?",
-                "放弃", "继续观看",
-                d -> giveUpTask(),
-                d -> LogUtil.logI("continue watch video")).show();
+    public void initView() {
+        if (checkLocationPermission()) {
+
+            int releaseTaskId = getIntent().getIntExtra("task_id", -1);
+            CommonUtil.getInstance().getTaskDesc(releaseTaskId, rt -> {
+                if (rt == null) {
+                    G.showToast("没有该任务");
+                    finish();
+                    return;
+                }
+                initFragment(rt);
+            });
+        }
     }
 
     @Override
@@ -121,394 +72,43 @@ public class VideoTaskActivity extends BaseActivity {
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        videoPlayerView.onVideoResume();
-        configActionBtn();
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        videoPlayerView.onVideoPause();
-    }
-
-    @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
         if (checkLocationPermission()) {
-            loadReleaseTask();
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        if (currentVideoAd != null) {
-            currentVideoAd.trigger(VideoAd.TYPE_VIDEO_CLOSE);
-        }
-        super.onDestroy();
-    }
-
-    @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();
-                currentVideoAd.clickY = (int) event.getRawY();
-                currentVideoAd.trigger(VideoAd.TYPE_CLICK);
-                if (videoPlayerView.getCurrentState() == GSYVideoView.CURRENT_STATE_PAUSE) {
-                    videoPlayerView.onVideoResume();
-                } else if (videoPlayerView.getCurrentState() == GSYVideoView.CURRENT_STATE_PLAYING) {
-                    videoPlayerView.onVideoPause();
-                }
-            }
-            return true;
-        });
-    }
-
-    @Override
-    public void initData() {
-        releaseTaskId = getIntent().getIntExtra("task_id", -1);
-        if (checkLocationPermission()) {
-            loadReleaseTask();
+            initView();
         }
     }
 
-    private void loadReleaseTask() {
-        CommonUtil.getInstance().getTaskDesc(releaseTaskId, rt -> {
-            if (rt == null) {
-                G.showToast("没有该任务");
-                finish();
-                return;
-            }
-            releaseTask = rt;
-            if (releaseTask.getAccepted_task_id() > 0) {
-                loadAcceptedTask();
-            } else {
-                LogUtil.logI("---------------没有接受任务---------------");
-                acceptTask();
-            }
-        });
-    }
-
-    private void loadAcceptedTask() {
-        CommonUtil.getInstance().getAcceptedTask(releaseTaskId, at -> {
-            if (at == null) {
-                acceptTask();
-                return;
-            }
-            acceptedTask = at;
-            if (watchCount == 0) {
-                loadAd();
-            } else {
-                ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                        "提示",
-                        "你需要观看" + releaseTask.getTask().getVideo_num() + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
-                        "放弃", "继续观看",
-                        d -> giveUpTask(),
-                        d -> loadAd()).show();
-            }
-        });
-    }
-
-    private void loadAd() {
-        ADVideoHelper.loadVideoAD((ret, ad, msg) -> {
-            runOnUiThread(() -> {
-                if (ret) {
-                    currentVideoAd = ad;
-                    desc_tv.setText(currentVideoAd.desc);
-                    name_tv.setText(currentVideoAd.title);
-                    GlideImageLoader.circleImage(logo_iv, currentVideoAd.logo);
-                    playVideo();
-                    configActionBtn();
-                } else {
-                    ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                            "不好",
-                            "没获取到视频小片,需要再次获取吗?",
-                            "放弃", "重试",
-                            d -> giveUpTask(),
-                            d -> loadAd()).show();
-                }
-            });
-        });
-    }
-
-    private void configActionBtn() {
-        if (this.isDestroyed() || currentVideoAd == null || currentVideoAd.url == null) return;
-        if (!currentVideoAd.url.endsWith(".apk")) {
-            action_btn.setText("查看详情");
-            action_btn.setTag(0);
+    protected void initFragment(Release_task releaseTask) {
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        mFragment = (FgtVideoTaskBase) getSupportFragmentManager().findFragmentByTag("tag");
+        if (mFragment == null) {
+            mFragment = getFragment(releaseTask);
+            transaction.add(R.id.frame_container, mFragment, "tag");
+            transaction.commitAllowingStateLoss();
         } else {
-            String path = ADDownloader.getUrlPath(currentVideoAd.url);
-            if (PackageUtil.isAppInstalled(SheepApp.getInstance(), currentVideoAd.package_name)) {
-                action_btn.setText("打开应用");
-                action_btn.setTag(1);
-            } else if (!TextUtils.isEmpty(path)) {
-                action_btn.setText("立即安装");
-                action_btn.setTag(2);
-                currentVideoAd.path = path;
-            } else {
-                action_btn.setText("下载应用");
-                action_btn.setTag(3);
-            }
+            transaction.replace(R.id.frame_container, mFragment);
+            transaction.commitAllowingStateLoss();
         }
     }
 
-    @OnClick(R.id.action_btn)
-    public void onActionClick(View v) {
-        int action = (int) v.getTag();
-        switch (action) {
-            case 0:
-                jumpWeb();
-                break;
-            case 1:
-                openApp();
-                break;
-            case 2:
-                installApp();
-                break;
-            case 3:
-                downloadApp();
-                break;
+    private FgtVideoTaskBase getFragment(Release_task releaseTask) {
+        if (releaseTask.getTask().getVideo_type() == 1) {
+            return new FgtVideoTaskZK().setReleaseTaskId(releaseTask.getId()).setReleaseTask(releaseTask);
+        } else if (releaseTask.getTask().getVideo_type() == 2) {
+            return new FgtVideoTaskDK().setReleaseTaskId(releaseTask.getId()).setReleaseTask(releaseTask);
+        } else {
+            finish();
+            return null;
         }
     }
 
-    private void playVideo() {
-        GSYVideoOptionBuilder gsyVideoOption = new GSYVideoOptionBuilder();
-        gsyVideoOption.setIsTouchWiget(false)
-                .setRotateViewAuto(true)
-                .setLockLand(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) {
-                        super.onPrepared(url, objects);
-                        LogUtil.println("initPlay", "onPrepared", url, objects);
-                    }
-
-                    @Override
-                    public void onAutoComplete(String url, Object... objects) {
-                        super.onAutoComplete(url, objects);
-                        currentVideoAd.trigger(VideoAd.TYPE_VIDEO_END);
-                        watchCount++;
-                        if (watchCount >= releaseTask.getTask().getVideo_num()) {
-                            commitAutoTask();
-                        } else {
-                            ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                                    "提示",
-                                    "你需要观看" + (releaseTask.getTask().getVideo_num() - watchCount) + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
-                                    "放弃", "继续观看",
-                                    d -> giveUpTask(),
-                                    d -> loadAd()).show();
-                        }
-                    }
-
-                    @Override
-                    public void onPlayError(String url, Object... objects) {
-                        super.onPlayError(url, objects);
-                        long curPosition = GSYVideoManager.instance().getCurPlayerManager().getCurrentPosition();
-                        LogUtil.println("initPlay", "onPlayError", url, curPosition);
-                    }
-                }).build(videoPlayerView);
-        videoPlayerView.startPlayLogic();
-        currentVideoAd.trigger(VideoAd.TYPE_VIDEO_START);
-    }
-
-    private void acceptTask() {
-        String device_id = DeviceUtil.getDeviceId(SheepApp.getInstance());
-        UMConfigUtils.Event.TASK_ACCEPT.onEvent("device_id", device_id, "release_task_id", releaseTaskId);
-        JSONObject object = new JSONObject();
-        object.put("device_id", device_id);
-        object.put("release_task_id", releaseTaskId);
-        object.put("create_time", System.currentTimeMillis() / 1000L);
-        object.put("app_version", String.valueOf(BuildConfig.VERSION_CODE));
-        SheepApp.getInstance()
-                .getNetComponent()
-                .getApiService()
-                .acceptedTask(object)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getErrorMsg());
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        releaseTask.setIs_running(true);
-                        releaseTask.getTask().setRelease_task_id(releaseTask.getId());
-                        loadAcceptedTask();
-                    }
-                });
-    }
-
-    private void commitAutoTask() {
-        JSONObject params = new JSONObject();
-        String gps = LocationUtils.getInstance().getLongitudeLatitude();
-        params.put("gps", gps);
-        params.put("release_task_id", releaseTaskId);
-        params.put("create_time", System.currentTimeMillis() / 1000L);//这里添加时间戳,防止用户抓包后重复使用
-        SheepApp.getInstance().getNetComponent().getApiService().commitAutoTask(params)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getApplicationContext()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        CommonUtil.getInstance().updateAutoCheck(null);
-                        //这里领取了奖励,要刷新用户信息
-                        CommonUtil.getInstance().updateUserInfo(null);
-                        String amount = releaseTask.getBonusText();
-                        try {
-                            Map h = JSON.parseObject(baseMessage.getData() + "");
-
-                            amount = h.get("amount") + "";
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-
-                        ViewUtil.showMsgDialog(VideoTaskActivity.this, String.format(Locale.CHINA, "奖励已完成,获得奖励%s元", TextUtils.isEmpty(amount) ? releaseTask.getBonusText() : amount), "恭喜你", true);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                        resubmitAutoCheck();
-                    }
-                });
-    }
-
-    private void giveUpTask() {
-        if(acceptedTask!=null) {
-            SheepApp.getInstance()
-                    .getNetComponent()
-                    .getApiService()
-                    .giveUpTask(acceptedTask.getId())
-                    .subscribeOn(Schedulers.io())
-                    .observeOn(AndroidSchedulers.mainThread())
-                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                        }
-
-                        @Override
-                        public void onNext(BaseMessage baseMessage) {
-                        }
-                    });
+    @Override
+    public void onBackPressed() {
+        if (mFragment != null) {
+            mFragment.onBackPressed();
+        } else {
+            super.onBackPressed();
         }
-        finish();
-    }
-
-    private void resubmitAutoCheck() {
-        ViewUtil.showConfirmDialog(VideoTaskActivity.this,
-                "提示",
-                "提交任务失败,需要重新提交吗?",
-                "放弃", "重试",
-                d -> giveUpTask(),
-                d -> commitAutoTask()).show();
-    }
-
-    private void jumpWeb() {
-        if (currentVideoAd == null) return;
-        Jump2View.getInstance().goWeb(this, currentVideoAd.url);
-    }
-
-    private void openApp() {
-        if (currentVideoAd == null) return;
-        currentVideoAd.trigger(VideoAd.TYPE_ACTIVE);
-        currentVideoAd.trigger(VideoAd.TYPE_OPEN);
-        PackageUtil.startApp(this, currentVideoAd.package_name);
-    }
-
-    private void downloadApp() {
-        if (currentVideoAd == null) return;
-        videoPlayerView.onVideoPause();
-        currentVideoAd.trigger(VideoAd.TYPE_DOWNLOAD);
-        showDownloadDialog();
-    }
-
-    private void installApp() {
-        if (currentVideoAd == null) return;
-        currentVideoAd.trigger(VideoAd.TYPE_INSTALL);
-        ApkUtils.installApk(this, currentVideoAd.path);
-    }
-
-    private void installApp(VideoAd ad) {
-        if (ad == null) return;
-        ad.trigger(VideoAd.TYPE_INSTALL);
-        ApkUtils.installApk(this, ad.path);
-    }
-
-    private void showAppConfirmDialog(String title, String btnText, ViewUtil.OnConfirDialogListener listener) {
-        View rootView = View.inflate(this, R.layout.video_ad_confirm, null);
-        ImageView app_logo_iv = rootView.findViewById(R.id.app_logo_iv);
-        TextView app_name_tv = rootView.findViewById(R.id.app_name_tv);
-        TextView app_desc_tv = rootView.findViewById(R.id.app_desc_tv);
-        int radius = ScreenUtil.dip2px(this, 8);
-        GlideImageLoader.roundedCornersImage(app_logo_iv, currentVideoAd.logo, radius);
-        app_name_tv.setText(currentVideoAd.title);
-        app_desc_tv.setText(currentVideoAd.desc);
-        videoPlayerView.onVideoPause();
-        ViewUtil.showConfirmDialog(this, title, rootView, "取消", btnText,
-                d -> {
-                    d.dismiss();
-                    videoPlayerView.onVideoResume();
-                },
-                listener).show();
-    }
-
-    private void showDownloadDialog() {
-        final DialogProgress progress = DialogProgress.showDialog(this, true);
-        progress.getAlertDialog().setOnDismissListener(d -> {
-
-        });
-        final VideoAd thisAd = currentVideoAd.clone();
-        new ADDownloader()
-                .setListener(new ADDownloader.ProgressListener() {
-
-                    @Override
-                    public void onProgress(long offset, long total) {
-                        LogUtil.logE(offset + " /// " + total);
-                        long percent = offset * 100 / total;
-                        runOnUiThread(() -> {
-                            if (progress.getAlertDialog().isShowing()) {
-                                progress.getTextView().setText(percent + "%");
-                            }
-                        });
-                    }
-
-                    @Override
-                    public void onStatus(String status, String msg) {
-                        runOnUiThread(() -> {
-                            if (VideoTaskActivity.this.isDestroyed()) return;
-                            if (progress.getAlertDialog().isShowing()) {
-                                progress.getAlertDialog().dismiss();
-                            }
-                            if ("COMPLETED".equals(status)) {
-                                thisAd.path = msg;
-                                configActionBtn();
-                                installApp(thisAd);
-                            } else {
-                                videoPlayerView.onVideoResume();
-                                LogUtil.logE(status + " /// " + msg);
-                            }
-                        });
-                    }
-                })
-                .init()
-                .start(currentVideoAd);
-
     }
 
     public boolean checkLocationPermission() {
@@ -527,5 +127,4 @@ public class VideoTaskActivity extends BaseActivity {
         }
         return result;
     }
-
 }

+ 175 - 1
app/src/main/java/com/sheep/gamegroup/module/task/fragments/FgtVideoTaskBase.java

@@ -1,6 +1,180 @@
 package com.sheep.gamegroup.module.task.fragments;
 
+import android.text.TextUtils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.Release_task;
+import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DeviceUtil;
+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.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.G;
+
+import java.util.Locale;
+import java.util.Map;
+
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+public abstract class FgtVideoTaskBase extends BaseFragment {
+
+    protected int releaseTaskId = -1;
+    protected Release_task releaseTask;
+    protected TaskAcceptedEty acceptedTask;
+    protected int watchCount = 0;
+
+    public FgtVideoTaskBase setReleaseTaskId(int taskId){
+        releaseTaskId = taskId;
+        return this;
+    }
+
+    public FgtVideoTaskBase setReleaseTask(Release_task task){
+        releaseTask = task;
+        return this;
+    }
+
+    @Override
+    public boolean onBackPressed(){
+        ViewUtil.showConfirmDialog(getContext(),
+                "提示",
+                "你确定要放弃奖励吗?",
+                "放弃", "继续观看",
+                d -> giveUpTask(),
+                d -> LogUtil.logI("continue watch video")).show();
+        return false;
+    }
+
+    public void giveUpTask() {
+        if(acceptedTask!=null) {
+            SheepApp.getInstance()
+                    .getNetComponent()
+                    .getApiService()
+                    .giveUpTask(acceptedTask.getId())
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                        }
+
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                        }
+                    });
+        }
+        getActivity().finish();
+    }
+
+    protected void resubmitAutoCheck() {
+        ViewUtil.showConfirmDialog(getContext(),
+                "提示",
+                "提交任务失败,需要重新提交吗?",
+                "放弃", "重试",
+                d -> giveUpTask(),
+                d -> commitAutoTask()).show();
+    }
+
+    protected void commitAutoTask() {
+        JSONObject params = new JSONObject();
+        String gps = LocationUtils.getInstance().getLongitudeLatitude();
+        params.put("gps", gps);
+        params.put("release_task_id", releaseTaskId);
+        params.put("create_time", System.currentTimeMillis() / 1000L);//这里添加时间戳,防止用户抓包后重复使用
+        SheepApp.getInstance().getNetComponent().getApiService().commitAutoTask(params)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        CommonUtil.getInstance().updateAutoCheck(null);
+                        //这里领取了奖励,要刷新用户信息
+                        CommonUtil.getInstance().updateUserInfo(null);
+                        String amount = releaseTask.getBonusText();
+                        try {
+                            Map h = JSON.parseObject(baseMessage.getData() + "");
+
+                            amount = h.get("amount") + "";
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+
+                        ViewUtil.showMsgDialog(getContext(), String.format(Locale.CHINA, "奖励已完成,获得奖励%s元", TextUtils.isEmpty(amount) ? releaseTask.getBonusText() : amount), "恭喜你", true);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                        resubmitAutoCheck();
+                    }
+                });
+    }
+
+    protected void acceptTask() {
+        String device_id = DeviceUtil.getDeviceId(SheepApp.getInstance());
+        UMConfigUtils.Event.TASK_ACCEPT.onEvent("device_id", device_id, "release_task_id", releaseTaskId);
+        JSONObject object = new JSONObject();
+        object.put("device_id", device_id);
+        object.put("release_task_id", releaseTaskId);
+        object.put("create_time", System.currentTimeMillis() / 1000L);
+        object.put("app_version", String.valueOf(BuildConfig.VERSION_CODE));
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .acceptedTask(object)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage.getErrorMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        releaseTask.setIs_running(true);
+                        releaseTask.getTask().setRelease_task_id(releaseTask.getId());
+                        loadAcceptedTask();
+                    }
+                });
+    }
+
+    public void loadAcceptedTask() {
+        CommonUtil.getInstance().getAcceptedTask(releaseTaskId, at -> {
+            if (at == null) {
+                acceptTask();
+                return;
+            }
+            acceptedTask = at;
+            if (watchCount == 0) {
+                loadAd();
+            } else {
+                ViewUtil.showConfirmDialog(getContext(),
+                        "提示",
+                        "你需要观看" + releaseTask.getTask().getVideo_num() + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
+                        "放弃", "继续观看",
+                        d -> giveUpTask(),
+                        d -> loadAd()).show();
+            }
+        });
+    }
+
+    @Override
+    public void onViewCreated(){
+        initView();
+        initData();
+    }
+
+    protected abstract void initView();
+    protected abstract void initData();
+    protected abstract void loadAd();
 
-public class FgtVideoTaskBase extends BaseFragment {
 }

+ 69 - 1
app/src/main/java/com/sheep/gamegroup/module/task/fragments/FgtVideoTaskDK.java

@@ -1,4 +1,72 @@
 package com.sheep.gamegroup.module.task.fragments;
 
-public class FgtVideoTaskDK extends FgtVideoTaskBase {
+import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.tencent.tmsecure.dksdk.ad.DkAdManage;
+import com.tencent.tmsecure.dksdk.util.DkAppDownloadListener;
+
+public class FgtVideoTaskDK extends FgtVideoTaskBase implements DkAppDownloadListener {
+
+    private DkAdManage adManage;
+
+    @Override
+    protected void initView() {
+        adManage = new DkAdManage(getActivity());
+    }
+
+    @Override
+    protected void initData() {
+        loadAd();
+    }
+
+    @Override
+    protected void loadAd() {
+        adManage.loadTmAdById("samllsheep",104 ,this);
+    }
+
+    @Override
+    public int getLayoutId() {
+        return 0;
+    }
+
+    @Override
+    public void onShow(String s, String s1) {
+        LogUtil.logI("Video task onShow(" + s + ", " + s1 + ")");
+    }
+
+    @Override
+    public void onPlayed(String s) {
+        LogUtil.logI("Video task onPlayed(" + s + ")");
+    }
+
+    @Override
+    public void onClosed(String s, boolean b, String s1, String s2) {
+        LogUtil.logI("Video task onClosed(" + s + ", " + b + ", " + s1 + ", " + s2 + ")");
+    }
+
+    @Override
+    public void onAdClick(String s, String s1) {
+        LogUtil.logI("Video task onAdClick(" + s + ", " + s1 + ")");
+    }
+
+    @Override
+    public void onDownloadFinished(String s, String s1) {
+        LogUtil.logI("Video task onDownloadFinished(" + s + ", " + s1 + ")");
+    }
+
+    @Override
+    public void onInstalled(String s, String s1) {
+        LogUtil.logI("Video task onInstalled(" + s + ", " + s1 + ")");
+    }
+
+    @Override
+    public void onLoadFail(String s, String s1) {
+        LogUtil.logI("Video task onLoadFail(" + s + ", " + s1 + ")");
+    }
+
+    @Override
+    public void onAwakened(int i) {
+        LogUtil.logI("Video task onAwakened(" + i + ")");
+    }
 }

+ 26 - 244
app/src/main/java/com/sheep/gamegroup/module/task/fragments/FgtVideoTaskZK.java

@@ -1,63 +1,35 @@
 package com.sheep.gamegroup.module.task.fragments;
 
-import android.Manifest;
-import android.content.pm.PackageManager;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
 import android.view.MotionEvent;
 import android.view.View;
-import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.cardview.ScreenUtil;
 import com.kfzs.duanduan.utils.ApkUtils;
-import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.Release_task;
-import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.task.helper.ADDownloader;
 import com.sheep.gamegroup.module.task.helper.ADVideoHelper;
 import com.sheep.gamegroup.module.task.helper.VideoAd;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-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;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
 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.base.GSYVideoView;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
 import butterknife.BindView;
 import butterknife.OnClick;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.schedulers.Schedulers;
 
-public class FgtVideoTaskZK extends BaseActivity {
+public class FgtVideoTaskZK extends FgtVideoTaskBase {
 
     @BindView(R.id.video_player_view)
     SheepGSYVideoView videoPlayerView;
@@ -74,52 +46,14 @@ public class FgtVideoTaskZK extends BaseActivity {
     @BindView(R.id.countdown_view)
     TextView countdown_view;
 
-    private int releaseTaskId = -1;
-
-    private Release_task releaseTask;
-    private TaskAcceptedEty acceptedTask;
-
     private VideoAd currentVideoAd;
-    private int watchCount = 0;
 
     @Override
-    protected int getLayoutId() {
+    public int getLayoutId() {
         return R.layout.activity_video_task;
     }
 
     @Override
-    public void onBackPressed() {
-        ViewUtil.showConfirmDialog(FgtVideoTaskZK.this,
-                "提示",
-                "你确定要放弃奖励吗?",
-                "放弃", "继续观看",
-                d -> giveUpTask(),
-                d -> LogUtil.logI("continue watch video")).show();
-    }
-
-    @Override
-    public void onCreate(Bundle b) {
-        super.onCreate(b);
-        getWindow().addFlags(
-                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
-                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
-    }
-
-    @Override
-    public void onWindowFocusChanged(boolean hasFocus) {
-        super.onWindowFocusChanged(hasFocus);
-        int flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && G.checkDeviceHasNavigationBar(this)) {
-            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//白色
-            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);
-    }
-
-    @Override
     public void onResume() {
         super.onResume();
         videoPlayerView.onVideoResume();
@@ -133,13 +67,6 @@ public class FgtVideoTaskZK extends BaseActivity {
     }
 
     @Override
-    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if (checkLocationPermission()) {
-            loadReleaseTask();
-        }
-    }
-
-    @Override
     public void onDestroy() {
         if (currentVideoAd != null) {
             currentVideoAd.trigger(VideoAd.TYPE_VIDEO_CLOSE);
@@ -148,7 +75,7 @@ public class FgtVideoTaskZK extends BaseActivity {
     }
 
     @Override
-    public void initView() {
+    protected void initView() {
         videoPlayerView.setShowControlView(false);
         videoPlayerView.getBackButton().setVisibility(View.GONE);
         videoPlayerView.getFullscreenButton().setVisibility(View.GONE);
@@ -170,53 +97,18 @@ public class FgtVideoTaskZK extends BaseActivity {
     }
 
     @Override
-    public void initData() {
-        releaseTaskId = getIntent().getIntExtra("task_id", -1);
-        if (checkLocationPermission()) {
-            loadReleaseTask();
+    protected void initData() {
+        if (releaseTask.getAccepted_task_id() > 0) {
+            loadAcceptedTask();
+        } else {
+            LogUtil.logI("---------------没有接受任务---------------");
+            acceptTask();
         }
     }
 
-    private void loadReleaseTask() {
-        CommonUtil.getInstance().getTaskDesc(releaseTaskId, rt -> {
-            if (rt == null) {
-                G.showToast("没有该任务");
-                finish();
-                return;
-            }
-            releaseTask = rt;
-            if (releaseTask.getAccepted_task_id() > 0) {
-                loadAcceptedTask();
-            } else {
-                LogUtil.logI("---------------没有接受任务---------------");
-                acceptTask();
-            }
-        });
-    }
-
-    private void loadAcceptedTask() {
-        CommonUtil.getInstance().getAcceptedTask(releaseTaskId, at -> {
-            if (at == null) {
-                acceptTask();
-                return;
-            }
-            acceptedTask = at;
-            if (watchCount == 0) {
-                loadAd();
-            } else {
-                ViewUtil.showConfirmDialog(FgtVideoTaskZK.this,
-                        "提示",
-                        "你需要观看" + releaseTask.getTask().getVideo_num() + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
-                        "放弃", "继续观看",
-                        d -> giveUpTask(),
-                        d -> loadAd()).show();
-            }
-        });
-    }
-
-    private void loadAd() {
+    protected void loadAd() {
         ADVideoHelper.loadVideoAD((ret, ad, msg) -> {
-            runOnUiThread(() -> {
+            getActivity().runOnUiThread(() -> {
                 if (ret) {
                     currentVideoAd = ad;
                     desc_tv.setText(currentVideoAd.desc);
@@ -225,7 +117,7 @@ public class FgtVideoTaskZK extends BaseActivity {
                     playVideo();
                     configActionBtn();
                 } else {
-                    ViewUtil.showConfirmDialog(FgtVideoTaskZK.this,
+                    ViewUtil.showConfirmDialog(getContext(),
                             "不好",
                             "没获取到视频小片,需要再次获取吗?",
                             "放弃", "重试",
@@ -237,7 +129,8 @@ public class FgtVideoTaskZK extends BaseActivity {
     }
 
     private void configActionBtn() {
-        if (this.isDestroyed() || currentVideoAd == null || currentVideoAd.url == null) return;
+        if (getActivity() == null || getActivity().isDestroyed() || currentVideoAd == null || currentVideoAd.url == null)
+            return;
         if (!currentVideoAd.url.endsWith(".apk")) {
             action_btn.setText("查看详情");
             action_btn.setTag(0);
@@ -304,7 +197,7 @@ public class FgtVideoTaskZK extends BaseActivity {
                         if (watchCount >= releaseTask.getTask().getVideo_num()) {
                             commitAutoTask();
                         } else {
-                            ViewUtil.showConfirmDialog(FgtVideoTaskZK.this,
+                            ViewUtil.showConfirmDialog(getContext(),
                                     "提示",
                                     "你需要观看" + (releaseTask.getTask().getVideo_num() - watchCount) + "个视频, 即可获得" + releaseTask.getBonusText() + "元",
                                     "放弃", "继续观看",
@@ -324,110 +217,16 @@ public class FgtVideoTaskZK extends BaseActivity {
         currentVideoAd.trigger(VideoAd.TYPE_VIDEO_START);
     }
 
-    private void acceptTask() {
-        String device_id = DeviceUtil.getDeviceId(SheepApp.getInstance());
-        UMConfigUtils.Event.TASK_ACCEPT.onEvent("device_id", device_id, "release_task_id", releaseTaskId);
-        JSONObject object = new JSONObject();
-        object.put("device_id", device_id);
-        object.put("release_task_id", releaseTaskId);
-        object.put("create_time", System.currentTimeMillis() / 1000L);
-        object.put("app_version", String.valueOf(BuildConfig.VERSION_CODE));
-        SheepApp.getInstance()
-                .getNetComponent()
-                .getApiService()
-                .acceptedTask(object)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getErrorMsg());
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        releaseTask.setIs_running(true);
-                        releaseTask.getTask().setRelease_task_id(releaseTask.getId());
-                        loadAcceptedTask();
-                    }
-                });
-    }
-
-    private void commitAutoTask() {
-        JSONObject params = new JSONObject();
-        String gps = LocationUtils.getInstance().getLongitudeLatitude();
-        params.put("gps", gps);
-        params.put("release_task_id", releaseTaskId);
-        params.put("create_time", System.currentTimeMillis() / 1000L);//这里添加时间戳,防止用户抓包后重复使用
-        SheepApp.getInstance().getNetComponent().getApiService().commitAutoTask(params)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getApplicationContext()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        CommonUtil.getInstance().updateAutoCheck(null);
-                        //这里领取了奖励,要刷新用户信息
-                        CommonUtil.getInstance().updateUserInfo(null);
-                        String amount = releaseTask.getBonusText();
-                        try {
-                            Map h = JSON.parseObject(baseMessage.getData() + "");
-
-                            amount = h.get("amount") + "";
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-
-                        ViewUtil.showMsgDialog(FgtVideoTaskZK.this, String.format(Locale.CHINA, "奖励已完成,获得奖励%s元", TextUtils.isEmpty(amount) ? releaseTask.getBonusText() : amount), "恭喜你", true);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                        resubmitAutoCheck();
-                    }
-                });
-    }
-
-    private void giveUpTask() {
-        if(acceptedTask!=null) {
-            SheepApp.getInstance()
-                    .getNetComponent()
-                    .getApiService()
-                    .giveUpTask(acceptedTask.getId())
-                    .subscribeOn(Schedulers.io())
-                    .observeOn(AndroidSchedulers.mainThread())
-                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                        }
-
-                        @Override
-                        public void onNext(BaseMessage baseMessage) {
-                        }
-                    });
-        }
-        finish();
-    }
-
-    private void resubmitAutoCheck() {
-        ViewUtil.showConfirmDialog(FgtVideoTaskZK.this,
-                "提示",
-                "提交任务失败,需要重新提交吗?",
-                "放弃", "重试",
-                d -> giveUpTask(),
-                d -> commitAutoTask()).show();
-    }
-
     private void jumpWeb() {
         if (currentVideoAd == null) return;
-        Jump2View.getInstance().goWeb(this, currentVideoAd.url);
+        Jump2View.getInstance().goWeb(getContext(), currentVideoAd.url);
     }
 
     private void openApp() {
         if (currentVideoAd == null) return;
         currentVideoAd.trigger(VideoAd.TYPE_ACTIVE);
         currentVideoAd.trigger(VideoAd.TYPE_OPEN);
-        PackageUtil.startApp(this, currentVideoAd.package_name);
+        PackageUtil.startApp(getContext(), currentVideoAd.package_name);
     }
 
     private void downloadApp() {
@@ -440,26 +239,26 @@ public class FgtVideoTaskZK extends BaseActivity {
     private void installApp() {
         if (currentVideoAd == null) return;
         currentVideoAd.trigger(VideoAd.TYPE_INSTALL);
-        ApkUtils.installApk(this, currentVideoAd.path);
+        ApkUtils.installApk(getContext(), currentVideoAd.path);
     }
 
     private void installApp(VideoAd ad) {
         if (ad == null) return;
         ad.trigger(VideoAd.TYPE_INSTALL);
-        ApkUtils.installApk(this, ad.path);
+        ApkUtils.installApk(getContext(), ad.path);
     }
 
     private void showAppConfirmDialog(String title, String btnText, ViewUtil.OnConfirDialogListener listener) {
-        View rootView = View.inflate(this, R.layout.video_ad_confirm, null);
+        View rootView = View.inflate(getContext(), R.layout.video_ad_confirm, null);
         ImageView app_logo_iv = rootView.findViewById(R.id.app_logo_iv);
         TextView app_name_tv = rootView.findViewById(R.id.app_name_tv);
         TextView app_desc_tv = rootView.findViewById(R.id.app_desc_tv);
-        int radius = ScreenUtil.dip2px(this, 8);
+        int radius = ScreenUtil.dip2px(getActivity(), 8);
         GlideImageLoader.roundedCornersImage(app_logo_iv, currentVideoAd.logo, radius);
         app_name_tv.setText(currentVideoAd.title);
         app_desc_tv.setText(currentVideoAd.desc);
         videoPlayerView.onVideoPause();
-        ViewUtil.showConfirmDialog(this, title, rootView, "取消", btnText,
+        ViewUtil.showConfirmDialog(getContext(), title, rootView, "取消", btnText,
                 d -> {
                     d.dismiss();
                     videoPlayerView.onVideoResume();
@@ -468,7 +267,7 @@ public class FgtVideoTaskZK extends BaseActivity {
     }
 
     private void showDownloadDialog() {
-        final DialogProgress progress = DialogProgress.showDialog(this, true);
+        final DialogProgress progress = DialogProgress.showDialog(getActivity(), true);
         progress.getAlertDialog().setOnDismissListener(d -> {
 
         });
@@ -480,7 +279,7 @@ public class FgtVideoTaskZK extends BaseActivity {
                     public void onProgress(long offset, long total) {
                         LogUtil.logE(offset + " /// " + total);
                         long percent = offset * 100 / total;
-                        runOnUiThread(() -> {
+                        getActivity().runOnUiThread(() -> {
                             if (progress.getAlertDialog().isShowing()) {
                                 progress.getTextView().setText(percent + "%");
                             }
@@ -489,8 +288,8 @@ public class FgtVideoTaskZK extends BaseActivity {
 
                     @Override
                     public void onStatus(String status, String msg) {
-                        runOnUiThread(() -> {
-                            if (FgtVideoTaskZK.this.isDestroyed()) return;
+                        getActivity().runOnUiThread(() -> {
+                            if (getActivity() == null || getActivity().isDestroyed()) return;
                             if (progress.getAlertDialog().isShowing()) {
                                 progress.getAlertDialog().dismiss();
                             }
@@ -510,21 +309,4 @@ public class FgtVideoTaskZK extends BaseActivity {
 
     }
 
-    public boolean checkLocationPermission() {
-        List<String> permissions = new ArrayList<String>();
-        boolean result = true;
-        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
-            result = false;
-        }
-        if (permissions.size() > 0) {
-            String[] permissionArrays = new String[permissions.size()];
-            permissionArrays = permissions.toArray(permissionArrays);
-            ActivityCompat.requestPermissions(this,
-                    permissionArrays,
-                    1111);
-        }
-        return result;
-    }
-
 }

+ 10 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -61,6 +61,8 @@ import com.tencent.bugly.beta.Beta;
 import com.tencent.mm.opensdk.openapi.IWXAPI;
 import com.tencent.mm.opensdk.openapi.WXAPIFactory;
 import com.tencent.smtt.sdk.QbSdk;
+import com.tmsdk.AbsTMSConfig;
+import com.tmsdk.TMSDKContext;
 import com.umeng.commonsdk.UMConfigure;
 import com.umeng.socialize.PlatformConfig;
 import com.youmi.android.offer.YmConfig;
@@ -203,6 +205,14 @@ public class SheepApp extends MultiDexApplication {
             }
             initUtils();
             ChannelContent.getInstance().initChannelContent(this);
+            /**点客广告SDK接入*/
+            TMSDKContext.setTMSDKLogEnable(BuildConfig.DEBUG);
+            TMSDKContext.init(this, new AbsTMSConfig() {
+                @Override
+                public String getServerAddress() {
+                    return "mazu.3g.qq.com";
+                }
+            });
         }
     }
 

+ 6 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -8,6 +8,7 @@ import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import com.sheep.gamegroup.absBase.AbsObserver;
 import com.sheep.gamegroup.absBase.BaseActivity;
@@ -94,7 +95,11 @@ public abstract class BaseFragment extends RxFragment {
                 ((ViewGroup) mObject).removeView(mView);
             }
         }
-        mView = inflater.inflate(getLayoutId(), null);
+        if (getLayoutId() != 0) {
+            mView = inflater.inflate(getLayoutId(), null);
+        } else {
+            mView = new FrameLayout(getContext());
+        }
         return mView;
     }
 

+ 2 - 0
app/src/main/res/xml/file_paths.xml

@@ -5,6 +5,8 @@
     <external-path path="Android/data/com.sponsor.hbhunter/" name="files_root"/>
 
     <external-path path="." name="external_storage_root"/>
+    <external-path name="external_storage_download" path="Download" />
+    <files-path path="images/" name="my_images" />
     <external-path path="" name="Download"/>
     <external-path name="download" path="."/>
     <!--