first step form size config

pull/12/head
Elham Rababah 6 years ago
parent 60a3b12719
commit 47a897a2c9

@ -0,0 +1,47 @@
import 'package:flutter/cupertino.dart';
class SizeConfig {
static double _blockWidth = 0;
static double _blockHeight = 0;
static double screenWidth;
static double screenHeight;
static double textMultiplier;
static double imageSizeMultiplier;
static double heightMultiplier;
static double widthMultiplier;
static bool isPortrait = true;
static bool isMobilePortrait = false;
void init(BoxConstraints constraints, Orientation orientation) {
if (orientation == Orientation.portrait) {
screenHeight = constraints.maxHeight;
screenWidth = constraints.maxWidth;
isPortrait = true;
if (screenWidth < 450) {
isMobilePortrait = true;
}
} else {
screenHeight = constraints.maxWidth;
screenWidth = constraints.maxHeight;
isPortrait = false;
isMobilePortrait = false;
}
_blockWidth = screenWidth / 100;
_blockHeight = screenHeight / 100;
textMultiplier = _blockHeight;
imageSizeMultiplier = _blockWidth;
heightMultiplier = _blockHeight;
widthMultiplier = _blockWidth;
print('textMultiplier $textMultiplier');
print('imageSizeMultiplier $imageSizeMultiplier');
print('heightMultiplier$heightMultiplier');
print('widthMultiplier $widthMultiplier');
print('isPortrait $isPortrait');
print('isMobilePortrait $isMobilePortrait');
}
}

@ -2,7 +2,7 @@ import 'package:http_interceptor/http_interceptor.dart';
class HttpInterceptor extends InterceptorContract { class HttpInterceptor extends InterceptorContract {
Future<RequestData> interceptRequest({RequestData data}) async { Future<RequestData> interceptRequest({RequestData data}) async {
print('RequestData ${data.body}'); // print('RequestData ${data.body}');
try { try {
// data.params['appid'] = OPEN_WEATHER_API_KEY; // data.params['appid'] = OPEN_WEATHER_API_KEY;
// data.params['units'] = 'metric'; // data.params['units'] = 'metric';
@ -17,7 +17,7 @@ class HttpInterceptor extends InterceptorContract {
@override @override
Future<ResponseData> interceptResponse({ResponseData data}) async { Future<ResponseData> interceptResponse({ResponseData data}) async {
print('${data.body}'); // print('ResponseData ${data.body}');
return data; return data;
} }
} }

@ -1,9 +1,11 @@
import 'package:doctor_app_flutter/providers/auth_provider.dart';
import 'package:doctor_app_flutter/providers/patients_provider.dart';
import 'package:doctor_app_flutter/providers/projects_provider.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import './config/size_config.dart';
import './providers/auth_provider.dart';
import './providers/patients_provider.dart';
import './providers/projects_provider.dart';
import './routes.dart'; import './routes.dart';
void main() => runApp(MyApp()); void main() => runApp(MyApp());
@ -12,22 +14,29 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application. // This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MultiProvider( return LayoutBuilder(
providers: [ builder: (context, constraints) {
ChangeNotifierProvider.value(value: PatientsProvider()), return OrientationBuilder(builder: (context, orientation) {
ChangeNotifierProvider.value(value: AuthProvider()), SizeConfig().init(constraints, orientation);
ChangeNotifierProvider.value(value: ProjectsProvider()), return MultiProvider(
], providers: [
child: MaterialApp( ChangeNotifierProvider.value(value: PatientsProvider()),
title: 'Flutter Demo', ChangeNotifierProvider.value(value: AuthProvider()),
theme: ThemeData( ChangeNotifierProvider.value(value: ProjectsProvider()),
primarySwatch: Colors.blue, ],
primaryColor: Hexcolor('#B8382C'), child: MaterialApp(
buttonColor: Hexcolor('#B8382C'), title: 'Flutter Demo',
fontFamily: 'WorkSans'), theme: ThemeData(
initialRoute: INIT_ROUTE, primarySwatch: Colors.blue,
routes: routes, primaryColor: Hexcolor('#B8382C'),
), buttonColor: Hexcolor('#B8382C'),
fontFamily: 'WorkSans'),
initialRoute: INIT_ROUTE,
routes: routes,
),
);
});
},
); );
} }
} }

@ -1,5 +1,5 @@
import 'package:doctor_app_flutter/lookups/home_items_lookup.dart'; import '../lookups/home_items_lookup.dart';
import 'package:doctor_app_flutter/routes.dart'; import '../routes.dart';
import '../widgets/home/home_item.dart'; import '../widgets/home/home_item.dart';
import '../widgets/shared/app.drawer.dart'; import '../widgets/shared/app.drawer.dart';

@ -1,5 +1,3 @@
import '../../providers/projects_provider.dart';
import '../../util/dr_app_toast_msg.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -7,13 +5,16 @@ import 'package:hexcolor/hexcolor.dart';
import 'package:imei_plugin/imei_plugin.dart'; import 'package:imei_plugin/imei_plugin.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../config/size_config.dart';
import '../../models/user_model.dart'; import '../../models/user_model.dart';
import '../../providers/auth_provider.dart'; import '../../providers/auth_provider.dart';
import '../../providers/projects_provider.dart';
import '../../routes.dart'; import '../../routes.dart';
import '../../util/dr_app_shared_pref.dart'; import '../../util/dr_app_shared_pref.dart';
import '../../util/dr_app_toast_msg.dart';
DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = DrAppSharedPreferances();
DrAppToastMsg toastMsg = DrAppToastMsg(); DrAppToastMsg toastMsg = DrAppToastMsg();
class LoginForm extends StatefulWidget with DrAppToastMsg { class LoginForm extends StatefulWidget with DrAppToastMsg {
LoginForm({ LoginForm({
@ -71,9 +72,8 @@ class _LoginFormState extends State<LoginForm> {
decoration: InputDecoration( decoration: InputDecoration(
prefixIcon: Image.asset('assets/images/user_id_icon.png'), prefixIcon: Image.asset('assets/images/user_id_icon.png'),
hintText: 'Enter ID', hintText: 'Enter ID',
hintStyle: TextStyle( hintStyle:
fontSize: TextStyle(fontSize: 2 * SizeConfig.textMultiplier),
isSmallScreen ? 14 : constraints.maxWidth * 0.024),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(20)), borderRadius: BorderRadius.all(Radius.circular(20)),
borderSide: BorderSide(color: Hexcolor('#CCCCCC')), borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
@ -104,10 +104,8 @@ class _LoginFormState extends State<LoginForm> {
prefixIcon: prefixIcon:
Image.asset('assets/images/password_icon.png'), Image.asset('assets/images/password_icon.png'),
hintText: 'Enter Password', hintText: 'Enter Password',
hintStyle: TextStyle( hintStyle:
fontSize: isSmallScreen TextStyle(fontSize: 2 * SizeConfig.textMultiplier),
? 14
: constraints.maxWidth * 0.024),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(20)), borderRadius: BorderRadius.all(Radius.circular(20)),
borderSide: BorderSide(color: Hexcolor('#CCCCCC')), borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
@ -140,10 +138,8 @@ class _LoginFormState extends State<LoginForm> {
prefixIcon: prefixIcon:
Image.asset('assets/images/hospital_icon.png'), Image.asset('assets/images/hospital_icon.png'),
// hintText: 'Enter Password', // hintText: 'Enter Password',
hintStyle: TextStyle( hintStyle:
fontSize: isSmallScreen TextStyle(fontSize: 2 * SizeConfig.textMultiplier),
? 14
: constraints.maxWidth * 0.024),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(20)), borderRadius: BorderRadius.all(Radius.circular(20)),
borderSide: BorderSide(color: Hexcolor('#CCCCCC')), borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
@ -189,9 +185,7 @@ class _LoginFormState extends State<LoginForm> {
onChanged: (bool newValue) {}), onChanged: (bool newValue) {}),
Text("Remember me", Text("Remember me",
style: TextStyle( style: TextStyle(
fontSize: isSmallScreen fontSize: 2 * SizeConfig.textMultiplier)),
? 18
: constraints.maxWidth * 0.018)),
], ],
), ),
), ),
@ -208,16 +202,14 @@ class _LoginFormState extends State<LoginForm> {
BorderSide(width: 0.5, color: Hexcolor('#CCCCCC'))), BorderSide(width: 0.5, color: Hexcolor('#CCCCCC'))),
child: Container( child: Container(
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
height: 50, height: 5*SizeConfig.heightMultiplier,
width: constraints.maxWidth * 0.30, width: constraints.maxWidth * 0.30,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
Text('LOGIN', Text('LOGIN',
style: TextStyle( style: TextStyle(
fontSize: isSmallScreen fontSize: SizeConfig.isMobilePortrait?2*SizeConfig.textMultiplier: 2.3*SizeConfig.textMultiplier)),
? 15
: constraints.maxWidth * 0.020)),
Image.asset('assets/images/login_btn_arrow_icon.png') Image.asset('assets/images/login_btn_arrow_icon.png')
], ],
), ),
@ -310,7 +302,7 @@ class _LoginFormState extends State<LoginForm> {
} }
Future<void> setSharedPref(key, value) async { Future<void> setSharedPref(key, value) async {
sharedPref.setString(key, value).then(( success) { sharedPref.setString(key, value).then((success) {
print("sharedPref.setString" + success.toString()); print("sharedPref.setString" + success.toString());
}); });
} }

@ -70,7 +70,7 @@ packages:
name: build_daemon name: build_daemon
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.3" version: "2.1.4"
build_modules: build_modules:
dependency: transitive dependency: transitive
description: description:
@ -98,7 +98,7 @@ packages:
name: build_runner_core name: build_runner_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.5.2" version: "4.5.3"
build_web_compilers: build_web_compilers:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -281,7 +281,7 @@ packages:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.3" version: "3.1.4"
i18n: i18n:
dependency: "direct main" dependency: "direct main"
description: description:
@ -386,7 +386,7 @@ packages:
name: package_config name: package_config
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.9.1" version: "1.9.3"
package_resolver: package_resolver:
dependency: transitive dependency: transitive
description: description:
@ -449,7 +449,7 @@ packages:
name: pub_semver name: pub_semver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.3" version: "1.4.4"
pubspec_parse: pubspec_parse:
dependency: transitive dependency: transitive
description: description:

Loading…
Cancel
Save