|
|
@ -3,6 +3,7 @@ package cc.niushuai.dididone.ui.setting.project; |
|
|
|
import android.content.Intent; |
|
|
|
import android.content.Intent; |
|
|
|
import android.graphics.Color; |
|
|
|
import android.graphics.Color; |
|
|
|
import android.os.Bundle; |
|
|
|
import android.os.Bundle; |
|
|
|
|
|
|
|
import android.util.Log; |
|
|
|
import android.view.LayoutInflater; |
|
|
|
import android.view.LayoutInflater; |
|
|
|
import android.view.View; |
|
|
|
import android.view.View; |
|
|
|
import android.view.ViewGroup; |
|
|
|
import android.view.ViewGroup; |
|
|
@ -20,13 +21,21 @@ import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
import cc.niushuai.dididone.biz.BizGlobal; |
|
|
|
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.roomx.DBManager; |
|
|
|
import cc.niushuai.dididone.biz.vo.ProjectIcon; |
|
|
|
import cc.niushuai.dididone.biz.vo.ProjectIcon; |
|
|
|
import cc.niushuai.dididone.databinding.FragmentProjectBinding; |
|
|
|
import cc.niushuai.dididone.databinding.FragmentProjectBinding; |
|
|
|
import cc.niushuai.dididone.ui.base.InitAndSetListener; |
|
|
|
import cc.niushuai.dididone.ui.base.InitAndSetListener; |
|
|
|
|
|
|
|
import cc.niushuai.dididone.util.Snowflake; |
|
|
|
import cc.niushuai.dididone.util.Toasts; |
|
|
|
import cc.niushuai.dididone.util.Toasts; |
|
|
|
import cc.niushuai.dididone.util.XLog; |
|
|
|
import cc.niushuai.dididone.util.XLog; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
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 { |
|
|
|
public class ProjectFragment extends Fragment implements InitAndSetListener { |
|
|
|
|
|
|
|
|
|
|
@ -62,6 +71,16 @@ public class ProjectFragment extends Fragment implements InitAndSetListener { |
|
|
|
private List<ProjectIcon> getDataList() { |
|
|
|
private List<ProjectIcon> getDataList() { |
|
|
|
ArrayList<ProjectIcon> list = new ArrayList<>(); |
|
|
|
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()); |
|
|
|
list.add(defaultAddProject()); |
|
|
@ -69,7 +88,7 @@ public class ProjectFragment extends Fragment implements InitAndSetListener { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private ProjectIcon defaultAddProject() { |
|
|
|
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 { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 名称
|
|
|
|
// 名称
|
|
|
|
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()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|