From 918d0f3971b80fba411143a6bf1d3705eb1e4abb Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Mon, 1 Feb 2021 23:30:19 +0800 Subject: [PATCH] chore: using ionicons --- lib/graphql/github.data.gql.g.dart | 122 +++++++++++++------------- lib/home.dart | 135 ++++++++++++++--------------- lib/screens/gh_issue.dart | 1 - lib/screens/login.dart | 6 +- lib/utils/utils.dart | 3 +- lib/widgets/release_item.dart | 2 +- lib/widgets/repository_item.dart | 6 +- pubspec.lock | 7 ++ pubspec.yaml | 1 + 9 files changed, 142 insertions(+), 141 deletions(-) diff --git a/lib/graphql/github.data.gql.g.dart b/lib/graphql/github.data.gql.g.dart index 62a1d64..6f8bb83 100644 --- a/lib/graphql/github.data.gql.g.dart +++ b/lib/graphql/github.data.gql.g.dart @@ -32350,68 +32350,6 @@ class _$GUserPartsData_pinnedItems_nodes__asRepositorySerializer } } -class _$GReactionConnectionPartsDataSerializer - implements StructuredSerializer { - @override - final Iterable types = const [ - GReactionConnectionPartsData, - _$GReactionConnectionPartsData - ]; - @override - final String wireName = 'GReactionConnectionPartsData'; - - @override - Iterable serialize( - Serializers serializers, GReactionConnectionPartsData object, - {FullType specifiedType = FullType.unspecified}) { - final result = [ - '__typename', - serializers.serialize(object.G__typename, - specifiedType: const FullType(String)), - 'totalCount', - serializers.serialize(object.totalCount, - specifiedType: const FullType(int)), - 'viewerHasReacted', - serializers.serialize(object.viewerHasReacted, - specifiedType: const FullType(bool)), - ]; - - return result; - } - - @override - GReactionConnectionPartsData deserialize( - Serializers serializers, Iterable serialized, - {FullType specifiedType = FullType.unspecified}) { - final result = new GReactionConnectionPartsDataBuilder(); - - final iterator = serialized.iterator; - while (iterator.moveNext()) { - final key = iterator.current as String; - iterator.moveNext(); - final dynamic value = iterator.current; - switch (key) { - case '__typename': - result.G__typename = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; - break; - case 'totalCount': - result.totalCount = serializers.deserialize(value, - specifiedType: const FullType(int)) as int; - break; - case 'viewerHasReacted': - result.viewerHasReacted = serializers.deserialize(value, - specifiedType: const FullType(bool)) as bool; - break; - } - } - - return result.build(); - } -} - -class _$GReactablePartsDataSerializer - implements StructuredSerializer { class _$GUserPartsData_pinnedItems_nodes__asRepository_ownerSerializer implements StructuredSerializer< @@ -34133,6 +34071,66 @@ class _$GCommentPartsData_authorSerializer } } +class _$GReactionConnectionPartsDataSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GReactionConnectionPartsData, + _$GReactionConnectionPartsData + ]; + @override + final String wireName = 'GReactionConnectionPartsData'; + + @override + Iterable serialize( + Serializers serializers, GReactionConnectionPartsData object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + '__typename', + serializers.serialize(object.G__typename, + specifiedType: const FullType(String)), + 'totalCount', + serializers.serialize(object.totalCount, + specifiedType: const FullType(int)), + 'viewerHasReacted', + serializers.serialize(object.viewerHasReacted, + specifiedType: const FullType(bool)), + ]; + + return result; + } + + @override + GReactionConnectionPartsData deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new GReactionConnectionPartsDataBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case '__typename': + result.G__typename = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'totalCount': + result.totalCount = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'viewerHasReacted': + result.viewerHasReacted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + class _$GReactablePartsDataSerializer implements StructuredSerializer { @override diff --git a/lib/home.dart b/lib/home.dart index 0966c09..4c231b1 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -110,9 +110,8 @@ class _HomeState extends State { } } - Widget _buildNotificationIcon(BuildContext context, bool isActive) { + Widget _buildNotificationIcon(BuildContext context, IconData iconData) { final theme = Provider.of(context); - final iconData = Icons.notifications; int count = Provider.of(context).count; if (count == 0) { return Icon(iconData); @@ -147,6 +146,69 @@ class _HomeState extends State { return tab1; } + List _buildNavigationItems(String platform) { + final search = BottomNavigationBarItem( + icon: Icon(Ionicons.search_outline), + activeIcon: Icon(Ionicons.search), + label: S.of(context).search, + ); + final group = BottomNavigationBarItem( + icon: Icon(Ionicons.people_outline), + activeIcon: Icon(Ionicons.people), + label: S.of(context).organizations, + ); + final me = BottomNavigationBarItem( + icon: Icon(Ionicons.person_outline), + activeIcon: Icon(Ionicons.person), + label: S.of(context).me, + ); + final explore = BottomNavigationBarItem( + icon: Icon(Ionicons.compass_outline), + activeIcon: Icon(Ionicons.compass), + label: S.of(context).explore, + ); + + switch (platform) { + case PlatformType.github: + return [ + BottomNavigationBarItem( + icon: Icon(Ionicons.newspaper_outline), + activeIcon: Icon(Ionicons.newspaper), + label: S.of(context).news, + ), + BottomNavigationBarItem( + icon: + _buildNotificationIcon(context, Ionicons.notifications_outline), + activeIcon: _buildNotificationIcon(context, Ionicons.notifications), + label: S.of(context).notification, + ), + BottomNavigationBarItem( + icon: Icon(Ionicons.flame_outline), + activeIcon: Icon(Ionicons.flame), + label: S.of(context).trending, + ), + search, + me, + ]; + break; + case PlatformType.gitlab: + return [explore, group, search, me]; + break; + case PlatformType.bitbucket: + return [explore, group, me]; + break; + case PlatformType.gitea: + return [group, me]; + break; + case PlatformType.gitee: + case PlatformType.gogs: + return [search, me]; + break; + default: + return []; + } + } + @override Widget build(BuildContext context) { final theme = Provider.of(context); @@ -156,74 +218,7 @@ class _HomeState extends State { return LoginScreen(); } - List navigationItems; - - switch (auth.activeAccount.platform) { - case PlatformType.github: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.rss_feed), label: S.of(context).news), - BottomNavigationBarItem( - icon: _buildNotificationIcon(context, false), - activeIcon: _buildNotificationIcon(context, true), - label: S.of(context).notification), - BottomNavigationBarItem( - icon: Icon(Icons.whatshot), label: S.of(context).trending), - BottomNavigationBarItem( - icon: Icon(Icons.search), label: S.of(context).search), - BottomNavigationBarItem( - icon: Icon(Icons.person), - activeIcon: Icon(Icons.person), - label: S.of(context).me), - ]; - break; - case PlatformType.gitlab: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.explore), label: S.of(context).explore), - BottomNavigationBarItem( - icon: Icon(Icons.group), label: S.of(context).groups), - BottomNavigationBarItem( - icon: Icon(Icons.search), label: S.of(context).search), - BottomNavigationBarItem( - icon: Icon(Icons.person), label: S.of(context).me), - ]; - break; - case PlatformType.bitbucket: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.explore), label: S.of(context).explore), - BottomNavigationBarItem( - icon: Icon(Icons.group), label: S.of(context).teams), - BottomNavigationBarItem( - icon: Icon(Icons.person), label: S.of(context).me), - ]; - break; - case PlatformType.gitea: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.group), label: S.of(context).organizations), - BottomNavigationBarItem( - icon: Icon(Icons.person), label: S.of(context).me), - ]; - break; - case PlatformType.gitee: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.search), label: S.of(context).search), - BottomNavigationBarItem( - icon: Icon(Icons.person), label: S.of(context).me), - ]; - break; - case PlatformType.gogs: - navigationItems = [ - BottomNavigationBarItem( - icon: Icon(Icons.search), label: S.of(context).search), - BottomNavigationBarItem( - icon: Icon(Icons.person), label: S.of(context).me), - ]; - break; - } + final navigationItems = _buildNavigationItems(auth.activeAccount.platform); switch (theme.theme) { case AppThemeType.cupertino: diff --git a/lib/screens/gh_issue.dart b/lib/screens/gh_issue.dart index 5fdd4b9..06c7e08 100644 --- a/lib/screens/gh_issue.dart +++ b/lib/screens/gh_issue.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:git_touch/graphql/github.data.gql.dart'; import 'package:git_touch/graphql/github.req.gql.dart'; -import 'package:git_touch/graphql/schema.schema.gql.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; diff --git a/lib/screens/login.dart b/lib/screens/login.dart index d324266..e4a5ba8 100644 --- a/lib/screens/login.dart +++ b/lib/screens/login.dart @@ -148,7 +148,7 @@ class _LoginScreenState extends State { ...List.generate(auth.accounts.length, _buildAccountItem), _buildAddItem( text: S.of(context).githubAccount, - brand: FontAwesome5Brands.github, + brand: Ionicons.logo_github, onTap: () async { theme.showActions(context, [ ActionItem( @@ -200,7 +200,7 @@ class _LoginScreenState extends State { ), _buildAddItem( text: S.of(context).gitlabAccount, - brand: FontAwesome5Brands.gitlab, + brand: Ionicons.logo_gitlab, onTap: () async { _domainController.text = 'https://gitlab.com'; final result = await theme.showConfirm( @@ -236,7 +236,7 @@ class _LoginScreenState extends State { ), _buildAddItem( text: S.of(context).bitbucketAccount, - brand: FontAwesome5Brands.bitbucket, + brand: Ionicons.logo_bitbucket, onTap: () async { _domainController.text = 'https://bitbucket.org'; final result = await theme.showConfirm( diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 65e9c3d..38b20cd 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -10,7 +10,8 @@ import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; import 'package:url_launcher/url_launcher.dart'; export 'extensions.dart'; -export 'package:flutter_vector_icons/flutter_vector_icons.dart'; +export 'package:flutter_vector_icons/flutter_vector_icons.dart' show Octicons; +export 'package:ionicons/ionicons.dart'; class StorageKeys { @deprecated diff --git a/lib/widgets/release_item.dart b/lib/widgets/release_item.dart index 85c7461..198535b 100644 --- a/lib/widgets/release_item.dart +++ b/lib/widgets/release_item.dart @@ -102,7 +102,7 @@ class ReleaseItem extends StatelessWidget { theme.push(context, asset.downloadUrl); } }, - icon: Icon(MaterialCommunityIcons.download)), + icon: Icon(Ionicons.download_outline)), hideRightChevron: true, ), ]) diff --git a/lib/widgets/repository_item.dart b/lib/widgets/repository_item.dart index 864257d..c999865 100644 --- a/lib/widgets/repository_item.dart +++ b/lib/widgets/repository_item.dart @@ -129,11 +129,11 @@ class RepositoryItem extends StatelessWidget { static IconData _buildGlIconData(String visibility) { switch (visibility) { case 'internal': - return FontAwesome.shield; + return Ionicons.shield_outline; case 'public': - return FontAwesome.globe; + return Ionicons.globe_outline; case 'private': - return FontAwesome.lock; + return Ionicons.lock_closed_outline; default: return Octicons.repo; } diff --git a/pubspec.lock b/pubspec.lock index 0fdcaae..28f85ec 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -455,6 +455,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.3.4" + ionicons: + dependency: "direct main" + description: + name: ionicons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" js: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 82df154..2dd7203 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,6 +48,7 @@ dependencies: uri: ^0.11.3 url_launcher: ^5.4.1 webview_flutter: ^1.0.5 + ionicons: ^0.1.1 flutter_localizations: sdk: flutter