Added Android app icon and SharedPreferences to store dark mode setting.
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 118 KiB |
|
@ -16,10 +16,10 @@ class MyAboutDialog extends StatelessWidget {
|
||||||
Text('About the app', style: TextStyle(fontSize: 18)),
|
Text('About the app', style: TextStyle(fontSize: 18)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
content: SingleChildScrollView(
|
content: const SingleChildScrollView(
|
||||||
child: ListBody(
|
child: ListBody(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
const Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.apps, size: 50),
|
Icon(Icons.apps, size: 50),
|
||||||
SizedBox(width: 10),
|
SizedBox(width: 10),
|
||||||
|
@ -33,11 +33,11 @@ class MyAboutDialog extends StatelessWidget {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
const Text(
|
Text(
|
||||||
'© 2024 Team ${Constants.appTitle}. All rights reserved.'),
|
'© 2024 Team ${Constants.appTitle}. All rights reserved.'),
|
||||||
const SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
GestureDetector(
|
/*GestureDetector(
|
||||||
onTap: () => {},
|
onTap: () => {},
|
||||||
child: const Text(
|
child: const Text(
|
||||||
'https://www.no-website.yet',
|
'https://www.no-website.yet',
|
||||||
|
@ -46,9 +46,9 @@ class MyAboutDialog extends StatelessWidget {
|
||||||
decoration: TextDecoration.underline,
|
decoration: TextDecoration.underline,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),*/
|
||||||
const SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
const Text(
|
Text(
|
||||||
'${Constants.appTitle} helps entrepreneurs find the right co-founders who complement their skills and also share their interests and business goals. '
|
'${Constants.appTitle} helps entrepreneurs find the right co-founders who complement their skills and also share their interests and business goals. '
|
||||||
'Whether you are looking for a tech expert, a marketing guru, or a visionary partner. This app aims to help you finding a perfect co-founder to bring your startup ideas to life.',
|
'Whether you are looking for a tech expert, a marketing guru, or a visionary partner. This app aims to help you finding a perfect co-founder to bring your startup ideas to life.',
|
||||||
),
|
),
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class MyAppIcon extends StatelessWidget {
|
||||||
|
const MyAppIcon({super.key, this.size});
|
||||||
|
|
||||||
|
final double? size;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Image.asset(
|
||||||
|
'lib/assets/app_icon/app_icon_blue.png',
|
||||||
|
height: size,
|
||||||
|
width: size,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,12 +24,15 @@ class MyDrawer extends StatelessWidget {
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
// logo
|
// logo
|
||||||
DrawerHeader(
|
SizedBox(
|
||||||
child: Center(
|
height: 100,
|
||||||
child: Icon(
|
child: DrawerHeader(
|
||||||
Icons.people_alt,
|
child: Center(
|
||||||
color: Theme.of(context).colorScheme.primary,
|
child: Icon(
|
||||||
size: 40,
|
Icons.people_alt,
|
||||||
|
color: Theme.of(context).colorScheme.primary,
|
||||||
|
size: 40,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -111,7 +114,6 @@ class MyDrawer extends StatelessWidget {
|
||||||
title: const Text('My Profile'),
|
title: const Text('My Profile'),
|
||||||
leading: const Icon(Icons.edit_note),
|
leading: const Icon(Icons.edit_note),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// pop the drawer first, then navigate to destination
|
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
|
@ -130,7 +132,6 @@ class MyDrawer extends StatelessWidget {
|
||||||
title: const Text("App Settings"),
|
title: const Text("App Settings"),
|
||||||
leading: const Icon(Icons.settings),
|
leading: const Icon(Icons.settings),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// pop the drawer and navigate to settings page
|
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
|
@ -143,11 +144,9 @@ class MyDrawer extends StatelessWidget {
|
||||||
),
|
),
|
||||||
|
|
||||||
// horizontal line
|
// horizontal line
|
||||||
Padding(
|
const Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
padding: EdgeInsets.symmetric(horizontal: 16),
|
||||||
child: Divider(
|
child: Divider(),
|
||||||
color: Theme.of(context).colorScheme.primary,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
|
|
||||||
// about tile
|
// about tile
|
||||||
|
|
|
@ -3,8 +3,8 @@ class Constants {
|
||||||
|
|
||||||
/// Title of the app
|
/// Title of the app
|
||||||
static const String appTitle = 'Cofounderella';
|
static const String appTitle = 'Cofounderella';
|
||||||
static const String appVersion = '1.0.0';
|
static const String appVersion = '1.0.1';
|
||||||
static const String appCompilationDate = '2024-06-14';
|
static const String appCompilationDate = '2024-06-19';
|
||||||
|
|
||||||
static const String dbCollectionFeedbacks = 'feedbacks';
|
static const String dbCollectionFeedbacks = 'feedbacks';
|
||||||
static const String dbCollectionUsers = 'Users';
|
static const String dbCollectionUsers = 'Users';
|
||||||
|
@ -58,4 +58,6 @@ class Constants {
|
||||||
static const String dbStoragePathProfiles = 'profile_images';
|
static const String dbStoragePathProfiles = 'profile_images';
|
||||||
|
|
||||||
static const String pathLanguagesJson = 'lib/assets/languages.json';
|
static const String pathLanguagesJson = 'lib/assets/languages.json';
|
||||||
|
|
||||||
|
static const String prefKeyThemeDarkMode = 'theme_dark_mode';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import '../constants.dart';
|
import '../constants.dart';
|
||||||
import '../services/auth/auth_gate.dart';
|
import '../services/auth/auth_gate.dart';
|
||||||
import '../themes/theme_provider.dart';
|
import '../themes/theme_provider.dart';
|
||||||
|
@ -16,10 +17,14 @@ void main() async {
|
||||||
await Firebase.initializeApp(
|
await Firebase.initializeApp(
|
||||||
options: DefaultFirebaseOptions.currentPlatform,
|
options: DefaultFirebaseOptions.currentPlatform,
|
||||||
);
|
);
|
||||||
// Standard stuff
|
|
||||||
|
// Init SharedPreferences
|
||||||
|
final prefs = await SharedPreferences.getInstance();
|
||||||
|
final isDarkMode = prefs.getBool(Constants.prefKeyThemeDarkMode) ?? false;
|
||||||
|
|
||||||
runApp(
|
runApp(
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: (context) => ThemeProvider(),
|
create: (context) => ThemeProvider(initialIsDarkMode: isDarkMode),
|
||||||
child: const MyApp(),
|
child: const MyApp(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:firebase_auth/firebase_auth.dart';
|
import 'package:firebase_auth/firebase_auth.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../components/my_app_icon.dart';
|
||||||
import '../components/my_button.dart';
|
import '../components/my_button.dart';
|
||||||
import '../components/my_textfield.dart';
|
import '../components/my_textfield.dart';
|
||||||
import '../constants.dart';
|
import '../constants.dart';
|
||||||
|
@ -16,7 +17,6 @@ class LoginPage extends StatelessWidget {
|
||||||
|
|
||||||
LoginPage({super.key, required this.onTap});
|
LoginPage({super.key, required this.onTap});
|
||||||
|
|
||||||
// login method
|
|
||||||
void _login(BuildContext context) async {
|
void _login(BuildContext context) async {
|
||||||
if (_emailController.text.trim().isEmpty ||
|
if (_emailController.text.trim().isEmpty ||
|
||||||
_passwordController.text.trim().isEmpty) {
|
_passwordController.text.trim().isEmpty) {
|
||||||
|
@ -27,8 +27,6 @@ class LoginPage extends StatelessWidget {
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// try login
|
|
||||||
try {
|
try {
|
||||||
await AuthService().signInWithEmailPassword(
|
await AuthService().signInWithEmailPassword(
|
||||||
_emailController.text,
|
_emailController.text,
|
||||||
|
@ -56,30 +54,24 @@ class LoginPage extends StatelessWidget {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
// logo and welcome message
|
// logo and welcome message
|
||||||
Icon(
|
const MyAppIcon(size: 128),
|
||||||
Icons.people_alt,
|
const SizedBox(height: 8),
|
||||||
size: 60,
|
|
||||||
color: Theme.of(context).colorScheme.primary,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
Text(
|
Text(
|
||||||
'Welcome to ${Constants.appTitle}',
|
'Welcome to ${Constants.appTitle}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Theme.of(context).colorScheme.primary,
|
color: Theme.of(context).colorScheme.primary,
|
||||||
fontSize: 16,
|
fontSize: 18,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 25),
|
const SizedBox(height: 25),
|
||||||
|
|
||||||
// email textfield
|
// text fields
|
||||||
MyTextField(
|
MyTextField(
|
||||||
hintText: 'E-Mail',
|
hintText: 'E-Mail',
|
||||||
obscureText: false,
|
obscureText: false,
|
||||||
controller: _emailController,
|
controller: _emailController,
|
||||||
),
|
),
|
||||||
|
|
||||||
// password textfield
|
|
||||||
MyTextField(
|
MyTextField(
|
||||||
hintText: 'Password',
|
hintText: 'Password',
|
||||||
obscureText: true,
|
obscureText: true,
|
||||||
|
@ -94,28 +86,29 @@ class LoginPage extends StatelessWidget {
|
||||||
onTap: () => _login(context),
|
onTap: () => _login(context),
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 25),
|
|
||||||
|
|
||||||
// register now
|
// register now
|
||||||
Row(
|
Padding(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
padding: const EdgeInsets.all(24.0),
|
||||||
children: [
|
child: Row(
|
||||||
Text(
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
'Don\'t have an account? ',
|
children: [
|
||||||
style: TextStyle(
|
Text(
|
||||||
color: Theme.of(context).colorScheme.primary,
|
'Don\'t have an account? ',
|
||||||
),
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: onTap,
|
|
||||||
child: const Text(
|
|
||||||
'Register now',
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
color: Theme.of(context).colorScheme.primary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
GestureDetector(
|
||||||
],
|
onTap: onTap,
|
||||||
|
child: const Text(
|
||||||
|
'Register now',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:firebase_auth/firebase_auth.dart';
|
import 'package:firebase_auth/firebase_auth.dart';
|
||||||
|
import '../components/my_app_icon.dart';
|
||||||
import '../components/my_button.dart';
|
import '../components/my_button.dart';
|
||||||
import '../components/my_textfield.dart';
|
import '../components/my_textfield.dart';
|
||||||
import '../utils/helper_dialogs.dart';
|
import '../utils/helper_dialogs.dart';
|
||||||
|
@ -77,12 +78,8 @@ class RegisterPage extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 25),
|
const SizedBox(height: 25),
|
||||||
// logo and register message
|
// logo and register message
|
||||||
Icon(
|
const MyAppIcon(size: 128),
|
||||||
Icons.people_alt,
|
const SizedBox(height: 8),
|
||||||
size: 60,
|
|
||||||
color: Theme.of(context).colorScheme.primary,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 25.0),
|
padding: const EdgeInsets.symmetric(horizontal: 25.0),
|
||||||
child: Text(
|
child: Text(
|
||||||
|
@ -137,28 +134,29 @@ class RegisterPage extends StatelessWidget {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
const SizedBox(height: 25),
|
|
||||||
|
|
||||||
// register now
|
// register now
|
||||||
Row(
|
Padding(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
padding: const EdgeInsets.all(24.0),
|
||||||
children: [
|
child: Row(
|
||||||
Text(
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
'Already have an account? ',
|
children: [
|
||||||
style: TextStyle(
|
Text(
|
||||||
color: Theme.of(context).colorScheme.primary,
|
'Already have an account? ',
|
||||||
),
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: onTap,
|
|
||||||
child: const Text(
|
|
||||||
'Login now',
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
color: Theme.of(context).colorScheme.primary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
GestureDetector(
|
||||||
],
|
onTap: onTap,
|
||||||
|
child: const Text(
|
||||||
|
'Login now',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -25,12 +25,15 @@ class SettingsPage extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
// dark mode switch
|
// dark mode switch
|
||||||
const Text("Dark Mode"),
|
const Text("Dark Mode"),
|
||||||
CupertinoSwitch(
|
Consumer<ThemeProvider>(
|
||||||
value:
|
builder: (context, themeProvider, child) {
|
||||||
Provider.of<ThemeProvider>(context, listen: false).isDarkMode,
|
return CupertinoSwitch(
|
||||||
onChanged: (value) =>
|
value: themeProvider.isDarkMode,
|
||||||
Provider.of<ThemeProvider>(context, listen: false)
|
onChanged: (value) {
|
||||||
.toggleTheme(),
|
themeProvider.toggleTheme();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,23 +1,35 @@
|
||||||
|
import 'package:cofounderella/constants.dart';
|
||||||
import 'package:cofounderella/themes/dark_mode.dart';
|
import 'package:cofounderella/themes/dark_mode.dart';
|
||||||
import 'package:cofounderella/themes/light_mode.dart';
|
import 'package:cofounderella/themes/light_mode.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
class ThemeProvider extends ChangeNotifier {
|
class ThemeProvider extends ChangeNotifier {
|
||||||
ThemeData _themeData = lightMode;
|
ThemeData _themeData;
|
||||||
|
|
||||||
|
ThemeProvider({required bool initialIsDarkMode})
|
||||||
|
: _themeData = initialIsDarkMode ? darkMode : lightMode;
|
||||||
|
|
||||||
ThemeData get themeData => _themeData;
|
ThemeData get themeData => _themeData;
|
||||||
|
|
||||||
bool get isDarkMode => _themeData == darkMode;
|
bool get isDarkMode => _themeData == darkMode;
|
||||||
|
|
||||||
set themeData(ThemeData themeData) {
|
set themeData(ThemeData themeData) {
|
||||||
_themeData = themeData;
|
_themeData = themeData;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
_saveTheme();
|
||||||
}
|
}
|
||||||
|
|
||||||
void toggleTheme() {
|
void toggleTheme() {
|
||||||
if(_themeData == lightMode) {
|
if (_themeData == lightMode) {
|
||||||
themeData = darkMode;
|
themeData = darkMode;
|
||||||
} else {
|
} else {
|
||||||
themeData = lightMode;
|
themeData = lightMode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
void _saveTheme() async {
|
||||||
|
final prefs = await SharedPreferences.getInstance();
|
||||||
|
prefs.setBool(Constants.prefKeyThemeDarkMode, isDarkMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
180
pubspec.lock
|
@ -9,6 +9,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.35"
|
version: "1.3.35"
|
||||||
|
archive:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: archive
|
||||||
|
sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.6.1"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -41,6 +49,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.0"
|
version: "1.3.0"
|
||||||
|
checked_yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: checked_yaml
|
||||||
|
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.3"
|
||||||
|
cli_util:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cli_util
|
||||||
|
sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.4.1"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -121,6 +145,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.1"
|
version: "1.3.1"
|
||||||
|
ffi:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: ffi
|
||||||
|
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.2"
|
||||||
|
file:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: file
|
||||||
|
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "7.0.0"
|
||||||
file_selector_linux:
|
file_selector_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -238,6 +278,14 @@ packages:
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
flutter_launcher_icons:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_launcher_icons
|
||||||
|
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.13.1"
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
@ -368,6 +416,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.2"
|
||||||
|
image:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: image
|
||||||
|
sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.2.0"
|
||||||
image_cropper:
|
image_cropper:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -464,6 +520,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.1"
|
version: "0.7.1"
|
||||||
|
json_annotation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: json_annotation
|
||||||
|
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.9.0"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -560,6 +624,30 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.1"
|
version: "1.0.1"
|
||||||
|
path_provider_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_linux
|
||||||
|
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.1"
|
||||||
|
path_provider_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_platform_interface
|
||||||
|
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.2"
|
||||||
|
path_provider_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_windows
|
||||||
|
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.1"
|
||||||
percent_indicator:
|
percent_indicator:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -576,6 +664,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.2"
|
version: "6.0.2"
|
||||||
|
platform:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: platform
|
||||||
|
sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.5"
|
||||||
plugin_platform_interface:
|
plugin_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -592,6 +688,62 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.2"
|
version: "6.1.2"
|
||||||
|
shared_preferences:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: shared_preferences
|
||||||
|
sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.3"
|
||||||
|
shared_preferences_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_android
|
||||||
|
sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.3"
|
||||||
|
shared_preferences_foundation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_foundation
|
||||||
|
sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
|
shared_preferences_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_linux
|
||||||
|
sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.2"
|
||||||
|
shared_preferences_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_platform_interface
|
||||||
|
sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.2"
|
||||||
|
shared_preferences_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_web
|
||||||
|
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.0"
|
||||||
|
shared_preferences_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shared_preferences_windows
|
||||||
|
sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.2"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
@ -733,6 +885,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.1"
|
version: "0.5.1"
|
||||||
|
win32:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: win32
|
||||||
|
sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "5.5.1"
|
||||||
|
xdg_directories:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: xdg_directories
|
||||||
|
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.4"
|
||||||
xml:
|
xml:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -741,6 +909,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.5.0"
|
version: "6.5.0"
|
||||||
|
yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yaml
|
||||||
|
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.3.3 <4.0.0"
|
dart: ">=3.4.0 <4.0.0"
|
||||||
flutter: ">=3.19.0"
|
flutter: ">=3.22.0"
|
||||||
|
|
76
pubspec.yaml
|
@ -1,39 +1,17 @@
|
||||||
name: cofounderella
|
name: cofounderella
|
||||||
description: "App for Cofounder Matching"
|
description: "App for Co-Founder Matching"
|
||||||
# The following line prevents the package from being accidentally published to
|
|
||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
||||||
# The following defines the version and build number for your application.
|
version: 1.0.1
|
||||||
# A version number is three numbers separated by dots, like 1.2.43
|
|
||||||
# followed by an optional build number separated by a +.
|
|
||||||
# Both the version and the builder number may be overridden in flutter
|
|
||||||
# build by specifying --build-name and --build-number, respectively.
|
|
||||||
# In Android, build-name is used as versionName while build-number used as versionCode.
|
|
||||||
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
|
|
||||||
# Read more about iOS versioning at
|
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
|
||||||
version: 1.0.0+1
|
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.3.3 <4.0.0'
|
sdk: '>=3.3.3 <4.0.0'
|
||||||
|
|
||||||
# Dependencies specify other packages that your package needs in order to work.
|
|
||||||
# To automatically upgrade your package dependencies to the latest versions
|
|
||||||
# consider running `flutter pub upgrade --major-versions`. Alternatively,
|
|
||||||
# dependencies can be manually updated by changing the version numbers below to
|
|
||||||
# the latest version available on pub.dev. To see which dependencies have newer
|
|
||||||
# versions available, run `flutter pub outdated`.
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
|
||||||
cupertino_icons: ^1.0.6
|
cupertino_icons: ^1.0.6
|
||||||
firebase_core: ^2.30.1
|
firebase_core: ^2.30.1
|
||||||
firebase_auth: ^4.19.4
|
firebase_auth: ^4.19.4
|
||||||
|
@ -50,59 +28,25 @@ dependencies:
|
||||||
percent_indicator: ^4.2.3
|
percent_indicator: ^4.2.3
|
||||||
osm_nominatim: ^3.0.0
|
osm_nominatim: ^3.0.0
|
||||||
expandable_text: ^2.3.0
|
expandable_text: ^2.3.0
|
||||||
|
shared_preferences: ^2.2.3
|
||||||
|
flutter_launcher_icons: ^0.13.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
# The "flutter_lints" package below contains a set of recommended lints to
|
|
||||||
# encourage good coding practices. The lint set provided by the package is
|
|
||||||
# activated in the `analysis_options.yaml` file located at the root of your
|
|
||||||
# package. See that file for information about deactivating specific lint
|
|
||||||
# rules and activating additional ones.
|
|
||||||
flutter_lints: ^3.0.0
|
flutter_lints: ^3.0.0
|
||||||
|
|
||||||
# For information on the generic Dart part of this file, see the
|
flutter_launcher_icons:
|
||||||
# following page: https://dart.dev/tools/pub/pubspec
|
android: true
|
||||||
|
ios: false
|
||||||
|
image_path: "lib/assets/app_icon/app_icon_blue.png"
|
||||||
|
|
||||||
# The following section is specific to Flutter packages.
|
# The following section is specific to Flutter packages.
|
||||||
flutter:
|
flutter:
|
||||||
|
|
||||||
# The following line ensures that the Material Icons font is
|
|
||||||
# included with your application, so that you can use the icons in
|
|
||||||
# the material Icons class.
|
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
|
|
||||||
# To add assets to your application, add an assets section, like this:
|
|
||||||
# assets:
|
|
||||||
# - images/a_dot_burr.jpeg
|
|
||||||
# - images/a_dot_ham.jpeg
|
|
||||||
assets:
|
assets:
|
||||||
- lib/assets/languages.json
|
- lib/assets/languages.json
|
||||||
- lib/assets/flag_icons/
|
- lib/assets/flag_icons/
|
||||||
|
- lib/assets/app_icon/app_icon_blue.png
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
|
||||||
# https://flutter.dev/assets-and-images/#resolution-aware
|
|
||||||
|
|
||||||
# For details regarding adding assets from package dependencies, see
|
|
||||||
# https://flutter.dev/assets-and-images/#from-packages
|
|
||||||
|
|
||||||
# To add custom fonts to your application, add a fonts section here,
|
|
||||||
# in this "flutter" section. Each entry in this list should have a
|
|
||||||
# "family" key with the font family name, and a "fonts" key with a
|
|
||||||
# list giving the asset and other descriptors for the font. For
|
|
||||||
# example:
|
|
||||||
# fonts:
|
|
||||||
# - family: Schyler
|
|
||||||
# fonts:
|
|
||||||
# - asset: fonts/Schyler-Regular.ttf
|
|
||||||
# - asset: fonts/Schyler-Italic.ttf
|
|
||||||
# style: italic
|
|
||||||
# - family: Trajan Pro
|
|
||||||
# fonts:
|
|
||||||
# - asset: fonts/TrajanPro.ttf
|
|
||||||
# - asset: fonts/TrajanPro_Bold.ttf
|
|
||||||
# weight: 700
|
|
||||||
#
|
|
||||||
# For details regarding fonts from package dependencies,
|
|
||||||
# see https://flutter.dev/custom-fonts/#from-packages
|
|
||||||
|
|