Update and Delete task
This commit is contained in:
		
							parent
							
								
									44d64951d5
								
							
						
					
					
						commit
						13fb26be6d
					
				@ -22,5 +22,11 @@ class TaskController extends GetxController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  void delete(TaskModel taskModel) {
 | 
					  void delete(TaskModel taskModel) {
 | 
				
			||||||
    DBHelper.delete(taskModel);
 | 
					    DBHelper.delete(taskModel);
 | 
				
			||||||
 | 
					    getTask();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void updateTaskIsComplete(int id) {
 | 
				
			||||||
 | 
					    DBHelper.update(id);
 | 
				
			||||||
 | 
					    getTask();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -43,6 +43,14 @@ class DBHelper {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  static delete(TaskModel taskModel) async {
 | 
					  static delete(TaskModel taskModel) async {
 | 
				
			||||||
    return await _db!
 | 
					    return await _db!
 | 
				
			||||||
        .delete(_tableName, where: 'id?', whereArgs: [taskModel.id]);
 | 
					        .delete(_tableName, where: 'id=?', whereArgs: [taskModel.id]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static update(int id) async {
 | 
				
			||||||
 | 
					    return await _db!.rawUpdate('''
 | 
				
			||||||
 | 
					      UPDATE tbtask 
 | 
				
			||||||
 | 
					      SET isCompleted = ?
 | 
				
			||||||
 | 
					      WHERE id = ?
 | 
				
			||||||
 | 
					      ''', [1, id]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -158,7 +158,8 @@ class _MyHomeScreenState extends State<MyHomeScreen> {
 | 
				
			|||||||
                      children: [
 | 
					                      children: [
 | 
				
			||||||
                        GestureDetector(
 | 
					                        GestureDetector(
 | 
				
			||||||
                          onTap: () {
 | 
					                          onTap: () {
 | 
				
			||||||
                            print("Tapped");
 | 
					                            _showBottomSheet(
 | 
				
			||||||
 | 
					                                context, _taskController.taskList[index]);
 | 
				
			||||||
                          },
 | 
					                          },
 | 
				
			||||||
                          child: TaskTile(_taskController.taskList[index]),
 | 
					                          child: TaskTile(_taskController.taskList[index]),
 | 
				
			||||||
                        )
 | 
					                        )
 | 
				
			||||||
@ -169,4 +170,90 @@ class _MyHomeScreenState extends State<MyHomeScreen> {
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
    ));
 | 
					    ));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _showBottomSheet(BuildContext context, TaskModel taskModel) {
 | 
				
			||||||
 | 
					    Get.bottomSheet(Container(
 | 
				
			||||||
 | 
					      padding: const EdgeInsets.only(top: 4),
 | 
				
			||||||
 | 
					      height: taskModel.isCompleted == 1
 | 
				
			||||||
 | 
					          ? MediaQuery.of(context).size.height * 0.24
 | 
				
			||||||
 | 
					          : MediaQuery.of(context).size.height * 0.32,
 | 
				
			||||||
 | 
					      color: Get.isDarkMode ? darkgratClr : Colors.white,
 | 
				
			||||||
 | 
					      child: Column(children: [
 | 
				
			||||||
 | 
					        Container(
 | 
				
			||||||
 | 
					          height: 6,
 | 
				
			||||||
 | 
					          width: 120,
 | 
				
			||||||
 | 
					          decoration: BoxDecoration(
 | 
				
			||||||
 | 
					              borderRadius: BorderRadius.circular(10),
 | 
				
			||||||
 | 
					              color: Get.isDarkMode ? Colors.grey[600] : Colors.grey[300]),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        Spacer(),
 | 
				
			||||||
 | 
					        taskModel.isCompleted == 1
 | 
				
			||||||
 | 
					            ? Container()
 | 
				
			||||||
 | 
					            : _bottomSheetButton(
 | 
				
			||||||
 | 
					                label: "Task Completed",
 | 
				
			||||||
 | 
					                onTap: () {
 | 
				
			||||||
 | 
					                  _taskController.updateTaskIsComplete(taskModel.id!);
 | 
				
			||||||
 | 
					                  Get.back();
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                clr: primaryClr,
 | 
				
			||||||
 | 
					                context: context),
 | 
				
			||||||
 | 
					        _bottomSheetButton(
 | 
				
			||||||
 | 
					            label: "Delete Task",
 | 
				
			||||||
 | 
					            onTap: () {
 | 
				
			||||||
 | 
					              _taskController.delete(taskModel);
 | 
				
			||||||
 | 
					              Get.back();
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            clr: Colors.red[600]!,
 | 
				
			||||||
 | 
					            context: context),
 | 
				
			||||||
 | 
					        SizedBox(
 | 
				
			||||||
 | 
					          height: 10,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        _bottomSheetButton(
 | 
				
			||||||
 | 
					            label: "Close",
 | 
				
			||||||
 | 
					            isClose: true,
 | 
				
			||||||
 | 
					            onTap: () {
 | 
				
			||||||
 | 
					              Get.back();
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            clr: Colors.white,
 | 
				
			||||||
 | 
					            context: context),
 | 
				
			||||||
 | 
					        SizedBox(
 | 
				
			||||||
 | 
					          height: 20,
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					      ]),
 | 
				
			||||||
 | 
					    ));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _bottomSheetButton(
 | 
				
			||||||
 | 
					      {required String label,
 | 
				
			||||||
 | 
					      required Function()? onTap,
 | 
				
			||||||
 | 
					      required Color clr,
 | 
				
			||||||
 | 
					      bool isClose = false,
 | 
				
			||||||
 | 
					      required BuildContext context}) {
 | 
				
			||||||
 | 
					    return GestureDetector(
 | 
				
			||||||
 | 
					      onTap: onTap,
 | 
				
			||||||
 | 
					      child: Container(
 | 
				
			||||||
 | 
					        margin: const EdgeInsets.symmetric(vertical: 4),
 | 
				
			||||||
 | 
					        height: 55,
 | 
				
			||||||
 | 
					        width: MediaQuery.of(context).size.width * 0.9,
 | 
				
			||||||
 | 
					        decoration: BoxDecoration(
 | 
				
			||||||
 | 
					          border: Border.all(
 | 
				
			||||||
 | 
					              width: 2,
 | 
				
			||||||
 | 
					              color: isClose == true
 | 
				
			||||||
 | 
					                  ? Get.isDarkMode
 | 
				
			||||||
 | 
					                      ? Colors.grey[600]!
 | 
				
			||||||
 | 
					                      : Colors.grey[300]!
 | 
				
			||||||
 | 
					                  : clr),
 | 
				
			||||||
 | 
					          borderRadius: BorderRadius.circular(20),
 | 
				
			||||||
 | 
					          color: isClose == true ? Colors.transparent : clr,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        child: Center(
 | 
				
			||||||
 | 
					          child: Text(
 | 
				
			||||||
 | 
					            label,
 | 
				
			||||||
 | 
					            style:
 | 
				
			||||||
 | 
					                isClose ? titleStyle : titleStyle.copyWith(color: Colors.white),
 | 
				
			||||||
 | 
					          ),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user