flyy_flutter_plugin 0.0.3 copy "flyy_flutter_plugin: ^0.0.3" to clipboard
flyy_flutter_plugin: ^0.0.3 copied to clipboard

outdated

A new Flutter plugin.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:flyy_flutter_plugin/flyy_flutter_plugin.dart';

void main() {
  runApp(MaterialApp(
    title: "Flutter Demo App",
    home: FlutterDemo(),
  ));
}

class FlutterDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.arrow_back, color: Colors.white),
          onPressed: () {
            if (Navigator.canPop(context)) {
              Navigator.of(context, rootNavigator: false).pop();
            } else {
              SystemNavigator.pop();
            }
          },
        ),
        title: Text(
          "Flutter Plugin Demo App",
          style: TextStyle(fontSize: 18),
        ),
        backgroundColor: Colors.blue,
      ),
      body: FlutterStateFulWidget(),
    );
  }
}

class FlutterStateFulWidget extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new FlutterState();
  }
}

class FlutterState extends State<FlutterStateFulWidget> {
  final userName = TextEditingController(),
      contactNumber = TextEditingController();

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    FlyyFlutterPlugin.initFlyySDK("f386572bf888c1fb3584", FlyyFlutterPlugin.PRODUCTION);
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      alignment: Alignment.center,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          ///User name
          Padding(
            padding: const EdgeInsets.only(left: 50, right: 50, bottom: 20),
            child: TextFormField(
              controller: userName,
              keyboardType: TextInputType.text,
              textCapitalization: TextCapitalization.words,
              textInputAction: TextInputAction.next,
              decoration: InputDecoration(
                  focusedBorder: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.blueAccent, width: 1),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  enabledBorder: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey, width: 1),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  hintText: 'Your Name',
                  labelStyle: TextStyle(
                      fontSize: 14, color: Colors.black54),
                  hintStyle: TextStyle(
                      fontSize: 12, color: Colors.grey)),
              style: TextStyle(fontSize: 14),
              validator: (String arg) {
                if (arg != null && arg.isNotEmpty) {
                  return null;
                } else {
                  return 'Required';
                }
              },
            ),
          ),

          ///Contact number
          Padding(
            padding: const EdgeInsets.only(left: 50, right: 50, bottom: 20),
            child: TextFormField(
              controller: contactNumber,
              keyboardType: TextInputType.number,
              decoration: InputDecoration(
                  focusedBorder: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.blueAccent, width: 1),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  enabledBorder: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey, width: 1),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  hintText: 'Enter your contact number here',
                  labelStyle: TextStyle(
                      fontSize: 14, color: Colors.black54),
                  hintStyle: TextStyle(
                      fontSize: 12, color: Colors.grey)),
              style: TextStyle(fontSize: 14),
              validator: (String arg) {
                if (arg != null && arg.isNotEmpty) {
                  return null;
                } else {
                  return 'Required';
                }
              },
            ),
          ),
          RaisedButton(
            onPressed: () {
              if (userName != null &&
                  contactNumber != null &&
                  userName.text != null &&
                  userName.text.isNotEmpty &&
                  contactNumber.text != null &&
                  contactNumber.text.isNotEmpty) {
                startFlyy();
              }
            },
            textColor: Colors.white,
            padding: const EdgeInsets.all(0.0),
            child: Container(
              width: 100,
              decoration: BoxDecoration(
                color: Colors.blueGrey,
                borderRadius: BorderRadius.circular(10),
              ),
              padding: const EdgeInsets.all(10.0),
              child:
              Center(child: Text("Login", style: TextStyle(fontSize: 20))),
            ),
          ),
        ],
      ),
    );
  }

  void startFlyy() {
   FlyyFlutterPlugin.setFlyyUser(contactNumber.text);
    FlyyFlutterPlugin.setFlyyUserName(userName.text);

    FlyyFlutterPlugin.openFlyyOffersPage();
    // FlyyFlutterPlugin.openFlyyRewardsPage();
    // FlyyFlutterPlugin.openFlyyWalletPage();
    // FlyyFlutterPlugin.openFlyyGiftCardsPage();
    // FlyyFlutterPlugin.openFlyyReferralsPage();
  }

  Widget showAlertDialog(BuildContext context) {
    showDialog(
      barrierDismissible: false,
      useRootNavigator: true,
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          content: new Row(
            children: [
              CircularProgressIndicator(),
              Container(
                  margin: EdgeInsets.only(left: 5),
                  child: Text(" Loading...")),
            ],
          ),
        );
      },
    );
  }
}