[01:09:45] jdlrobson: we're on R35 [01:40:43] jdlrobson: yt? [02:57:06] Hi niedzielski :) [02:58:40] josephine_l: hello :) [02:59:35] niedzielski, I think I'm stuck on fixing the image URI bug for real devices :/ [03:00:59] josephine_l: so pull #38 doesn't fix it? [03:01:30] niedzielski, I thought it did. Then today it doesn't work again for my emulator, even though it works for my real device [03:01:56] niedzielski, I did put in a try catch block and such, but after it didn't work, I reverted the new commit [03:02:10] So I'm back to the old code again but it still doesn't work [03:03:00] Or maybe it shouldn't matter that it doesn't work for emulators? I dunno. :) [03:04:05] josephine_l: is this the relevant line in the patch? https://github.com/nicolas-raoul/apps-android-commons/pull/38/files#diff-72e3a9e6acdbd730cbc0d597e9d51c92R170 [03:04:33] niedzielski, yeah, that's the one [03:05:13] josephine_l: and you're just trying to get a filesystem path? [03:05:19] niedzielski, yeah [03:08:19] I've been looking for a workaround to see if there's a way to get ExifInterface working with just a URI, but everything I've read on that just involves converting the URI to a real path anyway... [03:08:40] josephine_l: when Uri.getPath fails, is just returning null? [03:08:45] niedzielski, yeah [03:09:00] josephine_l: and you're sure the file it points to exists in these scenarios? [03:09:23] yep [03:10:02] niedzielski, can a user choose a file that doesn't exist for uploading? [03:10:50] josephine_l: i would think it would be possible but not a likely scenario. for example, if i delete a file over ADB, i'm not sure the media store is updated until reboot [03:11:07] niedzielski, oh, okay. But no, I haven't deleted any files. [03:11:18] I'll try rebooting my emulator and see [03:11:40] niedzielski, you think the code looks okay though? I'm not missing anything? [03:11:51] josephine_l: can you share the URI and file path again? [03:12:00] josephine_l: the URI patch is a little noisy :) [03:12:48] niedzielski, haha, yeah, sorry... :) How do you mean share them? [03:12:57] niedzielski, you mean the log output, or the code? [03:14:03] josephine_l: just the URI string like content://foo/bar/baz and filename like /sdcard/foo.jpg [03:14:41] Uri: content://com.android.providers.media.documents/document/image%3A116 [03:15:52] Filename: sdcard/Download/something.jpg [03:16:16] niedzielski, I've tried with various images, I mean [03:20:11] josephine_l: hm. so even for the simple case of a filename without spaces or special characters, it fails? [03:20:53] niedzielski, just tried one, yeah. hukafalls.jpg is the filename [03:21:30] josephine_l, Hi! [03:21:34] Hi Nicolas! :) [03:21:51] How are you doing? It is snowing here in Tokyo. [03:22:12] Nicolas, I'm good, thanks :) niedzielski and I are trying to troubleshoot the URI bug [03:22:34] Nicolas: hello! [03:23:41] The latest version is on Play Store, and works correctly on phones, but not on emulators, right? [03:24:18] If yes, time to ask the whole world to test the app as much as they can :-) [03:25:01] Nicolas, I haven't uploaded the latest to Play Store yet, haha. Should I? I've only tested it on one device... [03:27:06] Yes, post it, lives are not in danger and rollbacking is easy anyway [03:28:24] Nicolas, hahah, okay :) I'll add a try-catch block so it doesn't crash at least, and do the versioning/tagging, then I'll push the release [03:28:34] Users are our testers, since the app can be considered in its infancy [03:28:39] OK! [03:28:41] Should I announce on the mailing lists etc too? [03:29:44] josephine_l: is this only an issue with sdcard files? [03:30:23] Yes, a few hours after publishing, so that everyone gets it immediately without waiting for Play Store propagation. [03:30:53] niedzielski, I'm not sure. Let me test that, not sure if I have any imgs on my phone sdcard [03:31:06] Nicolas, okay, sure :) [03:33:34] niedzielski, it works with my phone's SDcard [03:33:49] I just took a picture stored on the sdcard, and it got the filepath fine [03:33:56] josephine_l: yeesh, there's a bit of code around handling some api differences here: https://github.com/iPaulPro/aFileChooser/blob/master/aFileChooser/src/com/ipaulpro/afilechooser/utils/FileUtils.java#L257 [03:34:51] niedzielski, oh, whoa. That looks pretty complex, but I could give it a shot... [03:35:08] The score with 10k radius is very similar to the score of method D, right. Actually, just a little lower since there are a few extra false positives, but it does not seem significant, I guess another sample could produce a score a little higher just as well. [03:35:46] Nicolas, yeah, I think so too [03:37:31] I suggest stealing that code :-) Apache 2.0 license, same as us. [03:37:44] Nicolas, haha, okay :) [03:40:11] Btw, Nicolas and niedzielski , where should I be going from here? I'll try and use the URI code from that page as best I can, then push a release and advertise for testers. What next? [03:41:29] Next would be starting the next phase, while waiting for feedback. [03:41:56] josephine_l: i'm not sure what the dependencies of the file are in isolation. if it isn't independent, it might make more sense to add it as a library [03:42:11] Should I try to refactor the MwVolleyApi code, or leave that for later? [03:42:29] Once feedback comes (and it might take a week before people actually try it in the wild for real), there might be some work to do, so better start Phase 2 early. [03:42:58] niedzielski, I don't need all of his code though, just one method. Is it still preferable to add it as a library? [03:43:29] josephine_l: i wasn't sure if the method would have dependencies on other files. if it lifts cleanly, then fine. just take it and add the licensing as per usual [03:43:33] Nicolas, ah, okay, gotcha. [03:44:09] I wrote Phase 1 and Phase 2 as separate, but in reality the two will most probably overlap, with Phase 1 fixes taking some time during Phase 2. [03:45:28] niedzielski, oh, hm, there is one import that I can't seem to resolve [03:45:35] import com.ianhanniballake.localstorage.LocalStorageProvider; [03:47:09] Nicolas, ah, okay. Wow, just realized that phase 2 implementation officially only takes one week according to our schedule... :) [03:50:37] One week is rather though, so better start as soon as possible. [03:52:31] Nicolas, yeah, definitely. I honestly doubt I could do it in a week. [03:53:59] josephine_l: er, am i missing something? i thought the schedule only had two phases [03:54:22] niedzielski, yeah, two phases. [03:55:13] Hmm, seems like I will have to import everything as a library after all, due to the dependencies [03:55:30] josephine_l: ah, sorry :) i misunderstood the statement [03:55:59] niedzielski, haha, s'all good :) [03:57:49] niedzielski, do you think the MwVolleyApi refactor is urgent? I could see if I can get that done before starting on Phase 2. But otherwise if it isn't, I'll do that after implementing Phase 2 if there's time [03:59:08] josephine_l: i'm not suggesting htis is an ideal implementation but here's another URI to filepath reference: https://github.com/wordpress-mobile/WordPress-Android/blob/97672e22c0a862296c0261e96d29e2a4c55975e9/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java#L41 [04:00:15] Thanks niedzielski :) I think we will probably need to at least add the check for KitKat if we use this one. But always good to have more examples at hand [04:00:15] josephine_l: i recommend refactoring it if you're getting NPEs. otherwise, the complications and bugs will build. if you've resolved the NPE issue, then it can wait [04:00:24] NPE? [04:00:41] niedzielski, oh, you mean NullPointerException? [04:00:54] josephine_l: right :) [04:00:57] niedzielski, I don't get NPEs with the original code. I got them during the attempt to refactor [04:01:36] josephine_l: oh, ok :) [04:01:36] But I agree that all the statics are pretty awful. Annoyingly though it seems that if you don't want to use statics with Volley you're stuck with instance loaders [04:03:03] niedzielski, Nicolas , anything else you guys would like to discuss? I'm done with my questions early today, amazingly... :) [04:04:04] josephine_l: i'm good :) [04:05:07] OK for me! [04:06:17] Oh, niedzielski , sorry - I just saw your note on my caching pull request [04:06:54] Contact me about Phase 2 whenever you want. [04:07:17] Thanks Nicolas ! :) [04:07:43] josephine_l: that can wait if need be [04:08:32] niedzielski, ah, okay. I'll put it in a future patch along with MwVolleyApi then? [04:08:40] josephine_l: sounds good [04:09:10] Thanks niedzielski :) [04:09:21] I'll get started on that filepath library now, and I'll release after testing [04:11:02] josephine_l: ok great! is caching ready to be merged or do you want to add to it? [04:11:30] niedzielski, I'm good with the merge :) [04:19:06] niedzielski, I need to AFK for a bit, if there's nothing else? [04:19:34] josephine_l: ah, nothing on my end. have a good one! [04:19:42] Bye! :) [04:19:51] bye! [04:26:05] josephine_l, you have passed brion in terms of commits to the Commons app :-) https://github.com/nicolas-raoul/apps-android-commons/graphs/contributors [05:10:18] Nicolas, hahah, wow! I hadn't realized I'd made that many commits, time does fly :) [05:52:36] Hi Nicolas, you still there? [06:01:27] josephine_l, yes! [06:02:21] Nicolas, I appear to be having problems with importing the filepath library [06:02:23] Unsupported Modules Detected: Compilation is not supported for following modules: commons, commons-parent, ~apklib-com.actionbarsherlock_actionbarsherlock_4.4.0, ~apklib-com.viewpagerindicator_library_2.4.1. Unfortunately you can't have non-Gradle Java modules and Android-Gradle modules in one project. [06:02:37] Because that library has a gradle build I think [06:05:53] It seems to be pulling far more than we need... Can you to just replicate the logic? [06:07:11] Nicolas, yeah, I'll try to do it code-wise. His FileUtils class has a lot of dependencies but we can do without some of them. [06:07:35] Nicolas, it seems like we might need com.ianhanniballake.localstorage.LocalStorageProvider to check if there is local storage, but I guess I could copy that too... [06:07:49] Is the problem different from http://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore ? [06:09:15] Nicolas, I tried that code. Works in real device, not in emulator [06:10:00] I will probably just try and use the KitKat checking code from that GitHub repo, and skip the rest? [06:10:39] Did you post a new question including the emulator problem? It sounds like a problem that many people would face. [06:11:08] Okay, I'll post one and see [06:11:24] Nicolas, I should probably still release as soon as I can, right? While waiting for the answers [06:11:59] yes, post, release, read answers :-) [06:13:01] Nicolas, okay, will do :) [06:52:41] Nicolas, the fix requires use of DocumentsContract, which requires API lvl 19, whereas our app targets API lvl 17 [06:52:48] Can I change the target SDK in the manifest? [06:53:14] What Android version is lvl 19? [06:55:16] Nicolas, 4.4 kitkat [07:00:48] 10% of our users are below 4.4 [07:01:18] But if that simplifies development greatly, go for it [07:01:45] Nicolas, it should still support them right? The min sdk is still 9, just that the target sdk is being increased [07:02:52] oh if that's it of course! target SDK should be set to the latest released SDK :-) [07:03:55] Nicolas, oh, okay! Didn't know that, thanks. We have been going on the old 17 all this while... [08:32:42] Hi Nicolas, I think the 1.6 update has gone through. It seems to work well on my phone. :) Could you try it if possible please? [08:32:57] I will try asap! [08:33:20] Thanks! :) [18:45:33] bearND: quick meeting :) [18:56:42] mbinder: where? [18:57:24] nm, i found it [20:51:33] dbrant: do you have the link to all the mobile EL schemas? [20:51:40] it was on office or something… [20:52:37] coreyfloyd: https://meta.wikimedia.org/w/index.php?title=Special%3APrefixIndex&prefix=MobileWikiApp&namespace=470 [20:52:46] coreyfloyd: there's this: https://meta.wikimedia.org/wiki/Special:PrefixIndex/Schema:MobileWikiApp [20:52:56] ah, bearND beat me [20:53:10] bearND: brant awesome thanks guys! [21:06:03] dbrant bearND: do either of you know why FetchEditTokenTask is necessary? i don't think i've ever used SharedPreferences off the main thread. for example, we put some pretty big payloads + marshalling / unmarshalling for tabs without any AsyncTask. [21:06:36] dbrant bearND: ah, nevermind :) i didn't realize this was fetching from the server [21:06:44] :) [21:06:45] k [22:56:13] niedzielski: argh, lost track of time. will reschedule [22:56:26] need to note phone notifications [22:56:45] dr0ptp4kt: no worries! sounds good [23:10:57] niedzielski: rescheduled [23:11:30] dr0ptp4kt: thanks!