Skip to content

Commit

Permalink
File upload works
Browse files Browse the repository at this point in the history
  • Loading branch information
mayank99 committed Feb 3, 2019
1 parent e2f41b4 commit dacedfc
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 3 deletions.
56 changes: 54 additions & 2 deletions instarip/lib/main.dart
Expand Up @@ -3,6 +3,13 @@ import 'package:instarip/login_screen.dart';
import 'package:instarip/authentication.dart';
import 'package:instarip/homepage.dart';

import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:watcher/watcher.dart';
import 'dart:io';
import 'package:image/image.dart' as Img;
import 'package:firebase_storage/firebase_storage.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
Expand All @@ -15,7 +22,52 @@ class MyApp extends StatelessWidget {
),
home: StreamBuilder(
stream: authService.user,
builder: (context, snapshot) =>
(snapshot.hasData) ? GridList(uid: snapshot.data.uid) : LoginSignUpPage()));
builder: (context, snapshot) => (snapshot.hasData)
? MainPage(snapshot.data.uid)
: LoginSignUpPage()));
}
}

class MainPage extends StatelessWidget {
final String uid;

MainPage(this.uid) {
listener();
}

@override
Widget build(BuildContext context) {
return GridList(uid: this.uid);
}

void uploadImage(String fileName, File uploadFile) {
var storageRef = FirebaseStorage.instance
.ref()
.child(uid)
.child("Uncategorized")
.child(fileName);
storageRef.getMetadata().then(print).catchError((data) {
storageRef.putFile(uploadFile);
});
}

void readImage(String filePath) {
File imageFile = new File(filePath);
Img.Image image = Img.decodeImage(imageFile.readAsBytesSync());
String fileName =
"${p.basenameWithoutExtension(filePath)}-${image.width.toString()}x${image.height.toString()}${p.extension(filePath)}";
uploadImage(fileName, imageFile);
}

void listener() async {
//"/storage/emulated/0/Pictures/Screenshots"
Directory externalDir = await getExternalStorageDirectory();
var watcher = DirectoryWatcher(
p.absolute(externalDir.path + "/Pictures/Screenshots"));
watcher.events.listen((event) {
if (event.type.toString() == "add") {
readImage(event.path.toString());
}
});
}
}
8 changes: 7 additions & 1 deletion instarip/pubspec.yaml
Expand Up @@ -15,17 +15,23 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_staggered_grid_view:
photo_view: ^0.1.3

firebase_core: ^0.3.0
cloud_firestore: ^0.9.0
google_sign_in: ^4.0.0
firebase_auth: ^0.8.0+1
firebase_storage: ^2.0.0

rxdart: ^0.20.0

cached_network_image: ^0.5.1
share: ^0.6.0

path_provider: ^0.4.0
watcher: ^0.9.7+10
image: ^2.0.6

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
Expand Down

0 comments on commit dacedfc

Please sign in to comment.