import 'package:ad/main.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:webfeed/webfeed.dart';
import 'package:http/http.dart' as http;
import 'package:url_launcher/url_launcher.dart';
import 'package:cached_network_image/cached_network_image.dart';
class NewsFeed extends StatefulWidget {
NewsFeed() : super();
final String title = 'RSS Feed';
@override
NewsFeedState createState() => NewsFeedState();
}
class NewsFeedState extends State<NewsFeed> {
RssFeed _feed;
String _title;
static const String loadingFeedMsg = 'Loading Feed...';
static const String feedLoadErrorMsg = 'Error Loading Feed...';
static const String feedOpenErrorMsg = 'Error Opening Feed...';
static const String placeholderImg = 'images/no_image.png';
GlobalKey<RefreshIndicatorState> _refreshKey;
updateTitle(title) {
setState(() {
_title = title;
});
}
updateFeed(feed) {
setState(() {
_feed = feed;
});
}
Future<void> openFeed(String url) async {
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: false,
);
return;
}
updateTitle(feedOpenErrorMsg);
}
load() async {
updateTitle(loadingFeedMsg);
loadFeed().then((result) {
if (null == result || result.toString().isEmpty) {
updateTitle(feedLoadErrorMsg);
return;
}
updateFeed(result);
updateTitle(_feed.title);
});
}
Future<RssFeed> loadFeed() async {
http.Response response = await http.get(
headers: {'Accept': "application/json"});
return RssFeed.parse(response.body);
print(response.body);
}