@ -1,5 +1,6 @@
@@ -1,5 +1,6 @@
package cc.niushuai.dididone.ui.setting.project ;
import android.app.Activity ;
import android.content.Intent ;
import android.graphics.Color ;
import android.os.Bundle ;
@ -108,13 +109,15 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -108,13 +109,15 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
public void onItemClick ( AdapterView < ? > parent , View view , int position , long id ) {
if ( id = = 0 ) {
addProjectClick ( ) ;
addProjectClick ( BizGlobal . REQUEST_CODE_PROJECT_NEW , null ) ;
return ;
}
// 其他的被点击
ProjectIcon item = gridViewAdapter4Project . getItem ( position ) ;
Toasts . shortShow ( getContext ( ) , item . getProjectName ( ) ) ;
// Toasts.shortShow(getContext(), item.getProjectName());
addProjectClick ( BizGlobal . REQUEST_CODE_PROJECT_UPDATE , item ) ;
}
} ) ;
@ -153,7 +156,7 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -153,7 +156,7 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
return true ;
}
private void confirmDeleteProjectRecord ( ProjectIcon item ) {
private void confirmDeleteProjectRecord ( ProjectIcon item ) {
// 再次弹出是否级联删除选项
AlertDialog projectItemAlertDialog = new AlertDialog . Builder ( getContext ( ) )
. setTitle ( StrUtil . format ( "是否要删除 [{}] 已打卡记录?" , item . getProjectName ( ) ) )
@ -186,18 +189,37 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -186,18 +189,37 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
/ * *
* 添加 被点击
* /
private void addProjectClick ( ) {
private void addProjectClick ( int requestCode , ProjectIcon clickItem ) {
// 打开添加新项页面
startActivityForResult ( new Intent ( getContext ( ) , NewProjectActivity . class ) , BizGlobal . REQUEST_CODE_GENERAL ) ;
Intent intent = new Intent ( getContext ( ) , NewProjectActivity . class ) ;
Bundle data = new Bundle ( ) ;
if ( null ! = clickItem ) {
// requestCode
intent . putExtra ( BizGlobal . REQUEST_CODE , requestCode ) ;
// id
intent . putExtra ( BizGlobal . PROJECT_ID , clickItem . getId ( ) ) ;
// 名称
intent . putExtra ( BizGlobal . PROJECT_NAME , clickItem . getProjectName ( ) ) ;
// 图标
intent . putExtra ( BizGlobal . PROJECT_ICON , clickItem . getIcon ( ) ) ;
// 颜色
intent . putExtra ( BizGlobal . PROJECT_ICON_COLOR , clickItem . getColor ( ) ) ;
}
startActivityForResult ( intent , requestCode , data ) ;
}
@Override
public void onActivityResult ( int requestCode , int resultCode , @Nullable Intent data ) {
if ( null = = data ) {
if ( resultCode ! = Activity . RESULT_OK | | null = = data ) {
return ;
}
boolean update = requestCode = = BizGlobal . REQUEST_CODE_PROJECT_UPDATE ? true : false ;
// id
long projectId = data . getLongExtra ( BizGlobal . PROJECT_ID , - 1L ) ;
XLog . d ( BizGlobal . PROJECT_ID + ": {}" , projectId ) ;
// 名称
String projectName = data . getStringExtra ( BizGlobal . PROJECT_NAME ) ;
XLog . d ( BizGlobal . PROJECT_NAME + ": {}" , projectName ) ;
@ -212,27 +234,45 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
@@ -212,27 +234,45 @@ public class ProjectFragment extends Fragment implements InitAndSetListener {
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 ( ) ) ;
}
} ) ;
// 是否要添加id选项
if ( update ) {
project . setId ( projectId ) ;
}
XLog . d ( "update ? {}" , update ) ;
if ( update ) {
// 更新
int rows = DBManager . INSTANCE . projectDao ( ) . update ( project ) ;
Toasts . shortShow ( getContext ( ) , "rows = " + rows ) ;
XLog . d ( "update project rows == " + rows ) ;
if ( rows = = 1 ) {
rows = DBManager . INSTANCE . recordDao ( ) . updateName ( project . getName ( ) , project . getId ( ) ) ;
XLog . d ( "update record rows == " + rows ) ;
}
} else {
// 新增
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 ( ) ) ;
}
} ) ;
}
}
}