Skip to content

Commit d493e20

Browse files
committed
formatting
1 parent 1af6e18 commit d493e20

File tree

8 files changed

+140
-136
lines changed

8 files changed

+140
-136
lines changed

lib/app.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:commit451/account_deletion_page.dart';
22
import 'package:commit451/home_page.dart';
33
import 'package:commit451/privacy_page.dart';
4+
import 'package:commit451/salamander_page.dart';
45
import 'package:commit451/terms_conditions_page.dart';
56
import 'package:commit451/ui/commit451_colors.dart';
67
import 'package:flutter/material.dart';
@@ -25,6 +26,7 @@ class App extends StatelessWidget {
2526
'/privacy': (context) => const PrivacyPage(),
2627
'/terms-conditions': (context) => const TermsConditionsPage(),
2728
'/account-deletion': (context) => const AccountDeletionPage(),
29+
'/salamander': (context) => const SalamanderPage(),
2830
},
2931
);
3032
}

lib/home_page.dart

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,25 @@ class _HomePageState extends State<HomePage> {
2323
Widget build(BuildContext context) {
2424
return Scaffold(
2525
body: Container(
26-
decoration: const BoxDecoration(
27-
image: DecorationImage(
28-
image: AssetImage("assets/images/bg.png"),
29-
fit: BoxFit.cover,
30-
),
26+
decoration: const BoxDecoration(
27+
image: DecorationImage(
28+
image: AssetImage("assets/images/bg.png"),
29+
fit: BoxFit.cover,
3130
),
32-
child: Stack(children: [
31+
),
32+
child: Stack(
33+
children: [
3334
Align(alignment: AlignmentDirectional.center, child: centerCard()),
3435
Align(
35-
alignment: AlignmentDirectional.bottomCenter,
36-
child: Column(mainAxisSize: MainAxisSize.min, children: [
37-
bottomCard(),
38-
verticalSeparator(),
39-
]))
40-
])),
36+
alignment: AlignmentDirectional.bottomCenter,
37+
child: Column(
38+
mainAxisSize: MainAxisSize.min,
39+
children: [bottomCard(), verticalSeparator()],
40+
),
41+
),
42+
],
43+
),
44+
),
4145
);
4246
}
4347

@@ -54,14 +58,14 @@ class _HomePageState extends State<HomePage> {
5458
verticalSeparator(),
5559
ClipRRect(
5660
borderRadius: BorderRadius.circular(100.0),
57-
child: Image.asset("assets/images/avatar.png",
58-
width: 200, height: 200),
61+
child: Image.asset(
62+
"assets/images/avatar.png",
63+
width: 200,
64+
height: 200,
65+
),
5966
),
6067
verticalSeparator(),
61-
Text(
62-
"Commit 451",
63-
style: logoStyle,
64-
),
68+
Text("Commit 451", style: logoStyle),
6569
Text(
6670
"451 times more committed to creating apps with clean code and modern design for a true experience inspired by user instinct.",
6771
style: Theme.of(context).textTheme.headlineSmall,
@@ -102,18 +106,15 @@ class _HomePageState extends State<HomePage> {
102106
Nav.navigateToTermsAndConditions(context);
103107
}),
104108
],
105-
)
109+
),
106110
],
107111
);
108112
}
109113

110114
Widget link(String text, GestureTapCallback callback) {
111115
return InkWell(
112116
onTap: callback,
113-
child: Text(
114-
text,
115-
style: const TextStyle(fontWeight: FontWeight.bold),
116-
),
117+
child: Text(text, style: const TextStyle(fontWeight: FontWeight.bold)),
117118
);
118119
}
119120

@@ -126,10 +127,7 @@ class _HomePageState extends State<HomePage> {
126127
fillColor: Colors.white,
127128
padding: const EdgeInsets.all(15.0),
128129
shape: const CircleBorder(),
129-
child: Icon(
130-
iconData,
131-
size: 35.0,
132-
),
130+
child: Icon(iconData, size: 35.0),
133131
);
134132
}
135133
}

lib/privacy_page.dart

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,61 @@ class PrivacyPage extends StatelessWidget {
77
@override
88
Widget build(BuildContext context) {
99
return Scaffold(
10-
appBar: AppBar(
11-
title: const Text('Commit 451 Privacy Policy'),
12-
),
13-
body: ListView(padding: const EdgeInsets.all(40.0), children: [
10+
appBar: AppBar(title: const Text('Commit 451 Privacy Policy')),
11+
body: ListView(
12+
padding: const EdgeInsets.all(40.0),
13+
children: [
1414
title("Terms of Use and Privacy Policy"),
1515
verticalSeparator(),
1616
text(
17-
"Commit 451 is committed to protecting your privacy. We will not distribute your personal information to third parties not affiliated with Commit 451 without your consent and we do not sell or rent your personal information. This privacy policy explains the guidelines we use in protecting your privacy, which is applicable to the use of commit451.com and our mobile apps (collectively, the “Services”)."),
17+
"Commit 451 is committed to protecting your privacy. We will not distribute your personal information to third parties not affiliated with Commit 451 without your consent and we do not sell or rent your personal information. This privacy policy explains the guidelines we use in protecting your privacy, which is applicable to the use of commit451.com and our mobile apps (collectively, the “Services”).",
18+
),
1819
verticalSeparator(),
1920
title("Information We Collect Automatically"),
2021
verticalSeparator(),
2122
text(
22-
"Commit 451 collects anonymous usage statistics and crash reports through our mobile applications. The usage statistics and crash reports help us diagnose problems, help us understand how users interact with our mobile applications, and help us improve the performance of our mobile applications. This data, along with any other automatic anonymous data we collect is not linked to any personal information you provide. Persistent identifiers may automatically be collected from users, either by Commit 451 or by a third party on behalf of Commit 451. Persistent identifiers are used to support the internal operations of our Services, which may include maintaining and analyzing our Services, performing network communications, authenticating users, personalizing content, and protecting the security or integrity of the Services."),
23+
"Commit 451 collects anonymous usage statistics and crash reports through our mobile applications. The usage statistics and crash reports help us diagnose problems, help us understand how users interact with our mobile applications, and help us improve the performance of our mobile applications. This data, along with any other automatic anonymous data we collect is not linked to any personal information you provide. Persistent identifiers may automatically be collected from users, either by Commit 451 or by a third party on behalf of Commit 451. Persistent identifiers are used to support the internal operations of our Services, which may include maintaining and analyzing our Services, performing network communications, authenticating users, personalizing content, and protecting the security or integrity of the Services.",
24+
),
2325
verticalSeparator(),
2426
title("Information You Provide"),
2527
verticalSeparator(),
2628
text(
27-
"Commit 451 may collect information you provide directly to us through our Services. When submitting information through a form, support request, or other inquiry to Commit 451, you may choose to provide us with your name, email address, and other contact information (such as your telephone number). This information will be used to respond to any communications you submit through the Services."),
29+
"Commit 451 may collect information you provide directly to us through our Services. When submitting information through a form, support request, or other inquiry to Commit 451, you may choose to provide us with your name, email address, and other contact information (such as your telephone number). This information will be used to respond to any communications you submit through the Services.",
30+
),
2831
verticalSeparator(),
2932
title("Third Party Applications"),
3033
verticalSeparator(),
3134
text(
32-
"Commit 451 uses a variety of services hosted by third parties to help enhance and understand the use of our Services. These companies are authorized to use your anonymized information only as necessary to provide these services to us. These services may use cookies and collect other information sent by your browser or mobile device, such as your IP address or the applications that were running at the time of a malfunction. This information is processed by these third party tools to generate statistical usage information. The collection of this information will allow us to better understand and improve the performance, usability, and effectiveness of our Services."),
35+
"Commit 451 uses a variety of services hosted by third parties to help enhance and understand the use of our Services. These companies are authorized to use your anonymized information only as necessary to provide these services to us. These services may use cookies and collect other information sent by your browser or mobile device, such as your IP address or the applications that were running at the time of a malfunction. This information is processed by these third party tools to generate statistical usage information. The collection of this information will allow us to better understand and improve the performance, usability, and effectiveness of our Services.",
36+
),
3337
verticalSeparator(),
3438
title("Disclosure of Information"),
3539
verticalSeparator(),
3640
text(
37-
"Commit 451 may disclose your personal information as required by law, such as to comply with a subpoena, or similar legal process and when we believe in good faith that disclosure is necessary to protect our rights, protect your safety or the safety of others, investigate fraud, or respond to a government request."),
41+
"Commit 451 may disclose your personal information as required by law, such as to comply with a subpoena, or similar legal process and when we believe in good faith that disclosure is necessary to protect our rights, protect your safety or the safety of others, investigate fraud, or respond to a government request.",
42+
),
3843
title("Security"),
3944
verticalSeparator(),
4045
text(
41-
"The security of your personal information is important to us. We take appropriate technical measures for generally accepted standards for keeping your personal information confidential and protected against accidental or unlawful destruction or loss, alteration, unauthorized disclosure or access."),
46+
"The security of your personal information is important to us. We take appropriate technical measures for generally accepted standards for keeping your personal information confidential and protected against accidental or unlawful destruction or loss, alteration, unauthorized disclosure or access.",
47+
),
4248
verticalSeparator(),
4349
title("Notification of Changes"),
4450
verticalSeparator(),
4551
text(
46-
"If we change our privacy statement, we will post those changes to this privacy statement and update the date at the bottom of this document. We encourage you to periodically review this page for the latest information on our privacy practices."),
52+
"If we change our privacy statement, we will post those changes to this privacy statement and update the date at the bottom of this document. We encourage you to periodically review this page for the latest information on our privacy practices.",
53+
),
4754
verticalSeparator(),
4855
title("Questions"),
4956
verticalSeparator(),
5057
text(
51-
"If you have any questions about this privacy policy, please send an email to [email protected]."),
58+
"If you have any questions about this privacy policy, please send an email to [email protected].",
59+
),
5260
verticalSeparator(),
5361
title("Last Updated: September 21, 2018"),
5462
verticalSeparator(),
55-
]));
63+
],
64+
),
65+
);
5666
}
5767
}

lib/salamander_page.dart

Lines changed: 65 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -9,72 +9,75 @@ class SalamanderPage extends StatelessWidget {
99
@override
1010
Widget build(BuildContext context) {
1111
return Scaffold(
12-
appBar: AppBar(
13-
title: const Text('Salamander AI'),
14-
),
15-
body: SingleChildScrollView(
16-
padding: const EdgeInsets.all(40.0),
17-
child: Column(
18-
crossAxisAlignment: CrossAxisAlignment.center,
19-
children: [
20-
// Logo
21-
Image.asset(
22-
'assets/images/logo_salamander.png',
23-
height: 120,
24-
width: 120,
12+
appBar: AppBar(title: const Text('Salamander AI')),
13+
body: SingleChildScrollView(
14+
padding: const EdgeInsets.all(40.0),
15+
child: Column(
16+
crossAxisAlignment: CrossAxisAlignment.center,
17+
children: [
18+
// Logo
19+
Image.asset(
20+
'assets/images/logo_salamander.png',
21+
height: 120,
22+
width: 120,
23+
),
24+
verticalSeparator(),
25+
26+
// Title and tagline
27+
title("Salamander AI"),
28+
const SizedBox(height: 8),
29+
Text(
30+
"Never be AFK",
31+
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
32+
color: Colors.grey[600],
33+
fontStyle: FontStyle.italic,
2534
),
26-
verticalSeparator(),
27-
28-
// Title and tagline
29-
title("Salamander AI"),
30-
const SizedBox(height: 8),
31-
Text(
32-
"Never be AFK",
33-
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
34-
color: Colors.grey[600],
35-
fontStyle: FontStyle.italic,
35+
textAlign: TextAlign.center,
36+
),
37+
verticalSeparator(),
38+
verticalSeparator(),
39+
40+
// App description
41+
text(
42+
"With the power of AI, you can always have a presence at your computer. Using Anthropic Claude, OpenAI Codex, or Google Gemini, you can connect your phone to your computer in a way that enhances your workflow and optimizes your output. Create a runner, choose a directory, and start a conversation with your AI. While its doing the work, you can be out and about doing something you love, and when the AI is done doing its work, it will send you a push notification, ready for the next task. Even when you are AFK, your AI is there for you at your computer, ready to execute.",
43+
),
44+
verticalSeparator(),
45+
verticalSeparator(),
46+
47+
// Download buttons
48+
Row(
49+
mainAxisAlignment: MainAxisAlignment.center,
50+
children: [
51+
// iOS App Store button
52+
InkWell(
53+
onTap: () => _launchUrl(
54+
'https://apps.apple.com/app/com.commit451.salamander',
55+
),
56+
child: SvgPicture.asset(
57+
'assets/images/app_store.svg',
58+
height: 60,
59+
width: 180,
60+
),
3661
),
37-
textAlign: TextAlign.center,
38-
),
39-
verticalSeparator(),
40-
verticalSeparator(),
41-
42-
// App description
43-
text(
44-
"With the power of AI, you can always have a presence at your computer. Using Anthropic Claude, OpenAI Codex, or Google Gemini, you can connect your phone to your computer in a way that enhances your workflow and optimizes your output. Create a runner, choose a directory, and start a conversation with your AI. While its doing the work, you can be out and about doing something you love, and when the AI is done doing its work, it will send you a push notification, ready for the next task. Even when you are AFK, your AI is there for you at your computer, ready to execute."
45-
),
46-
verticalSeparator(),
47-
verticalSeparator(),
48-
49-
// Download buttons
50-
Row(
51-
mainAxisAlignment: MainAxisAlignment.center,
52-
children: [
53-
// iOS App Store button
54-
InkWell(
55-
onTap: () => _launchUrl('https://apps.apple.com/app/com.commit451.salamander'),
56-
child: SvgPicture.asset(
57-
'assets/images/app_store.svg',
58-
height: 60,
59-
width: 180,
60-
),
62+
horizontalSeparator(),
63+
64+
// Google Play Store button
65+
InkWell(
66+
onTap: () => _launchUrl(
67+
'https://play.google.com/store/apps/details?id=com.commit451.salamander',
6168
),
62-
horizontalSeparator(),
63-
64-
// Google Play Store button
65-
InkWell(
66-
onTap: () => _launchUrl('https://play.google.com/store/apps/details?id=com.commit451.salamander'),
67-
child: Image.asset(
68-
'assets/images/play_store.png',
69-
height: 60,
70-
width: 180,
71-
),
69+
child: Image.asset(
70+
'assets/images/play_store.png',
71+
height: 60,
72+
width: 180,
7273
),
73-
],
74-
),
75-
],
76-
),
77-
));
74+
),
75+
],
76+
),
77+
],
78+
),
79+
),
80+
);
7881
}
7982

8083
Future<void> _launchUrl(String url) async {

0 commit comments

Comments
 (0)