Преглед изворни кода

修复红米手机上传截图提示无截图的兼容性问题;
添加分享中的部分打点

zengjiebin пре 7 година
родитељ
комит
f25d275e09

+ 7 - 2
app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java

@@ -5,6 +5,8 @@ import android.net.Uri;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
+import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.upfile.UpFileListener;
 import com.sheep.gamegroup.util.upfile.UpFileUtils;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
@@ -58,7 +60,10 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
                 .start(this, PhotoPicker.REQUEST_CODE);
     }
     public void showChooseDialog(boolean isCrop, boolean isUpload, int photoCount, File dir) {
-        if(dir.exists() && dir.listFiles().length > 0) {
+        LogUtil.println("showChooseDialog", dir.getAbsolutePath(), dir.exists());
+        File[] files = dir.listFiles();
+        String[] filePaths = dir.list();
+        if(dir.exists() && files != null && files.length > 0) {
             photoCount = Math.max(1, photoCount);
             this.isUpload = isUpload;
             this.isCrop = isCrop && photoCount == 1;
@@ -79,7 +84,7 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
                     }, dir.listFiles()))
                     .start(this, PhotoPicker.REQUEST_CODE);
         } else {
-            G.showToast("暂无截图");
+            G.showToast("暂无截图(若您已经截图,请查看是否开启查看应用使用情况等权限!)");
         }
     }
     private boolean showCamera = false;

+ 3 - 2
app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java

@@ -25,6 +25,7 @@ import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.UserAssets;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
@@ -172,7 +173,7 @@ public class AppUsageManager {
         }
         LogUtil.println("tryOpenLookAppUsageStatsPermisson", "start");
         AutoTaskListUtil.getInstance().clearAlertDialog();
-        if(!AutoTaskListUtil.getInstance().isEmpty()){
+        if(!AutoTaskListUtil.getInstance().isEmpty() || DataUtil.IS_LISTEN_SCREEN_SHOT){
             LogUtil.println("tryOpenLookAppUsageStatsPermisson", "notEmpty");
             showAccessibilityDialog();
         } else {
@@ -181,7 +182,7 @@ public class AppUsageManager {
         LogUtil.println("tryOpenLookAppUsageStatsPermisson","end");
     }
     public void showAccessibilityDialog() {
-        AlertDialog tipToOpernAccessibilityDialog = ViewUtil.showMsgDialog(SheepApp.getInstance(), new DialogConfig().setTitle("温馨提示!")
+        AlertDialog tipToOpernAccessibilityDialog = ViewUtil.showMsgDialog(ActivityManager.getInstance().currentActivity(), new DialogConfig().setTitle("温馨提示!")
                 .setMsg("亲!系统检测到您需要手动开启小绵羊查看应用情况的权限才能继续任务!")
                 .setBtnLeftText("去开启").setBtnLeftOnClickListener(new View.OnClickListener() {
                     @Override

+ 33 - 20
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -111,6 +111,10 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.LINK_SHARE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECEIVE_AWARD_GAME_TASK;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.SHARE_SYS_SEND;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.SHARE_TO_QQ;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.SHARE_TO_WEIXIN_CIRCLE;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.SHARE_TO_WX;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
 import static com.sheep.gamegroup.util.ViewUtil.mRobTask;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
@@ -799,26 +803,8 @@ public class CommonUtil {
                 ViewUtil.newInstance().showShare(activity, realUrl, description);
                 return;
             case DialogShare.SYS_SEND:
-                PackageInfo packageInfo = ApkUtils.getPackageInfo(SheepApp.getInstance().getPackageName());
-                if(packageInfo != null && packageInfo.applicationInfo != null && !TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)){
-                    String dir = DIR;
-                    //File dir = SheepApp.getInstance().getDir("apk", Context.MODE_PRIVATE);
-                    File file = new File(dir, String.format(Locale.CHINA, "sheep_release_v%s_%d-%s.apk", packageInfo.versionName, packageInfo.versionCode, DataUtil.getInstance().getInvitationCode()));
-                    if(!file.exists()){
-                        try {
-                            FileUtil.copyFile(new File(packageInfo.applicationInfo.sourceDir), file);
-                            ZipChannelUtil.writeQUA(file, DataUtil.getInstance().getInvitationCode());
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    if(file.exists())
-                        shareFile(activity, file);
-                    else
-                        G.showToast("暂不支持,或未打开权限");
-                } else {
-                    G.showToast("暂不支持");
-                }
+                SHARE_SYS_SEND.onEvent();
+                shareBySysSend(activity);
                 return;
             case DialogShare.FACE_TO_FACE:
                 ViewUtil.showQR(activity, realUrl);
@@ -837,13 +823,16 @@ public class CommonUtil {
                         }));
                 return;
             case DialogShare.QQ:
+                SHARE_TO_QQ.onEvent();
                 share_media = SHARE_MEDIA.QQ;
                 break;
             case DialogShare.WX:
+                SHARE_TO_WX.onEvent();
                 share_media = SHARE_MEDIA.WEIXIN;
                 break;
             case DialogShare.WEIXIN_CIRCLE:
             default:
+                SHARE_TO_WEIXIN_CIRCLE.onEvent();
                 share_media = SHARE_MEDIA.WEIXIN_CIRCLE;
                 break;
         }
@@ -858,6 +847,30 @@ public class CommonUtil {
                 .setCallback(new UMShareListener())
                 .share();
     }
+
+    public void shareBySysSend(Activity activity) {
+        PackageInfo packageInfo = ApkUtils.getPackageInfo(SheepApp.getInstance().getPackageName());
+        if(packageInfo != null && packageInfo.applicationInfo != null && !TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)){
+            String dir = DIR;
+            //File dir = SheepApp.getInstance().getDir("apk", Context.MODE_PRIVATE);
+            File file = new File(dir, String.format(Locale.CHINA, "sheep_release_v%s_%d-%s.apk", packageInfo.versionName, packageInfo.versionCode, DataUtil.getInstance().getInvitationCode()));
+            if(!file.exists()){
+                try {
+                    FileUtil.copyFile(new File(packageInfo.applicationInfo.sourceDir), file);
+                    ZipChannelUtil.writeQUA(file, DataUtil.getInstance().getInvitationCode());
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if(file.exists())
+                shareFile(activity, file);
+            else
+                G.showToast("暂不支持,或未打开权限");
+        } else {
+            G.showToast("暂不支持");
+        }
+    }
+
     // 調用系統方法分享文件
     public static void shareFile(Context context, File file) {
         if (null != file && file.exists()) {

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -435,7 +435,7 @@ public class DataUtil {
                     @Override
                     public void call(Integer integer) {
                         try {
-                            FileUtil.copyFile(new File (imagePath), getScreenShotsDir(packageName));
+                            FileUtil.copyFileToDir(new File(imagePath), getScreenShotsDir(packageName));
                         } catch (IOException e) {
                             e.printStackTrace();
                             LogUtil.println("ScreenShotListenManager", "复制截屏图片失败");

+ 11 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -49,6 +49,7 @@ import com.sheep.gamegroup.view.activity.ActGiftDetail;
 import com.sheep.gamegroup.view.activity.ActGuide;
 import com.sheep.gamegroup.view.activity.ActGuideDeblocked;
 import com.sheep.gamegroup.view.activity.ActGuideOnHook;
+import com.sheep.gamegroup.view.activity.ActInvitation;
 import com.sheep.gamegroup.view.activity.ActLoadH5;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.ActMiDong;
@@ -124,6 +125,7 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.ASK_MAKE_MONEY_INVITATION;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_DOWNLOAD_WELFARE_LIST;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_EVERY_DAY_MORE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_GIFT_CENTER;
@@ -1594,4 +1596,13 @@ public class Jump2View {
             intent.putExtra(SystemNotification.class.getSimpleName(), (SystemNotification)object);
         activity.startActivity(intent);
     }
+
+    /**
+     * 进入邀请赚钱分享界面
+     * @param activity
+     */
+    public void goActInvitation(Activity activity) {
+        ASK_MAKE_MONEY_INVITATION.onEvent();
+        activity.startActivity(new Intent(activity, ActInvitation.class));
+    }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/ScreenShotListenManager.java

@@ -309,7 +309,7 @@ public class ScreenShotListenManager {
      * 判断是否已回调过, 某些手机ROM截屏一次会发出多次内容改变的通知; <br/>
      * 删除一个图片也会发通知, 同时防止删除图片时误将上一张符合截屏规则的图片当做是当前截屏.
      */
-    private boolean checkCallback(String imagePath) {
+    private synchronized boolean checkCallback(String imagePath) {
         if (sHasCallbackPaths.contains(imagePath)) {
             return true;
         }

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/util/UMConfigUtils.java

@@ -172,6 +172,8 @@ public class UMConfigUtils {
         SEARCH_APP("玩转游戏 -> 搜索游戏"),
         GIFT_DETAIL("礼包详情页面"),
         SYSTEM_NOTIFICATION_DETAIL("消息详情页面"),
+        ASK_MAKE_MONEY_INVITATION("邀请赚钱分享页面"),
+        SHARE_SYS_SEND("通过系统分享文件"),
         ;
         private String tag;
 

+ 4 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -233,6 +233,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         ViewUtil.setDefaultText(priceTv);
         ViewUtil.setDefaultText(dateTv);
         ViewUtil.setDefaultText(num_tv);
+        if(DataUtil.IS_LISTEN_SCREEN_SHOT){//监听小绵羊截图功能需要开启查看应用使用情况的权限
+            AppUsageManager.getInstance().tryOpenLookAppUsageStatsPermisson(false);
+        }
     }
 
     @Override
@@ -285,7 +288,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
         loadOld();
         //自动审核
-        if (taskEty.getInspect_type() == 3) {
+        if (taskEty.getInspect_type() == 3 || DataUtil.IS_LISTEN_SCREEN_SHOT) {
             ViewUtil.setColorMapText(item_exlpain_title, getString(R.string.supplement_explain_n), "点我开启权限", "#FF0000");
             //用户可主动点击进行开启查看权限
             taskdetail_explain_layout.setOnClickListener(new View.OnClickListener() {

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskgetmoney.java

@@ -26,6 +26,7 @@ import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.FastJsonUtils;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.ActInvitation;
@@ -287,7 +288,7 @@ public class FgtAskgetmoney extends BaseFragment {
             case R.id.ask_invite_rl:
                 break;
             case R.id.ask_invite_tv:
-                startActivity(new Intent(getActivity(), ActInvitation.class));
+                Jump2View.getInstance().goActInvitation(activity);
                 break;
         }
     }

+ 6 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/service/FloatService.java

@@ -21,6 +21,7 @@ import android.widget.TextView;
 import com.sheep.gamegroup.model.entity.AppUsage;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.usage.AppUsageManager;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
@@ -60,7 +61,11 @@ public class FloatService extends Service {
                         @Override
                         public void call(Long count) {
                             LogUtil.println("FloatService", "count", "=", count);
-
+                            if(DataUtil.IS_LISTEN_SCREEN_SHOT){//监听小绵羊截图功能需要开启查看应用使用情况的权限
+                                if(count % 60 == 30){
+                                    AppUsageManager.getInstance().tryOpenLookAppUsageStatsPermisson(false);
+                                }
+                            }
                             if (!TextUtils.isEmpty(SpUtils.getToken(SheepApp.getInstance())) &&!AutoTaskListUtil.getInstance().isEmpty()) {//登录情况下并且有应用自动审核任务才会记录
                                 if(count % 60 == 0){
                                     AppUsageManager.getInstance().tryOpenLookAppUsageStatsPermisson(false);