@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
package cc.niushuai.dididone.biz ;
import androidx.appcompat.view.ActionBarPolic y;
import org.json.JSONArra y;
import java.util.HashMap ;
import java.util.List ;
@ -8,6 +8,7 @@ import java.util.Map;
@@ -8,6 +8,7 @@ import java.util.Map;
import cc.niushuai.dididone.biz.entity.Project ;
import cc.niushuai.dididone.biz.roomx.DBManager ;
import cc.niushuai.dididone.biz.vo.ProjectCount ;
import cc.niushuai.dididone.util.XLog ;
import io.reactivex.Flowable ;
import io.reactivex.android.schedulers.AndroidSchedulers ;
@ -21,6 +22,7 @@ public class BizGlobal {
@@ -21,6 +22,7 @@ public class BizGlobal {
public static final String PROJECT_ICON = "projectIcon" ;
public static final String PROJECT_ICON_COLOR = "projectIconColor" ;
public static final Map < Long , Project > CACHE_PROJECT = new HashMap < > ( ) ;
public static final Map < Long , Integer > CACHE_PROJECT_COUNT = new HashMap < > ( ) ;
private BizGlobal ( ) {
}
@ -28,7 +30,26 @@ public class BizGlobal {
@@ -28,7 +30,26 @@ public class BizGlobal {
public static int REQUEST_CODE_GENERAL = 1 ;
public static void buildCache ( ) {
// 打卡项缓存
buildProjectCache ( ) ;
// 按类别区分每一个打卡项 存在多少条打卡记录
buildProjectCountCache ( ) ;
}
private static void buildProjectCountCache ( ) {
Flowable < List < ProjectCount > > listFlowable = DBManager . INSTANCE . recordDao ( ) . groupCountProject ( ) ;
listFlowable . subscribeOn ( Schedulers . io ( ) )
. observeOn ( AndroidSchedulers . mainThread ( ) )
. subscribe ( projectCountList - > {
for ( ProjectCount projectCount : projectCountList ) {
CACHE_PROJECT_COUNT . put ( projectCount . getId ( ) , projectCount . getCount ( ) ) ;
XLog . d ( "build project {}:{} cache" , projectCount . getName ( ) , projectCount . getCount ( ) ) ;
}
XLog . d ( "build project count cache size: {}" , projectCountList . size ( ) ) ;
} ) ;
}
private static void buildProjectCache ( ) {
@ -38,10 +59,10 @@ public class BizGlobal {
@@ -38,10 +59,10 @@ public class BizGlobal {
. subscribe ( projectList - > {
for ( Project project : projectList ) {
CACHE_PROJECT . put ( project . getId ( ) , project ) ;
XLog . d ( "build {} cache" , project . getName ( ) ) ;
XLog . d ( "build project {} cache" , project . getName ( ) ) ;
}
XLog . d ( "build cache size: {}" , projectList . size ( ) ) ;
XLog . d ( "build project cache size: {}" , projectList . size ( ) ) ;
} ) ;
}
}