login update

parent 5f22bd0b
......@@ -21,7 +21,7 @@ class MyApp extends StatelessWidget {
//home: ShopNearbyPlacesPage(),
// home: service_tab(),
home: LoginPage(),
home: SplashScreenPage(),
);
}
}
......@@ -45,7 +45,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
}
_setupView() {
return SingleChildScrollView(
return Container(
child: Column(
children: <Widget>[
Container(
......@@ -86,19 +89,28 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
],
),
SizedBox(height: SizeConfig.getWidth(30)),
new Container(
height: double.maxFinite,
child: new TabBarView(
controller: _tabController,
children: <Widget>[
_formLogin(),
_phoneLogin()
Expanded(
child: new Container(
// height: double.maxFinite,
child: new TabBarView(
controller: _tabController,
children: <Widget>[
_formLogin(),
_phoneLogin()
// Container(
// color: Colors.red,
// ),
// Container(
// color: Colors.green,
// ),
],
),
],
),
),
),
// _phoneLogin(),
],
),
......@@ -107,7 +119,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _formLogin() {
print("index = " +"${_tabController.index}");
return Container(
return SingleChildScrollView(
child: Form(
child: Column(
children: <Widget>[
......@@ -218,7 +230,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _phoneLogin() {
print("index = " +"${_tabController.index}");
return Container(
return SingleChildScrollView(
child: Form(
child: Column(
children: <Widget>[
......@@ -246,7 +258,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
),
),
child: TextFormField(
// controller: loginBloc.emailCtrl,
controller: presenter.phonenumberCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -285,7 +297,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
BorderRadius.circular(SizeConfig.getPadding(50.0)),
),
child: TextFormField(
// controller: loginBloc.passCtrl,
controller: presenter.passCtrl,
// validator: loginBloc.validateField,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(
......@@ -339,8 +351,13 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
padding: EdgeInsets.all(0),
borderRadius: BorderRadius.all(Radius.circular(50)),
onPressed: () {
if (_tabController.index==0){
presenter.letCheckData();}
else{
presenter.letCheckData_phone();
presenter.onSignIn();
}
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => HomePage()),
......@@ -403,7 +420,7 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
Widget _policyText() {
return Column(
children: <Widget>[
Stack(
Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(
......@@ -412,16 +429,31 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
top: SizeConfig.getPadding(30)),
child: Center(
child: Text(
'คุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของอโกด้าเมื่อดำเนินการต่อ',
'คุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบาย',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
),
Row(
children: <Widget>[
Container(
padding: EdgeInsets.only(
left: SizeConfig.getPadding(30),
right: SizeConfig.getPadding(10),
),
child: Center(
child: Text(
'ความเป็นส่วนตัวของอโกด้าเมื่อดำเนินการต่อ',
style: TextStyle(fontSize: SizeConfig.getFontSize(12)),
textAlign: TextAlign.center,
),
),
),
Container(
margin: EdgeInsets.only(
right: SizeConfig.getPadding(34),
top: SizeConfig.getPadding(47)),
alignment: Alignment.centerRight,
child: GestureDetector(
onTap: () {
......@@ -443,6 +475,10 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
),
),
)
]),
],
),
Container(
......
import 'dart:async';
import 'dart:developer';
import 'package:feelverapp/model/Login/login_model.dart';
......@@ -7,6 +8,7 @@ import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
......@@ -16,10 +18,11 @@ import 'package:rflutter_alert/rflutter_alert.dart';
class LoginPresenter extends BasePresenter<LoginPage> {
Api _api;
Timer _timer;
final formKey = GlobalKey<FormState>();
TextEditingController emailCtrl = TextEditingController();
TextEditingController passCtrl = TextEditingController();
TextEditingController phonenumberCtrl = TextEditingController();
......@@ -27,16 +30,40 @@ class LoginPresenter extends BasePresenter<LoginPage> {
LoginPresenter(State<LoginPage> state) : super(state);
onSignIn() async {
if (emailCtrl.text.isEmpty) {
Alert(
/////email Login/////////
letCheckData() async {
// if(!verifyPhoneState){
// throw(allTranslations.text(key: 'please_verify_phone'));
// }
try {
if (emailCtrl.text.isEmpty ) throw ('กรุณากรอก\nอีเมล์');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
Pattern pattern =
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+";
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(emailCtrl.text))
throw ('รูปแบบอีเมล์\nไม่ถูกต้อง');
else {
await letSignIn();
}
} catch (e) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "กรุณากรอกอีเมล์",
title: '$e',
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
......@@ -48,8 +75,24 @@ class LoginPresenter extends BasePresenter<LoginPage> {
),
)
]).show();
}
if (passCtrl.text.isEmpty) {
}
}
letSignIn() async {
LoadingView(state.context).show();
_api = Api<LoginModel>();
var res = await _api.login({
"access_type":"portal",
"access_status":"customer",
"email": emailCtrl.text,
'password':passCtrl.text
});
LoadingView(state.context).hide();
if (res.fail == null) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
......@@ -57,32 +100,75 @@ class LoginPresenter extends BasePresenter<LoginPage> {
),
context: state.context,
title: "กรุณากรอกรหัสผ่าน",
title: "เข้าสู่ระบบสำเร็จ",
content: Icon(Icons.check_circle,color: Color.fromRGBO(106, 179, 170, 1),size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () =>
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
LoginModel model = res.success;
// print("Username ="+"${model.user}");
print("Token ="+"${model.token}");
} else {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "อีเมล์หรือรหัสผ่าน\nไม่ถูกต้อง",
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
"ลองอีกครั้ง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
else letSignIn();
}
letSignIn() async {
///////phone log in////////////////
letSignIn_phone() async {
LoadingView(state.context).show();
_api = Api<LoginModel>();
var res = await _api.login({
"access_type":"portal",
"access_status":"customer",
"email": emailCtrl.text,
"email": phonenumberCtrl.text,
'password':passCtrl.text
});
LoadingView(state.context).hide();
......@@ -101,7 +187,8 @@ class LoginPresenter extends BasePresenter<LoginPage> {
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
onPressed: () =>
Navigator.pushReplacement(state.context, CupertinoPageRoute(builder: (_) => HomePage())),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
......@@ -120,7 +207,7 @@ class LoginPresenter extends BasePresenter<LoginPage> {
),
context: state.context,
title: "อีเมล์หรือรหัสผ่านผิด",
title: "เบอร์โทรศัพท์หรือรหัสผ่าน\nไม่ถูกต้อง",
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
......@@ -134,6 +221,51 @@ class LoginPresenter extends BasePresenter<LoginPage> {
]).show();
}
}
letCheckData_phone() async {
// if(!verifyPhoneState){
// throw(allTranslations.text(key: 'please_verify_phone'));
// }
try {
if (phonenumberCtrl.text.isEmpty ) throw ('กรุณากรอก\nเบอร์โทรศัพท์มือถือ');
else if (passCtrl.text.isEmpty ) throw('กรุณากรอก\nรหัสผ่าน');
Pattern pattern =
r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regex = new RegExp(pattern);
if (!regex.hasMatch(phonenumberCtrl.text))
throw ('รูปแบบเบอร์โทรศัพท์\nไม่ถูกต้อง');
else {
await letSignIn_phone();
}
} catch (e) {
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: '$e',
content: Icon(Icons.warning,color: Colors.orange,size: 80,),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ตกลง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
}
// facebookLogin() async {
......
import 'dart:async';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/login/login.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
......@@ -14,7 +15,7 @@ class _SplashScreenPageState extends State<SplashScreenPage> {
@override
void initState() {
_timer = new Timer(Duration(seconds: 2), () => Navigator.pushReplacement(context, CupertinoPageRoute(builder: (_) => HomePage())));
_timer = new Timer(Duration(seconds: 2), () => Navigator.pushReplacement(context, CupertinoPageRoute(builder: (_) => LoginPage())));
super.initState();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment