import 'dart:io';

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

import 'package:gengmei_flutter_plugin/gengmei_flutter_plugin.dart';
import 'package:gengmei_flutter_plugin_example/AlbumModel/page/album/AlbumPage.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<String> list = List();
  StreamSubscription listen;

  @override
  void initState() {
    super.initState();

//    GengmeiFlutterPlugin.saveInt("INT", 5);
//    GengmeiFlutterPlugin.saveString("STRINGQW", "qwe");
//    GengmeiFlutterPlugin.saveDouble("DOUBLE", 2.888);
//    GengmeiFlutterPlugin.saveBool("BOOLEAN", false);
//    List<String> set = new List();
//    set.add("ww");
//    set.add("qq");
//    set.add("ww");
//    set.add("ee");
//    set.add("qwe");
//    set.add("ewq");
//    set.add("ppoo");
//    GengmeiFlutterPlugin.saveStringList("LIST", set).then((value) {
//      print("SAVE $value");
//    });
//
//    GengmeiFlutterPlugin.getStringList("LIST", null).then((value) {
//      print("LIST $value");
//    });
//
//    GengmeiFlutterPlugin.getInt("INT", 0).then((value) {
//      print("INT  $value");
//    });
//    GengmeiFlutterPlugin.getString("STRINGeqweq", null).then((value) {
//      print("STRING  $value");
//    });
//    GengmeiFlutterPlugin.getDouble("DOUBLE", 1.1).then((value) {
//      print("DOUBLEEE  $value");
//    });
//    GengmeiFlutterPlugin.getbool("BOOLEAN", false).then((value) {
//      print("BOOL  $value");
//    });

//    GengmeiFlutterPlugin.saveStringList("LIST", ["ww"]);

//    GengmeiFlutterPlugin.phoneImages().then((value) {
//      print(value);
//      var value2 = value["IsGengmeiAlbumAllImages"];
//      List<String> temp = List();
//      value2.forEach((item) {
//        temp.add(item.path);
//        print("!!!! ${item.path}");
//      });
//      setState(() {
//        list = temp;
//      });
//      GengmeiFlutterPlugin.detectImg(
//              "/storage/emulated/0/gengmei/1568624220570temp.jpg")
//          .then((value) {
//        print("result ${value}");
//      });
//    }).whenComplete(() {});
////    GengmeiFlutterPlugin.aiCamera().then((value) {
////      print("NATIVE CAMERA${value}");
////    }).whenComplete(() {});
//
//    //phoneImagesEvent
//    listen = GengmeiFlutterPlugin.phoneImagesEvent
//        .receiveBroadcastStream()
//        .listen(_onEvent, onError: _onError);
  }

  void _onEvent(Object event) {
    var event1 = event as Map;
    var event12 = event1["IsGengmeiAlbumAllImages"] as List;
    event12.forEach((value) {
      print("VALUEEE   $value");
    });
  }

  void _onError(Object error) {}

  @override
  void dispose() {
    super.dispose();
    listen.cancel();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
                title: GestureDetector(
              onTap: () {
//            Navigator.push(
//                context,
//                new MaterialPageRoute(
//                    builder: (context) => AlbumPage(false, 10, null)));
              },
              child: const Text('Plugin example app'),
            )),
            body: HOME()));
  }
}

class HOME extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => HOMESTATE();
}

class HOMESTATE extends State<HOME> {
  String imagePath;

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
        body: GestureDetector(
            onTap: () {
              Navigator.push(
                      context,
                      MaterialPageRoute(
                          builder: (context) => AlbumPage(false, 10, null)))
                  .then((value) {
                setState(() {
                  imagePath = value;
                });
              }).catchError((error) {
                print(error);
              });
            },
            child: Container(
              width: 200,
              height: 200,
              color: Colors.yellow,
              child:
                  imagePath == null ? Text("www") : Image.file(File(imagePath)),
            )));
  }
}
