@ -3,6 +3,7 @@ package cc.niushuai.dididone.ui.setting.project;
@@ -3,6 +3,7 @@ package cc.niushuai.dididone.ui.setting.project;
import android.content.Intent ;
import android.graphics.Color ;
import android.os.Bundle ;
import android.util.Log ;
import android.view.LayoutInflater ;
import android.view.View ;
import android.view.ViewGroup ;
@ -20,13 +21,21 @@ import java.util.ArrayList;
@@ -20,13 +21,21 @@ import java.util.ArrayList;
import java.util.List ;
import cc.niushuai.dididone.biz.BizGlobal ;
import cc.niushuai.dididone.biz.entity.Project ;
import cc.niushuai.dididone.biz.roomx.DBManager ;
import cc.niushuai.dididone.biz.vo.ProjectIcon ;
import cc.niushuai.dididone.databinding.FragmentProjectBinding ;
import cc.niushuai.dididone.ui.base.InitAndSetListener ;
import cc.niushuai.dididone.util.Snowflake ;
import cc.niushuai.dididone.util.Toasts ;
import cc.niushuai.dididone.util.XLog ;
import cn.hutool.core.util.StrUtil ;
import io.reactivex.Completable ;
import io.reactivex.CompletableObserver ;
import io.reactivex.Flowable ;
import io.reactivex.android.schedulers.AndroidSchedulers ;
import io.reactivex.disposables.Disposable ;
import io.reactivex.schedulers.Schedulers ;
public class ProjectFragment extends Fragment implements InitAndSetListener {
@ -62,6 +71,16 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -62,6 +71,16 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
private List < ProjectIcon > getDataList ( ) {
ArrayList < ProjectIcon > list = new ArrayList < > ( ) ;
Flowable < List < Project > > listFlowable = DBManager . INSTANCE . projectDao ( ) . listAll ( ) ;
listFlowable . subscribeOn ( Schedulers . io ( ) )
. observeOn ( AndroidSchedulers . mainThread ( ) )
. subscribe ( projectList - > {
XLog . d ( "reset... project 查询到" + projectList . size ( ) ) ;
list . clear ( ) ;
list . addAll ( ProjectIcon . trans ( projectList ) ) ;
list . add ( defaultAddProject ( ) ) ;
} ) ;
// 最后一个要添加 + 符号
list . add ( defaultAddProject ( ) ) ;
@ -69,7 +88,7 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -69,7 +88,7 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
}
private ProjectIcon defaultAddProject ( ) {
return new ProjectIcon ( 0L , "添加" , "faw_plus" , String . valueOf ( Color . BLACK ) ) ;
return new ProjectIcon ( 0L , "添加" , "faw_plus" , Color . BLACK ) ;
}
/ * *
@ -158,10 +177,40 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -158,10 +177,40 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
}
// 名称
XLog . d ( BizGlobal . PROJECT_NAME + ": {}" , data . getStringExtra ( BizGlobal . PROJECT_NAME ) ) ;
String projectName = data . getStringExtra ( BizGlobal . PROJECT_NAME ) ;
XLog . d ( BizGlobal . PROJECT_NAME + ": {}" , projectName ) ;
// 图标
XLog . d ( BizGlobal . PROJECT_ICON + ": {}" , data . getStringExtra ( BizGlobal . PROJECT_ICON ) ) ;
String projectIcon = data . getStringExtra ( BizGlobal . PROJECT_ICON ) ;
XLog . d ( BizGlobal . PROJECT_ICON + ": {}" , projectIcon ) ;
// 颜色
XLog . d ( BizGlobal . PROJECT_ICON_COLOR + ": {}" , data . getIntExtra ( BizGlobal . PROJECT_ICON_COLOR , Color . RED ) ) ;
int projectIconColor = data . getIntExtra ( BizGlobal . PROJECT_ICON_COLOR , Color . RED ) ;
XLog . d ( BizGlobal . PROJECT_ICON_COLOR + ": {}" , projectIconColor ) ;
Project project = new Project ( ) ;
project . setName ( projectName ) ;
project . setIcon ( projectIcon ) ;
project . setIconColor ( projectIconColor ) ;
Completable completable = DBManager . INSTANCE . projectDao ( ) . insertAll ( project ) ;
completable . subscribeOn ( Schedulers . io ( ) )
. observeOn ( AndroidSchedulers . mainThread ( ) )
. subscribe ( new CompletableObserver ( ) {
@Override
public void onSubscribe ( Disposable d ) {
}
@Override
public void onComplete ( ) {
Log . i ( "SettingsFragment" , "新增打卡项[" + project . getName ( ) + "]成功" ) ;
Toasts . shortShow ( getActivity ( ) , "新增打卡项[{}]成功" , project . getName ( ) ) ;
}
@Override
public void onError ( Throwable e ) {
Log . e ( "SettingsFragment" , "新增打卡项[" + project . getName ( ) + "]失败" , e ) ;
Toasts . shortShow ( getActivity ( ) , "新增打卡项[{}]失败, {}" , project . getName ( ) , e . getMessage ( ) ) ;
}
} ) ;
}
}