diff --git a/lib/main.dart b/lib/main.dart index 160af43..7d3d1f1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,8 @@ import 'package:git_touch/models/code.dart'; import 'package:git_touch/models/settings.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/screens/issues.dart'; -import 'package:git_touch/screens/repo.dart'; +import 'package:git_touch/screens/repository.dart'; +import 'package:git_touch/screens/repositories.dart'; import 'package:git_touch/screens/user.dart'; import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; @@ -14,7 +15,6 @@ import 'screens/notifications.dart'; import 'screens/search.dart'; import 'screens/login.dart'; import 'screens/issue.dart'; -import 'screens/repos.dart'; import 'screens/organization.dart'; import 'screens/trending.dart'; import 'utils/utils.dart'; diff --git a/lib/screens/organization.dart b/lib/screens/organization.dart index a408af6..c279b29 100644 --- a/lib/screens/organization.dart +++ b/lib/screens/organization.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; -import 'package:git_touch/screens/repos.dart'; +import 'package:git_touch/screens/repositories.dart'; import 'package:git_touch/screens/users.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/entry_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; import 'package:git_touch/widgets/table_view.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -11,7 +12,6 @@ import 'package:share/share.dart'; import 'package:git_touch/models/settings.dart'; import 'package:provider/provider.dart'; import '../scaffolds/refresh.dart'; -import '../widgets/repo_item.dart'; import '../widgets/action.dart'; import '../utils/utils.dart'; @@ -46,7 +46,7 @@ class OrganizationScreen extends StatelessWidget { ...join( borderView, items.map((item) { - return RepoItem(item); + return RepositoryItem(item); }).toList(), ) ]; @@ -122,7 +122,8 @@ class OrganizationScreen extends StatelessWidget { EntryItem( count: payload['pinnableItems']['totalCount'], text: 'Repositories', - screenBuilder: (context) => ReposScreen(login, org: true), + screenBuilder: (context) => + RepositoriesScreen(login, org: true), ), EntryItem( count: payload['membersWithRole']['totalCount'], diff --git a/lib/screens/repos.dart b/lib/screens/repositories.dart similarity index 87% rename from lib/screens/repos.dart rename to lib/screens/repositories.dart index b92604f..cb269f7 100644 --- a/lib/screens/repos.dart +++ b/lib/screens/repositories.dart @@ -4,15 +4,15 @@ import '../scaffolds/list.dart'; import 'package:git_touch/models/settings.dart'; import 'package:provider/provider.dart'; import '../utils/utils.dart'; -import '../widgets/repo_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; // TODO: refactor -class ReposScreen extends StatelessWidget { +class RepositoriesScreen extends StatelessWidget { final String login; final bool star; final bool org; - ReposScreen(this.login, {this.star = false, this.org = false}); + RepositoriesScreen(this.login, {this.star = false, this.org = false}); String get scope => org ? 'organization' : 'user'; String get resource => @@ -63,7 +63,7 @@ class ReposScreen extends StatelessWidget { title: AppBarTitle(star ? 'Stars' : 'Repositories'), onRefresh: () => _queryRepos(context), onLoadMore: (cursor) => _queryRepos(context, cursor), - itemBuilder: (payload) => RepoItem(payload), + itemBuilder: (payload) => RepositoryItem(payload), ); } } diff --git a/lib/screens/repo.dart b/lib/screens/repository.dart similarity index 96% rename from lib/screens/repo.dart rename to lib/screens/repository.dart index 1d850ab..6428c1c 100644 --- a/lib/screens/repo.dart +++ b/lib/screens/repository.dart @@ -14,22 +14,22 @@ import 'package:git_touch/screens/object.dart'; import 'package:share/share.dart'; import 'package:url_launcher/url_launcher.dart'; import '../scaffolds/refresh.dart'; -import '../widgets/repo_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; import '../widgets/entry_item.dart'; import '../screens/issues.dart'; import '../screens/user.dart'; import '../screens/organization.dart'; import '../widgets/action.dart'; -class RepoScreen extends StatelessWidget { +class RepositoryScreen extends StatelessWidget { final String owner; final String name; final String branch; static const _languageBarPadding = 10.0; - RepoScreen(this.owner, this.name, {this.branch}); - RepoScreen.fromFullName(String fullName, {this.branch}) + RepositoryScreen(this.owner, this.name, {this.branch}); + RepositoryScreen.fromFullName(String fullName, {this.branch}) : owner = fullName.split('/')[0], name = fullName.split('/')[1]; @@ -180,7 +180,7 @@ class RepoScreen extends StatelessWidget { return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - RepoItem(payload, inRepoScreen: true), + RepositoryItem(payload, inRepoScreen: true), borderView, Row( children: [ @@ -296,7 +296,8 @@ class RepoScreen extends StatelessWidget { if (result != null) { Provider.of(context).pushReplacementRoute( context, - (_) => RepoScreen(owner, name, branch: result)); + (_) => + RepositoryScreen(owner, name, branch: result)); } }, ), diff --git a/lib/screens/search.dart b/lib/screens/search.dart index 8d93136..d589961 100644 --- a/lib/screens/search.dart +++ b/lib/screens/search.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import 'package:git_touch/models/settings.dart'; import '../scaffolds/simple.dart'; import '../utils/utils.dart'; -import '../widgets/repo_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; import '../widgets/loading.dart'; class SearchScreen extends StatefulWidget { @@ -69,7 +69,8 @@ class _SearchScreenState extends State { loading ? Loading() : Column( - children: repos.map((repo) => RepoItem(repo)).toList(), + children: + repos.map((repo) => RepositoryItem(repo)).toList(), ) ], ); diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 8767910..2a4df28 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -2,13 +2,13 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/screens/object.dart'; +import 'package:git_touch/screens/repository.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:provider/provider.dart'; import 'package:launch_review/launch_review.dart'; import '../scaffolds/simple.dart'; import '../widgets/table_view.dart'; -import '../screens/repo.dart'; import '../screens/login.dart'; class SettingsScreen extends StatelessWidget { @@ -62,7 +62,7 @@ class SettingsScreen extends StatelessWidget { TableView(headerText: 'ABOUT', items: [ TableViewItem( text: Text('Source Code'), - screenBuilder: (_) => RepoScreen('pd4d10', 'git-touch'), + screenBuilder: (_) => RepositoryScreen('pd4d10', 'git-touch'), ), TableViewItem( text: Text('License'), diff --git a/lib/screens/trending.dart b/lib/screens/trending.dart index b4307ba..845c750 100644 --- a/lib/screens/trending.dart +++ b/lib/screens/trending.dart @@ -4,7 +4,7 @@ import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:http/http.dart' as http; import '../scaffolds/refresh.dart'; -import '../widgets/repo_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; class TrendingScreen extends StatefulWidget { @override @@ -49,7 +49,7 @@ class _TrendingScreenState extends State { crossAxisAlignment: CrossAxisAlignment.stretch, children: join( borderView, - payload.map((item) => RepoItem(item)).toList(), + payload.map((item) => RepositoryItem(item)).toList(), ), ); }, diff --git a/lib/screens/user.dart b/lib/screens/user.dart index e35e659..f91c3b4 100644 --- a/lib/screens/user.dart +++ b/lib/screens/user.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; +import 'package:git_touch/screens/repositories.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/table_view.dart'; import 'package:git_touch/widgets/user_item.dart'; @@ -10,10 +11,9 @@ import 'package:git_touch/models/settings.dart'; import 'package:provider/provider.dart'; import '../scaffolds/refresh.dart'; import '../widgets/entry_item.dart'; -import '../widgets/repo_item.dart'; +import 'package:git_touch/widgets/repository_item.dart'; import '../widgets/link.dart'; import '../widgets/action.dart'; -import '../screens/repos.dart'; import '../screens/users.dart'; import '../screens/settings.dart'; import '../utils/utils.dart'; @@ -92,7 +92,7 @@ class UserScreen extends StatelessWidget { ...join( borderView, items.map((item) { - return RepoItem(item); + return RepositoryItem(item); }).toList(), ) ]; @@ -204,12 +204,13 @@ class UserScreen extends StatelessWidget { EntryItem( count: payload['repositories']['totalCount'], text: 'Repositories', - screenBuilder: (context) => ReposScreen(login), + screenBuilder: (context) => RepositoriesScreen(login), ), EntryItem( count: payload['starredRepositories']['totalCount'], text: 'Stars', - screenBuilder: (context) => ReposScreen(login, star: true), + screenBuilder: (context) => + RepositoriesScreen(login, star: true), ), EntryItem( count: payload['followers']['totalCount'], diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 2b3246c..3a8a676 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -3,10 +3,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/gestures.dart'; +import 'package:git_touch/screens/repository.dart'; import 'package:git_touch/screens/user.dart'; import 'package:intl/intl.dart'; import 'package:primer/primer.dart'; -import '../screens/repo.dart'; export 'package:flutter_vector_icons/flutter_vector_icons.dart'; final monospaceFont = Platform.isIOS ? 'Menlo' : 'monospace'; // FIXME: @@ -70,7 +70,8 @@ TextSpan createUserSpan(BuildContext context, String login) { } TextSpan createRepoLinkSpan(BuildContext context, String owner, String name) { - return createLinkSpan(context, '$owner/$name', () => RepoScreen(owner, name)); + return createLinkSpan( + context, '$owner/$name', () => RepositoryScreen(owner, name)); } class Palette { diff --git a/lib/widgets/event_item.dart b/lib/widgets/event_item.dart index 15c8723..3b03f45 100644 --- a/lib/widgets/event_item.dart +++ b/lib/widgets/event_item.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; -import 'package:git_touch/screens/repo.dart'; +import 'package:git_touch/screens/repository.dart'; import 'package:timeago/timeago.dart' as timeago; import 'package:primer/primer.dart'; import '../screens/issue.dart'; @@ -175,7 +175,7 @@ class EventItem extends StatelessWidget { _buildRepo(context), ], iconData: Octicons.repo_forked, - screenBuilder: (_) => RepoScreen( + screenBuilder: (_) => RepositoryScreen( event.payload['forkee']['owner']['login'], event.payload['forkee']['name']), ); @@ -352,7 +352,8 @@ class EventItem extends StatelessWidget { context: context, spans: [TextSpan(text: ' starred '), _buildRepo(context)], iconData: Octicons.star, - screenBuilder: (_) => RepoScreen.fromFullName(event.repoFullName), + screenBuilder: (_) => + RepositoryScreen.fromFullName(event.repoFullName), ); default: return defaultItem; diff --git a/lib/widgets/repo_item.dart b/lib/widgets/repository_item.dart similarity index 94% rename from lib/widgets/repo_item.dart rename to lib/widgets/repository_item.dart index fe1cb21..c4b9def 100644 --- a/lib/widgets/repo_item.dart +++ b/lib/widgets/repository_item.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; +import 'package:git_touch/screens/repository.dart'; import 'package:git_touch/widgets/avatar.dart'; import 'package:primer/primer.dart'; import '../utils/utils.dart'; -import '../screens/repo.dart'; import 'link.dart'; const repoChunk = ''' @@ -27,11 +27,11 @@ primaryLanguage { } '''; -class RepoItem extends StatelessWidget { +class RepositoryItem extends StatelessWidget { final Map payload; final bool inRepoScreen; - RepoItem(this.payload, {this.inRepoScreen = false}); + RepositoryItem(this.payload, {this.inRepoScreen = false}); IconData _buildIconData() { if (payload['isPrivate']) { @@ -150,7 +150,7 @@ class RepoItem extends StatelessWidget { // TODO: text style return Link( screenBuilder: (_) => - RepoScreen(payload['owner']['login'], payload['name']), + RepositoryScreen(payload['owner']['login'], payload['name']), child: widget, ); }