elCaribe app - customization and branding

This commit is contained in:
2025-12-12 19:09:42 -04:00
parent 9e5d0d8ebf
commit ba7deac9f3
402 changed files with 31833 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:news/utils/internetConnectivity.dart';
class NewsDetailsVideo extends StatefulWidget {
String? src;
String type;
NewsDetailsVideo({super.key, this.src, required this.type});
@override
State<StatefulWidget> createState() => StateNewsDetailsVideo();
}
class StateNewsDetailsVideo extends State<NewsDetailsVideo> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
bool _isNetworkAvail = true;
var iframe;
@override
void initState() {
super.initState();
checkNetwork();
if ((widget.type == "1") || (widget.type == "3")) {
iframe = '''
<html>
<iframe src="${widget.src!}" width="100%" height="100%" allowfullscreen="allowfullscreen" frame-options="sameorigin"></iframe>
</html>
''';
} else {
iframe = '''
<html>
<video controls="controls" width="100%" height="100%">
<source src="${widget.src!}"></video>
</html>
''';
}
}
checkNetwork() async {
if (await InternetConnectivity.isNetworkAvailable()) {
setState(() {
_isNetworkAvail = true;
});
} else {
setState(() {
_isNetworkAvail = false;
});
}
}
@override
void dispose() {
// set screen back to portrait mode
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
super.dispose();
}
@override
Widget build(BuildContext context) {
// set screen to landscape mode bydefault
return SafeArea(child: Scaffold(key: _scaffoldKey, body: _isNetworkAvail ? viewVideo() : const SizedBox.shrink()));
}
//news video link set
viewVideo() {
WebUri frm;
frm = WebUri.uri(Uri.dataFromString(iframe, mimeType: 'text/html'));
return Center(
child: InAppWebView(initialUrlRequest: URLRequest(url: frm)),
);
}
}