Guest User

Untitled

a guest
May 24th, 2020
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.94 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:http/http.dart' as http;
  3.  
  4. import 'dart:convert';
  5.  
  6. import 'package:messenger/HomePage.dart';
  7. import 'package:shared_preferences/shared_preferences.dart';
  8.  
  9. import 'HomeScreen.dart';
  10.  
  11. Future<void> main() async {
  12.   runApp(MyApp());
  13. }
  14.  
  15. class MyApp extends StatelessWidget {
  16.   @override
  17.   Widget build(BuildContext context) {
  18.  
  19.     return MaterialApp(
  20.       title: 'Flutter Demo',
  21.       theme: ThemeData(
  22.         primarySwatch: Colors.red,
  23.       ),
  24.       home: Messenger(),
  25.     );
  26.   }
  27. }
  28.  
  29. class Messenger extends StatefulWidget {
  30.   @override
  31.   _MessengerState createState() => _MessengerState();
  32. }
  33.  
  34. class _MessengerState extends State<Messenger> {
  35.  
  36.   bool isLoggedIn;
  37.  
  38.   Future<void> checkLogin(BuildContext context) async{
  39.     print('Initializing database');
  40.     SharedPreferences prefs = await SharedPreferences.getInstance();
  41.     isLoggedIn = prefs.getBool('isLoggedIn')??false;
  42.     if(isLoggedIn){
  43.       var _router = new MaterialPageRoute(
  44.           builder: (BuildContext context) => new HomeScreen());
  45.       Navigator.of(context).push(_router);
  46.     }else{
  47.       var _router = new MaterialPageRoute(
  48.           builder: (BuildContext context) => new HomePage());
  49.       Navigator.of(context).push(_router);
  50.     }
  51.   }
  52.  
  53.   @override
  54.   void initState() {
  55.     // TODO: implement initState
  56. //    super.initState();
  57.   print('Into the initstate');
  58.     checkLogin(context);
  59.   }
  60.  
  61.   TextEditingController _phoneNumberController = new TextEditingController();
  62.  
  63.   Future _sendMessage() async{
  64.     print('${_phoneNumberController.text}');
  65.     var cred =
  66.  
  67.         '****';
  68.  
  69.     var bytes = utf8.encode(cred);
  70.  
  71.     var base64Str = base64.encode(bytes);
  72.  
  73.     var url =
  74.  
  75.         'https://api.twilio.com/2010-04-01/Accounts/****/Messages.json';
  76.  
  77.     var response = await http.post(url, headers: {
  78.  
  79.       'Authorization': 'Basic ${base64Str}'
  80.  
  81.     }, body: {
  82.  
  83.       'From': '+**', //twilio number
  84.  
  85.       'To': '+91${_phoneNumberController.text}',
  86.  
  87.       'Body': 'This is a test message VOILA!!'
  88.  
  89.     });
  90.  
  91.     print('Response status: ${response.statusCode}');
  92.  
  93.     print('Response body: ${response.body}');
  94.  
  95.   }
  96.  
  97.   @override
  98.   Widget build(BuildContext context) {
  99.  
  100.     return Scaffold(
  101.       appBar: AppBar(title: Text("Messenger"),),
  102.       body: Center(
  103.         child: Column(
  104.           mainAxisAlignment: MainAxisAlignment.center,
  105.           children: <Widget>[
  106.             Container(
  107.               margin: EdgeInsets.all(10),
  108.               child: TextFormField(
  109.                 controller: _phoneNumberController,
  110.                 keyboardType: TextInputType.number,
  111.               ),
  112.             ),
  113.             Container(
  114.               margin: EdgeInsets.all(10),
  115.               child: RaisedButton(
  116.                 child: Text("Submit"),
  117.                 onPressed: _sendMessage,
  118.               ),
  119.             )
  120.           ],
  121.         ),
  122.       ),
  123.     );
  124.   }
  125. }
Add Comment
Please, Sign In to add comment