Browse Source

记录截图方案需要用到userId

zengjiebin 7 years ago
parent
commit
053a7a1811

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/greendao/DDProviderHelper.java

@@ -12,6 +12,7 @@ import com.sheep.gamegroup.greendao.download.ProcessRecord;
 import com.sheep.gamegroup.greendao.download.ProcessRecordDao;
 import com.sheep.gamegroup.greendao.download.ScreenShotRecord;
 import com.sheep.gamegroup.greendao.download.ScreenShotRecordDao;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.jiuyan.samllsheep.service.AutoCheckService;
 
 import java.util.List;
@@ -392,7 +393,7 @@ public class DDProviderHelper {
         return getDaossion(ctx)
                 .getScreenShotRecordDao()
                 .queryBuilder()
-                .where(ScreenShotRecordDao.Properties.PackageName.eq(packageName))
+                .where(ScreenShotRecordDao.Properties.PackageName.eq(packageName), ScreenShotRecordDao.Properties.UserId.eq(DataUtil.getInstance().getUserId()))
                 .build()
                 .list();
     }

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

@@ -176,7 +176,7 @@ public class AppUsageManager {
     //未开启查看应用使用情况的权限
     public static final long NOT_OPEN_USAGE_STATS = -1L;
     /**
-     * 获取应用从指定时间到现在,在前台运行的时长
+     * 获取应用从2018-01-01 0:0:0到现在,在前台运行的时长
      * @param packageName
      * @return
      */
@@ -185,7 +185,7 @@ public class AppUsageManager {
             UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
             long time = System.currentTimeMillis();
             if(mUsageStatsManager != null) {
-                List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 1_537_964_279_000L, time);//1_537_964_279_000L 对应 2018-09-26 20:17:59
+                List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 1_514_736_000_000L, time);//1_514_736_000_000L 对应 2018-01-01 0:0:0
 
                 if (usageStatsList != null && !usageStatsList.isEmpty()) {
                     for (UsageStats usageStats : usageStatsList) {

+ 14 - 14
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java

@@ -384,31 +384,31 @@ public class FgtPersonalCenter extends BaseFragment {
         }
     }
 
-    private boolean isVisibleToUser = false;
     @Override
     public void setUserVisibleHint(boolean isVisibleToUser) {
         super.setUserVisibleHint(isVisibleToUser);
         if(isVisibleToUser) {
-            if (this.isVisibleToUser) {
-                try {
-                    initData();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    G.showToast(e.getMessage());
-                }
+            try {
+                initData();
+            } catch (Exception e) {
+                e.printStackTrace();
+                G.showToast(e.getMessage());
             }
-            this.isVisibleToUser = true;
         }
     }
 
+    private boolean isFirstOnResume = true;//第一次onResume
     @Override
     public void onResume() {
         super.onResume();
-        try {
-            initData();
-        } catch (Exception e) {
-            e.printStackTrace();
-            G.showToast(e.getMessage());
+        if(!isFirstOnResume) {
+            try {
+                initData();
+            } catch (Exception e) {
+                e.printStackTrace();
+                G.showToast(e.getMessage());
+            }
         }
+        isFirstOnResume = false;
     }
 }

+ 6 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -52,6 +52,8 @@ import org.xutils.x;
 import cn.jpush.android.api.JPushInterface;
 import rx.functions.Action1;
 
+import static com.sheep.jiuyan.samllsheep.service.ListenerShotService.IS_RECORD_PATH;
+
 /**
  * Created by kemllor on 2017/12/21.
  */
@@ -365,8 +367,10 @@ public class SheepApp extends MultiDexApplication {
                     LogUtil.println("SheepApp onActivityStarted", activity.getClass().getSimpleName(), mActivityCount);
                     UMConfigUtils.Event.SHEEP_STARTED.onEvent();
                     startService(new Intent(activity, DownloadService.class));
-                    if (DataUtil.IS_LISTEN_SCREEN_SHOT) {
-                        startService(new Intent(activity, ListenerShotService.class));
+                    if (DataUtil.IS_LISTEN_SCREEN_SHOT && (!IS_RECORD_PATH || !TextUtils.isEmpty(DataUtil.getInstance().getUserId()))) {
+                        Intent intent = new Intent(activity, ListenerShotService.class);
+                        intent.putExtra(AutoCheckService.EXTRA_KEY_USER_ID, DataUtil.getInstance().getUserId());//记录用户截图方案需要记录当前用户id
+                        startService(intent);
                     }
                     Jump2View.getInstance().startShotScreenFloat(activity, false);
                 }

+ 12 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/service/ListenerShotService.java

@@ -37,6 +37,8 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.jiuyan.samllsheep.service.AutoCheckService.EXTRA_KEY_USER_ID;
+
 /**
  * Created by realicing on 2018/9/20.
  * realicing@sina.com
@@ -87,6 +89,15 @@ public class ListenerShotService extends Service {
         return null;
     }
 
+    //登录的用户id
+    private String userId;
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if (intent != null) {
+            userId = intent.getStringExtra(EXTRA_KEY_USER_ID);
+        }
+        return super.onStartCommand(intent, flags, startId);
+    }
     private ScreenShotListenManager manager;
 
     @Override
@@ -164,6 +175,7 @@ public class ListenerShotService extends Service {
             screenShotRecord.setCreateTime(System.currentTimeMillis());
             screenShotRecord.setPackageName(packageName);
             screenShotRecord.setPath(imagePath);
+            screenShotRecord.setUserId(userId);
             DDProviderHelper.getInstance().addScreenShotRecord(getApplicationContext(), screenShotRecord);
         } else {
             delayCopyImage(imagePath, packageName);