Commit f7a5d3ab authored by Thiago Nitschke's avatar Thiago Nitschke
Browse files

Merge remote-tracking branch 'origin/feature/importarImagens' into release/sprint2

# Conflicts:
#	lib/pages/photos_list.dart
parents b9f00139 baa9566e
Showing with 140 additions and 3 deletions
+140 -3
import 'dart:ffi';
abstract class ImageService {
Future<Void> run();
}
import 'dart:ffi';
import 'package:cupertino/components/image_service.dart';
import 'package:logger/logger.dart';
class ImageSynchronizer implements ImageService {
var LOGGER = Logger();
@override
Future<Void> run() {
LOGGER.i("running imageService");
}
}
import 'dart:ffi';
import 'package:cupertino/components/image_synchronizer.dart';
import 'package:flutter/material.dart';
class ImageSynchronizerScreen extends StatefulWidget {
@override
_ImageSynchronizerScreenState createState() =>
_ImageSynchronizerScreenState();
}
class _ImageSynchronizerScreenState extends State<ImageSynchronizerScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Sincronizar fotos"),
),
body: Container(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text("Nenhuma foto sincronizada"),
RaisedButton(
onPressed: () {
_showChoiceDialog(context);
},
child: Text("Sincronizar fotos"),
)
]),
),
),
);
}
Future<Void> _showChoiceDialog(BuildContext context) {
return showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
GestureDetector(
child: Text("Galeria"),
onTap: () {
ImageSynchronizer().run();
},
)
],
),
),
);
});
}
/*
Future _syncImages() async {
var result = await PhotoManager.requestPermission();
if (result) {
List<AssetPathEntity> list = await PhotoManager.getAssetPathList();
print(list);
// success
} else {
// fail
/// if result is fail, you can call `PhotoManager.openSetting();` to open android/ios applicaton's setting to get permission
}
}
}
*/
/*
Future _openGallary() async {
final image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
if (image != null) {
print(image.path);
FileStat.stat(image.path).then((value) => print(value.accessed));
FileStat.stat(image.path).then((value) => print(value.changed));
FileStat.stat(image.path).then((value) => print(value.modified));
FileStat.stat(image.path).then((value) => print(value.size));
} else {
print('No image selected.');
}
});
}
*/
/*
Future<void> upload(File file) async {
StorageReference ref = FirebaseStorage.instance.ref().child("images/");
StorageUploadTask storageUploadTask =
ref.child(file.path.substring(0, 20)).putFile(file);
if (storageUploadTask.isSuccessful || storageUploadTask.isComplete) {
final String url = await ref.getDownloadURL();
print("Download URL: " + url);
} else if (storageUploadTask.isInProgress) {
storageUploadTask.events.listen((event) {
double percentage = 100 *
(event.snapshot.bytesTransferred.toDouble() /
event.snapshot.totalByteCount.toDouble());
print("Upload: " + percentage.toString());
});
StorageTaskSnapshot storageTaskSnapshot =
await storageUploadTask.onComplete;
var downloadUrl1 = await storageTaskSnapshot.ref.getDownloadURL();
print("Download URL " + downloadUrl1.toString());
} else {
//interrupted
}
}
*/
}
import 'package:cupertino/pages/course_list.dart';
import 'package:cupertino/components/syncronization.dart';
import 'package:flutter/material.dart';
void main() {
......@@ -14,9 +14,9 @@ class MyApp extends StatelessWidget {
scaffoldBackgroundColor: Color(0xFF292929),
appBarTheme: AppBarTheme().copyWith(color: Color(0xFF121212))),
home: Scaffold(
body: CoursesList(),
body: ImageSynchronizerScreen(),
bottomNavigationBar: BottomNavigationBar(
currentIndex: 0,
currentIndex: 1,
items: [
BottomNavigationBarItem(
icon: Icon(Icons.class_), title: Text('Disciplinas')),
......
......@@ -11,6 +11,9 @@ environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
logger: ^0.9.4
photo_manager:
image_picker:
flutter:
sdk: flutter
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment