Files
AppCardsStarter_Modelo/lib/notificacoes/notificacoes_controller.dart
T
2021-05-04 16:12:48 -03:00

102 lines
2.9 KiB
Dart

//import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart' show DateFormat;
import 'api/notificacoes_api.dart';
import 'api/notificacoes_classes.dart';
class NotificacoesController extends GetxController with SingleGetTickerProviderMixin{
var notificacoesResults = List<NotificacaoResults>().obs;
bool loadMore = true;
NotificacoesApi _api = new NotificacoesApi();
var notificacaoDetail = NotificacaoResponse().obs;
int page = 1;
var errorCode = 0.obs;
var errorMessage = '';
var loading = true.obs;
var loadingDetail = true.obs;
var like = ''.obs;
final f = DateFormat('dd/MM/yyyy HH:mm:ss');
//final GlobalKey<AnimatedListState> listKey = GlobalKey<AnimatedListState>();
// AnimationController _controller;
// Animation<Offset> animation;
@override
void onInit() {
super.onInit();
// _controller = AnimationController(
// duration: const Duration(milliseconds: 650),
// vsync: this,
// )..forward();
// animation = Tween<Offset>(
// begin: const Offset(-0.5, 0.0),
// end: const Offset(0.0, 0.0),
// ).animate(CurvedAnimation(
// parent: _controller,
// curve: Curves.easeInCubic,
// ));
this.notificacoesResults = new RxList<NotificacaoResults>();
this.getNotificacoesBloc();
}
getNotificacoesBloc()async{
var response = await this._api.getNotificacoes(page);
this.loadMore = response.results.length < 1 ? false : true;
if(response.errorCode != 0){
this.errorCode.value = response.errorCode;
this.errorMessage = response.errorMessage;
}
else{
//if(this.page > 1)this.listKey.currentState.insertItem(2,duration: const Duration(milliseconds: 1500));
page++;
this.notificacoesResults.addAll(response.results);
}
if(this.loading.value)this.loading.value = false;
}
getNotificacaoDetail(int id) async {
this.loadingDetail.value = true;
this.notificacaoDetail.value.result = new NotificacaoResults();
var response = await this._api.getNotificacao(id);
this.notificacaoDetail.value = response;
this.like.value = response.result.like;
this.loadingDetail.value = false;
}
Future<void> refresh() async{
this.loading.value = true;
this.page = 1;
this.notificacoesResults = new RxList<NotificacaoResults>();
this.getNotificacoesBloc();
}
String get getLike => this.like.value;
Future<void> notificacaoLikeBloc(NotificacaoLikeRequest item) async {
var response = await this._api.notificacaoLike(item);
if(response != null && response.errorCode == 0)
{
this.notificacaoDetail.value.result.like = item.like;
this.like.value = item.like;
}
}
String getDateFormatada(String dt){
String r = '';
try {
r = this.f.format(DateTime.parse(dt));
} catch (e) {
}
return r;
}
Future<void> notificacaoLidaBloc(int notificacaoID) async {
return;
}
}