summaryrefslogtreecommitdiff
path: root/debian/patches/0100-ios8.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0100-ios8.patch')
-rw-r--r--debian/patches/0100-ios8.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/debian/patches/0100-ios8.patch b/debian/patches/0100-ios8.patch
new file mode 100644
index 0000000..8844861
--- /dev/null
+++ b/debian/patches/0100-ios8.patch
@@ -0,0 +1,103 @@
+Description: Reset iOS 8 devices to download files
+Origin: https://bugzilla.gnome.org/show_bug.cgi?id=742295#c22
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742295
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792016
+Last-Update: 2016-11-25
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/src/camera/ImportPage.vala
+===================================================================
+--- trunk.orig/src/camera/ImportPage.vala
++++ trunk/src/camera/ImportPage.vala
+@@ -773,6 +773,15 @@ public class ImportPage : CheckerboardPa
+ ~ImportPage() {
+ LibraryPhoto.global.contents_altered.disconnect(on_media_added_removed);
+ Video.global.contents_altered.disconnect(on_media_added_removed);
++
++ // iOS 8 issue. Release the camera here
++ if (camera != null) {
++ GPhoto.Result res = camera.exit(spin_idle_context.context);
++ if (res != GPhoto.Result.OK) {
++ // log but don't fail
++ warning("ImportPage destructor: Unable to unlock camera: %s", res.to_full_string());
++ }
++ }
+ }
+
+ public override Gtk.Toolbar get_toolbar() {
+@@ -1162,11 +1171,14 @@ public class ImportPage : CheckerboardPa
+ update_status(busy, false);
+
+ refresh_error = null;
+- refresh_result = camera.init(spin_idle_context.context);
+- if (refresh_result != GPhoto.Result.OK) {
+- warning("Unable to initialize camera: %s", refresh_result.to_full_string());
+-
+- return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
++ // iOS 8 issue
++ if (camera == null) {
++ refresh_result = camera.init(spin_idle_context.context);
++ if (refresh_result != GPhoto.Result.OK) {
++ warning("Unable to initialize camera: %s", refresh_result.to_full_string());
++
++ return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
++ }
+ }
+
+ update_status(true, refreshed);
+@@ -1271,13 +1283,15 @@ public class ImportPage : CheckerboardPa
+ progress_bar.set_ellipsize(Pango.EllipsizeMode.NONE);
+ progress_bar.set_text("");
+ progress_bar.set_fraction(0.0);
+-
++
++#if 0
+ GPhoto.Result res = camera.exit(spin_idle_context.context);
+ if (res != GPhoto.Result.OK) {
+ // log but don't fail
+ warning("Unable to unlock camera: %s", res.to_full_string());
+ }
+-
++#endif
++
+ if (refresh_result == GPhoto.Result.OK) {
+ if (import_sources.get_count () == 0) {
+ this.set_page_message (this.get_view_empty_message ());
+@@ -1646,11 +1660,15 @@ public class ImportPage : CheckerboardPa
+ }
+
+ private void import(Gee.Iterable<DataObject> items) {
+- GPhoto.Result res = camera.init(spin_idle_context.context);
+- if (res != GPhoto.Result.OK) {
+- AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
+-
+- return;
++ // We now keep the camera open as long as we can to
++ // work around the iOS 8 directory name shuffling issue.
++ if (camera == null) {
++ GPhoto.Result res = camera.init(spin_idle_context.context);
++ if (res != GPhoto.Result.OK) {
++ AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
++
++ return;
++ }
+ }
+
+ update_status(true, refreshed);
+@@ -1786,12 +1804,15 @@ public class ImportPage : CheckerboardPa
+ }
+
+ private void close_import() {
++// iOS 8 issue
++#if 0
+ GPhoto.Result res = camera.exit(spin_idle_context.context);
+ if (res != GPhoto.Result.OK) {
+ // log but don't fail
+ message("Unable to unlock camera: %s", res.to_full_string());
+ }
+-
++#endif
++
+ update_status(false, refreshed);
+
+ on_view_changed();