mirror of
https://github.com/go-vikunja/app
synced 2024-06-02 02:29:47 +00:00
cleaned code. moved get/[set]DisplayDoneTasks to global
This commit is contained in:
parent
a2ad0a52e1
commit
3202fc6bdb
|
@ -1,12 +1,14 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:vikunja_app/api/client.dart';
|
||||
import 'package:vikunja_app/api/service.dart';
|
||||
import 'package:vikunja_app/models/list.dart';
|
||||
import 'package:vikunja_app/service/services.dart';
|
||||
|
||||
class ListAPIService extends APIService implements ListService {
|
||||
ListAPIService(Client client) : super(client);
|
||||
FlutterSecureStorage _storage;
|
||||
ListAPIService(Client client, FlutterSecureStorage storage) : _storage = storage, super(client);
|
||||
|
||||
@override
|
||||
Future<TaskList> create(namespaceId, TaskList tl) {
|
||||
|
@ -49,4 +51,22 @@ class ListAPIService extends APIService implements ListService {
|
|||
.post('/lists/${tl.id}', body: tl.toJSON())
|
||||
.then((map) => TaskList.fromJson(map));
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDisplayDoneTasks(int listId) {
|
||||
return _storage.read(key: "display_done_tasks_list_$listId").then((value)
|
||||
{
|
||||
if(value == null) {
|
||||
// TODO: implement default value
|
||||
setDisplayDoneTasks(listId, "1");
|
||||
return Future.value("1");
|
||||
}
|
||||
return value;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void setDisplayDoneTasks(int listId, String value) {
|
||||
_storage.write(key: "display_done_tasks_list_$listId", value: value);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
import 'dart:async';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:vikunja_app/api/client.dart';
|
||||
import 'package:vikunja_app/api/service.dart';
|
||||
import 'package:vikunja_app/models/list.dart';
|
||||
import 'package:vikunja_app/models/task.dart';
|
||||
import 'package:vikunja_app/service/services.dart';
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class VikunjaGlobalState extends State<VikunjaGlobal> {
|
|||
|
||||
TaskService get taskService => new TaskAPIService(client);
|
||||
|
||||
ListService get listService => new ListAPIService(client);
|
||||
ListService get listService => new ListAPIService(client, _storage);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
@ -76,14 +76,6 @@ class VikunjaGlobalState extends State<VikunjaGlobal> {
|
|||
});
|
||||
}
|
||||
|
||||
void setSetting(String key, String value) async{
|
||||
await _storage.write(key: key, value: value);
|
||||
}
|
||||
|
||||
Future<String> getSetting(String key) async {
|
||||
return _storage.read(key: key);
|
||||
}
|
||||
|
||||
|
||||
void logoutUser(BuildContext context) {
|
||||
_storage.deleteAll().then((_) {
|
||||
|
|
|
@ -20,28 +20,22 @@ class ListPage extends StatefulWidget {
|
|||
|
||||
class _ListPageState extends State<ListPage> {
|
||||
TaskList _list;
|
||||
List<Task> _loadingTasks = [];
|
||||
bool _loading = true;
|
||||
Future<String> display_done_tasks;
|
||||
bool bool_display_done;
|
||||
int list_id;
|
||||
bool displayDoneTasks;
|
||||
int listId;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_list = TaskList(
|
||||
id: widget.taskList.id, title: widget.taskList.title, tasks: []);
|
||||
list_id = _list.id;
|
||||
listId = _list.id;
|
||||
Future.delayed(Duration.zero, (){
|
||||
updateDisplayDoneTasks().then((value) => setState((){bool_display_done = value == "1";}));
|
||||
VikunjaGlobal.of(context).listService.getDisplayDoneTasks(listId)
|
||||
.then((value) => setState((){displayDoneTasks = value == "1";}));
|
||||
});
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Future<String> updateDisplayDoneTasks() async {
|
||||
display_done_tasks = VikunjaGlobal.of(context).getSetting("display_done_tasks_list_$list_id");
|
||||
return display_done_tasks;
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
_loadList();
|
||||
|
@ -64,8 +58,8 @@ class _ListPageState extends State<ListPage> {
|
|||
list: _list,
|
||||
))).whenComplete(() {
|
||||
setState(() {this._loading = true;});
|
||||
updateDisplayDoneTasks().then((value) {
|
||||
bool_display_done = value == "1";
|
||||
VikunjaGlobal.of(context).listService.getDisplayDoneTasks(listId).then((value) {
|
||||
displayDoneTasks = value == "1";
|
||||
_loadList();
|
||||
setState(() => this._loading = false);
|
||||
});
|
||||
|
@ -111,7 +105,7 @@ class _ListPageState extends State<ListPage> {
|
|||
.then((list) {
|
||||
setState(() {
|
||||
_loading = false;
|
||||
if(bool_display_done != null && !bool_display_done)
|
||||
if(displayDoneTasks != null && !displayDoneTasks)
|
||||
list.tasks.removeWhere((element) => element.done);
|
||||
_list = list;
|
||||
});
|
||||
|
|
|
@ -19,32 +19,22 @@ class _ListEditPageState extends State<ListEditPage> {
|
|||
final _formKey = GlobalKey<FormState>();
|
||||
bool _loading = false;
|
||||
String _title, _description;
|
||||
Future<String> display_done_tasks;
|
||||
bool display_bool;
|
||||
int list_id;
|
||||
bool displayDoneTasks;
|
||||
int listId;
|
||||
|
||||
@override
|
||||
void initState(){
|
||||
list_id = widget.list.id;
|
||||
listId = widget.list.id;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Future<String> updateDisplayDoneTasks() async {
|
||||
display_done_tasks = VikunjaGlobal.of(context).getSetting("display_done_tasks_list_$list_id");
|
||||
display_done_tasks.then((value) {
|
||||
if(value == null) {
|
||||
VikunjaGlobal.of(context).setSetting("display_done_tasks_list_$list_id", "1");
|
||||
updateDisplayDoneTasks();
|
||||
}
|
||||
});
|
||||
return display_done_tasks;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext ctx) {
|
||||
if(display_bool == null)
|
||||
updateDisplayDoneTasks().then(
|
||||
(value) => setState(() => display_bool = value == "1"));
|
||||
if(displayDoneTasks == null)
|
||||
VikunjaGlobal.of(context).listService.getDisplayDoneTasks(listId).then(
|
||||
(value) => setState(() => displayDoneTasks = value == "1"));
|
||||
else
|
||||
log("Display_bool: " + displayDoneTasks?.toString());
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Edit List'),
|
||||
|
@ -96,17 +86,13 @@ class _ListEditPageState extends State<ListEditPage> {
|
|||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.0),
|
||||
child: FutureBuilder<String>(
|
||||
future: display_done_tasks,
|
||||
builder: (context, snapshot) =>
|
||||
snapshot.hasData ?
|
||||
child: displayDoneTasks != null ?
|
||||
CheckboxListTile(
|
||||
value: display_bool,
|
||||
value: displayDoneTasks,
|
||||
title: Text("Show done tasks"),
|
||||
onChanged: (value) {
|
||||
VikunjaGlobal.of(context).setSetting("display_done_tasks_list_$list_id", value == false ? "0" : "1");
|
||||
//updateDisplayDoneTasks().then((value) =>
|
||||
setState(() => display_bool = value);
|
||||
VikunjaGlobal.of(context).listService.setDisplayDoneTasks(listId, value == false ? "0" : "1");
|
||||
setState(() => displayDoneTasks = value);
|
||||
},
|
||||
)
|
||||
: ListTile(
|
||||
|
@ -122,9 +108,7 @@ class _ListEditPageState extends State<ListEditPage> {
|
|||
),
|
||||
),
|
||||
title: Text("Show done task"),
|
||||
)
|
||||
)
|
||||
,),
|
||||
),),
|
||||
Builder(
|
||||
builder: (context) => Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 10.0),
|
||||
|
|
|
@ -115,6 +115,17 @@ class MockedListService implements ListService {
|
|||
throw Exception('TaskList ${tl.id} does not exists');
|
||||
return Future.value(_lists[tl.id] = tl);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDisplayDoneTasks(int listId) {
|
||||
// TODO: implement getDisplayDoneTasks
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
void setDisplayDoneTasks(int listId, String value) {
|
||||
// TODO: implement setDisplayDoneTasks
|
||||
}
|
||||
}
|
||||
|
||||
class MockedTaskService implements TaskService {
|
||||
|
@ -144,6 +155,12 @@ class MockedTaskService implements TaskService {
|
|||
_lists[listId].tasks.add(task);
|
||||
return Future.value(task);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<Task>> get(int taskId) {
|
||||
// TODO: implement get
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
class MockedUserService implements UserService {
|
||||
|
|
|
@ -20,9 +20,12 @@ abstract class ListService {
|
|||
Future<TaskList> create(int namespaceId, TaskList tl);
|
||||
Future<TaskList> update(TaskList tl);
|
||||
Future delete(int listId);
|
||||
Future<String> getDisplayDoneTasks(int listId);
|
||||
void setDisplayDoneTasks(int listId, String value);
|
||||
}
|
||||
|
||||
abstract class TaskService {
|
||||
Future<List<Task>> get(int taskId);
|
||||
Future<Task> update(Task task);
|
||||
Future delete(int taskId);
|
||||
Future<Task> add(int listId, Task task);
|
||||
|
|
Loading…
Reference in New Issue
Block a user