Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/lib/dose.dart
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,9 @@ class _DoseState extends State<Dose> {
label: 'Analytics',
),
NavigationDestination(
icon: Icon(Icons.person_outline),
selectedIcon: Icon(Icons.person),
label: 'Profile',
icon: Icon(Icons.more_horiz_outlined),
selectedIcon: Icon(Icons.more_horiz),
label: 'More',
),
],
),
Expand Down
143 changes: 138 additions & 5 deletions app/lib/pages/about_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,91 @@ class AboutPage extends StatelessWidget {
}
}

Widget _buildTeamCard(
BuildContext context, {
required String role,
required String name,
}) {
return SizedBox(
width: double.infinity,
child: Card(
color: Theme.of(context).colorScheme.primaryContainer.withValues(alpha: 0.3),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: BorderSide(
color: Theme.of(context).colorScheme.primaryContainer,
width: 1,
),
),
elevation: 0,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0),
child: Column(
children: [
Text(
role,
style: Theme.of(context).textTheme.labelLarge?.copyWith(
fontWeight: FontWeight.bold,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
const SizedBox(height: 4),
Text(
name,
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
fontWeight: FontWeight.bold,
color: Theme.of(context).colorScheme.onSurface,
),
),
],
),
),
),
);
}

Widget _buildToolCard(
BuildContext context, {
required String name,
required String description,
}) {
return SizedBox(
width: double.infinity,
child: Card(
color: Theme.of(context).colorScheme.primaryContainer.withValues(alpha: 0.3),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: BorderSide(
color: Theme.of(context).colorScheme.primaryContainer,
width: 1,
),
),
elevation: 0,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0),
child: Column(
children: [
Text(
name,
style: Theme.of(context).textTheme.titleMedium?.copyWith(
fontWeight: FontWeight.bold,
color: Theme.of(context).colorScheme.onSurface,
),
),
const SizedBox(height: 4),
Text(
description,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
],
),
),
),
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
Expand All @@ -38,7 +123,7 @@ class AboutPage extends StatelessWidget {
),
centerTitle: false,
),
body: Padding(
body: SingleChildScrollView(
padding: const EdgeInsets.all(24.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
Expand Down Expand Up @@ -76,19 +161,67 @@ class AboutPage extends StatelessWidget {
),
const SizedBox(height: 32),
Text(
'Contributors',
'Development Team',
style: Theme.of(
context,
).textTheme.titleLarge?.copyWith(fontWeight: FontWeight.w600),
),
const SizedBox(height: 12),
_buildTeamCard(
context,
role: 'Core App Development',
name: 'Jonathan',
),
const SizedBox(height: 8),
_buildTeamCard(
context,
role: 'UI/UX Design & Analysis',
name: 'Nithin',
),
const SizedBox(height: 8),
_buildTeamCard(
context,
role: 'Notification Services',
name: 'Jason',
),
const SizedBox(height: 8),
_buildTeamCard(
context,
role: 'Database Architecture',
name: 'Aadi',
),
const SizedBox(height: 32),
Text(
'Aadi\nJason\nJonathan\nNithin',
'Major Tools',
style: Theme.of(
context,
).textTheme.bodyLarge?.copyWith(height: 1.5),
).textTheme.titleLarge?.copyWith(fontWeight: FontWeight.w600),
),
const SizedBox(height: 12),
_buildToolCard(
context,
name: 'Flutter',
description: 'flutter.dev',
),
const Spacer(),
const SizedBox(height: 8),
_buildToolCard(
context,
name: 'SQFlite',
description: 'pub.dev/packages/sqflite',
),
const SizedBox(height: 8),
_buildToolCard(
context,
name: 'FL Chart',
description: 'pub.dev/packages/fl_chart',
),
const SizedBox(height: 8),
_buildToolCard(
context,
name: 'Permission Handler',
description: 'pub.dev/packages/permission_handler',
),
const SizedBox(height: 32),
SizedBox(
width: double.infinity,
child: FilledButton.icon(
Expand Down
71 changes: 31 additions & 40 deletions app/lib/pages/support_page.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class HelpSupportPage extends StatelessWidget {
const HelpSupportPage({super.key});
Expand Down Expand Up @@ -43,57 +44,47 @@ class HelpSupportPage extends StatelessWidget {
),
),
const SizedBox(height: 16),
_buildContactItem(
_buildSupportTile(
context,
icon: Icons.person_outline,
name: 'Jonathan',
number: '+91 77365 81435',
),
const SizedBox(height: 32),
Text(
'FAQ',
style: Theme.of(context).textTheme.titleLarge?.copyWith(
fontWeight: FontWeight.bold,
color: Theme.of(context).colorScheme.primary,
),
),
const SizedBox(height: 16),
const Text(
'For any urgent issues, please reach out to our support team.',
style: TextStyle(fontSize: 16, height: 1.5),
title: 'Help',
),
],
),
),
);
}

Widget _buildContactItem(
Future<void> _launchGitHubIssues() async {
final Uri url = Uri.parse('https://github.com/orbitronhd-org/dose/issues');
if (!await launchUrl(url, mode: LaunchMode.externalApplication)) {
debugPrint('Could not launch $url');
}
}

Widget _buildSupportTile(
BuildContext context, {
required IconData icon,
required String name,
required String number,
required String title,
}) {
return Row(
children: [
Icon(icon, color: Theme.of(context).colorScheme.secondary),
const SizedBox(width: 16),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
name,
style: const TextStyle(fontWeight: FontWeight.w600, fontSize: 16),
),
Text(
number,
style: TextStyle(
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
return ListTile(
leading: Icon(
Icons.help_outline,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
title: Text(
title,
style: Theme.of(context).textTheme.bodyLarge?.copyWith(
fontWeight: FontWeight.w500,
),
],
),
],
),
trailing: Icon(
Icons.open_in_new,
color: Theme.of(context).colorScheme.onSurfaceVariant,
size: 20,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
onTap: _launchGitHubIssues,
);
}
}
Loading