Skip to content

Instantly share code, notes, and snippets.

View fabiojansenbr's full-sized avatar

Fábio Jansen fabiojansenbr

View GitHub Profile
@fabiojansenbr
fabiojansenbr / gist:fd3c95c93e4194711dc3c1590e6faa32
Created April 16, 2021 11:25 — forked from montyr75/gist:09b5dc9a20ba01955872
Find the last day of the current month with Dart's DateTime class.
DateTime now = new DateTime.now();
DateTime lastDayOfMonth = new DateTime(now.year, now.month + 1, 0);
print("${lastDayOfMonth.month}/${lastDayOfMonth.day}");
import 'package:companies_modular_flutter/app/core/models/company_model.dart';
import 'package:companies_modular_flutter/app/repositories/company_repository.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:mobx/mobx.dart';
part 'companies_controller.g.dart';
class CompaniesController = _CompaniesControllerBase with _$CompaniesController;
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:getx_test_flutter/models/company_model.dart';
import 'package:getx_test_flutter/repository/company_repository.dart';
class CompanyController extends GetxController {
CompanyRepository repository = CompanyRepository();
RxBool carregando = false.obs;
GlobalKey<FormState> formKey = GlobalKey<FormState>();
- utilizar o plugin "audio_recorder: ^1.0.1"
para gravar o audio, utilizei o plugin audio_recorder que no momento, tem um bug de nome de pasta
dentro do diretorio em que é baixado o pub
entrar na pasta C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\
renomear android/src/main/java/com/jordanalcaraz/audiorecorder/audio_recorder/
para android/src/main/java/com/jordanalcaraz/audiorecorder/audiorecorder/ (na ultima pasta, remover o _ )
_deleteData() async {
setState(() {
isLoading = true;
});
await DBProvider.db.deleteAllEmployees();
// wait for 1 second to simulate loading of data
await Future.delayed(const Duration(seconds: 1));
_loadFromApi() async {
setState(() {
isLoading = true;
});
var apiProvider = EmployeeApiProvider();
await apiProvider.getAllEmployees();
// wait for 2 seconds to simulate loading of data
await Future.delayed(const Duration(seconds: 2));
import 'package:api_to_sqlite_flutter/src/providers/db_provider.dart';
import 'package:api_to_sqlite_flutter/src/providers/employee_api_provider.dart';
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
const HomePage({Key key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
import 'package:api_to_sqlite_flutter/src/pages/home_page.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
import 'package:api_to_sqlite_flutter/src/models/employee_model.dart';
import 'package:api_to_sqlite_flutter/src/providers/db_provider.dart';
import 'package:dio/dio.dart';
class EmployeeApiProvider {
Future<List<Employee>> getAllEmployees() async {
var url = "http://demo8161595.mockable.io/employee";
Response response = await Dio().get(url);
return (response.data as List).map((employee) {
import 'dart:io';
import 'package:api_to_sqlite_flutter/src/models/employee_model.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
class DBProvider {
static Database _database;
static final DBProvider db = DBProvider._();