easy_church_json 0.1.7 easy_church_json: ^0.1.7 copied to clipboard
Plugin to connect to the easy church API. Easy church API is an API for the android app 'Easy church' soon to be on play store. This package is private and not mean't for public use.
import 'package:easy_church_json_example/Events.dart';
import 'package:easy_church_json_example/Notifications.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:imei_plugin/imei_plugin.dart';
import 'package:flutter/services.dart';
import 'package:easy_church_json/easy_church_json.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
EasyChurchJson easyChurchJson = new EasyChurchJson();
String imei = "";
@override
void initState() {
super.initState();
initPlatformState();
getImei();
}
void getImei() async {
var im = await ImeiPlugin.getImei;
imei = im.toString();
// getChurch();
// easyChurchJson.followChurch("5d116bd5c0bf362a3c545f05", imei);
getChurch();
}
void getChurch() async {
List<SingleChurch> churches = await easyChurchJson.getChurch(imei);
if (churches.length == 0) {
print("The user has not followed any church yet.");
}
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
// _platformVersion = platformVersion;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
backgroundColor: Colors.grey.shade800,
title: Text("Easy church API"),
),
SliverToBoxAdapter(
child: Text("All churches"),
),
FutureBuilder(
future: easyChurchJson.getAllChurches(),
initialData: <SingleChurch>[],
builder: ((BuildContext context,
AsyncSnapshot<List<SingleChurch>> snapshot) {
if (!snapshot.hasData) {
return SliverToBoxAdapter(child: SizedBox());
}
return SliverFixedExtentList(
delegate: SliverChildBuilderDelegate((
BuildContext context,
int index,
) {
return ListTile(
onTap: () {},
title: Text(snapshot.data[index].name),
subtitle: Text(snapshot.data[index].bio != null
? snapshot.data[index].bio
: ""),
trailing: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
RaisedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
Events(snapshot.data[index].id),
));
},
child: Text("Events"),
),
RaisedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Notifications(
snapshot.data[index].id),
));
},
child: Text("Notifications"),
),
],
),
);
}, childCount: snapshot.data.length),
itemExtent: 70.0);
})),
],
)),
);
}
}