Skip to content

Commit

Permalink
fixed France 24 English after a change to their YouTube live link, ad…
Browse files Browse the repository at this point in the history
…ded ad-support for the Google Play version - disabled by default on GitHub, updated Privacy Policy for the Google Play version
  • Loading branch information
aldrinzigmundv committed Sep 28, 2023
1 parent b546810 commit 768b5c0
Show file tree
Hide file tree
Showing 10 changed files with 132 additions and 91 deletions.
9 changes: 5 additions & 4 deletions Privacy Policy.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
**Privacy Policy**

Aldrin Zigmund Cortez Velasco built the Digilog TV app as an Open Source app. This SERVICE is provided by Aldrin Zigmund Cortez Velasco at no cost and is intended for use as is.
Aldrin Zigmund C. Velasco built the Digilog TV (Google Play version) app as an Ad Supported app. This SERVICE is provided by Aldrin Zigmund C. Velasco at no cost and is intended for use as is.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.

If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.

The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which are accessible at Digilog TV unless otherwise defined in this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which are accessible at Digilog TV (Google Play version) unless otherwise defined in this Privacy Policy.

**Information Collection and Use**

Expand All @@ -17,6 +17,7 @@ The app does use third-party services that may collect information used to ident
Link to the privacy policy of third-party service providers used by the app

* [Google Play Services](https://www.google.com/policies/privacy/)
* [AdMob](https://support.google.com/admob/answer/6128543?hl=en)

**Log Data**

Expand Down Expand Up @@ -55,10 +56,10 @@ These Services do not address anyone under the age of 13. I do not knowingly col

I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page.

This policy is effective as of 2023-09-01
This policy is effective as of 2023-09-28

**Contact Us**

If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at [email protected].

This privacy policy page was created at [privacypolicytemplate.net](https://privacypolicytemplate.net) and modified/generated by [App Privacy Policy Generator](https://app-privacy-policy-generator.nisrulz.com/)
This privacy policy page was created at [privacypolicytemplate.net](https://privacypolicytemplate.net) and modified/generated by [App Privacy Policy Generator](https://app-privacy-policy-generator.nisrulz.com/)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
alt="Get it on Google Play"
height="93">](https://play.google.com/store/apps/details?id=io.github.aldrinzigmundv.digilogtv)

Or download the latest APK from the [Releases Section](https://github.com/aldrinzigmundv/thirdbank/releases/latest)
Or download the latest ad-free APK version from the [Releases Section](https://github.com/aldrinzigmundv/thirdbank/releases/latest)

## What is Digilog TV?

Expand Down
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ android {
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 20
targetSdkVersion 33
versionCode 5
versionName "1.6.1"
versionCode 6
versionName "1.8.0"
multiDexEnabled true
}
signingConfigs {
Expand Down
4 changes: 4 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,9 @@
android:name="flutterEmbedding"
android:value="2"
/>
<!-- meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="XXX"/ -->

</application>
</manifest>
12 changes: 9 additions & 3 deletions lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
import 'package:flutter/material.dart';

//import 'package:google_mobile_ads/google_mobile_ads.dart';

import 'package:digilogtv/pages/loadingpage.dart';

void main() => runApp(
MaterialApp(
void main() {
// WidgetsFlutterBinding.ensureInitialized();
// MobileAds.instance.initialize();

runApp(MaterialApp(
title: "Digilog TV",
initialRoute: '/',
routes: {
'/': (context) => const LoadingPage(),
},
));
));
}
43 changes: 41 additions & 2 deletions lib/pages/home pages/channellistpage.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import 'package:flutter/material.dart';

//import 'package:google_mobile_ads/google_mobile_ads.dart';

import 'package:digilogtv/services/storage.dart';
import 'package:digilogtv/services/formatting.dart';
import 'package:digilogtv/services/channels.dart';
Expand All @@ -25,6 +27,30 @@ class _ChannelListPageState extends State<ChannelListPage> {
late StorageProvider storage;
late FormattingProvider formattingProvider;

//Google Admob
// BannerAd? _bannerAd;
// bool _isLoaded = false;
// final adUnitId = "XXX";
// void loadAd() {
// _bannerAd = BannerAd(
// adUnitId: adUnitId,
// request: const AdRequest(),
// size: AdSize.banner,
// listener: BannerAdListener(
// onAdLoaded: (ad) {
// debugPrint('$ad loaded.');
// setState(() {
// _isLoaded = true;
// });
// },
// onAdFailedToLoad: (ad, err) {
// debugPrint('BannerAd failed to load: $err');
// ad.dispose();
// },
// ),
// )..load();
// }

favoriteIcon(String channelName) {
if (!storage.favoritedChannels.contains(channelName)) {
return Icon(
Expand Down Expand Up @@ -68,10 +94,12 @@ class _ChannelListPageState extends State<ChannelListPage> {
super.initState();
storage = widget.storage;
formattingProvider = widget.formattingProvider;
//loadAd();
}

@override
void dispose() {
void dispose() async {
//await _bannerAd?.dispose();
super.dispose();
}

Expand All @@ -81,6 +109,17 @@ class _ChannelListPageState extends State<ChannelListPage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
// if (_bannerAd != null)
// Container(
// alignment: Alignment.bottomCenter,
// child: SafeArea(
// child: SizedBox(
// width: _bannerAd!.size.width.toDouble(),
// height: _bannerAd!.size.height.toDouble(),
// child: AdWidget(ad: _bannerAd!),
// ),
// ),
// ),
ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
Expand Down Expand Up @@ -125,7 +164,7 @@ class _ChannelListPageState extends State<ChannelListPage> {
)),
),
);
})
}),
],
));
}
Expand Down
103 changes: 27 additions & 76 deletions lib/pages/home pages/contactpage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,87 +25,38 @@ class ContactPage extends StatelessWidget {

@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(18.0, 36.0, 18.0, 18.0),
child: Image.asset(
'assets/icons/icon.png',
height: 180.0,
width: 180.0,
fit: BoxFit.contain,
return Center(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(18.0, 36.0, 18.0, 18.0),
child: Image.asset(
'assets/icons/icon.png',
height: 180.0,
width: 180.0,
fit: BoxFit.contain,
),
),
),
const Padding(
padding: EdgeInsets.fromLTRB(18.0, 36.0, 18.0, 18.0),
child: Text(
'You can reach me at [email protected]',
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
),
const Padding(
padding: EdgeInsets.all(18.0),
child: Text(
'Due to the added workload of maintaining this app on the Google Play Store – where they recently required me to include the websites of each TV news channel, although I personally think it\'s not necessary as I trust my users\' ability to distinguish quality news from bad ones, and find the contact information of these TV news networks easily via a simple web search – and the rejection of my recent app update that was intended to promptly resolve a screen timeout issue during video playback till I comply with the said requirement, I\'m now considering the possibility of introducing ads for users who download my app from Google Play as a means of compensating for my efforts in enhancing the overall user experience.',
style: TextStyle(fontSize: 18.0),
textAlign: TextAlign.center,
),
),
const Padding(
padding: EdgeInsets.fromLTRB(9.0, 27.0, 9.0, 18.0),
child: Text(
'Donate Bitcoin to Help Me Maintain this App',
style: TextStyle(fontSize: 27.0),
textAlign: TextAlign.center,
)),
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 9.0, vertical: 18.0),
child: GestureDetector(
onTap: () => copyBitcoinAddress(context),
child: Image.asset(
'assets/images/bitcoin.png',
height: 300.0,
width: 300.0,
fit: BoxFit.contain,
),
)),
const Padding(
padding: EdgeInsets.all(18.0),
const Padding(
padding: EdgeInsets.fromLTRB(18.0, 36.0, 18.0, 18.0),
child: Text(
'Tap the QR Code to Copy the Bitcoin Address to your Clipboard',
style: TextStyle(fontSize: 15.0),
'You can reach me at [email protected]',
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
)),
const Padding(
padding: EdgeInsets.fromLTRB(9.0, 27.0, 9.0, 18.0),
child: Text(
'Donate Monero to Help Me Maintain this App',
style: TextStyle(fontSize: 27.0),
textAlign: TextAlign.center,
)),
Padding(
padding: const EdgeInsets.all(9.0),
child: GestureDetector(
onTap: () => copyMoneroAddress(context),
child: Image.asset(
'assets/images/monero.png',
height: 300.0,
width: 300.0,
fit: BoxFit.contain,
),
)),
const Padding(
padding: EdgeInsets.all(18.0),
),
),
const Padding(
padding: EdgeInsets.fromLTRB(18.0, 36.0, 18.0, 18.0),
child: Text(
'Tap the QR Codes to Copy the Monero Address to your Clipboard',
style: TextStyle(fontSize: 15.0),
'You have downloaded the ad-supported version of this app from Google Play. An ad-free version is available on GitHub. Other ads are provided by their respective TV news channels.',
style: TextStyle(fontSize: 18.0),
textAlign: TextAlign.center,
)),
],
),
),
],
),
),
);
}
Expand Down
41 changes: 40 additions & 1 deletion lib/pages/home pages/favoritespage.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import 'package:flutter/material.dart';

//import 'package:google_mobile_ads/google_mobile_ads.dart';

import 'package:digilogtv/services/storage.dart';
import 'package:digilogtv/services/formatting.dart';
import 'package:digilogtv/services/channels.dart';
Expand All @@ -25,6 +27,30 @@ class _FavoritesPageState extends State<FavoritesPage> {
late StorageProvider storage;
late FormattingProvider formattingProvider;

//Google Admob
// BannerAd? _bannerAd;
// bool _isLoaded = false;
// final adUnitId = "XXX";
// void loadAd() {
// _bannerAd = BannerAd(
// adUnitId: adUnitId,
// request: const AdRequest(),
// size: AdSize.banner,
// listener: BannerAdListener(
// onAdLoaded: (ad) {
// debugPrint('$ad loaded.');
// setState(() {
// _isLoaded = true;
// });
// },
// onAdFailedToLoad: (ad, err) {
// debugPrint('BannerAd failed to load: $err');
// ad.dispose();
// },
// ),
// )..load();
// }

favoriteChange(int index) async {
setState(() {
storage.favoritedChannels
Expand All @@ -44,6 +70,7 @@ class _FavoritesPageState extends State<FavoritesPage> {

@override
void dispose() {
//await _bannerAd?.dispose();
super.dispose();
}

Expand All @@ -53,6 +80,7 @@ class _FavoritesPageState extends State<FavoritesPage> {
storage = widget.storage;
formattingProvider = widget.formattingProvider;
storage.initializeFavorites();
//loadAd();
}

@override
Expand All @@ -62,6 +90,17 @@ class _FavoritesPageState extends State<FavoritesPage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
// if (_bannerAd != null)
// Container(
// alignment: Alignment.bottomCenter,
// child: SafeArea(
// child: SizedBox(
// width: _bannerAd!.size.width.toDouble(),
// height: _bannerAd!.size.height.toDouble(),
// child: AdWidget(ad: _bannerAd!),
// ),
// ),
// ),
ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
Expand Down Expand Up @@ -110,7 +149,7 @@ class _FavoritesPageState extends State<FavoritesPage> {
)),
),
);
})
}),
],
))
: const Center(
Expand Down
2 changes: 1 addition & 1 deletion lib/services/channels.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class Channels {
Channel(channelName: "CNBC", link: "https://www.youtube.com/embed/9NyxcX3rhQs?autoplay=1", source: Source.youtube, contactpage: 'https://help.cnbc.com/contact/'),
Channel(channelName: "DW English", link: "https://dwamdstream102.akamaized.net/hls/live/2015525/dwstream102/index.m3u8", source: Source.iptv, contactpage: 'https://corporate.dw.com/en/contact/s-30606'),
Channel(channelName: "Euronews", link: "https://www.youtube.com/embed/pykpO5kQJ98?autoplay=1", source: Source.youtube, contactpage: 'https://www.euronews.com/contact'),
Channel(channelName: "France 24 English", link: "https://www.youtube.com/embed/h3MuIUNCCzI?autoplay=1", source: Source.youtube, contactpage: 'https://www.francemediasmonde.com/en/contact'),
Channel(channelName: "France 24 English", link: "https://www.youtube.com/embed/tkDUSYHoKxE?autoplay=1", source: Source.youtube, contactpage: 'https://www.francemediasmonde.com/en/contact'),
Channel(channelName: "Global News", link: "https://i.mjh.nz/PlutoTV/62cbef9ebb857100072fc187-alt.m3u8", source: Source.iptv, contactpage: 'https://globalnews.ca/pages/contact-us/'),
Channel(channelName: "Newsmax TV", link: "https://nmxlive.akamaized.net/hls/live/529965/Live_1/index.m3u8", source: Source.iptv, contactpage: 'https://www.newsmax.com/contact/'),
Channel(channelName: "NHK World Japan", link: "https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp-en/index_4M.m3u8", source: Source.iptv, contactpage: 'https://www3.nhk.or.jp/nhkworld/en/contact/'),
Expand Down
3 changes: 2 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: digilogtv
description: A free and open-source TV news app, inspired by Linux Mint's Hypnotix.
publish_to: 'none'
version: 1.6.1
version: 1.8.0

environment:
sdk: '>=3.1.0 <4.0.0'
Expand All @@ -13,6 +13,7 @@ dependencies:
flutter_inappwebview: ^5.7.2+3
flutter_launcher_icons: ^0.13.1
flutter_mobx: ^2.0.6+5
#google_mobile_ads: ^3.0.0
mobx: ^2.2.0
mobx_codegen: ^2.3.0
shared_preferences: ^2.2.0
Expand Down

0 comments on commit 768b5c0

Please sign in to comment.