carga inicial

This commit is contained in:
2021-05-05 15:52:09 -03:00
parent dbf070041b
commit 129abeccf6
58 changed files with 385 additions and 133 deletions
+8 -7
View File
@@ -8,10 +8,10 @@ import 'default_response_api.dart';
class FuncoesGerais{
//static const String urlLexLiteApi = "https://apis.lexstation.com/api/v1/";
static const String tokenPadrao = "XW3Y21GZWD9HIB8XOME4UE2APLPG3J";
static const String tokenPadrao = "0GR7IE9OLII2UAUPJI80P1UHUK87WU";
static const String urlBaseNewCore = "https://newcore.services/newcore/";
static const int appMobileCodigo = 18;
static const String nomeApp = "App Cards Starter";
static const String nomeApp = "Decpisos";
static const int versaoAtual = 100;
static const String youtubeApiKey = "AIzaSyAmqjP0MxgASbt98Px1_hqaIvcsqeHO15k";//"AIzaSyA8jo3qsr-JJRm40iSHfkrzaMZXdMjo9v4";
static const String channelId = "UCJ_EUoswNTvRGotJ-ROxaKw";
@@ -76,8 +76,9 @@ class FuncoesGerais{
try {
var body = json.encode(objPost);
//var response = await http.post(url, body: body,headers: heads);
var r = await http.post(url, body: body,headers: heads);
print(r);
await http.post(url, body: body,headers: heads);
//var r = await http.post(url, body: body,headers: heads);
//print(r);
// if (response != null) {
// if (response.statusCode == 200) {
// var data = jsonDecode(response.body);
@@ -89,9 +90,9 @@ class FuncoesGerais{
}
}
else{
print('Nada');
}
// else{
// print('Nada');
// }
}
static Future<VersaoMinimaResponse> checkVersaoMinimaOk() async{
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:appcardsstarter/funcoes_gerais.dart';
import 'package:decpisos/funcoes_gerais.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:webview_flutter/webview_flutter.dart';
+44 -39
View File
@@ -1,55 +1,60 @@
import 'package:appcardsstarter/home/home.dart';
import 'package:appcardsstarter/notificacoes/notificacoes.dart';
import 'package:appcardsstarter/videos/youtube_videos.dart';
//import 'package:decpisos/home/home.dart';
import 'package:decpisos/index/index_controller.dart';
//import 'package:decpisos/notificacoes/notificacoes.dart';
//import 'package:decpisos/videos/youtube_videos.dart';
import 'package:convex_bottom_bar/convex_bottom_bar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class IndexScreen extends StatefulWidget {
@override
_IndexScreenState createState() => _IndexScreenState();
}
class _IndexScreenState extends State<IndexScreen> with SingleTickerProviderStateMixin{
TabController _tabController;
class _IndexScreenState extends State<IndexScreen> {
// TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: 3, vsync: this);
_tabController.index = 1;
}
// @override
// void initState() {
// super.initState();
// _tabController = TabController(length: 3, vsync: this);
// _tabController.index = 1;
// }
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
// @override
// void dispose() {
// _tabController.dispose();
// super.dispose();
// }
final IndexController c = Get.put(IndexController());
@override
Widget build(BuildContext context) {
return Scaffold(
body: TabBarView(
controller: _tabController,
physics: NeverScrollableScrollPhysics(),
children: [
YouTubeVideosScreen(),
HomeScreen(),
NotificacoesScreen()
]
),
bottomNavigationBar: ConvexAppBar(
items: [
TabItem(icon: Icons.video_collection, title: 'Vídeos'),
TabItem(icon: Icons.home, title: 'Home'),
TabItem(icon: Icons.notifications, title: 'Notificações'),
],
style: TabStyle.flip,
backgroundColor: Theme.of(context).primaryColor,
controller: _tabController,
// onTap: (int i){
// print(i);
// },
),
body: Obx(() => TabBarView(
controller: c.tabController,
physics: NeverScrollableScrollPhysics(),
// children: [
// YouTubeVideosScreen(),
// HomeScreen(),
// NotificacoesScreen()
// ]
children: c.childrenTabs.map((element) => element).toList(),
)),
bottomNavigationBar: Obx(() => ConvexAppBar(
// items: [
// TabItem(icon: Icons.video_collection, title: 'Vídeos'),
// TabItem(icon: Icons.home, title: 'Home'),
// TabItem(icon: Icons.notifications, title: 'Notificações'),
// ],
items: c.tabs.map((element) => element).toList(),
style: TabStyle.flip,
backgroundColor: Theme.of(context).primaryColor,
controller: c.tabController,
// onTap: (int i){
// print(i);
// },
)),
);
}
}
}
+46
View File
@@ -0,0 +1,46 @@
import 'package:decpisos/home/home.dart';
import 'package:decpisos/notificacoes/notificacoes.dart';
import 'package:decpisos/videos/youtube_videos.dart';
import 'package:convex_bottom_bar/convex_bottom_bar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class IndexController extends GetxController with SingleGetTickerProviderMixin{
TabController tabController;
var tabs = List<TabItem>().obs;
var childrenTabs = List<Widget>().obs;
@override
void onInit() {
super.onInit();
this.initTabs();
this.tabController.index = 1;
}
@override
void onClose() {
this.tabController.dispose();
super.onClose();
}
void initTabs(){
this.childrenTabs.add(YouTubeVideosScreen());
this.childrenTabs.add(HomeScreen());
this.childrenTabs.add(NotificacoesScreen());
this.tabs.add(TabItem(icon: Icons.video_collection, title: 'Vídeos'));
this.tabs.add(TabItem(icon: Icons.home, title: 'Home'));
this.tabs.add(TabItem(icon: Icons.notifications, title: 'Notificações'));
this.tabController = TabController(vsync: this, length: this.tabs.length);
}
void tabsWithoutVideos(){
this.childrenTabs.clear();
this.tabs.clear();
this.childrenTabs.add(HomeScreen());
this.childrenTabs.add(NotificacoesScreen());
this.tabs.add(TabItem(icon: Icons.home, title: 'Home'));
this.tabs.add(TabItem(icon: Icons.notifications, title: 'Notificações'));
this.tabController = new TabController(vsync: this, length: this.tabs.length);
Get.rawSnackbar(message: 'Vídeos temporariamente indisponível');
}
}
+2 -1
View File
@@ -1,3 +1,4 @@
import 'package:decpisos/funcoes_gerais.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
@@ -6,7 +7,7 @@ import 'splash/splash.dart';
void main() {
runApp(GetMaterialApp(
title: 'LEX Station Lite',
title: FuncoesGerais.nomeApp,
localizationsDelegates: [
// ... app-specific localization delegate[s] here
GlobalMaterialLocalizations.delegate,
+2 -2
View File
@@ -1,4 +1,4 @@
import 'package:appcardsstarter/funcoes_gerais.dart';
import 'package:decpisos/funcoes_gerais.dart';
import 'package:flutter/material.dart';
import 'package:animated_splash_screen/animated_splash_screen.dart';
import 'package:get/get.dart';
@@ -32,7 +32,7 @@ class SplashScreen extends StatelessWidget {
splashIconSize: Get.size.height,
splashTransition: SplashTransition.slideTransition,
pageTransitionType: PageTransitionType.fade,
backgroundColor: Colors.white,
backgroundColor: Colors.blueGrey.shade800,
screenFunction: ()async{
await c.firebaseCloudMessagingListeners();
await c.verTutorial();
+3 -3
View File
@@ -1,8 +1,8 @@
import 'dart:io';
import 'package:appcardsstarter/atualizarapp/atualizarapp.dart';
import 'package:appcardsstarter/index/index.dart';
import 'package:appcardsstarter/notificacoes/notificacoes.dart';
import 'package:decpisos/atualizarapp/atualizarapp.dart';
import 'package:decpisos/index/index.dart';
import 'package:decpisos/notificacoes/notificacoes.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
+1 -1
View File
@@ -36,7 +36,7 @@ class YouTubeApi{
retorno = YouTubeSearchResponse.fromJson(data);
} else {
var data = jsonDecode(response.body);
retorno.errorCode = 2;
retorno.errorCode = -5;
retorno.errorMessage = "Erro inesperado, tente novamente mais tarde. #${response.statusCode}";
if(data != null && data['error'] != null){
if(data['error']['message'] != null && data['error']['message'].toString().isNotEmpty){
+7 -3
View File
@@ -1,11 +1,12 @@
import 'package:appcardsstarter/videos/api/youtube_api.dart';
import 'package:appcardsstarter/videos/api/youtube_classes.dart';
import 'package:decpisos/index/index_controller.dart';
import 'package:decpisos/videos/api/youtube_api.dart';
import 'package:decpisos/videos/api/youtube_classes.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart' show DateFormat;
class YouTubeController extends GetxController {
YouTubeApi _api = new YouTubeApi();
final IndexController _ic = Get.find();
var results = new YouTubeSearchResponse(
errorCode: 0,
errorMessage: '',
@@ -58,6 +59,9 @@ class YouTubeController extends GetxController {
results.value.nextPageToken = more.nextPageToken ?? '';
results.value.items += more.items;
}
if(this.errorCode.value == -5){
this._ic.tabsWithoutVideos();
}
this.loading.value = false;
}
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:appcardsstarter/videos/youtube_video_player.dart';
import 'package:decpisos/videos/youtube_video_player.dart';
import 'package:flutter/material.dart';
import 'package:flutter_staggered_animations/flutter_staggered_animations.dart';
import 'package:get/get.dart';