Migrated the [TaskModel] to use an enum to represent is priority
This commit is contained in:
parent
ebd92b43e9
commit
f38146507e
3 changed files with 53 additions and 12 deletions
|
|
@ -22,7 +22,8 @@ class HomeBloc {
|
|||
StreamTransformer<List<TaskModel>, List<TaskModel>>
|
||||
prioritySortTransformer() {
|
||||
return StreamTransformer.fromHandlers(handleData: (tasksList, sink) {
|
||||
tasksList.sort((a, b) => b.priority.compareTo(a.priority));
|
||||
tasksList
|
||||
.sort((a, b) => b.ecodedPriority().compareTo(a.ecodedPriority()));
|
||||
sink.add(tasksList);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import 'package:meta/meta.dart';
|
|||
class TaskModel {
|
||||
final String id;
|
||||
final String text;
|
||||
final int priority;
|
||||
final TaskPriority priority;
|
||||
final String ownerUsername;
|
||||
final bool done;
|
||||
final String event;
|
||||
|
|
@ -20,7 +20,7 @@ class TaskModel {
|
|||
TaskModel.fromFirestore(Map<String, dynamic> firestoreMap, {String id})
|
||||
: id = id,
|
||||
text = firestoreMap["text"],
|
||||
priority = firestoreMap["priority"],
|
||||
priority = decodedPriority(firestoreMap["priority"]),
|
||||
ownerUsername = firestoreMap["ownerUsername"],
|
||||
done = firestoreMap["done"],
|
||||
event = firestoreMap["event"];
|
||||
|
|
@ -28,7 +28,7 @@ class TaskModel {
|
|||
Map<String, dynamic> toFirestoreMap() {
|
||||
return <String, dynamic>{
|
||||
"text": text,
|
||||
"priority": priority,
|
||||
"priority": ecodedPriority(),
|
||||
"ownerUsername": ownerUsername,
|
||||
"done": done,
|
||||
"event": event,
|
||||
|
|
@ -37,13 +37,13 @@ class TaskModel {
|
|||
|
||||
String getPriorityText() {
|
||||
switch (priority) {
|
||||
case 0:
|
||||
case TaskPriority.low:
|
||||
return 'Low';
|
||||
break;
|
||||
case 1:
|
||||
case TaskPriority.medium:
|
||||
return 'Medium';
|
||||
break;
|
||||
case 2:
|
||||
case TaskPriority.high:
|
||||
return 'High';
|
||||
break;
|
||||
default:
|
||||
|
|
@ -51,6 +51,38 @@ class TaskModel {
|
|||
}
|
||||
}
|
||||
|
||||
static TaskPriority decodedPriority(int priority) {
|
||||
switch (priority) {
|
||||
case 0:
|
||||
return TaskPriority.low;
|
||||
break;
|
||||
case 1:
|
||||
return TaskPriority.medium;
|
||||
break;
|
||||
case 2:
|
||||
return TaskPriority.high;
|
||||
break;
|
||||
default:
|
||||
return TaskPriority.none;
|
||||
}
|
||||
}
|
||||
|
||||
int ecodedPriority() {
|
||||
switch (priority) {
|
||||
case TaskPriority.low:
|
||||
return 0;
|
||||
break;
|
||||
case TaskPriority.medium:
|
||||
return 1;
|
||||
break;
|
||||
case TaskPriority.high:
|
||||
return 2;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
static TaskModel sample() {
|
||||
return TaskModel(
|
||||
id: '1',
|
||||
|
|
@ -59,7 +91,7 @@ class TaskModel {
|
|||
done: false,
|
||||
ownerUsername: 'testUser',
|
||||
event: 'testEvent',
|
||||
priority: 1,
|
||||
priority: TaskPriority.medium,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -84,3 +116,10 @@ class TaskModel {
|
|||
done == other.done &&
|
||||
event == other.event;
|
||||
}
|
||||
|
||||
enum TaskPriority {
|
||||
high,
|
||||
medium,
|
||||
low,
|
||||
none,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import './models/task_model.dart';
|
||||
|
||||
// TODO: migrate to enum https://github.com/AYM1607/do_more/issues/4
|
||||
Color getColorFromPriority(int priority) {
|
||||
Color getColorFromPriority(TaskPriority priority) {
|
||||
switch (priority) {
|
||||
case 0:
|
||||
case TaskPriority.low:
|
||||
return Color(0xFF06AD12);
|
||||
break;
|
||||
case 1:
|
||||
case TaskPriority.medium:
|
||||
return Color(0xFFF6A93B);
|
||||
break;
|
||||
case 2:
|
||||
case TaskPriority.high:
|
||||
return Color(0xFFF42850);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue