cyclestreets / ios

iPhone app
https://www.cyclestreets.net/mobile/iphone/
179 stars 149 forks source link

Photo wizard bugs #74

Closed mvl22 closed 8 years ago

mvl22 commented 11 years ago

Having added a load of pictures today using the wizard, I've come across a number of minor bugs:

1) If uploading images in an area already having a lot of photos, the green icon often doesn't appear (presumably because that doesn't happen to be in the set of images that the photomap has chosen due to the high number). I guess this may need API-level support for a mustinclude= parameter.

2) If the upload doesn't get a response at the end, e.g. due to the server being under very heavy load, the next time a photo is added the user has to sign in. Presumably the failure to get a response is treated the same way as credentials being wrong.

3) The orientation isn't always respected, i.e. when a landscape photo appears that way in the Camera Roll listing, it comes out portrait on the site.

4) The latest scroll position in the Camera Roll between uploads isn't maintained. This is annoying if working back through images that you get dumped back at the latest image rather than near the last one that you uploaded. If there is support in the Camera Roll API for this then such memory would be good to enable.

5) If you fill out a caption, then select all then cut it, then press Previous to go back to step 4, then press Next to go back to step 5, the caption has reappeared, and in grey. Using backspace instead of cut also has the same effect.

6) It is possible to make the "Please enter a description" text editable, e.g. by pressing backspace with the cursor at the end of it.

7) On pressing Upload Photo, if the user is not signed in the signin screen correctly appears, but successful completion of that signin screen does not instantly 're-press' the Upload Photo button. Instead, the user has to press it again.

neilkachu commented 11 years ago

1)

Yes, this will be the case, we load the area that the photo is in and then if the id for it is found it uses the green marker, so yes if the server is clustering the markers we'll require an override api parameter.

neilkachu commented 11 years ago

2) I'll investigate this.

neilkachu commented 11 years ago

3) I'll investigate

neilkachu commented 11 years ago

4) I suspect this is not possible, the CameraRoll view supplied by the system is temporary so no state is preserved between instances.

neilkachu commented 11 years ago

5) I'll investigate

neilkachu commented 11 years ago

6) This is just prompt text, it should not be editable.

neilkachu commented 11 years ago

7) Yes, I'll enable this, currently I dont think the Wizard gets the users login state back from this event.

mvl22 commented 11 years ago

2) If the upload doesn't get a response at the end, e.g. due to the server being under very heavy load, the next time a photo is added the user has to sign in. Presumably the failure to get a response is treated the same way as credentials being wrong.

I've found a related issue:

8) If the user is in the wizard, and then switches to another app while in that state, then a login will be requested. This happens I think either every time or most times - I'm not sure yet.

Also:

9) At the very end of the wizard, upon a successful upload the button called 'Cancel' should change to 'Close', as Cancel implies deleting the upload.

mvl22 commented 11 years ago

1 - force an ID to be included in the photos list:

There is now API-level support for this: http://www.cyclestreets.net/api/photos/

Just add selectedid= to that call.

neilkachu commented 11 years ago

Hi, Have implemented selectedid but does not seem to work as expected. Here we have an id of 47219, if we are zoomed in the user marker shows but as we zoom out it is purged Request is: http://www.cyclestreets.net/api/photos.xml?w=-0.05559134&minimaldata=1&suppressplaceholders=1&limit=25&useDom=1&zoom=13&selectedid=47219&longitude=0.02653348&latitude=52.24786&key=_key_&s=52.18988&thumbnailsize=300&e=0.1086583&n=52.30584

iOS Simulator Screen shot 16 Jan 2013 12 02 43

iOS Simulator Screen shot 16 Jan 2013 12 00 25

[Edited by mvl22 to remove the key]

mvl22 commented 11 years ago

What is the API call for the post-zoomed-out state? That has to involve a second call surely. Are you certain it is retaining the selectedid part?

neilkachu commented 11 years ago

The supplied API url is the one used for the zoomed out state. These calls are generated each time the map state changes. Ive re checked, the Upload id matches the returned photomap id when zoomed in:

Zoomed in request:

http://www.cyclestreets.net/api/photos.xml?w=0.02123344&minimaldata=1&suppressplaceholders=1&limit=25&useDom=1&zoom=13&selectedid=47220&longitude=0.02466667&latitude=52.251&key=6651511340df6104&s=52.24858&thumbnailsize=300&e=0.02809989&n=52.25342

Zoomed out request:

http://www.cyclestreets.net/api/photos.xml?w=-0.06410915&minimaldata=1&suppressplaceholders=1&limit=25&useDom=1&zoom=13&selectedid=47220&longitude=0.02466667&latitude=52.24817&key=6651511340df6104&s=52.18549&thumbnailsize=300&e=0.1134425&n=52.31084

FYI: this is using the dev key so no need to chop it out as it's in the repo anyway.

mvl22 commented 11 years ago

I've found the bug in the API response for photos.xml with selectedid and fixed this.

(The problem was as follows: The photos.xml call has to do a double-pass which firstly gets a set of possible photos and then does a second pass to limit it down. We inject a specific item into the second call, and add one to the maximum count. However, the ORDER BY meant that the item we inject in wasn't necessarily included if the count is exceeded. I've forced in (id={$id}) into the ORDER BY clause which does this.)