Skip to content
Open
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
18 changes: 18 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"configurations": [
{
"name": "windows-gcc-x64",
"includePath": [
"${workspaceFolder}/**"
],
"compilerPath": "C:/msys64/mingw64/bin/gcc.exe",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "windows-gcc-x64",
"compilerArgs": [
""
]
}
],
"version": 4
}
24 changes: 24 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": true,
"cwd": "c:/pocket_pal",
"program": "c:/pocket_pal/build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
59 changes: 58 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,60 @@
{
"cmake.ignoreCMakeListsMissing": true
"cmake.ignoreCMakeListsMissing": true,
"C_Cpp_Runner.cCompilerPath": "gcc",
"C_Cpp_Runner.cppCompilerPath": "g++",
"C_Cpp_Runner.debuggerPath": "gdb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wcast-align",
"-Wconversion",
"-Wsign-conversion",
"-Wnull-dereference"
],
"C_Cpp_Runner.msvcWarnings": [
"/W4",
"/permissive-",
"/w14242",
"/w14287",
"/w14296",
"/w14311",
"/w14826",
"/w44062",
"/w44242",
"/w14905",
"/w14906",
"/w14263",
"/w44265",
"/w14928"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
],
"C_Cpp_Runner.useAddressSanitizer": false,
"C_Cpp_Runner.useUndefinedSanitizer": false,
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false
}
3 changes: 2 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:pocket_pal/pages/dash.dart';
import 'package:pocket_pal/pages/sign_in.dart';
import 'package:flutter/services.dart';

Expand All @@ -13,6 +14,6 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.leanBack);

return MaterialApp(debugShowCheckedModeBanner: false, home: SignInScreen());
return MaterialApp(debugShowCheckedModeBanner: false, home: DashBoardPage());
}
}
13 changes: 2 additions & 11 deletions lib/pages/dash.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@ import 'package:flutter/material.dart';
import 'package:pocket_pal/widgets/bottom_navigation_bar.dart';
import 'package:pocket_pal/widgets/horizontal_cards.dart';
import 'package:pocket_pal/widgets/profile_section.dart';
<<<<<<< HEAD
import 'package:pocket_pal/widgets/radial_chart.dart';
import 'package:rive/rive.dart';
=======
import 'package:pocket_pal/widgets/pi_chart.dart';
>>>>>>> 6daba8125d6946b50523811e219e6703666d7260
import 'package:rive/rive.dart';

class DashBoardPage extends StatefulWidget {
const DashBoardPage({super.key});
Expand All @@ -20,11 +16,6 @@ class _DashBoardPageState extends State<DashBoardPage> {
int _selectedIndex = 0;
bool _isProfileVisible = true;

<<<<<<< HEAD


=======
>>>>>>> 6daba8125d6946b50523811e219e6703666d7260
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
Expand Down Expand Up @@ -79,7 +70,7 @@ class _DashBoardPageState extends State<DashBoardPage> {
children: [
SizedBox(
height: MediaQuery.of(context).size.height * 0.03),
HorizontalCards(),
const HorizontalCards(isSubscriptionPage: false),
SizedBox(
height: MediaQuery.of(context).size.height * 0.03),
PieChartWidget(data: getPieChartData()),
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/sign_in.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:pocket_pal/pages/dash.dart';

class SignInScreen extends StatefulWidget {
const SignInScreen({Key? key}) : super(key: key);
const SignInScreen({super.key});

@override
State<SignInScreen> createState() => _SignInScreenState();
Expand Down
101 changes: 101 additions & 0 deletions lib/pages/subscription_page.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import 'package:flutter/material.dart';
import 'package:pocket_pal/widgets/horizontal_cards.dart';
import 'package:rive/rive.dart'; // Add this import

class SubscriptionPage extends StatelessWidget {
const SubscriptionPage({super.key});

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.transparent,

resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text('Subscription Tracker',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.bold,
fontFamily: 'Arcade',
color: Colors.white,
)),
backgroundColor: const Color.fromARGB(255, 49, 2, 65),
//remove back button
automaticallyImplyLeading: false,
),
body: Stack(
children: [
const Positioned.fill(
child: RiveAnimation.asset(
'assets/animations/cosmos.riv',
fit: BoxFit.cover,
),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
// Search Bar
TextField(
decoration: InputDecoration(
hintText: 'Search',
hintStyle: const TextStyle(color: Colors.white70),
prefixIcon: const Icon(Icons.search, color: Colors.white70),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: BorderSide(color: Colors.purple.shade100),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
borderSide: const BorderSide(color: Colors.purple),
),
fillColor: const Color.fromARGB(70, 168, 140, 215),
filled: true,
),
),
const SizedBox(height: 20),

// Active/Expired Cards
const HorizontalCards(isSubscriptionPage: true),
const SizedBox(height: 20),

// Spending Insights
const Text(
'Spending Insights',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold,
color: Colors.white),
),
Expanded(
child: Container(
margin: const EdgeInsets.only(top: 10),
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: const Color.fromARGB(45, 86, 33, 131),
borderRadius: BorderRadius.circular(10),
border: Border.all(color: const Color.fromARGB(255, 0, 0, 0)),

),
child: const Center(
child: Text('Display list of subscriptions here',
style: TextStyle(
fontSize: 16,
color: Colors.white70,
)),
),
),
),
],
),
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: () {
// TODO: Implement add subscription functionality
},
backgroundColor: const Color.fromARGB(255, 49, 2, 65),
child: const Icon(Icons.add, color: Colors.white),
),
);
}
}
12 changes: 11 additions & 1 deletion lib/widgets/bottom_navigation_bar.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:pocket_pal/pages/subscription_page.dart';

class PocketPalBottomNavigationBar extends StatelessWidget {
const PocketPalBottomNavigationBar({
Expand Down Expand Up @@ -37,7 +38,16 @@ class PocketPalBottomNavigationBar extends StatelessWidget {
],
currentIndex: selectedIndex,
selectedItemColor: Colors.white,
onTap: (index) => onItemTapped(index),
onTap: (index) {
if (index == 2) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SubscriptionPage()),
);
} else {
onItemTapped(index);
}
},
);
}
}
16 changes: 16 additions & 0 deletions lib/widgets/cosmos.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:rive/rive.dart';

class CosmosBackground extends StatelessWidget {
const CosmosBackground({super.key});

@override
Widget build(BuildContext context) {
return const Positioned.fill(
child: RiveAnimation.asset(
'assets/animations/cosmos.riv',
fit: BoxFit.cover,
),
);
}
}
Loading