git-touch-android-ios-app/lib/screens/settings.dart

103 lines
3.4 KiB
Dart
Raw Normal View History

2019-09-04 16:59:33 +02:00
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:git_touch/models/theme.dart';
2019-09-14 19:13:14 +02:00
import 'package:git_touch/screens/object.dart';
2019-09-04 16:59:33 +02:00
import 'package:git_touch/utils/utils.dart';
2019-09-11 13:59:47 +02:00
import 'package:git_touch/widgets/app_bar_title.dart';
import 'package:provider/provider.dart';
2019-03-10 06:13:40 +01:00
import 'package:launch_review/launch_review.dart';
import '../scaffolds/simple.dart';
2019-02-08 16:20:28 +01:00
import '../widgets/table_view.dart';
import '../screens/repo.dart';
import '../screens/login.dart';
2019-09-14 17:48:01 +02:00
class SettingsScreen extends StatelessWidget {
2019-09-04 16:59:33 +02:00
Widget _buildRightWidget(bool checked) {
if (!checked) return null;
2019-09-14 19:13:14 +02:00
return Row(children: [
Icon(Octicons.check, color: CupertinoColors.activeBlue, size: 24),
SizedBox(width: 12)
]);
2019-09-04 16:59:33 +02:00
}
@override
Widget build(BuildContext context) {
var themeProvider = Provider.of<ThemeModel>(context);
2019-02-08 16:20:28 +01:00
return SimpleScaffold(
2019-09-11 13:59:47 +02:00
title: AppBarTitle('Settings'),
bodyBuilder: () {
2019-02-08 16:20:28 +01:00
return Column(
children: <Widget>[
2019-09-14 20:05:34 +02:00
borderView1,
2019-09-04 16:37:22 +02:00
TableView(headerText: 'ACCOUNTS', items: [
TableViewItem(
2019-09-14 19:13:14 +02:00
leftIconData: Icons.account_circle,
2019-09-04 16:59:33 +02:00
text: Text('Switch to another account'),
2019-09-04 16:37:22 +02:00
screenBuilder: (_) => LoginScreen(),
),
]),
2019-09-14 20:05:34 +02:00
borderView1,
2019-09-04 16:37:22 +02:00
TableView(headerText: 'THEME', items: [
TableViewItem(
2019-09-14 17:48:01 +02:00
leftIconData: MaterialCommunityIcons.material_design,
text: Text('Material'),
2019-09-04 16:59:33 +02:00
rightWidget:
_buildRightWidget(themeProvider.theme == ThemeMap.material),
2019-09-04 16:37:22 +02:00
onTap: () {
if (themeProvider.theme != ThemeMap.material) {
themeProvider.setTheme(ThemeMap.material);
}
},
2019-09-14 17:48:01 +02:00
hideRightChevron: true,
2019-09-04 16:37:22 +02:00
),
TableViewItem(
2019-09-14 17:48:01 +02:00
leftIconData: MaterialCommunityIcons.apple,
text: Text('Cupertino'),
2019-09-04 16:59:33 +02:00
rightWidget: _buildRightWidget(
themeProvider.theme == ThemeMap.cupertino),
2019-09-04 16:37:22 +02:00
onTap: () {
if (themeProvider.theme != ThemeMap.cupertino) {
themeProvider.setTheme(ThemeMap.cupertino);
}
},
2019-09-14 17:48:01 +02:00
hideRightChevron: true,
2019-09-04 16:37:22 +02:00
),
]),
2019-09-14 20:05:34 +02:00
borderView1,
2019-09-14 17:48:01 +02:00
TableView(headerText: 'ABOUT', items: [
2019-09-04 16:37:22 +02:00
TableViewItem(
2019-09-14 19:13:14 +02:00
leftIconData: Octicons.code,
text: Text('Source code'),
2019-09-14 17:48:01 +02:00
screenBuilder: (_) => RepoScreen('pd4d10', 'git-touch'),
),
TableViewItem(
2019-09-14 19:13:14 +02:00
leftIconData: Octicons.law,
text: Text('License'),
rightWidget: Text('MIT'),
screenBuilder: (_) => ObjectScreen(
owner: 'pd4d10',
name: 'git-touch',
branch: 'master',
paths: ['LICENSE'],
type: 'blob',
),
),
TableViewItem(
leftIconData: Icons.star,
2019-09-14 17:48:01 +02:00
text: Text('Rate this App'),
2019-09-04 16:37:22 +02:00
onTap: () {
LaunchReview.launch(
androidAppId: 'io.github.pd4d10.gittouch',
iOSAppId: '1452042346',
);
},
2019-09-14 17:48:01 +02:00
),
2019-09-04 16:37:22 +02:00
]),
2019-02-08 16:20:28 +01:00
],
);
},
);
}
}