Skip to content

Commit

Permalink
Added Component Model
Browse files Browse the repository at this point in the history
Fixed UserScreen Avatar Animation
Completed ComponentWidget
Connected Firebase Cloud Firestore
  • Loading branch information
ryanhossain9797 committed Oct 29, 2019
1 parent 0e86edb commit 15832b7
Show file tree
Hide file tree
Showing 16 changed files with 210 additions and 70 deletions.
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.zireael.pc_build_assistant"
minSdkVersion 16
minSdkVersion 21
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
Expand Down
7 changes: 7 additions & 0 deletions lib/arguments/user_screen_arguments.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import 'package:flutter/material.dart';

class UserScreenArguments {
final Image avatar;

UserScreenArguments(this.avatar);
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:pc_build_assistant/constants.dart';
import 'package:pc_build_assistant/models/pc_component.dart';

class PCComponent extends StatelessWidget {
final String title;
const PCComponent({Key key, @required this.title}) : super(key: key);
final PCComponentModel component;
const PCComponent({Key key, @required this.component}) : super(key: key);

@override
Widget build(BuildContext context) {
Expand Down Expand Up @@ -36,11 +37,11 @@ class PCComponent extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"EVGA",
component.manufacturer,
style: TextStyle(fontFamily: "Rodin", fontSize: 20),
),
Text(
"EVGA Gtx 780ti Founder's Edition",
component.name,
),
],
),
Expand All @@ -54,8 +55,9 @@ class PCComponent extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("VRAM: 3GB"),
Text("TDP: 150Watts")
Text(
component.description,
),
],
),
),
Expand Down
File renamed without changes.
10 changes: 10 additions & 0 deletions lib/database_fake.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'models/pc_component.dart';

class FakeDataBase {
static List<PCComponentModel> components = [
PCComponentModel(
manufacturer: "EVGA", name: "GTX 780ti", description: "VRAM: 3GB"),
PCComponentModel(
manufacturer: "EVGA", name: "GTX 780ti", description: "VRAM: 3GB")
];
}
2 changes: 2 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pc_build_assistant/screens/user_screen.dart';

import 'screens/add_component.dart';
import 'screens/home_screen.dart';
import 'screens/login_screen.dart';
import 'screens/registration_screen.dart';
Expand Down Expand Up @@ -42,6 +43,7 @@ class MyApp extends StatelessWidget {
HomeScreen.id: (context) => HomeScreen(),
ResetScreen.id: (context) => ResetScreen(),
UserScreen.id: (context) => UserScreen(),
AddScreen.id: (context) => AddScreen(),
},
initialRoute: WelcomeScreen.id,
);
Expand Down
6 changes: 6 additions & 0 deletions lib/models/pc_component.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class PCComponentModel {
final String manufacturer;
final String name;
final String description;
PCComponentModel({this.manufacturer, this.name, this.description});
}
78 changes: 78 additions & 0 deletions lib/screens/add_component.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:pc_build_assistant/components/rounded_button_widget.dart';
import 'package:pc_build_assistant/constants.dart';
import 'package:pc_build_assistant/models/pc_component.dart';

class AddScreen extends StatefulWidget {
static String id = "/addScreenId";

@override
_AddScreenState createState() => _AddScreenState();
}

class _AddScreenState extends State<AddScreen> {
String _manufacturer = "";
String _name = "";
String _description = "";
Firestore _storage = Firestore.instance;

@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: EdgeInsets.all(24),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
TextField(
decoration: InputDecoration(hintText: "Manufacturer"),
onChanged: (manufacturer) {
_manufacturer = manufacturer;
},
),
TextField(
decoration: InputDecoration(hintText: "Name"),
onChanged: (name) {
_name = name;
},
),
TextField(
decoration: InputDecoration(hintText: "Description"),
onChanged: (description) {
_description = description;
},
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: RoundedButton(
title: "Add",
color: kRegisterButtonColor,
onPressed: () {
PCComponentModel model = PCComponentModel(
name: _name,
manufacturer: _manufacturer,
description: _description,
);
print(model.manufacturer +
" " +
model.name +
" " +
model.description);
_storage.collection('pc-components').add(
{
"manufacturer": _manufacturer,
"name": _name,
"description": _description
},
);
},
),
)
],
),
),
);
}
}
83 changes: 50 additions & 33 deletions lib/screens/home_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:pc_build_assistant/components/pc_component.dart';
import 'package:pc_build_assistant/arguments/user_screen_arguments.dart';
import 'package:pc_build_assistant/components/pc_component_widget.dart';
import 'package:pc_build_assistant/constants.dart';
import 'package:pc_build_assistant/database_fake.dart';
import 'package:pc_build_assistant/screens/login_screen.dart';
import 'package:pc_build_assistant/screens/user_screen.dart';
import 'package:simple_gravatar/simple_gravatar.dart';
Expand Down Expand Up @@ -81,26 +83,45 @@ class _HomeScreenState extends State<HomeScreen> {
if (_currentUser == null) {
await Navigator.pushNamed(context, LoginScreen.id);
} else {
await Navigator.pushNamed(context, UserScreen.id);
await Navigator.pushNamed(
context,
UserScreen.id,
arguments: UserScreenArguments(
Image.network(
Gravatar(_currentUser.email).imageUrl(
defaultImage: GravatarImage.retro,
size: 300,
fileExtension: true,
),
),
),
);
}
getCurrentUser();
},
child: _currentUser != null
? CircleAvatar(
child: ClipOval(
child: Image.network(
Gravatar(_currentUser.email).imageUrl(
defaultImage: GravatarImage.retro,
fileExtension: true,
child: Hero(
tag: "avatar",
child: _currentUser != null
? CircleAvatar(
child: ClipOval(
child: Image.network(
Gravatar(_currentUser.email).imageUrl(
defaultImage: GravatarImage.retro,
size: 300,
fileExtension: true,
),
),
),
)
: CircleAvatar(
backgroundColor: Colors.transparent,
foregroundColor: Color(0xFFFFFFFF),
child: Icon(
FontAwesomeIcons.user,
size: 20,
),
),
)
: CircleAvatar(
backgroundColor: kLoginButtonColor,
foregroundColor: Color(0xFFFFFFFF),
child: Icon(Icons.person),
),
),
),
)
],
Expand All @@ -121,28 +142,24 @@ class _HomeScreenState extends State<HomeScreen> {
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: ListView(
children: <Widget>[
PCComponent(title: "First 1"),
PCComponent(title: "First 2"),
PCComponent(title: "First 3"),
PCComponent(title: "First 4"),
PCComponent(title: "First 5"),
PCComponent(title: "First 6"),
],
child: ListView.builder(
itemCount: FakeDataBase.components.length,
itemBuilder: (context, index) {
return PCComponent(
component: FakeDataBase.components[index],
);
},
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: ListView(
children: <Widget>[
PCComponent(title: "Second 1"),
PCComponent(title: "Second 2"),
PCComponent(title: "Second 3"),
PCComponent(title: "Second 4"),
PCComponent(title: "Second 5"),
PCComponent(title: "Second 6"),
],
child: ListView.builder(
itemCount: FakeDataBase.components.length,
itemBuilder: (context, index) {
return PCComponent(
component: FakeDataBase.components[index],
);
},
),
)
],
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/login_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:modal_progress_hud/modal_progress_hud.dart';
import 'package:pc_build_assistant/components/rounded_button.dart';
import 'package:pc_build_assistant/components/rounded_button_widget.dart';
import 'package:pc_build_assistant/constants.dart';
import 'package:pc_build_assistant/screens/reset_screen.dart';
import 'package:pc_build_assistant/screens/welcome_screen.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/registration_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:modal_progress_hud/modal_progress_hud.dart';
import 'package:pc_build_assistant/components/rounded_button.dart';
import 'package:pc_build_assistant/components/rounded_button_widget.dart';
import 'package:pc_build_assistant/constants.dart';

import 'home_screen.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/reset_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:modal_progress_hud/modal_progress_hud.dart';
import 'package:pc_build_assistant/components/rounded_button.dart';
import 'package:pc_build_assistant/components/rounded_button_widget.dart';
import 'package:pc_build_assistant/constants.dart';

//import 'home_screen.dart';
Expand Down
Loading

0 comments on commit 15832b7

Please sign in to comment.