diff --git a/lib/scaffolds/list.dart b/lib/scaffolds/list.dart index 35c9401..d1d0134 100644 --- a/lib/scaffolds/list.dart +++ b/lib/scaffolds/list.dart @@ -63,6 +63,7 @@ class _ListScaffoldState extends State { try { await widget.onRefresh(); } catch (err) { + // print(err); error = err.toString(); } finally { if (mounted) { diff --git a/lib/scaffolds/long_list.dart b/lib/scaffolds/long_list.dart index 59dc808..65fc6db 100644 --- a/lib/scaffolds/long_list.dart +++ b/lib/scaffolds/long_list.dart @@ -71,11 +71,8 @@ class _LongListScaffoldState extends State> { try { payload = await widget.onRefresh(); } catch (err) { - if (mounted) { - setState(() { - error = err.toString(); - }); - } + // print(err); + error = err.toString(); } finally { if (mounted) { setState(() { diff --git a/lib/screens/not_found.dart b/lib/screens/not_found.dart new file mode 100644 index 0000000..49f0be9 --- /dev/null +++ b/lib/screens/not_found.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; +import '../scaffolds/simple.dart'; + +class NotFoundScreen extends StatelessWidget { + @override + Widget build(BuildContext context) { + return SimpleScaffold( + title: Text('Not Found'), + bodyBuilder: () { + return Text('Woops, This page is not implemented yet'); + }, + ); + } +} diff --git a/lib/widgets/notification_item.dart b/lib/widgets/notification_item.dart index ada72b8..49cbe48 100644 --- a/lib/widgets/notification_item.dart +++ b/lib/widgets/notification_item.dart @@ -3,6 +3,7 @@ import 'package:flutter/cupertino.dart'; import '../utils/utils.dart'; import '../screens/issue.dart'; import '../screens/pull_request.dart'; +import '../screens/not_found.dart'; import '../providers/settings.dart'; import 'link.dart'; @@ -25,8 +26,11 @@ class NotificationPayload { owner = input['repository']['owner']['login']; String url = input['subject']['url']; - String numberStr = url.split('/').lastWhere((_) => true); - number = int.parse(numberStr); + + if (type == 'Issue' || type == 'PullRequest') { + String numberStr = url.split('/').lastWhere((_) => true); + number = int.parse(numberStr); + } title = input['subject']['title']; updateAt = TimeAgo.formatFromString(input['updated_at']); @@ -68,9 +72,11 @@ class _NotificationItemState extends State { ); case 'Release': // return + case 'Commit': + // return default: - // throw new Exception('Unhandled notification type: $type'); - return Text('test'); + print('Unhandled notification type: ${payload.type}'); + return NotFoundScreen(); } } @@ -105,8 +111,11 @@ class _NotificationItemState extends State { // color: Color.fromRGBO(0x6f, 0x42, 0xc1, 1), case 'Release': return _buildIcon(Octicons.tag); + case 'Commit': + return _buildIcon(Octicons.git_commit); default: - return _buildIcon(Octicons.person); + print('Unhandled notification type: ${payload.type}'); + return _buildIcon(Octicons.octoface); } }