{"action":"created","issue":{"url":"https://api.github.com/repos/nextcloud/android/issues/358","repository_url":"https://api.github.com/repos/nextcloud/android","labels_url":"https://api.github.com/repos/nextcloud/android/issues/358/labels{/name}","comments_url":"https://api.github.com/repos/nextcloud/android/issues/358/comments","events_url":"https://api.github.com/repos/nextcloud/android/issues/358/events","html_url":"https://github.com/nextcloud/android/pull/358","id":185384907,"number":358,"title":"New Instant Upload (Android 5+)","user":{"login":"AndyScherzinger","id":1315170,"avatar_url":"https://avatars.githubusercontent.com/u/1315170?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyScherzinger","html_url":"https://github.com/AndyScherzinger","followers_url":"https://api.github.com/users/AndyScherzinger/followers","following_url":"https://api.github.com/users/AndyScherzinger/following{/other_user}","gists_url":"https://api.github.com/users/AndyScherzinger/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyScherzinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyScherzinger/subscriptions","organizations_url":"https://api.github.com/users/AndyScherzinger/orgs","repos_url":"https://api.github.com/users/AndyScherzinger/repos","events_url":"https://api.github.com/users/AndyScherzinger/events{/privacy}","received_events_url":"https://api.github.com/users/AndyScherzinger/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nextcloud/android/labels/2.%20developing","name":"2. developing","color":"0052cc"},{"url":"https://api.github.com/repos/nextcloud/android/labels/design","name":"design","color":"cc317c"},{"url":"https://api.github.com/repos/nextcloud/android/labels/enhancement","name":"enhancement","color":"0e8a16"},{"url":"https://api.github.com/repos/nextcloud/android/labels/high","name":"high","color":"c5def5"}],"state":"open","locked":false,"assignee":{"login":"AndyScherzinger","id":1315170,"avatar_url":"https://avatars.githubusercontent.com/u/1315170?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyScherzinger","html_url":"https://github.com/AndyScherzinger","followers_url":"https://api.github.com/users/AndyScherzinger/followers","following_url":"https://api.github.com/users/AndyScherzinger/following{/other_user}","gists_url":"https://api.github.com/users/AndyScherzinger/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyScherzinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyScherzinger/subscriptions","organizations_url":"https://api.github.com/users/AndyScherzinger/orgs","repos_url":"https://api.github.com/users/AndyScherzinger/repos","events_url":"https://api.github.com/users/AndyScherzinger/events{/privacy}","received_events_url":"https://api.github.com/users/AndyScherzinger/received_events","type":"User","site_admin":false},"assignees":[{"login":"AndyScherzinger","id":1315170,"avatar_url":"https://avatars.githubusercontent.com/u/1315170?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyScherzinger","html_url":"https://github.com/AndyScherzinger","followers_url":"https://api.github.com/users/AndyScherzinger/followers","following_url":"https://api.github.com/users/AndyScherzinger/following{/other_user}","gists_url":"https://api.github.com/users/AndyScherzinger/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyScherzinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyScherzinger/subscriptions","organizations_url":"https://api.github.com/users/AndyScherzinger/orgs","repos_url":"https://api.github.com/users/AndyScherzinger/repos","events_url":"https://api.github.com/users/AndyScherzinger/events{/privacy}","received_events_url":"https://api.github.com/users/AndyScherzinger/received_events","type":"User","site_admin":false},{"login":"tobiasKaminsky","id":5836855,"avatar_url":"https://avatars.githubusercontent.com/u/5836855?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasKaminsky","html_url":"https://github.com/tobiasKaminsky","followers_url":"https://api.github.com/users/tobiasKaminsky/followers","following_url":"https://api.github.com/users/tobiasKaminsky/following{/other_user}","gists_url":"https://api.github.com/users/tobiasKaminsky/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasKaminsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasKaminsky/subscriptions","organizations_url":"https://api.github.com/users/tobiasKaminsky/orgs","repos_url":"https://api.github.com/users/tobiasKaminsky/repos","events_url":"https://api.github.com/users/tobiasKaminsky/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasKaminsky/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/nextcloud/android/milestones/7","html_url":"https://github.com/nextcloud/android/milestones/Nextcloud%20App%201.4.0","labels_url":"https://api.github.com/repos/nextcloud/android/milestones/7/labels","id":1918836,"number":7,"title":"Nextcloud App 1.4.0","description":"","creator":{"login":"AndyScherzinger","id":1315170,"avatar_url":"https://avatars.githubusercontent.com/u/1315170?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyScherzinger","html_url":"https://github.com/AndyScherzinger","followers_url":"https://api.github.com/users/AndyScherzinger/followers","following_url":"https://api.github.com/users/AndyScherzinger/following{/other_user}","gists_url":"https://api.github.com/users/AndyScherzinger/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyScherzinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyScherzinger/subscriptions","organizations_url":"https://api.github.com/users/AndyScherzinger/orgs","repos_url":"https://api.github.com/users/AndyScherzinger/repos","events_url":"https://api.github.com/users/AndyScherzinger/events{/privacy}","received_events_url":"https://api.github.com/users/AndyScherzinger/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":38,"state":"open","created_at":"2016-08-02T17:16:24Z","updated_at":"2016-10-27T13:20:10Z","due_on":null,"closed_at":null},"comments":18,"created_at":"2016-10-26T12:54:08Z","updated_at":"2016-10-27T14:55:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nextcloud/android/pulls/358","html_url":"https://github.com/nextcloud/android/pull/358","diff_url":"https://github.com/nextcloud/android/pull/358.diff","patch_url":"https://github.com/nextcloud/android/pull/358.patch"},"body":"New instant upload implementation for any device running Android 5 or later.\r\n\r\nThis new implementation supports \"V1\" of the specified feature set, which focuses on \r\n* bringing the instant upload feature to Android 7+\r\n* supporting Android Doze\r\n* supporting instant upload for any kind of media folder (at the moment this means Images/Videos)\r\n\r\nfor any future increment see #285\r\n\r\n*This is a collaboration between @AndyScherzinger and @tobiasKaminsky coding-wise.*\r\n\r\n@nextcloud/designers please have a look at the actual screenshots (below), hereby requesting feedback/discussion. In short we mimic Google Photos to some extend.\r\n\r\ndisplay media folder in a sectioned grid (--> headers). Each folder shows its name, up to 8 thumbnails, remaining images of the folder for >8 files in the respective folder, on/off toggle icon, three dot for custom preferences (per folder, beware though that we have a defaulting so you don't need to configure anything).\r\n![device-2016-10-26-144206](https://cloud.githubusercontent.com/assets/1315170/19726387/058a5566-9b8b-11e6-86c5-0dd1b9fe6d80.png)\r\n*The sorting is weighted and alphabetical, meaning they are sorted alphabetically (while a folder named \"Camera\" wins...) and weighted by active/inactive. Thus active one will be at the top and the Camera folder will always be at the top of the active or the inactive cluster.\r\nThe thumbnails shown per folder are always the latest ones (as in date taken, modification-date) and they get cached*\r\n\r\nPreferences are adopted from the actual/known instant upload capabilities as is choose the upload folder, wifi only, charging only, created sub-folders, upload behavior, enable/disable.\r\n![device-2016-10-26-144227](https://cloud.githubusercontent.com/assets/1315170/19726390/0af6d68c-9b8b-11e6-9f98-225ac63c3b4c.png)\r\n\r\nThe new instant upload is so cool it got it's own main menu item :yum: \r\n![device-2016-10-26-144449](https://cloud.githubusercontent.com/assets/1315170/19726413/1e19cb66-9b8b-11e6-83d7-db7cabf91c89.png)\r\n*Also due to the fact that this feature has at least for evolutionary increments to be possibly implemented see #285 and will transform into a general folder sync feature in the future*\r\n\r\n---\r\n\r\n**Tasks Tobi**\r\n- [x] use DB for hardcoded DCIM folder to implement FolderObserver, JobScheduler\r\n- [ ] use DB to start/stop/resume all DB entries for FolderObserver\r\n- [ ] adapt UploadPane to new system\r\n- [ ] fallback system for android versions that do to support JobScheduler (< 5)\r\n\r\n**Tasks Andy**\r\n- [x] folder sync overview recycler view with header implementation\r\n  - [x] performance tuning, async setting of the image\r\n- [x] folder sync custom settings UI\r\n- [x] media query implementation for standard options for media folders (sync deactivated by default)\r\n- [x] smart sorting for sync folder list (weighted, mostly alpha-numerical, active/disabled)\r\n- [x] show message if no (really no) media folder is available (e.g. fresh created emulator)\r\n- [x] fix state (enabled/disabled) persistence bug\r\n- [x] always display the latest media (add order by clause to media queries)\r\n- [x] hide menu item below Android 5\r\n- [x] hide (legacy) instant upload preferences on Android 5+\r\n- [x] feature pop-up with a hint to the new folder sync functionality and deactivation of the legacy instant upload\r\n- [x] remove legacy shared preferences for Android 5+\r\n- [x] further UI tweaking of the settings screen\r\n- [x] ability to disable a folder in its settings\r\n"},"comment":{"url":"https://api.github.com/repos/nextcloud/android/issues/comments/256665297","html_url":"https://github.com/nextcloud/android/pull/358#issuecomment-256665297","issue_url":"https://api.github.com/repos/nextcloud/android/issues/358","id":256665297,"user":{"login":"enoch85","id":4511254,"avatar_url":"https://avatars.githubusercontent.com/u/4511254?v=3","gravatar_id":"","url":"https://api.github.com/users/enoch85","html_url":"https://github.com/enoch85","followers_url":"https://api.github.com/users/enoch85/followers","following_url":"https://api.github.com/users/enoch85/following{/other_user}","gists_url":"https://api.github.com/users/enoch85/gists{/gist_id}","starred_url":"https://api.github.com/users/enoch85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enoch85/subscriptions","organizations_url":"https://api.github.com/users/enoch85/orgs","repos_url":"https://api.github.com/users/enoch85/repos","events_url":"https://api.github.com/users/enoch85/events{/privacy}","received_events_url":"https://api.github.com/users/enoch85/received_events","type":"User","site_admin":false},"created_at":"2016-10-27T14:55:27Z","updated_at":"2016-10-27T14:55:27Z","body":"Great! \r\n\r\nAlso, using subfolders when uploading screenshots doesn't work.\r\n\r\nWhen is this expected to reach stable?"}}
{"actor":{"display_login":"enoch85"}}