diff --git a/lib/db/db_helper.dart b/lib/db/db_helper.dart index eb6ff6372..b1dc021ea 100644 --- a/lib/db/db_helper.dart +++ b/lib/db/db_helper.dart @@ -13,7 +13,7 @@ class DatabaseHelper { static final columnLocalPath = 'local_path'; static final columnThumbnailPath = 'thumbnail_path'; - static final columnUrl = 'url'; + static final columnPath = 'path'; static final columnHash = 'hash'; static final columnSyncTimestamp = 'sync_timestamp'; @@ -44,7 +44,7 @@ class DatabaseHelper { CREATE TABLE $table ( $columnLocalPath TEXT NOT NULL, $columnThumbnailPath TEXT NOT NULL, - $columnUrl TEXT, + $columnPath TEXT, $columnHash TEXT NOT NULL, $columnSyncTimestamp TEXT ) @@ -79,25 +79,26 @@ class DatabaseHelper { Future> getPhotosToBeUploaded() async { Database db = await instance.database; - var results = await db.query(table, where: '$columnUrl IS NULL'); + var results = await db.query(table, where: '$columnPath IS NULL'); return _convertToPhotos(results); } // We are assuming here that the hash column in the map is set. The other // column values will be used to update the row. - Future updateUrlAndTimestamp( - String hash, String url, String timestamp) async { + Future updatePathAndTimestamp( + String hash, String path, String timestamp) async { Database db = await instance.database; var row = new Map(); - row[columnUrl] = url; + row[columnPath] = path; row[columnSyncTimestamp] = timestamp; return await db .update(table, row, where: '$columnHash = ?', whereArgs: [hash]); } - Future getPhotoByUrl(String url) async { + Future getPhotoByPath(String path) async { Database db = await instance.database; - var rows = await db.query(table, where: '$columnUrl =?', whereArgs: [url]); + var rows = + await db.query(table, where: '$columnPath =?', whereArgs: [path]); if (rows.length > 0) { return Photo.fromRow(rows[0]); } else { @@ -124,7 +125,7 @@ class DatabaseHelper { var row = new Map(); row[columnLocalPath] = photo.localPath; row[columnThumbnailPath] = photo.thumbnailPath; - row[columnUrl] = photo.url; + row[columnPath] = photo.path; row[columnHash] = photo.hash; row[columnSyncTimestamp] = photo.syncTimestamp; return row; diff --git a/lib/models/face.dart b/lib/models/face.dart index 7d817f09d..9175ddb95 100644 --- a/lib/models/face.dart +++ b/lib/models/face.dart @@ -1,8 +1,8 @@ class Face { final int faceID; - final String thumbnailURL; + final String thumbnailPath; Face.fromJson(Map json) : faceID = json["faceID"], - thumbnailURL = json["thumbnailURL"]; + thumbnailPath = json["thumbnailPath"]; } diff --git a/lib/models/photo.dart b/lib/models/photo.dart index 2fb96a248..08efc683a 100644 --- a/lib/models/photo.dart +++ b/lib/models/photo.dart @@ -7,7 +7,7 @@ import 'package:path_provider/path_provider.dart'; import 'package:photo_manager/photo_manager.dart'; class Photo { - String url; + String path; String localPath; String thumbnailPath; String hash; @@ -16,14 +16,14 @@ class Photo { Photo(); Photo.fromJson(Map json) - : url = json["url"], + : path = json["path"], hash = json["hash"], syncTimestamp = json["syncTimestamp"]; Photo.fromRow(Map row) : localPath = row["local_path"], thumbnailPath = row["thumbnail_path"], - url = row["url"], + path = row["path"], hash = row["hash"], syncTimestamp = row["sync_timestamp"] == null ? -1 diff --git a/lib/models/search_result.dart b/lib/models/search_result.dart index 433065fea..ff56dd9d0 100644 --- a/lib/models/search_result.dart +++ b/lib/models/search_result.dart @@ -1,5 +1,5 @@ class SearchResult { - final String url; + final String path; - SearchResult(this.url); + SearchResult(this.path); } diff --git a/lib/photo_sync_manager.dart b/lib/photo_sync_manager.dart index 7bc609ab6..4e65d7ec5 100644 --- a/lib/photo_sync_manager.dart +++ b/lib/photo_sync_manager.dart @@ -93,8 +93,8 @@ class PhotoSyncManager { return; } var uploadedPhoto = await _uploadFile(photo.localPath, photo.hash); - await DatabaseHelper.instance.updateUrlAndTimestamp(photo.hash, - uploadedPhoto.url, uploadedPhoto.syncTimestamp.toString()); + await DatabaseHelper.instance.updatePathAndTimestamp(photo.hash, + uploadedPhoto.path, uploadedPhoto.syncTimestamp.toString()); prefs.setInt(_lastSyncTimestampKey, uploadedPhoto.syncTimestamp); uploadedCount++; } @@ -106,13 +106,13 @@ class PhotoSyncManager { var path = externalPath + "/photos/"; for (Photo photo in diff) { if (await DatabaseHelper.instance.containsPhotoHash(photo.hash)) { - await DatabaseHelper.instance.updateUrlAndTimestamp( - photo.hash, photo.url, photo.syncTimestamp.toString()); + await DatabaseHelper.instance.updatePathAndTimestamp( + photo.hash, photo.path, photo.syncTimestamp.toString()); continue; } else { - var localPath = path + basename(photo.url); + var localPath = path + basename(photo.path); await _dio - .download(Constants.ENDPOINT + photo.url, localPath) + .download(Constants.ENDPOINT + "/" + photo.path, localPath) .catchError(_onError); photo.localPath = localPath; await Photo.setThumbnail(photo); diff --git a/lib/ui/face_search_results_page.dart b/lib/ui/face_search_results_page.dart index 450785f6b..2893257fa 100644 --- a/lib/ui/face_search_results_page.dart +++ b/lib/ui/face_search_results_page.dart @@ -28,7 +28,7 @@ class FaceSearchResultsPage extends StatelessWidget { Hero( tag: "face_" + _face.faceID.toString(), child: CircularNetworkImageWidget( - Constants.ENDPOINT + _face.thumbnailURL, 20), + Constants.ENDPOINT + _face.thumbnailPath, 20), ) ], ), @@ -45,7 +45,7 @@ class FaceSearchResultsPage extends StatelessWidget { if (snapshot.hasData) { return GridView.builder( itemBuilder: (_, index) => - _buildItem(context, snapshot.data[index].url), + _buildItem(context, snapshot.data[index].path), itemCount: snapshot.data.length, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 4, @@ -57,25 +57,25 @@ class FaceSearchResultsPage extends StatelessWidget { ); } - Widget _buildItem(BuildContext context, String url) { + Widget _buildItem(BuildContext context, String path) { return GestureDetector( onTap: () async { - _routeToDetailPage(url, context); + _routeToDetailPage(path, context); }, - child: _getImage(url), + child: _getImage(path), ); } - Widget _getImage(String url) { + Widget _getImage(String path) { return FutureBuilder( - future: DatabaseHelper.instance.getPhotoByUrl(url), + future: DatabaseHelper.instance.getPhotoByPath(path), builder: (_, snapshot) { if (snapshot.hasData) { return ImageWidget(path: snapshot.data.thumbnailPath); } else if (snapshot.hasError) { return Container( margin: EdgeInsets.all(2), - child: Image.network(Constants.ENDPOINT + url, + child: Image.network(Constants.ENDPOINT + "/" + path, height: 124, width: 124, fit: BoxFit.cover), ); } else { @@ -85,9 +85,9 @@ class FaceSearchResultsPage extends StatelessWidget { ); } - void _routeToDetailPage(String url, BuildContext context) async { - Widget page = NetworkImageDetailPage(url); - var photo = await DatabaseHelper.instance.getPhotoByUrl(url); + void _routeToDetailPage(String path, BuildContext context) async { + Widget page = NetworkImageDetailPage(path); + var photo = await DatabaseHelper.instance.getPhotoByPath(path); if (photo != null) { page = DetailPage(photo); } diff --git a/lib/ui/network_image_detail_page.dart b/lib/ui/network_image_detail_page.dart index 351406593..5c91dc8f1 100644 --- a/lib/ui/network_image_detail_page.dart +++ b/lib/ui/network_image_detail_page.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:myapp/core/constants.dart' as Constants; class NetworkImageDetailPage extends StatelessWidget { - final String _url; + final String _path; - const NetworkImageDetailPage(this._url, {Key key}) : super(key: key); + const NetworkImageDetailPage(this._path, {Key key}) : super(key: key); @override Widget build(Object context) { @@ -32,7 +33,7 @@ class NetworkImageDetailPage extends StatelessWidget { onVerticalDragUpdate: (details) { Navigator.pop(context); }, - child: Image.network(_url), + child: Image.network(Constants.ENDPOINT + "/" + _path), ); } } diff --git a/lib/ui/search_page.dart b/lib/ui/search_page.dart index 046ae9520..3b10a11cd 100644 --- a/lib/ui/search_page.dart +++ b/lib/ui/search_page.dart @@ -72,7 +72,7 @@ class SearchPage extends StatelessWidget { child: Hero( tag: "face_" + face.faceID.toString(), child: CircularNetworkImageWidget( - Constants.ENDPOINT + face.thumbnailURL, 60), + Constants.ENDPOINT + "/" + face.thumbnailPath, 60), ), ); }