**** BEGIN LOGGING AT Fri Dec 12 02:59:59 2014 Dec 12 03:01:43 thanks pfn Dec 12 03:05:08 for FAB buttons, should the pressed color be a darker hue of the primary? Dec 12 03:14:27 Wel Dec 12 03:14:37 friggin finally Dec 12 03:16:12 pf Dec 12 03:16:21 finally { capella-n7.disconnect(); } Dec 12 03:16:25 :D Dec 12 03:16:37 capella-n7: purely a function of how polished you want the UI Dec 12 03:16:37 heh Dec 12 03:16:41 Man, sometimes stuff that should be so difficult and complex just works. Dec 12 03:16:58 And it's like "Why does this work? I didn't put enough effort into this for it to work". Dec 12 03:17:31 they made it so the IDE get's the gist of what you are talking about and does the rest Dec 12 03:19:45 next version will know what you think before you think it and make it for you Dec 12 03:22:44 I'd reprogram those computers to prevent them from taking over the world. Dec 12 03:22:53 Though they might detect my intention and reprogram me. Dec 12 03:23:18 it's too late Dec 12 03:24:08 you are already a robot made by a robot made by a robot ... Dec 12 03:25:36 What's interesting is those experiments finding that a decision is made within our nervous systems before we're aware of having made a decision. Dec 12 03:25:41 Sometimes several seconds before. Dec 12 03:25:54 a temporary organic battery there to feed the invincible god of robots Dec 12 03:26:10 Our every decision is made and then presented to us. We then think "I've made up my mind". Dec 12 03:26:17 this is the part where I hold up a duracell battery in a white room while the chime from the commercial in the background Dec 12 03:27:47 TacticalJoke: what it really means is our concept of time as being linear is false Dec 12 03:28:05 just like an electron is smeared, that is it does not occupy a single place, so to our conciousness is Dec 12 03:28:14 which is why you sometimes dream about what happens the next day Dec 12 03:28:40 Hmm, I'm skeptical about precognition (or whatever it's called). Dec 12 03:29:01 again it's not precognition--your conciousness is smeared around some locus we define as now Dec 12 03:29:02 I do think, though, free will (by any sane definition) is imaginary. Dec 12 03:29:11 We are robots that react to the universe. We have no control, ultimately. Dec 12 03:29:24 If I wake up tomorrow with a brain tumour, my entire personality will change. I have zero control. Dec 12 03:29:33 lasserix smeared .. like strawberry jam? Dec 12 03:29:35 like in Minority Report ? Dec 12 03:29:54 g00s yeah but quantum strawberry jam Dec 12 03:31:10 TacticalJoke: tumors generally don't change personalities Dec 12 03:31:21 Time dilation is interesting. If you travel really fast, time slows down for you. Dec 12 03:31:22 TacticalJoke: i think its far more subtle than that because of the butterfly effect Dec 12 03:31:33 So, if you were to go extremely fast for a year, 20 years may have passed on Earth. Dec 12 03:31:38 hello, i have a problem execute a app with emulator-arm Dec 12 03:31:41 But you have to go close to the speed of light (I think). Dec 12 03:31:52 TacticalJoke: yeah you have to go within fractions of it Dec 12 03:31:55 shmooz: Yeah, but they sometimes do. Dec 12 03:32:06 not encounter the info in the web Dec 12 03:32:23 lasserix: It's interesting, because it's a practical means of time travel (to the future). Dec 12 03:32:44 Well, practical if technology ever gets there. Dec 12 03:33:03 TacticalJoke: there is new theory that the brain is advanced enough to allocate new space for old functionality that it lost from losing a chunk Dec 12 03:33:13 RmBeer: good luck. they're being very off-topic right now. Dec 12 03:33:32 lewellyn, what? Dec 12 03:33:52 your question is likely to be lost in the noise unrelated to the channel's purpose. Dec 12 03:34:14 but, also, you need to be more specific about the issue you are encountering. Dec 12 03:35:41 i have a executable compile with arm-linux-android-g++ (NDK), and have a emulator-arm with screen active (SDK), but i unkown execute a executable in emulator, any ideas?? Dec 12 03:39:09 in the https://developer.android.com/tools/devices/emulator.html says create .apk, but not have .apk, and minus have known put executable application in emulator :( Dec 12 03:39:48 and the web not have info allowed Dec 12 03:41:26 native c++ executable? can you run that in an emulator? I usually push to my device and run in terminal Dec 12 03:42:04 i have run emulator, and compile native c++, but i can't execute the binary in emulator Dec 12 03:42:15 I believe you ;) Dec 12 03:42:25 capella, your says with telnet? Dec 12 03:42:25 capella i have a doubt Dec 12 03:42:35 heh g00s Dec 12 03:42:37 capella, managed to get it to connect eh Dec 12 03:42:49 pfn! yah, after tweaking various things Dec 12 03:42:52 watch out capella is sasling Dec 12 03:43:00 what?? how to! how to! Dec 12 03:43:00 * capella has been for years Dec 12 03:43:06 * g00s too :) Dec 12 03:43:25 * pfn has never found a reason to use sasl for irc Dec 12 03:43:39 tor is the only reason for freenode Dec 12 03:43:41 I thought it was a freenode required thing Dec 12 03:43:50 only if your tor Dec 12 03:43:55 not tor Dec 12 03:44:00 awwww commooon..... Dec 12 03:44:09 freenode only requires it for tor Dec 12 03:44:44 til Dec 12 03:44:56 very bad, not helpme in this channel :( Dec 12 03:45:26 need better English Dec 12 03:45:36 rm -fr RmBeer Dec 12 03:45:46 rmbeer: I have created a few standalone c++ native apps that I run on arm devices and their utility is very narrow Dec 12 03:45:54 ya i just started paying attention and am having trouble telling how serious we're being right now Dec 12 03:46:01 just like little linux widgets with no UI Dec 12 03:46:15 don't know how to run one in an emulator Dec 12 03:46:53 running linux tools in emulator is identical to running them on real devices, you just gotta make sure you compile it for the right architecture Dec 12 03:47:02 most likely x86 for emu, arm for device Dec 12 03:47:16 humm... Dec 12 03:47:44 sarbs, ok Dec 12 03:47:52 x86 for emu is probably the trick I'd miss and compile arm style and expect the emu on my x86 laptop to run it Dec 12 03:48:14 but since I use an actual device, I don't do those kinda mistakes Dec 12 03:48:38 you can run arm emu's, but their slower than molasses in february Dec 12 03:49:16 heh - you should seen Vmware under my dual code Win host trying to run eclipse >-| Dec 12 03:49:23 *core Dec 12 03:50:58 rmbeer is this app of yours a thing? or is it exploratory? (Does it have a real usecase or is it for research?) Dec 12 03:52:38 rmbeer: also fyi? try no to make frowny faces in here (the others can smell fear.........) Dec 12 03:55:06 capella, sorry, i have for try between Dec 12 03:55:42 * capella can't parse that Dec 12 03:56:16 g00s particularly likes the salty taste of newbies tears XD Dec 12 03:56:26 i use for research, for in the future use a real usecase Dec 12 03:56:34 Ah :) Dec 12 03:57:26 the sweet arome of newbie teers, like blood flowing through water ... Dec 12 03:57:37 i have a slowest pc, and needed a back-end commands for manipulate the tools directly of SDK or NDK Dec 12 03:57:46 *aroma, tears lol Dec 12 03:57:58 only execute the emulator-xxx for probes the apps Dec 12 03:58:22 mmm... Dec 12 03:58:24 i hope probing the apps doesn't involve rectal infusion Dec 12 03:58:38 Is that linear or quadratic probing? Dec 12 04:00:35 https://developer.android.com/tools/building/index.html Dec 12 04:00:48 how to create packages?? Dx Dec 12 04:01:44 using java and an ide Dec 12 04:03:48 capella, yes, with eclipse, but i says have a slowest pc, the eclipse consume all resources Dec 12 04:04:10 can't execute IDE and emulator in the same time Dec 12 04:04:54 You need proper tools to dev... thats just reality Dec 12 04:05:12 RmBeer: have you tried genymotion ? Dec 12 04:06:34 genymotion will be heavier-weight than qemu in terms of host resource usage Dec 12 04:07:05 shmooz, genymotion in SDK tools? no, not have. Dec 12 04:07:15 i don't really have anything against GM but damn why do ppl keep suggesting it as the cure-all for emulator questions, heh Dec 12 04:07:40 sarbs: everyone likes it Dec 12 04:07:54 I never heard anyone complain about it Dec 12 04:08:19 understandable.. it's just not a cure-all Dec 12 04:09:19 so genymotion is not a viable alternative to emu for rmbeer? Dec 12 04:09:33 who needs a lightweight alt Dec 12 04:09:48 it doesn't get much lighter weight than qemu Dec 12 04:10:12 I guess being light and being fast aren't the same thing Dec 12 04:10:16 so he still needs new hardware Dec 12 04:10:30 well, if you run qemu you need haxm, and on mac anyhow you have to install that thing with a fixed allocation of ram Dec 12 04:10:46 dont need haxm, but its unbearable without it Dec 12 04:10:59 genymotion is built on top of virtualbox which has much nicer ui but comes with an association ram cost for it Dec 12 04:11:06 i run geny with 4.1 @ 512mb its pretty tiny Dec 12 04:11:17 g00s yeah, but the ram's gotta get used at some point anyway.. can set the haxm allocation to 512mb and poof Dec 12 04:11:22 genymotion emu is like qemu or virtualbox? Dec 12 04:11:39 RmBeer genymotion is a specialized version of virtualbox Dec 12 04:12:59 RmBeer: if you have the resources for it, it should be faster than other emu's Dec 12 04:13:18 sarbs, and emulator-xxx that? what is difference? :S Dec 12 04:14:07 humm, is this emulator-xxx only a poor tool for SDK? Dec 12 04:14:30 emulator-xxx is not to be run directly by you, the "emulator" wrapper runs that Dec 12 04:15:17 ok, i probe with genymotion Dec 12 04:16:16 RmBeer: let us know how it goes Dec 12 04:16:25 awwww, commoooon! €24.99 * 12 = €299 per year?????? Dec 12 04:16:30 snark :p Dec 12 04:17:11 300 for what? Dec 12 04:17:22 for being gullable Dec 12 04:18:40 i needed a account Dx Dec 12 04:19:22 is this a really good for my health?? Dec 12 04:20:01 * capella-s3 confused seriously Dec 12 04:20:08 no, it looks like you bit more than you can chew Dec 12 04:21:11 RmBeer: get a android device Dec 12 04:21:15 this is much cholesterol Dx Dec 12 04:21:51 w .. t... f? Dec 12 04:24:51 shmooz, i surrender :( Dec 12 04:25:32 pays, register acount, and execute .bin. is much for my stress. Dec 12 04:25:39 Dx Dec 12 04:26:18 also notice that i not have a android or other phone device Dec 12 04:26:26 ;) Dec 12 04:26:56 you just want 22 billion dollars like the whatsapp dude Dec 12 04:27:00 same thanks for helpme in all Dec 12 04:27:36 welcoming you good muchly Dec 12 04:27:56 shmooz, troll of year xD Dec 12 04:28:09 (?) Dec 12 04:28:49 capella, muchly? Dec 12 04:29:05 verily Dec 12 04:29:56 no unkown of term muchly... Dec 12 04:31:49 ok, only needed create package apk and put file in emulator android, but unknown for this in command line Dec 12 04:31:58 any ideas? Dec 12 04:32:08 I'd like a beer Dec 12 04:32:19 ditto Dec 12 04:32:34 checking tools in SDL but not encounter any tracks. Dec 12 04:33:07 are you huntin wabbit? Dec 12 04:33:08 SDK* (is this package correct?) Dec 12 04:33:10 RmBeer: what are you making ? Dec 12 04:33:48 shmooz, i needed create a .apk file with command lines from shell Dec 12 04:33:58 javac foo Dec 12 04:34:13 javac? Dec 12 04:34:22 ok Dec 12 04:35:29 bankai_au reading http://code.hootsuite.com/asynchronous-android-programming-the-good-the-bad-and-the-ugly/ Dec 12 04:35:50 .collect(new ArrayList(), new Action2, Bitmap>() { .. } <- wut Dec 12 04:36:05 collect needs a statefacrory (ugh!) Dec 12 04:36:12 *statefactory Dec 12 04:36:33 you had time to type (ugh!) but not to hit backspace? Dec 12 04:37:05 i have autospell disabled in textual, it was such a pita Dec 12 04:37:20 mmmm .... pita Dec 12 04:37:32 shock him! Dec 12 04:39:27 g00s: you're such a meloncholic Dec 12 04:40:13 the .apk is a package in java?? Dec 12 04:40:23 oh dear lord Dec 12 04:41:29 does my ignore list need more grooming ? Dec 12 04:41:47 fee fie fo f00s ... think I'll fee rmbeer to g00s Dec 12 04:42:16 :/ Dec 12 04:42:19 everytime i edit the addressbook in textual it crashes, so it comes at a cost Dec 12 04:42:35 sorry, i unkown of this Dec 12 04:43:02 unknown* Dec 12 04:43:05 RmBeer pay me $20 and i'll put you on my exclusive list Dec 12 04:43:27 g00s, for? Dec 12 04:44:05 he'll give you genymotion for $20 Dec 12 04:44:50 complete with apk Dec 12 04:44:57 my problem not in emulator, my problem is execute the app putting in emulator Dec 12 04:45:52 only have a program binary (main) create with arm-linux-androideabi-g++, but unknown how to use in the emulator Dec 12 04:46:38 only have a idea like use .apk and put "main" in this file for execute in android Dec 12 04:47:27 maybe #android-root can help? Dec 12 04:47:37 but neither known if this is good... Dec 12 04:47:51 java.lang.runtime Dec 12 04:49:25 ok capella , thanks Dec 12 04:50:23 * capella goes looking for a left-handed monkey ranch ;) Dec 12 04:50:41 hello Dec 12 04:51:14 I'd like to perform a SQLITE to retrieve the 100 best result based on a formulae I would like to input in order by Dec 12 04:51:20 but it involves logarithm Dec 12 04:51:39 s/sqlite/sqlite query/ Dec 12 04:52:08 I don't want to dump the whole database to perform this computation Dec 12 04:53:17 Marlinski what is the formula ? Dec 12 04:54:22 Marlinski: can you just put the score in when you insert Dec 12 04:54:34 or does it depend on relative changing vars in the db? Dec 12 04:55:55 thats one of the downsides of sqlite on android, because of the java bindings you can't easily add native functions Dec 12 04:56:24 (custom functions) Dec 12 04:56:54 It's weird that converting a tree into a flat list is so simple in this case: http://pastebin.com/zM1SFyZ6 Dec 12 04:56:56 H2 has user defined functions but its too slow Dec 12 04:56:59 Feels almost like that shouldn't work. Dec 12 04:57:49 Marlinski are you doing geospatial queries ? Dec 12 04:58:11 Marlinski still alive over there ? :D Dec 12 04:58:15 Marlinski > Dec 12 04:58:27 (Bueler) Dec 12 04:58:32 hey g00s you were right, i dont think i can do what i wanted to do Dec 12 04:58:41 i dont think list preference is the one i want Dec 12 04:59:09 he's dead jim Dec 12 04:59:12 jareddlc you can so it like the android system settings app Dec 12 04:59:19 another wannabe bites the dust Dec 12 04:59:28 the bluetooth discovery screen, it adds prefereces dynamically. Dec 12 04:59:45 thats a listview i believe Dec 12 04:59:57 ultimately yeah it all goes in a listview Dec 12 05:00:04 study the code :) Dec 12 05:00:11 good point Dec 12 05:01:07 g00s: not geospatial no it is not that complicated Dec 12 05:01:19 but I am scoring based on three different attributes Dec 12 05:01:30 and the weight changed according to these attributes Dec 12 05:01:49 TacticalJoke: what do you use to ident? Dec 12 05:01:56 so I have attribute A, B and C stored for each item in my database Dec 12 05:02:22 my score is a weighted average a*A + b*B + c*C where a+b+c = 1 Dec 12 05:03:10 and a = 1-(some log(A)), b = 1-a+(log(B)) and c = 1-a-b Dec 12 05:03:12 something like this Dec 12 05:03:25 lasserix: Haven't done it yet, but I'm gonna try a left-margin. Dec 12 05:03:31 And use a background colour. Dec 12 05:03:36 Plus a line or something. Dec 12 05:03:48 I should be able to create a nice hierarchy display. Dec 12 05:03:49 g00s: sorry for delay I was trying to google some solution :p Dec 12 05:04:40 right now I was thinking of keeping a Tab of logarithm precalculated values Dec 12 05:04:47 and then do a join Dec 12 05:04:51 but erfhmmff Dec 12 05:05:15 TacticalJoke: if you subclass textview you can make special functions for your row so you can animate Dec 12 05:05:19 Oops, that should be called 'addReplies'. Dec 12 05:05:21 which would be cool effect Dec 12 05:05:23 Marlinski what about what lasserix suggested? precumpute ? Dec 12 05:05:36 g00s: cannot Dec 12 05:05:42 True. Not keen on too much animation, though Dec 12 05:05:42 . Dec 12 05:05:51 nah itd be cool Dec 12 05:05:55 g00s: one of the attribute, B is dependant of the time elapsed since it was inserted :) Dec 12 05:05:56 to watch is expand Dec 12 05:06:00 I wanna respect people's CPUs. :D Dec 12 05:06:03 Marlinski: ohh that's not good Dec 12 05:06:09 And GPUs, I guess. Dec 12 05:06:18 Marlinski: can you just precompute everything BUT the time, then pull it all Dec 12 05:06:25 to simplify it? how many rows in this db? Dec 12 05:06:34 hmm Dec 12 05:06:46 I would still need the logarithm of the time Dec 12 05:07:09 how many total rows? Dec 12 05:07:17 hard to says Dec 12 05:07:20 but it has to be scalable Dec 12 05:07:23 right now only 10 Dec 12 05:07:32 but as the program runs for a while there might be thousands Dec 12 05:07:52 oh you're kinda beeped then Dec 12 05:08:08 there's no way you can do thousands instantly Dec 12 05:08:21 lasserix: what do you mean ? Dec 12 05:08:41 computing the score for all rows when you have thousands of rows... Dec 12 05:08:51 hope you dont have to do this instantly Dec 12 05:08:58 not really no Dec 12 05:09:07 normally only at boot time and once in a while Dec 12 05:09:21 oh ok Dec 12 05:09:30 and it can be done in background Dec 12 05:09:39 ask in sqlite Dec 12 05:09:45 how to do that Dec 12 05:09:51 it is something like, I compute the best 100 items and when they get consumed, I compute another batch Dec 12 05:09:57 ok Dec 12 05:10:23 might be easiest to iterate through, dump the pre-computed value in an arraylist or map , then compuite finaly result with log time Dec 12 05:10:34 then reinsert Dec 12 05:11:22 isn't keeping every row in memory going to consume a lot of memory ? Dec 12 05:11:50 or maybe there is a way of getting them by batch Dec 12 05:11:59 like 100 per 100 Dec 12 05:12:12 and keeping only the best 100 Dec 12 05:12:43 I can order by the ID, with a where clause id > position Dec 12 05:13:34 I think that is the easiest way Dec 12 05:13:34 oh Dec 12 05:13:38 if you can cap it 100 Dec 12 05:13:39 everytime Dec 12 05:13:45 even if it involves multiple query Dec 12 05:13:47 then just compute it as object Dec 12 05:14:04 compute it as object means ? Dec 12 05:15:05 dum it all out Dec 12 05:15:09 computer it as object Dec 12 05:15:12 dont use sqlite Dec 12 05:15:14 if its only 100 Dec 12 05:15:21 then you can reinsert with score Dec 12 05:15:29 ah Dec 12 05:15:34 you can do the computation periodically in the background Dec 12 05:15:37 no I said there might be thousands of rows Dec 12 05:15:39 since its only 100 objects Dec 12 05:15:45 i said if you can cap it Dec 12 05:15:49 well ask in sqlite Dec 12 05:15:51 but if I can fetch them 100 by 100 Dec 12 05:15:56 thy'll know and are usually helpful Dec 12 05:15:58 like multiple query Dec 12 05:16:05 it makes no difference Dec 12 05:16:06 ok Dec 12 05:16:08 hery guys can i force redraw on a listpreference? Dec 12 05:16:19 you're still going to create n rows of these objects to do computation Dec 12 05:16:36 lasserix: no that's the thing Dec 12 05:16:45 since I can order them Dec 12 05:16:58 say I only want to keep the best 20 Dec 12 05:17:08 I keep the best 20 from the first batch Dec 12 05:17:14 then update this best list with the next one Dec 12 05:17:20 until reached the end Dec 12 05:18:02 I need to figure out a typical Reddit comment-listing size (which is <= 200 by default). Dec 12 05:18:44 If I give an ArrayList a starting size of 100, if it goes over, I think it grows to 150. Then 225. And so on. Dec 12 05:18:53 Marlinski: you might as well just dump them all Dec 12 05:19:02 in one batch there's no reason to split it up Dec 12 05:19:24 lasserix: I cannot dump thousands of row in memory ! Dec 12 05:21:09 sure you can Dec 12 05:21:10 hello try again Dec 12 05:21:16 espicially if its just numbers Dec 12 05:21:24 the executable ./gradlew create a apk? Dec 12 05:21:33 https://developer.android.com/tools/building/building-cmdline.html Dec 12 05:21:50 lasserix: numbers and texts Dec 12 05:22:01 yeah but you dont need the text to compute the score do you? Dec 12 05:22:08 true Dec 12 05:22:19 yeah and numbers are small Dec 12 05:22:24 you can even use trove library Dec 12 05:22:31 how much do you estimate I can be able to hold in memory ? Dec 12 05:22:35 a lot Dec 12 05:22:50 like more than ten thousands easily ? Dec 12 05:22:50 i can hold like 7000 contact data with full information Dec 12 05:22:55 hmm Dec 12 05:22:59 (ie full text information) Dec 12 05:23:04 for numbers it'll be easy Dec 12 05:23:07 and you canuse trove library Dec 12 05:23:17 which reduces size by like 70% Dec 12 05:23:32 ok :) Dec 12 05:23:37 I will do that then Dec 12 05:23:41 anyways if it doesn't work Dec 12 05:23:44 you can still use the same function Dec 12 05:23:49 when you batch process Dec 12 05:23:49 trove is good stuff Dec 12 05:23:53 lasserix: Lol. I'm starting to like flat comment trees. Dec 12 05:24:04 i think its code generated from templates Dec 12 05:24:11 TacticalJoke: see its natural! then you add the ident toggle just so you can see "where" you are Dec 12 05:24:35 If I did allow it as an option, I'd need a number or something (and not in the current place). Dec 12 05:24:44 Or a colour. Dec 12 05:25:06 Or a coloured number. ;o Dec 12 05:25:34 lasserix: but since I only want to compute a score, I will directly use the cursor right ? Dec 12 05:25:43 no need to go through a trove Dec 12 05:25:53 ... bye bye Dec 12 05:25:55 TacticalJoke do this :) http://blog.embed.ly/post/57097477000/visualizing-discussions-on-reddit-with-a-d3 Dec 12 05:26:36 Marlinski: trove is primitive collections set Dec 12 05:26:53 ie you can do IntHashSet as opposed to HashSet Dec 12 05:27:07 Hah. That looks fun. Dec 12 05:27:24 lasserix: ok Dec 12 05:27:35 thank you very much for your help lasserix Dec 12 05:27:53 Ie you can pull out of the cursor and put it in a LongObjectHashMap Dec 12 05:28:03 where the long is the id Dec 12 05:28:21 the object can be the data structure you use to do the computation Dec 12 05:29:50 Marlinski also, maybe you could use mapdb http://www.mapdb.org/ Dec 12 05:29:51 The number of subreddits that don't describe what they're about in the sidebar is too damn high. Dec 12 05:29:57 this lets you have multiple indexes Dec 12 05:31:23 the problem with it is you want it to show text when you hover over a bubble but in mobile there is no hover Dec 12 05:32:11 except for samsung stuff Dec 12 05:34:21 So I wrote a script to grab other app's translated strings to save me time :P My problem is that there are so many translations sometimes and I don't want to use them all. Example: https://github.com/android/platform_frameworks_base/tree/master/packages/DocumentsUI/res Dec 12 05:34:53 Is there a list of top 10-20 langues and their localization names? Dec 12 05:35:14 * languages Dec 12 06:05:58 hey g00s i "fixed" my problem Dec 12 06:06:33 but connecting to a device doesnt pair it. can i pair the device in my app? or does pairing need to happen in android settings Dec 12 06:11:48 looks like not in api 18 Dec 12 06:15:04 adb always functions when studio leverages it but when i try to use it through command prompt, the same device in the exact same usb port is always connected but 'offline' Dec 12 06:19:39 device restart, usb debugging toggle, nothing Dec 12 06:22:19 aaearon you've got two different android sdks installed, and the one you're using via cmdline is out of date Dec 12 06:22:42 hmm ok thanks for the clue Dec 12 06:22:45 ill sort it out then Dec 12 06:28:58 What is the convention for the FAB icon pressed color state? Dec 12 06:29:05 some darker hue the normal display color? Dec 12 06:32:30 hey g00s im startting to look into UUID for auto recognizing my device. what UUID do and dont work :) Dec 12 06:32:37 last time you sent me a bug for uuid Dec 12 06:36:35 <_genuser_> http://www.cicret.com/wordpress/?page_id=17920 Dec 12 06:36:37 <_genuser_> interesting Dec 12 07:24:23 some of the android docs are lacking descriptions of what the classes actually are or what they do Dec 12 07:26:38 like what? Dec 12 07:27:00 well at the moment it's WebChromeClient for me Dec 12 07:27:04 http://developer.android.com/reference/android/webkit/WebChromeClient.html Dec 12 07:28:20 seems like it's pretty well documented to me Dec 12 07:29:02 well the methods are, but not what it's purpose is or how to use it Dec 12 07:33:05 i have a listview inside of an activity (its my search activity) and when someone clicks on a result, it starts a custom fragment that extends dialog fragment. after the dialog is dismissed, the listview has no list items. here is my code. how can i get the list items 'back'? http://pastebin.com/SXwyEfvf Dec 12 07:44:20 jack and jill Dec 12 07:44:21 sounds sexual Dec 12 07:48:22 went up the hell to get a pail of water? Dec 12 07:48:31 they teach that rhyme to 5yo's Dec 12 07:48:40 s/hell/hill/ Dec 12 07:49:06 jack fell down and went to town and jill came shortly thereafter? Dec 12 07:49:31 haven't heard that particular variant before. Dec 12 07:49:46 i may be misremembering it then. it's a long time since i was 5. Dec 12 08:05:06 https://www.youtube.com/watch?v=41U78QP8nBk Dec 12 08:14:02 hi Dec 12 08:16:49 i have a problem with HttpClient while try to connect to site. i need to connect to api.hostname via https. The server have two certs, green cert in hostname, and blue cert in api.hostname. i got SSLException because HttpClient want to use the green cert Dec 12 08:16:59 sorry for my english Dec 12 08:26:32 I dunno, but sounds like webserver configuration error? Dec 12 08:26:42 serving the wrong certificate for virtual host Dec 12 08:35:43 hi Dec 12 08:36:13 So the Eclipse Bundle is gone? Dec 12 08:37:27 is it ? finally Dec 12 08:37:48 to create a new empty file File file = new File(getApplicationContext().getFilesDir()+"/"+"sample.txt"); Dec 12 08:38:02 I still havn't started using Android Studio :-/ Dec 12 08:38:32 Logcat shows the file is the correct path but if(file.exists()) {} is not getting executed Dec 12 08:38:44 why is it so? Dec 12 08:55:24 phyzloc: why Dec 12 08:55:46 niru: what android ver Dec 12 08:56:10 and new File(); doenst create file Dec 12 08:56:31 better ask what you want to do Dec 12 08:56:55 gordon_: sorry its working with fiel.createNewFile() Dec 12 08:58:03 niru: http://developer.android.com/training/basics/data-storage/files.html Dec 12 08:58:05 read it Dec 12 08:58:11 gordon_: We use Eclipse at work so I've just gotten stuck with it Dec 12 08:58:37 gordon_: yes Dec 12 08:58:37 you can use intellij Dec 12 08:58:57 I guess I'll have to do that now :) Dec 12 08:59:07 I was doing that Dec 12 08:59:19 it supports old build Dec 12 08:59:30 android studio supports it too I guess Dec 12 09:00:11 I don't know anything about Android Studio.. Or IDEA for that matter Dec 12 09:01:41 java developers are divided into two groups: those who use intellij and those who doesnt use intellij... YET Dec 12 09:02:18 Yea it seems so Dec 12 09:02:40 you wont look back Dec 12 09:02:51 I was using intellij before I was writing android Dec 12 09:02:55 and it's just awesome Dec 12 09:03:45 So you don't have experience with the awesome Eclipse? ;-) Dec 12 09:04:03 I have Dec 12 09:04:14 that's why I dont want to see it anymore Dec 12 09:04:21 waiting 4 seconds for xml editor? Dec 12 09:04:48 :) Dec 12 09:05:03 I'm going to give IntelliJ a try today! Dec 12 09:05:08 mango say ... "eclipse BAD !!" Dec 12 09:05:48 Hi Mango ;-) Dec 12 09:07:27 Can anyone say, about profit of jack jill toolchain? Dec 12 09:07:35 first try to build a multidex file I get this error: http://pastebin.com/hNFzPGQm Dec 12 09:07:49 OutOfMemory? Dec 12 09:13:37 "intelliJ .... GOOD !" Dec 12 09:17:27 haha yea Dec 12 09:17:32 your life will change honestly Dec 12 09:25:07 Where can i put files that have public read permissions on a device w/o sdcard? Dec 12 09:27:20 there should be a "emulated" sdcard Dec 12 09:28:20 get via getExternalFiles ? Dec 12 09:28:25 err getExternalDirecroty Dec 12 09:29:44 I having a problem with dimensions... i have values and values-large but my n5 picks up the same values as my n7 (n5 is xxhdpi normal n7 is xhdpi large)--anyone know why? Dec 12 09:44:52 Error:Execution failed for task ':app:packageDebug'. Dec 12 09:44:52 > Duplicate files copied in APK META-INF/notice.txt Dec 12 09:44:52 File 1: C:\Users\Andi\AndroidstudioProjects\SpaceExplorer\app\build\intermediates\exploded-aar\ext.libs.addapptr\aatkitplayhaven\2.8.11\libs\spring-android-core-1.0.1.RELEASE.jar Dec 12 09:44:52 File 2: C:\Users\Andi\AndroidstudioProjects\SpaceExplorer\app\build\intermediates\exploded-aar\ext.libs.addapptr\aatkitplayhaven\2.8.11\libs\spring-android-core-1.0.1.RELEASE.jar Dec 12 09:45:58 good for you. Dec 12 09:47:12 these are the same files, at the same directory, how can they be duplicate? Dec 12 09:48:16 wooot Dec 12 09:48:17 http://android-developers.blogspot.jp/2014/12/hello-world-meet-our-new-experimental.html Dec 12 09:49:09 somaweb, you probably include them twice in build.gradle. Dec 12 09:49:26 (why aren't you using dependencies form maven central?!) Dec 12 09:49:40 gordon_, can't wait, messing up all build plugins again :P Dec 12 09:49:59 i am using deps from maven Dec 12 09:50:17 as you can see the location \exploded-aar Dec 12 09:50:33 ugh, yes, sorry Dec 12 09:50:35 too early :P Dec 12 09:50:54 i rly don't get it Dec 12 09:50:56 somaweb, the other way that happens is if that library is listed as a dependency from two or more other libraries Dec 12 09:51:30 hmmmmm... so i should check the deps in my project if they depend this lib? Dec 12 09:53:03 this had to happen http://arstechnica.com/tech-policy/2014/12/the-predictable-result-of-spains-google-tax-no-more-google-news/ Dec 12 09:53:57 lol Dec 12 09:53:59 got it Dec 12 09:54:16 notice.txt and license.txt were the problem Dec 12 09:54:24 strange, can not explain y Dec 12 09:54:33 the files were in the libs Dec 12 09:54:42 Mavrik: tit will be ifine Dec 12 09:58:52 do you know any decent library for bluetooth le on android? Dec 12 09:59:10 mostly something that would parse data advertised by device Dec 12 09:59:23 i can do the scanning and connecting Dec 12 10:14:17 aloha peoplesss Dec 12 10:15:47 aloha bluemargaritacup Dec 12 10:16:12 You wouldn't know why my nexus 5 is picking up res/values-large would you? Dec 12 10:17:44 or should i be using *dpi for values? Dec 12 10:19:19 I want to get into android development, I'm going to deticate the next two days to dive into it, whats the best place for me to start? (I normally code in C, know Java tho) Dec 12 10:20:28 nadav, Android training on developer site is usually the most up to date one Dec 12 10:21:00 nadav 4 days ago Dec 12 10:21:11 actually 10 days ago Dec 12 10:21:37 Thanks. I'll do it through there then. Dec 12 10:22:34 The font on the website is horrible :P Dec 12 10:22:55 You will love Roboto! Dec 12 10:23:12 hah Dec 12 10:23:20 bb Dec 12 10:30:24 lasserix: hmmm, because it gets defined as a large screen? you should be using ldpi-mdpi-hdpi-xhdpi-xx--- Dec 12 10:31:31 if I get https://www.kickstarter.com/projects/goat-mug/goat-mug-original-goat-story-crafted-into-a-coffee I’ll change my nick to goatcup Dec 12 10:31:53 nadav: dude, roboto is amazing, what’s wrong with you :O :O :O Dec 12 10:32:21 bluecup: its normal Dec 12 10:35:05 idk man, everyone I know loves roboto <3 Dec 12 10:35:27 goatmug is awesome Dec 12 10:35:31 love the leather chest strap Dec 12 10:36:14 going to dedicate the next 2 days? Dec 12 10:36:49 really not the right way to go about it Dec 12 10:40:40 Odaym: you never know, maybe he’s actually stallman Dec 12 10:42:07 probability says that he might be a stallman Dec 12 10:42:15 yea, you really never know Dec 12 10:43:03 Sup guys Dec 12 10:43:13 Ok so facebook changed some API stuff and their app Dec 12 10:43:32 I need to open / resume a conversation using an intent Dec 12 10:43:49 i was setting my intent data uri to fb://messaging/10205722330123324 Dec 12 10:43:57 or for whichever id of the thread/message Dec 12 10:44:07 I meant, I'll do some intense learning the first 2 days because I got days off, and just slowpace it after until the next time I have free time. Dec 12 10:44:08 now it no longer works :( Dec 12 10:44:36 nah nadav, you need to set a goal Dec 12 10:44:41 I want to make an app that does this, for Android Dec 12 10:44:45 through it you will learn Dec 12 10:45:10 I just want to learn a whole bunch, this won't do anything Dec 12 10:45:30 nadav: exactly what Odaym said. I made my first app in a weekend as a graduation project in highschool, spent 48 hours and a ton of coffee Dec 12 10:45:30 Anyone know why a phone would pick the wrong resource qualifiers? Dec 12 10:45:58 Makes sense. I have no goal-app in mind yet tho. Dec 12 10:46:10 kevel1: man facebook makes tons of changes and doesn’t document shit, so not sure if anyone can help you :/ Dec 12 10:46:11 I'll think about it as I cover the basics. Dec 12 10:46:27 bluecup, bleak Dec 12 10:46:28 :< Dec 12 10:47:19 the first thing I do when I buy facebook is force them to update their API docs Dec 12 10:48:18 nadav make an app that measures how fast your finger can flick the screen Dec 12 10:48:38 you could call it "Finger Me" Dec 12 10:50:46 man, the AOSP source code is huge Dec 12 10:51:00 it's been downloading for 3 hours now Dec 12 10:51:12 even took out my netflix at one point Dec 12 10:53:25 it's like 20 gb or so Dec 12 10:53:36 Anyone ever encountered this kind of error? When trying to load Android studio for first time, it tries to download SDK and... Dec 12 10:53:36 Unpacking android-sdk_r22.6.2-windows.zip Dec 12 10:53:37 Unable to move Android SDK Dec 12 10:53:45 Google doesnt say much about it Dec 12 10:54:01 nadav, where is it unpacking it? Dec 12 10:54:05 somewhere where you have no permissions? Dec 12 10:54:35 possibly, I'll run again as administrator Dec 12 10:54:36 i got that error Dec 12 10:54:45 if you installed it for 'everyone' and not 'just me', it will try to install to program files and oyu will need to run as admin Dec 12 10:54:49 they used to put it in the executable Dec 12 10:55:10 well, on OS X Dec 12 10:55:48 Yup, it appears to be working now. Thanks. Dec 12 10:55:50 Should have thought of it Dec 12 10:56:28 lasserix: “Flick the bean” - commercial: Go to play and flick the bean, your girl will be happy! Dec 12 10:56:30 hmf, 51G android-src Dec 12 10:58:36 hehehe Dec 12 10:58:37 okay Dec 12 10:58:40 so i did getDImension Dec 12 10:58:59 and now both the n7 and n5 show the same value for sp and dp (everything else being equal) Dec 12 10:59:03 what could be the problem? Dec 12 10:59:12 because that obviousily is not correct Dec 12 10:59:43 that’s weird Dec 12 10:59:58 yes Dec 12 11:00:08 maybe i should update AS finally Dec 12 11:00:35 finally? what version are you on dude? Dec 12 11:00:45 dunno Dec 12 11:00:55 that's on the laptop Dec 12 11:00:58 im on my desktop Dec 12 11:01:02 been lazy Dec 12 11:01:46 I can’t handle not having the latest version, I’m on canary Dec 12 11:01:52 Hello! I have issue with views that are shifted in item layout of gridview and strange view measurement behaviour after i update targetSdk from 18 to 19? Dec 12 11:02:07 Is it well known issue Dec 12 11:02:20 I found something about relative layout Dec 12 11:02:29 but i don't use it Dec 12 11:02:58 i do on my desktop, been lazy didn't want to update path variable ;p Dec 12 11:05:17 xgearx you're going to have to be more specific than "spooky measurement at a distance" Dec 12 11:05:41 i don’t even own a desktop anymore, just a notebook i don’t even use and a mac Dec 12 11:05:54 even tho I miss my old desktop gaming days sometimes :’( Dec 12 11:07:26 how much ram can you get into a laptop these days? Dec 12 11:08:17 do you have a macbook air? Dec 12 11:08:44 i have 4gigs Dec 12 11:08:46 yeah, air Dec 12 11:08:52 got it from the company Dec 12 11:09:04 it’s insanely awesome, even tho I disliked macs at first Dec 12 11:09:10 wow Dec 12 11:09:31 'ultimate programming laptop' the first 20 comments are all macbookair https://news.ycombinator.com/item?id=3783843 Dec 12 11:10:25 for iOS? :D Dec 12 11:10:38 for anything Dec 12 11:10:45 it’s light, it’s fast and it’s quality made Dec 12 11:10:56 also it’s a *nix Dec 12 11:11:13 I'm getting a nullpointer on line 3 here Dec 12 11:11:14 http://pastebin.com/BrBNurY5 Dec 12 11:11:35 Have I misunderstood assertions? Dec 12 11:13:00 I have an idea for an application! Dec 12 11:13:13 dun dun dun! Dec 12 11:13:44 c03 if delegate is null poor logcat.... Dec 12 11:13:46 I'll call it - Flick my bin! Dec 12 11:15:57 if you make more than a million dollars i'd like 1% royaltee Dec 12 11:16:00 :) Dec 12 11:16:10 me too! Dec 12 11:16:23 yeah you gota use bluecups tagline Dec 12 11:17:08 and me and lasserix need to be set as the top highscore, so erryone knows we’re the best ones to flick their beans Dec 12 11:17:14 bluecup if i get bored over holiday i may make flick my bean Dec 12 11:17:23 hehehe Dec 12 11:17:38 give the bean a little face Dec 12 11:17:41 with an expression Dec 12 11:17:44 * bluecup waits for the news headlines about an outrageous app Dec 12 11:17:46 that under a certain rate is just fear Dec 12 11:17:51 hahaha Dec 12 11:17:57 but over a certain rate is just pleasure and ecstasy ;p Dec 12 11:18:09 i just spat my coffee through my nose, thinking about a scared face because you’re flicking it too fast Dec 12 11:20:11 Activity is just androidish to say GUI ? Dec 12 11:21:23 sure Dec 12 11:21:46 bluecup: what are you workling on if you dont mind / are not sworn to secrecy? Dec 12 11:23:07 bleeping my as is so outdated i can't upgrade it--can i just overwrite ? Dec 12 11:25:06 lasserix: some dumb high-aesthetics app for some netherlands clients, an insurance comapny app and one for some high-tech ships that’s mostly under NDA so I can’t talk about it Dec 12 11:25:29 cool Dec 12 11:26:54 beeping resource qualifier is the bleeping last thing i have to finish for this bleeping app Dec 12 11:26:59 why isn't it working? Dec 12 11:27:00 argh Dec 12 11:27:29 how can i programatically change the background of an ImageView?? ...ie. keep the image but set a background to it. Dec 12 11:27:38 programatically Dec 12 11:27:57 what time is it "2014-12-10T11:44:33.295+01:00" ? 11:44 or 12:44 ? Dec 12 11:30:21 MartialLaw: http://stackoverflow.com/questions/18870435/set-bitmap-to-background-of-imageview-with-imageview-setimagebitmap-method Dec 12 11:32:10 ech0s7: I think it’s 11:44 in GMT+1 Dec 12 11:32:27 if you took the timestamp 50mins ago, yeah, that’s it Dec 12 11:36:51 Marlinski: minifyEnab Dec 12 11:38:54 Marlinski: ? Dec 12 11:44:24 sorry Dec 12 11:44:30 unintended double keyboard Dec 12 11:51:03 damn updating did not work Dec 12 11:51:27 gordon_: there? Dec 12 11:52:02 bluecup have you gotten to ride on one of said ships? Dec 12 11:52:54 lasserix: not yet, but colleagues did. free vacation around carribeans and some sailed around just to test Dec 12 11:53:15 sweet short circuit Dec 12 11:53:19 thats awesome Dec 12 11:53:40 is there any way to set an imageview's background programatically? Dec 12 11:53:42 they are like luxury yachsts? Dec 12 11:54:53 oh obv not Dec 12 11:55:09 yeah ive seen some of the concept tech proofs for those apps Dec 12 11:55:11 amazing Dec 12 11:55:32 phyzloc: yes Dec 12 11:55:33 MartialLaw: I already posted you a link Dec 12 11:55:56 ahh i am stupid tonight dp is not sp is not dp Dec 12 11:57:04 c03: you misunderstood my question. I have an ImageView. I set the ImageView via .setImageBitmap()... Now I have an Image in my imageView! Okay, now I want to set a background TO that image..programatically Dec 12 11:57:54 MartialLaw: imageView.setBackgroundDrawable(ob); Dec 12 11:59:39 gordon_: If I have an existing eclipse project.. is it possible to run it in IDEA? Dec 12 12:02:32 lasserix: nah, they are like luxury cruisers, totally high-tech and mostly robotized Dec 12 12:07:19 bluecup: http://stackoverflow.com/questions/17098755/does-android-reuse-images-loaded-from-resource Dec 12 12:07:28 as to the question from the other day Dec 12 12:08:00 phyzloc: yes Dec 12 12:08:07 just import it as android project Dec 12 12:08:19 you can even import it from eclipse settings Dec 12 12:08:57 what are you using as build system ? Dec 12 12:09:21 lasserix: nice :) Dec 12 12:09:39 gordon_: so I can import eclipse android project in intelliJ directly? Dec 12 12:12:04 yes Dec 12 12:13:06 yes Dec 12 12:13:41 hope you dont have some freaky build in eclipse Dec 12 12:13:59 but it should work, if you have problems, I will help you Dec 12 12:14:22 gordon_: What do you mean with freaky build? :) Dec 12 12:15:08 many library projects, some libraries must be first on classpath things etc. Dec 12 12:16:01 gordon_: Ok.. I'll see how it goes Dec 12 12:16:12 gordon_: thanks Dec 12 12:16:40 you can also set it in intellij, dont worry Dec 12 12:17:15 gordon_: Ok.. if I get stuck I'll contact you ;-) Dec 12 12:17:39 ure Dec 12 12:17:54 I'm going home so if I dont answer, wait a little Dec 12 12:20:30 Anyone have a recomendation on how to number a listview? Dec 12 12:20:44 reading code on github https://www.dropbox.com/s/mnkvitvqajw1op1/Screenshot_2014-12-12-06-24-31.png?dl=0 Dec 12 12:20:56 justchromethings Dec 12 12:21:06 like say, each row contains some thumbnails, and each row needs a bullet/numbering left hand thing, any recomendation on how to style? Dec 12 12:25:14 lasserix: custom class ? Dec 12 12:25:24 dont see anything hard in it Dec 12 12:25:36 ? Dec 12 12:25:40 no not code Dec 12 12:25:42 ui style Dec 12 12:25:42 ah sorry Dec 12 12:26:02 also does AS null out sometimes with the autoreplacing of values? Dec 12 12:26:11 i think that's why my styles are messed up Dec 12 12:27:01 im not sure what that is called when as replaces like getRes.getDim(R.dimen.yada) with 25dp Dec 12 12:27:16 that doesn't actually act like a macro or inline statement? Dec 12 12:27:46 havent used it Dec 12 12:28:16 think it happens automatically Dec 12 12:33:49 Hey how is everyone today:) Dec 12 12:34:01 tired Dec 12 12:34:05 need coffee IV Dec 12 12:34:43 i just waiting for the holidays so i can get a new phone:D Dec 12 12:35:17 c03,need more coffee does help. Dec 12 12:35:44 so i'm using crashlytics, it appears to send mapping.txt to its backend, but how does it know to match a particular mapping.txt to a particular build out in the wild? Dec 12 12:38:10 it sends the build with the mapping i assume Dec 12 12:38:43 that would make sense Dec 12 12:47:01 osxorgate, crashlytics bakes a UUID for each of your build in res/crashlytics_something.xml Dec 12 12:47:13 that UUID is sent together with mapping file and crash reports Dec 12 12:47:30 Mavrik: ok yes i thought a random hash would make more sense indeed, cheers Dec 12 12:50:37 this is very weird values from my res/values/dimens.xml do not get pushed to the phone Dec 12 12:51:48 Is it possible to retrieve the layout id from a view? Dec 12 12:51:57 getid Dec 12 12:53:07 so if I have inflated myView with layout R.layout.my_layout then myView.getId() == R.layout.my_layout? Dec 12 12:57:57 ./adb shell am start -n com.testapps.app1/.LaunchActivity Dec 12 12:58:02 what am I doing wrong? Dec 12 12:58:11 bluecup: for the FAB button, do you know what convention is for the color of the pressed state? Dec 12 12:58:36 well not really, getId() returns the unique identifier of the view, set to -1 if not set, not the layout id Dec 12 12:59:26 lasserix: just shading it a bit Dec 12 13:14:22 which are the primary and which are the accent? the ones below or above the white line divider in each palette? Dec 12 13:50:10 intellij is deciding there are TODOs in my png files. Dec 12 13:53:47 material design mimcs real life, so things get darker when you press them Dec 12 13:54:31 do things get darker when I press them? Dec 12 13:56:17 things get darker if you punch them xD Dec 12 13:56:34 but on the other hand, material design is a half baked concept so you can do whatever you want Dec 12 13:56:34 i'm trying to set an objectanimator on a fragmenttransaction custom animation but i keep getting Unknown animation name: objectAnimator... I am using the support v4 library to do fragmenttransactions btw Dec 12 14:02:46 ok Dec 12 14:02:54 Leave_it HAHAHAHAHAHAHA Dec 12 14:03:01 post some code Dec 12 14:03:28 i figured it out, it was the support library screwing it up Dec 12 14:04:25 I didn't want to use the support library but apparently viewpager requires it Dec 12 14:16:35 Hi, AudioManager's setStreamMute(AudioManager.STREAM_MUSIC, false) doesn't work, even when I use the same AudioManager object that was used to mute the stream (API 16+). Any ideas why? Dec 12 14:20:53 I'm on LG GPad v500, if it matters Dec 12 14:25:40 oh great, updating the SDK screwed everything up Dec 12 14:26:39 Did yall hear about the Amazon app being taken down? They must have just republished, cause the new Amazon Shopping app is only at 1k downloads Dec 12 14:27:24 yeah. it's funny because they had just been talking about that on the android dev subreddit Dec 12 14:28:13 I love watching corporate conglomerates go at it Dec 12 14:29:14 astroduck: are you restarting the activity? Dec 12 14:36:15 i have a container for a fragment in a layout. i want the layout that holds the container to have one background color and the fragment to have another. if you look at this http://pastebin.com/KMFGkbFx they should have two different background colors. but i can see they dont when i execute a custom transition animation Dec 12 14:37:04 Has anyone done any work with plugging AutoCompleteTextView into an adapter? I have it all working, but having a NPE I can't understand in setFilterQueryProvider Dec 12 14:41:44 alright up to 5 libraries so far Dec 12 14:42:25 MartialLaw: just a guess but mergerootframe? Dec 12 14:42:43 MartialLaw: post code with line npe Dec 12 14:47:51 java.lang.SecurityException: Permission Denial: starting Intent {} from null (pid=2225, uid=2000) not exported from uid 10064 Dec 12 14:47:55 how can I avoid this? Dec 12 14:59:35 Anyone use snackbar? Dec 12 14:59:49 javnut Dec 12 14:59:55 can you read the manifest? Dec 12 15:00:11 lasserix: no, don't have the source code. I'm just testing the app Dec 12 15:00:15 testing/using Dec 12 15:00:17 oh Dec 12 15:00:18 well you can't Dec 12 15:00:20 then Dec 12 15:00:35 I can't avoid it :|? Dec 12 15:00:57 not if you can't edit the manifest Dec 12 15:01:39 what if I could edit the manifest, what would I need to do then? Dec 12 15:01:52 are you trying to crack someone's app? Dec 12 15:02:32 no, I'm trying to automate it so I can do less work Dec 12 15:02:56 so Dec 12 15:03:01 do you know what uuid is? Dec 12 15:03:17 I know what it is, I don't know how exactly it relates to android apps Dec 12 15:03:32 each app has a uuid Dec 12 15:03:42 do you know what an activity is? Dec 12 15:04:05 it's like a class that has some kind of method Dec 12 15:04:16 what kind of method? Dec 12 15:04:16 which runs, when you open that activity Dec 12 15:04:32 don't remember the name, but it takes a View object Dec 12 15:04:34 what does an activity represent? Dec 12 15:04:45 in terms of using the app.. Dec 12 15:04:55 a "section" Dec 12 15:05:01 good enough Dec 12 15:05:03 anyways Dec 12 15:05:24 like a menu, or the player, or splash screen or w/e Dec 12 15:05:30 there are 4 fundemental components of android apps: activities, services, broadcast receivers and content providers Dec 12 15:05:44 ok Dec 12 15:05:49 these can either be used only by the app Dec 12 15:05:54 or made available to other apps to use Dec 12 15:05:59 by setting the appropiate intents Dec 12 15:06:24 ie, if i have my app that does contacts i can use the camera app to take a picture of my friend my app sends an intent requesting the camera app activity Dec 12 15:06:27 follow me/ Dec 12 15:06:29 ? Dec 12 15:06:49 yes Dec 12 15:07:09 and some intents are allowed Dec 12 15:07:11 and some aren't? Dec 12 15:07:25 close but listen Dec 12 15:07:40 BUT lets say i have a supersecret activity i don't want any other app using, well if that's the case i set "exported=false" in the manifest, which is a declaration of all the components of my app Dec 12 15:08:14 your security permission--my guess tells me, is that you are trying to access a component of an app where exported has been set to false Dec 12 15:08:25 probably Dec 12 15:08:34 so if you had the manifest you could open it up, find wherever exported = false and flip it Dec 12 15:08:44 so how do activities from within the app access that super secret activity? Dec 12 15:09:03 they are allowed too since they live in the app Dec 12 15:09:04 does exported=false only mean activities from outside the app can't call it? Dec 12 15:09:11 that is--they share the same uuid Dec 12 15:09:16 yeah Dec 12 15:09:18 ok. Dec 12 15:09:28 yes Dec 12 15:09:28 oh that's the other thing--so the uuid of the app determines this Dec 12 15:09:33 well that should help Dec 12 15:09:39 since all the components within the app share a uuid... Dec 12 15:10:26 alright, I'll try and get the manifest when I wake up then Dec 12 15:10:38 thanks lasserix Dec 12 15:10:52 np Dec 12 15:11:27 Does anyone if material design white is white or off white? Dec 12 15:12:38 #fafafa Dec 12 15:15:42 this has me completely stumped. I am setting a FilterQueryProvider on a CursorAdapter, and even though the parameter is not null a NPE is thrown (and caught actually behind the scenes) when I try to use toString. http://stackoverflow.com/q/27446583/1747491 Dec 12 15:18:24 in the runQuery function I output the parameter constraint, and it is exactly what I am typing into the AutoCompleteTextView. but something doesn't like me calling toString on it Dec 12 15:18:36 but I have to call toString on it to do the database call I believe Dec 12 15:27:50 Leave_ite: just curious what's your source? Dec 12 15:28:18 just analyzing screenshots myself Dec 12 15:30:01 ahh ok Dec 12 15:30:02 thanks Dec 12 15:30:50 mattblang_: can you use debugger? Dec 12 15:31:00 just set a breakpoint and step thru you find the problem Dec 12 15:31:22 lasserix this is a bigger issue. i've already debugged and logged, constraint definitely isn't null in runQuery Dec 12 15:31:24 yay, only lost an hour screwing with eclipse after updating Dec 12 15:31:27 alsoyou shold probably paste where you cann the queryfilter from Dec 12 15:31:54 lasserix queryfilter is called behind the scenes Dec 12 15:31:58 Leave_ite: you still using that? are you writing NDK? if not switch to android studio Dec 12 15:32:01 lasserix setitng a custom FilterQueryProvider on it Dec 12 15:32:13 show your filterqueryprovider Dec 12 15:32:22 that's probably whats failing Dec 12 15:32:32 since it is passing null constraints Dec 12 15:32:50 lasserix inside the provider's runQuery function I am logging the constraint parameter, it definitely isn't null Dec 12 15:33:02 lasserix edited the question withs ome additional info http://stackoverflow.com/q/27446583/1747491 Dec 12 15:33:15 Hi there!, I'm a newbie with Java and I'm trying to implement Facebook SDK with this example: http://javatechig.com/android/using-facebook-sdk-in-android-example I already make this work but don't know why Facebook login sometimes work and some times not. Even when it works it doesn't return user data like first name. Dec 12 15:33:23 lasserix I am really stumped right now, and am trying to figure out if this is something stupid I am doing that I just don't see, or a bug Dec 12 15:33:44 Any help will be appreciated. Dec 12 15:38:29 how can i delete an alarm if i dont know the pendingintent's id? Dec 12 15:42:33 id? Dec 12 15:43:48 request code rather Dec 12 15:43:53 mattblang if it's a new FilterQueryProvider is that why? Dec 12 15:44:26 how does a new FIlterQueryProvider get the constraint? wouldn't you have to use an existing queryfilterprovider of which you've already like set something such that it is fed the proper constraint Dec 12 15:45:57 guess i dont know what i am talking about anyways good luck time to sleep Dec 12 15:46:13 aaearon: didn't think the requestCode was taken into account in filterEquals(Intent)? Dec 12 15:46:22 mattblang_: http://stackoverflow.com/questions/7698795/how-to-run-the-query-of-a-filterqueryprovider-asynchronously Dec 12 15:47:24 mattblang_: looks like your implementation is incorrect along the lines of what i said? Dec 12 15:47:41 http://stackoverflow.com/questions/5057364/filterqueryprovider-filter-and-listview Dec 12 15:48:33 both SO posts use a filterqueryprovider that is linked somehow so that the constraint it is passed is not null, since you are just setting a new one, without "binding" it to anything,t hat's why your constraint is always null--the FQP has nor eference to anything Dec 12 15:49:32 lasserix checking into this Dec 12 15:50:27 lasserix interesting.. the error occurs with only two characters typed in, but works when I type in more Dec 12 15:51:09 lasserix I based the entire example off of this http://www.mekya.com/2013/09/17/how-to-use-autocompletetextview-and-simplecursoradapter-together-in-android/#comment-6094 Dec 12 15:51:31 lasserix definitely in some unfamiliar waters, but I do know 100 percent that constraint isn't null in runQuery Dec 12 15:52:26 oh Dec 12 15:52:35 heh i am just too tired , sorry good luck Dec 12 15:53:14 lasserix thanks man! Dec 12 15:56:21 I am reading Fragment in the guide. fragmentTransaction.add(R.id.fragment_container, fragment); here add complains "cannot resolve add symbol" Dec 12 15:56:45 make sure you're importing the correct fragment library Dec 12 15:57:58 so alarms for an app dont get cleared out when an app's data is cleared? Dec 12 15:59:04 app data doesn't contain alarms Dec 12 16:00:52 Leave_ite: I am using Android Studio and generally it imports everything automatically. Dec 12 16:01:30 yeah I'll switch over eventually Dec 12 16:08:22 i'm using the dropbox SDK and they had clear instructions for eclipse, so I went with that Dec 12 16:08:50 plus google software is gross Dec 12 16:19:57 lol you can see the fitness app logs in the console. clearly I've been coding too much Dec 12 16:23:25 lasserix you still there? figured it out lol Dec 12 16:23:38 oh yeah what was it? Dec 12 16:25:33 lasserix so it was, in fact, null. lol. Only when the charsequence in the AutoComplete was one character long. What threw me off is that I had forgotten to put a wildcard in my search string for the FTS4 query, so it wouldn't match anything until I typed a full word. So I was typing up to 3 or 4 characters and thinking it wasn't working due to the NPE Dec 12 16:25:46 lasserix I remember when I first tested the AutoComplete that it didn't try to match until at least two characters Dec 12 16:28:56 hi there Dec 12 16:29:23 I'm having trouble using webviews in fullscreen mode. In my manifest, if I set android:theme="@android:style/Theme" or android:theme="@andoird:style/Theme.NoTitleBar" it works just as expected (except not fullscreen), but if i change the theme declaration to android:theme="@android:style:/Theme.NoTitleBar.Fullscreen", then I'm just getting a black screen instead of visualizing the web content Dec 12 16:29:31 any clue what might be the culprit? Dec 12 16:30:10 also i tried to remove the theme declaration from manifest and setting the app fullscreen programmatically using requestWindowFeature(Window.FEATURE_NO_TITLE) and getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN) but i'm getting the exact same issue Dec 12 16:31:49 anyone know of an appropriate .gitignore for android studio 1.0? Dec 12 16:32:07 I've seen so many versions, most of them drastically different Dec 12 16:33:08 mattblang_: ahh oh wildcards ;p Dec 12 16:33:31 lasserix if I had remembered the wildcard I would have seen that it was working when I had typed at least two characters in Dec 12 16:37:01 Does anyone know (pfn by chance?) why values from my res/values/dimen might not be working--that is, it'll work fine on my n7, but then my n5 will randomly pick up the n7 values or sometimes pick totally arbitrary values Dec 12 16:37:19 why me? :p Dec 12 16:37:30 and random? how do you have them defined Dec 12 16:37:37 in the words of Jimi Hendrix, you are expirienced Dec 12 16:37:41 like normal Dec 12 16:37:43 here Dec 12 16:38:36 http://pastebin.com/ywdFiYGQ Dec 12 16:39:07 so playset_title_text_size will show up on my n5 with the large values, then sometimes will show up as if no values set, then sometimes show up with literally arbitrary values Dec 12 16:40:06 by arbitrary i mean, like i'll set the title to 14 sp and the subtitle to 14 sp and the subtitle will be working but the title will be as if it were set to 4sp Dec 12 16:40:07 don't use -large Dec 12 16:40:22 use the sw? Dec 12 16:40:25 yes Dec 12 16:40:40 because pre-3.2 tablets are irrelevant Dec 12 16:40:48 the number following sw is user defined? Dec 12 16:40:57 no, they're well-known values Dec 12 16:41:06 oh ok Dec 12 16:41:10 -sw600dp is generally 7" tablets, 720dp, etc. Dec 12 16:42:53 what to use for normal? Dec 12 16:43:00 no qualifier, of course Dec 12 16:43:30 so to diff between mpdi and > just use no qualifier and mpdi? Dec 12 16:44:05 everything discriminates on the smallest available Dec 12 16:44:14 so everything above mdpi will match the mdpi bucket Dec 12 16:44:37 i have to diff between a n5 which has xxhdpi and is "normal" and a mpdi device that is also normal Dec 12 16:44:48 oh Dec 12 16:44:55 it won't default to the no qualifier? Dec 12 16:45:00 no Dec 12 16:45:06 thanks Dec 12 16:45:07 always goes with lowest level matched Dec 12 16:45:23 it's a waterlevel qualifier Dec 12 16:46:27 just to be certain, it'll pull same type from various--meaning, i can define two things differently in say xxhdpi but anything not in that dimen file will default to next lowest? Dec 12 16:47:04 ill play around with it thanks Dec 12 16:47:22 yes Dec 12 16:47:32 everything overlays atop each other Dec 12 16:47:38 cool Dec 12 16:47:44 have to minify the fab Dec 12 16:51:34 Ahh by chance can you see the easiest way to rectify this situation? I go from Activity A to B, the user sets some values in A that are used to generate some stuff in B. However, in B the user can load some previousily entered values from a saved list... What's the best/easiest way to transferthese values back to A so I can update a's state? Dec 12 16:51:52 startActivityForResult Dec 12 16:52:00 i am not using b as a result for a (just the opposite) but i am thinking that would be the best way to do it Dec 12 16:52:01 ahh ok Dec 12 16:52:06 or just receive from persisted storage Dec 12 16:52:28 if i do persis i'd have to clear it in onstop? Dec 12 16:52:41 that's up to you how you persist Dec 12 16:52:58 right that's why i didn't want to use persistent because how to handle if they exit and come back? Dec 12 16:53:11 oh i guess i could use the onSaveInstanceState or whate3ver Dec 12 16:53:55 doh Dec 12 16:53:57 it didnt work Dec 12 16:54:06 still acting honky Dec 12 16:56:09 alright time to put it aside thanks again for the help Dec 12 16:57:02 oh wait one last question , is there a value smaller than 600 i can use for sw? Dec 12 16:58:15 only if you want Dec 12 16:58:30 well its not working for sw600 Dec 12 16:58:41 n5 still grabbing sw600 values or grabbing random values Dec 12 16:58:44 what's " Dec 12 16:58:49 it's -sw600dp Dec 12 16:58:56 yeah Dec 12 16:59:01 i have that Dec 12 16:59:04 then it's not grabbing -sw600dp values Dec 12 16:59:14 you're doing something else Dec 12 17:00:07 ok Dec 12 17:00:09 one sec Dec 12 17:00:13 let me post exact code Dec 12 17:04:42 https://youtrack.jetbrains.com/issue/SCL-7908 Dec 12 17:04:45 comeon intellij Dec 12 17:04:48 gimme a new version Dec 12 17:06:42 what's the recommended method for organizing tests? a separate module or a test folder inside src/? Dec 12 17:07:01 android projects already come with instrumented tests by default Dec 12 17:07:03 inside of src Dec 12 17:07:45 right now i only have robolectric tests Dec 12 17:07:47 inside src Dec 12 17:08:09 but i'd like to add robotium or espresso tests Dec 12 17:09:22 just been trying to wrap my head around testing in android the past few days and have gotten nowhere Dec 12 17:09:47 welcome to android world Dec 12 17:10:11 :) Dec 12 17:10:13 This is scary: http://www.reddit.com/r/androiddev/comments/2p0slx/my_roller_coaster_app_removal_appeal_story/ Dec 12 17:10:24 TL;DR: He won the appeal, and then his app got taken down again. Dec 12 17:10:38 He lost the second appeal. Dec 12 17:10:51 I wish that guy would be concise. The post got buried probably because it was way too long. The title is also unclear. Dec 12 17:11:00 Just get to the freaking point. Dec 12 17:12:05 what's the preferred class to use to store location data? Dec 12 17:12:07 Title could be "App removed despite winning appeal!" or something. It'd probably have 20 upvotes. Dec 12 17:12:17 Location/GeoPoint/LatLng? Dec 12 17:13:44 pfn: http://pastebin.com/3mDaGMii Dec 12 17:13:58 do yall think it is okay to clear the back history when a user authenticates / logs in ? Dec 12 17:14:36 lasserix: I see you got the spherical-looking circles down. :D Dec 12 17:14:39 lasserix, wrong context Dec 12 17:14:41 hehe Dec 12 17:14:47 wrong context?!? Dec 12 17:15:04 oh do i have to use application context? Dec 12 17:15:24 always use activity context, but since you don't show which context you're using, I assume it's application Dec 12 17:15:31 oh Dec 12 17:15:33 it's activity Dec 12 17:16:01 im in an activity so i presume getResources is pulling from this which is activity context? Dec 12 17:16:21 final Resources res = c.getResources(); Dec 12 17:16:33 yeah that's the activity context Dec 12 17:16:43 that adapter is non-static inner of that activity above Dec 12 17:16:50 i just pass this into its constructor Dec 12 17:16:58 if it's non-static Dec 12 17:17:12 then don't pass this into it and just use Outer.this Dec 12 17:17:30 oh cool trick Dec 12 17:17:38 but that is not going to solve this or ? Dec 12 17:17:45 unrelated Dec 12 17:17:59 ahh but thanks much cleaner Dec 12 17:18:49 TacticalJoke: the best part is i just kinda downloaded a bunch of images, picked one, played it with in a half assed effort and it turned out good enough ;p Dec 12 17:18:53 screenshots it's hard to tell what's wrong Dec 12 17:18:59 because the physical sizes aren't comparable Dec 12 17:19:22 lol Dec 12 17:19:50 umm, so like if you look at the left hand side where it says "for daily picks" that is 14sp but the numbers #1 #2 is 12 sp Dec 12 17:20:00 as defined in the top dimensions Dec 12 17:20:20 obviousily there's something very wrong going on because how can 14sp < 12 sp? Dec 12 17:20:24 Oh man. I love when you have those moments of inspiration. Moments where you think of something that seems amazingly powerful. Dec 12 17:20:34 lasserix, bold, different fonts, etc. Dec 12 17:20:40 Like placing the final piece of the jigsaw puzzle. Dec 12 17:20:41 lasserix, hierarchy viewer and see what the actual sizes set are Dec 12 17:21:02 same font not bold for all purposes they are the same textappearance except the size Dec 12 17:21:04 ahh Dec 12 17:21:28 hehe exactly why i picked this project, have not used hv before Dec 12 17:21:37 that's definitely not same text appearance for picks and numbers Dec 12 17:22:37 it i Dec 12 17:22:38 it is Dec 12 17:22:43 no not for the number part Dec 12 17:22:47 for the text "for daily picks" Dec 12 17:22:57 and for the "#1" "#2" Dec 12 17:23:05 the only difference is textsize, all else is equal Dec 12 17:24:21 do i have to launch hv from command line? it says something about using DDMS and it opened but i can only inspect screenshot Dec 12 17:24:36 you use ddms Dec 12 17:25:03 and hv doesn't work on-device unless you have a custom rom or run viewserver in your app Dec 12 17:25:04 which is not part of AS? Dec 12 17:25:57 oh cool you can use it for IME Dec 12 17:26:00 awesome thanks Dec 12 17:26:28 for what? Dec 12 17:26:31 DDMS sounds like a street drug. Dec 12 17:27:52 i am developing a ime so Dec 12 17:27:58 viewserver + hv will be useful Dec 12 17:28:49 so close Dec 12 17:28:53 to finishing this project Dec 12 17:28:54 ieie Dec 12 17:29:28 Are you gonna release it on play.google.com? Dec 12 17:29:39 release which? Dec 12 17:29:43 The lottery thing. Dec 12 17:29:56 someone is paying me Dec 12 17:30:01 so i am handing it off to them Dec 12 17:30:06 Ah, okay. Dec 12 17:30:11 i think they are planning on it tho Dec 12 17:30:15 why do you ask? Dec 12 17:30:19 live in california? Dec 12 17:30:24 ;p Dec 12 17:30:26 Just being nosy. Dec 12 17:30:29 oh Dec 12 17:30:36 i think her "secret" formula only works in ca Dec 12 17:30:50 So she's paying for a pretty RNG, basically? Dec 12 17:30:55 lrng? Dec 12 17:30:57 rng? Dec 12 17:31:01 Random-number generator. Dec 12 17:31:05 no Dec 12 17:31:08 Perhaps 'random' should be in quotes. Dec 12 17:31:11 she was paying for a rng Dec 12 17:31:17 i went out of my way to make it pretty Dec 12 17:31:21 heh Dec 12 17:31:42 which apparently worked becasue she said she'd pay me twice the quoted offer Dec 12 17:31:44 Hmm, couldn't she just use a website? Or a die. Dec 12 17:31:50 i have no idea Dec 12 17:32:08 i think she works somewhere where she plans on talking people into downloading / paying for it? Dec 12 17:32:22 im not really sure, it seems very odd to me but you know people be people Dec 12 17:32:24 Maybe she has a cult of randomness. Dec 12 17:32:30 Your app is the koolaid. :D Dec 12 17:32:35 hehehe Dec 12 17:32:49 Kool-Aid* Dec 12 17:33:11 My first app was basically an elaborate RNG. Dec 12 17:33:23 It was based on the book The Dice Man, about a man who lives his life by the casting of dice. Dec 12 17:33:28 Deferring decisions to the die, and so on. Dec 12 17:33:38 The one rule being that the die must be obeyed. Dec 12 17:33:48 you were using it to do live action role playing? Dec 12 17:33:59 Well, I never actually used it, so I just stopped making it. Dec 12 17:34:09 like so many first projects... Dec 12 17:34:22 i think the first project i did was a pi memorizer Dec 12 17:34:26 I was wasting time that could've been used making something useful (a Reddit client), too. Dec 12 17:34:33 hehe Dec 12 17:34:47 Ooh, some people love memorising pi. Dec 12 17:34:50 well now you are making a badbit reddit client Dec 12 17:34:59 yeah some people are nuts up to like 100k digits Dec 12 17:35:08 What is 'badbit' again? Dec 12 17:35:27 i was told not to curse in this chatroom Dec 12 17:35:42 lasserix :O Dec 12 17:35:46 "The record for memorising Pi was achieved by Chao Lu (China) who recited Pi from memory to 67,890 places," Dec 12 17:35:57 'badbit' sounds like bad language to me. I think it's time for a visit to the naughty step. Dec 12 17:36:07 hehe Dec 12 17:36:08 im tired Dec 12 17:36:09 Damn, that's hardcore. Dec 12 17:36:12 i should have done btter Dec 12 17:36:31 yeah right? Dec 12 17:36:35 how long would that even take? Dec 12 17:36:59 Seems like such a waste of brain power. Dec 12 17:37:02 And energy. Dec 12 17:37:25 so it would probably take somewhere between 4-6 hours Dec 12 17:37:32 some people can just memorise it naturally Dec 12 17:38:00 no1 actually consciously tries to memories PI <_< Dec 12 17:38:01 f00dWorksta: are you sure? if you read the literature apparently there is a whole repotoire of schemes to memorizing things like that Dec 12 17:38:32 unless you are actually one of those autistic savants, in which case you translate the numbers to icons and the sequence becomes a phantasmagoric movie reel Dec 12 17:38:40 lasserix: yes, but not for PI... the person who got 67,890 places probably has photographic memory Dec 12 17:38:58 f00dWorksta: definatly for pi Dec 12 17:39:23 i did a bunch of research cause i was thinking of trying to implement some memorization schemes Dec 12 17:39:43 there isn't really a need for memorization these days Dec 12 17:39:51 tru dat Dec 12 17:40:07 there should be better ways of searching though :P Dec 12 17:40:15 anyone read contact? Dec 12 17:40:24 I watched it. Dec 12 17:40:35 you should read it Dec 12 17:40:50 its related to the topic of pi but i wont spoil it in case you ever do Dec 12 17:40:53 jodie foster movie? Dec 12 17:40:56 One thing that concerns me in the modern world is that technology does so much of the thinking for us. Dec 12 17:41:01 Will humans become even dumber? Dec 12 17:41:05 ahem carl sagan book Dec 12 17:41:28 TacticalJoke: perhaps, but in reality we'll just become more efficient at thinking in specific ways Dec 12 17:41:29 TacticalJoke: technology speeds up protocol stuff, we still need to think for ourselves Dec 12 17:41:33 One example is spelling. Nobody needs to care about spelling anymore. Dec 12 17:41:34 Just google it. Dec 12 17:42:12 who ever cared about spelling to begin with? languages evolve and as long as you get the wrds in sem ord3r u can cmphrnde what i mean Dec 12 17:42:32 TacticalJoke: yes but maybe that's a good change, instead of spelling things out 1 by 1, we can just have a train of thought go on and on while the computer corrects stupid stuff Dec 12 17:42:39 ++ Dec 12 17:42:59 and then our content streams of thought will converge and booya post singularity Dec 12 17:43:10 Would you guys be okay with "your" becoming an accepted synonym of "you're"? Dec 12 17:43:15 it might one day lead to though control Dec 12 17:43:22 (I know that's not spelling, but it's a similar topic.) Dec 12 17:43:42 TacticalJoke: well a good spelling/grammar checker would've corrected that :P Dec 12 17:43:45 TacticalJoke: really it doesn't matter its all about context it's not like i'm going eat your grandma when you say lets eat grandma! Dec 12 17:44:08 and yea languages evolve Dec 12 17:44:09 let's eat, grandma! Dec 12 17:44:16 imagine us speaking old english? Dec 12 17:44:35 If "your" ever makes it into the OED as a variant of "you're", I will die inside. :[ Dec 12 17:44:49 Hi Dec 12 17:45:10 There is something to be said about using things correctly. Dec 12 17:45:22 And the notion of some stuff being correct and other stuff being incorrect. Dec 12 17:45:49 Is it possible to prevent open activities until download some files? Dec 12 17:46:12 MalekAlrwily: What do you mean? Dec 12 17:46:44 I need to initial some variables before allow user to use my app Dec 12 17:46:54 TacticalJoke: ^ Dec 12 17:48:23 So, when the user opens your app, you want to download some files before showing anything on screen? Then, when the files are downloaded, you want to show an activity? Dec 12 17:48:27 MalekAlrwily: sure Dec 12 17:48:51 TacticalJoke: Exactly. Dec 12 17:48:59 MalekAlrwily: use a service you start on main/default/launcher oncreate finish until the service says file is ready (stuff into shared prefs) Dec 12 17:49:08 or better, an intent service Dec 12 17:50:15 lasserix: But... Is it safe to hold the main thread? Dec 12 17:50:40 no Dec 12 17:50:48 intentservie handles that for you Dec 12 17:50:58 oh Dec 12 17:51:13 lasserix: Thank you. Dec 12 17:51:52 bet we could make a bot that answers these type of questions Dec 12 17:53:07 As long as it's not used like that ##java bot is used. ;| Dec 12 17:53:15 heh no Dec 12 17:53:17 opposite Dec 12 17:53:21 proactive helping people Dec 12 17:53:28 Yeah, bots can be cool. Dec 12 17:53:44 not a way for misanthropes to passively agressive insult people Dec 12 17:54:55 ol Dec 12 17:54:56 lol* Dec 12 17:58:40 I don't get the insults most of the time, which makes them madder :P Dec 12 18:07:19 ooh, android device monitor is cool Dec 12 18:07:44 Oh, a masochist would love ##java. Get all the insults you could ever want. Dec 12 18:11:44 not really Dec 12 18:16:54 What's the correct way of adding a colon : at the right end of a Right-to-left language like Arabic? Dec 12 18:17:08 arabicString + ":" will add it to the left, so will String.format Dec 12 18:18:27 try ":" + Dec 12 18:22:17 endermam: well, I need to implement it generically Dec 12 18:23:43 endermam: this looks valid http://stackoverflow.com/a/6255490/658718 Dec 12 18:38:43 Is there a google developers guide to phrasing when you are making your play store listing description? I feel like there would be but can’t find it Dec 12 18:39:58 have you *seen* the store? Dec 12 18:40:43 hey.. someone knows how i can solve this: i have a viewpager with fragments, within one fragment i have a viewpager with fragments. this works. when i rotate the device, the inner viewpager is not visible any more Dec 12 18:41:00 how can i make it visible after a device rotation? Dec 12 18:42:17 grugru that sounds odd. have you tried calling setOffscreenPageLimit with the total number of views so they're never destroyed? Dec 12 18:42:54 in_deep_thought: I doubt it. A great book on this general topic, though, is The Elements of Style. Dec 12 18:43:01 Levite: i haven't because there are like 2000 fragments inside the second viewpager Dec 12 18:43:11 It's a master class in conciseness. Dec 12 18:43:22 lol I was just thinking Strunk and White myself Dec 12 18:43:24 :) Dec 12 18:43:43 It's free online now, I think. Dec 12 18:43:46 in all seriousness though, I would just check out the top paid apps on apple's app store Dec 12 18:49:16 someone else knows something how i might be able to solve it? Dec 12 18:50:31 it sounds like yoj might need to rethink your design then Dec 12 18:51:35 i've been messing with fragments for the past 2 weeks and it seems like they're more like mini activities and not recyclable views Dec 12 18:51:39 2,000 fragments inside a ViewPager that is inside a ViewPager? Dec 12 18:52:23 why not give recyclerview a try Dec 12 18:53:06 grugru can you confirm that they are instantiated after rotation and not just invisible? Dec 12 18:53:31 maybe also try switching to fragment state pager adapter Dec 12 18:53:52 viewpager is a huge mess Dec 12 18:54:04 TacticalJoke: thanks this is looking good. and it is online here: http://faculty.washington.edu/heagerty/Courses/b572/public/StrunkWhite.pdf in case anyone is curious Dec 12 18:54:30 brevity is key to a good app description Dec 12 18:54:32 Best book I've read on the topic of powerful language use. :) Dec 12 18:54:42 Yeah, gotta get straight to the point. Dec 12 18:55:04 it takes a lot longer to write a short description than a long one Dec 12 18:56:55 If a description doesn't clarify an app's purpose within about five seconds, I lose some or all interest in the app. Dec 12 18:56:56 in_deep_thought what category of app is it out of curiosity? Dec 12 18:57:10 plus you only get like 4 or 5 lines above the fold Dec 12 18:57:11 Levite: photo taking app Dec 12 19:02:29 I'm writing a custom system service and I have some log messages in the constructor that I can't find in logcat. but the service is working. Anybody willing to help?? One time I did see the messages; I'm confused about it in general. :( Maybe my service is starting before the logcat service? Dec 12 19:03:46 TacticalJoke: yes Dec 12 19:04:32 Levite: the inner viewpager instantiates all fragments Dec 12 19:04:42 oncreate() is called for all of them Dec 12 19:04:48 they're just not visible Dec 12 19:04:58 grugru: I'm not Fragment or ViewPager expert, but having 2,000 Fragments in a ViewPager which itself is in a ViewPager sounds bad to me. Dec 12 19:05:01 no* Dec 12 19:06:38 Does anyone know the meaning of INSTALL_FAILED_DEXOPT? Dec 12 19:06:45 When doing adb install Dec 12 19:07:00 I can't find documentation on it Dec 12 19:07:28 Hi Dec 12 19:07:34 what about finding with google? Dec 12 19:08:03 hey guys I need to use the media headers (.h)... I cannot find where to get them. It looks like they only live in android source Dec 12 19:08:18 is there a way to use them without having to pull all of the android source? Dec 12 19:08:41 Where is gradle tasks location that should be run on build? Dec 12 19:09:40 Levite: but the fragment state pager adapter only works with a viewpager, isn't it? Dec 12 19:11:06 yeah Dec 12 19:12:39 MalekAlrwily, check out build.gradle in the project directory. Is this what you mean? Dec 12 19:13:18 mr_quincy: yeah, thank you Dec 12 19:20:13 anyone running android studio in i3 window manager? Dec 12 19:23:07 dam0: Doesn't it run? You may want to run $ wmname lg3d, after installing wmname of course. That works for Arch at least... Dec 12 19:34:07 dam0: using i3, but not android studio. might be able to help, what's up? Dec 12 19:34:56 Levite: thanks for the fragmentSTATEpageradapter suggestion Dec 12 19:35:02 using it it works Dec 12 19:35:15 nice Dec 12 19:35:32 yeah I was in fragment hell for a solid 3 days Dec 12 19:35:42 hehe Dec 12 19:35:47 and now? Dec 12 19:35:49 Levite fragment hell, not a place I want to go back to Dec 12 19:35:56 solved all problems? :D Dec 12 19:35:58 agreed Dec 12 19:36:10 i hate fragments too =) Dec 12 19:36:23 heh, just enough to make it work Dec 12 19:36:33 Levite: I think that's all anyone manages with fragments Dec 12 19:36:44 sometimes i don't know what the android engineers are thinking Dec 12 19:37:14 they make this thing that manages saves and restores these fragments and yet there's no easy way to get a reference to them after the fact Dec 12 19:37:19 I suspect they get trapped by "lets make this easy for devs" rather than "lets make this easy to _understand_" Dec 12 19:37:39 in the ideal cases, a lot of the super-fucking-annoying stuff in Android is simple and effective. Dec 12 19:37:46 Groxx, grugru, Levite haha, this comment I made earlier this year wasn't to well received http://www.reddit.com/r/androiddev/comments/29059h/google_io_2014_will_you_be_there_and_what_is_the/cig92pn Dec 12 19:38:26 lol Dec 12 19:38:43 Levite I was right in the middle of implementing nav drawer and master detail Dec 12 19:39:21 Levite, Groxx, grugru I think the problem with fragments is they give no direction, really, on how to use them. Do you make one activity and all fragments now? do you nest fragments? etc etc Dec 12 19:39:44 do you nest fragments, and then run the (repeated!) risk of problems when they introduce bugs with nested fragments? Dec 12 19:40:28 Groxx I try to stay away from nesting fragments now. I like fragments a lot, don't get me wrong. but I think I may have overused them. For example, my nav drawer now is an Activity per item rather than one Activity changing otu fragments Dec 12 19:40:49 I still boggle that fragments didn't support nesting from day 1. that seems like a _massively_ bad sign for adding nesting later. Dec 12 19:40:59 . Dec 12 19:41:16 yeah I like the concept a lot but it requires a lot of legwork to get working right Dec 12 19:41:37 half the problems are from the way android tears down your activity when you rotate the device Dec 12 19:41:51 stop complaining, it used to be *much* harder to make any sort of GUI program :P Dec 12 19:41:57 eh, that I'm alright with. it pushes you to make your app more robust. Dec 12 19:42:00 Groxx: true.. and then later the nesting broke with a new version of the support library.. anyways.. it just works now and i'm happy Dec 12 19:42:01 haha Dec 12 19:42:05 supposedly there's a way to keep the frag alive but i've only briefly toyed with it Dec 12 19:42:13 mattblang_: i upvoted you :D Dec 12 19:42:19 f00dWorksta: With Delphi and C++ Builder, life was very easy here. Dec 12 19:42:23 And Visual BASIC, I guess. Dec 12 19:42:24 Levite: setRetainInstance(true) :) Dec 12 19:42:27 Also C#/.NET. Dec 12 19:42:27 grugru haha! thanks Dec 12 19:42:36 right. but in a viewpager it doesn't "just work" (of course) Dec 12 19:42:44 nothing "just works" in ViewPager Dec 12 19:42:54 Hmm, is setRetainInstance a good idea? Dec 12 19:43:00 I can't think of a case when I'd want to use it. Dec 12 19:43:07 i can Dec 12 19:43:19 I have a webview so it would be really great if I could prevent it from reloading on rotation Dec 12 19:43:21 TacticalJoke: it _seems_ like it on the surface. in general I doubt it - it seems like they intentionally added a hack to bypass config changes working the way they're supposed to Dec 12 19:43:43 TacticalJoke: you can use setRetainInstance for background stuff I believe Dec 12 19:43:44 I'd use a static variable if I want to avoid an Activity's destruction killing something I'm holding onto. Dec 12 19:43:50 f00dWorksta: But is that a good idea? Dec 12 19:43:55 It sounds terrible to me, to be honest. Dec 12 19:44:02 no idea, i'm pretty new to android Dec 12 19:44:12 TacticalJoke: exactly. since otherwise you don't pick up language changes, layout changes, etc. Dec 12 19:44:31 You should ask Square how much they like fragments :P Dec 12 19:44:46 mattblang_: why? Dec 12 19:44:46 Right, Groxx. Dec 12 19:44:55 f00dWorksta: because http://corner.squareup.com/2014/10/advocating-against-android-fragments.html Dec 12 19:45:12 I'd say that having non-UI stuff in a Fragment/Activity is just bad by design. Dec 12 19:45:15 f00dWorksta you could ask JakeWharton, he #1 fragment advocate NA Dec 12 19:45:34 Groxx: Do you dislike Fragments in general? Dec 12 19:45:39 I'm not sure, but I don't mind them in some cases. Dec 12 19:45:45 I'm no expert, though. Dec 12 19:46:04 I guess the key advantage I see is not having to create our own back-stack management. Dec 12 19:46:17 TacticalJoke: the theory of "nestable pieces of view/controller logic", basically. there are "code purity" problems of course, but it's a very practical thing to be able to do. Dec 12 19:46:29 i like fragments because I can use them to replicate UINavigationController from iOS Dec 12 19:46:44 the delay between switching activities annoys the shit out of me Dec 12 19:46:52 I guess my attitude is to use Fragments only where I have really good reason. Dec 12 19:47:01 f00dWorksta yeah, was just kidding earlier. the post Groxx made is what I was referring to. They created a library to accomplish everything Fragments do so they wouldn't have to use them Dec 12 19:47:02 the way android built fragments: no. a good amount of it seems necessary, but they ruined a lot with them, and they're difficult to inspect. Dec 12 19:47:06 TacticalJoke yeah, same here Dec 12 19:47:12 I think the problem honestly is overuse Dec 12 19:47:21 But the overuse happens becuase there is no real direction on how to use them Dec 12 19:47:25 Yeah. Dec 12 19:47:27 ALl you find is the cliche master-detail example Dec 12 19:47:36 they're going to be awesome when I have to adapt the app for tablets Dec 12 19:47:45 I'm gonna have to worry about tablets. Dec 12 19:47:50 Honestly, I don't have a clue what UX to create for tablets. Dec 12 19:47:56 i mean that's really what they were made for Dec 12 19:48:01 I am very confident about the phone UX, though. Dec 12 19:48:30 It is crazy how much optimizing for tablets increases complexity. Because without tablets you don't need to worry about orientation change either Dec 12 19:48:56 fragment overuse: I have this background feeling that making a crap-ton of very specific fragment-like things would actually work nicely, if the framework supported it and didn't make it a massive mess. but that is definitely not Android's fragments. Dec 12 19:48:58 (if you lock to portrait, which I definitely do) Dec 12 19:49:21 Can you lock to both portraits? Dec 12 19:49:30 A lot of apps on my tablet lock me to a particular portrait, which is annoying. :/ Dec 12 19:49:40 TacticalJoke yeah, don't lock to portrait with tablet Dec 12 19:49:44 TacticalJoke but phone, yeah Dec 12 19:49:45 yeah, I'm not fond of locking Dec 12 19:49:46 My tablet has a charge port underneath, so I often like inverse-portrait. Dec 12 19:49:56 you can do pretty much anything Dec 12 19:50:06 ^ that too. the fact that you can't flip iDevices (in 99% of apps) bugs the hell out of me. Dec 12 19:50:08 TacticalJoke, Groxx if you are only developing for phone, might as well. Hell, I usually use the Samsung portrait lock on my phone Dec 12 19:50:14 Yeah, it's a pain. Dec 12 19:50:15 portrait | reversePortrait Dec 12 19:50:33 i find reverse portrain annoying because it usually activates when I don't intend it to, like when i'm leaning the phone over Dec 12 19:50:35 mattblang_: Yeah, I lock my phone. Use some widget (since it's an Xperia on 4.1). Dec 12 19:50:53 I hate if, when lying down reading Reddit, my phone wants to go into landscape mode. Dec 12 19:50:53 mattblang_: depends. a lot of content-y views make sense in landscape sometimes, especially when you're dealing with tiny devices - easier to read. Dec 12 19:50:54 TacticalJoke so then, optimizing for tablets also means optimizing for orientation changes Dec 12 19:51:14 mattblang_: but that hardly matters if you don't do things like scrolling headers/actionbars out of view. Dec 12 19:51:14 Groxx I hardly every see someone use their phone in landscape, unless they are watching a video Dec 12 19:51:15 I guess the one thing I like in landscape mode on my phone is YouTube videos, but they have a button for that. Dec 12 19:51:27 or games Dec 12 19:51:29 That's a good point, mattblang_. Hadn't thought of that (consciously, anyway). Dec 12 19:51:30 some* games Dec 12 19:51:36 mattblang_: yeah, it's rare Dec 12 19:51:46 Yeah, I guess some games need/want it. Dec 12 19:51:56 TacticalJoke, Groxx yeah, was just about to mention that only when I watch youtube do I switch to landscape. And the fullscreen buttons handles that, because it doesn't matter what orientation is when you render video on the screen Dec 12 19:52:05 TacticalJoke right, and games Dec 12 19:52:08 So glad they have that button. Dec 12 19:52:11 mattblang_: fwiw in the app I'm building on the side I use landscape more than 75% of the time. but that's a content thing - a lot of it is horizontal. Dec 12 19:52:39 Even if we didn't have to worry about orientation changes, though, the onSaveInstanceState thing would still be useful. Dec 12 19:52:41 at a very high level: If I have an asynchronous function (AsyncTask) that fetches something online and adds it to a file, and I call .execute() on it, what happens if I close the file before the AsyncTask is done? Is there an error? Or will the .execute() command force the file to stay open until the AsyncTask is done fetching and editing the file. Dec 12 19:52:43 Groxx got ya. yeah, for the app I am on landscape makes no sense because hell, the keyboard alone takes up most of it Dec 12 19:52:50 I believe it's used when Android kills the background process. Dec 12 19:52:50 haha Dec 12 19:53:15 So a Reddit client, for example, should use that functionality so that the current comment list (with its collapsed sub-trees and so on) is restored when the user comes back. Dec 12 19:53:25 in_deep_thought probably an IOException Dec 12 19:53:29 TacticalJoke: yeah, that's largely whyI like that rotation kills your activity by default. forces you to at least think about it, because it happens SO often, and otherwise nobody would test it. Dec 12 19:53:54 Ya. :) Dec 12 19:53:58 It's kinda handy. lol Dec 12 19:54:01 in_deep_thought actually, no. If you create the Task, and you open the file in the Task constructor, it probably stays open until the Task is destroyed Dec 12 19:54:55 so if I want to close the file immediately, even if the AsyncTask isn’t done, I would have to do so manually somewhere in the code, less I risk the task forcing the file to stay open. Is this correct? Dec 12 19:54:56 I wish implementing Parcelable were less verbose. Dec 12 19:55:01 It's so ugly. Dec 12 19:55:23 I think, in my current app, I can simply use JSON (since many of my classes are instantiating themselves from it anyway). Dec 12 19:55:27 TacticalJoke: it feels like something that's generate-able to me. Dec 12 19:55:36 Yah. Dec 12 19:55:36 but Java annotations :| Dec 12 19:55:54 I think an argument can be made for always using JSON (with Gson or something). Dec 12 19:56:04 TacticalJoke I started storing and passing JSON and using GSON to recreate on some things Dec 12 19:56:12 TacticalJoke such as a Profile that is set when user authenticates Dec 12 19:56:12 Gson is so nicely lightweight. :) Dec 12 19:56:22 in_deep_thought can you just wait to open it until whatever your task is doing finishes? Dec 12 19:56:25 TacticalJoke oh yes Dec 12 19:56:25 I'm glad we don't have to use Jackson. It's nice, but it's way bigger. Dec 12 19:56:29 TacticalJoke yup Dec 12 19:56:35 TacticalJoke DEX count much higher Dec 12 19:56:51 TacticalJoke toyed with that when I was considering reusing some Spring POJOs Dec 12 19:56:59 TacticalJoke someone here told me not to do that, I later figured out why Dec 12 19:57:03 wish I could remember who Dec 12 19:57:51 Yeah, I considered it for Reddit-JSON parsing. For my use case, its performance was comparable to Gson's (though I'm doing DOM-like parsing). Dec 12 19:58:28 I mean "Gson's performance was comparable to Jackson's". Dec 12 19:58:44 Groxx, TacticalJoke, Levite, grugru with what we were talking about earlier, you know what bums me out. All the work optimizing for tablets, and handling configuration (which like I mentioned, I lock phone to portrait so only needed to do that for tablets), and tablets represent 3.71% of traffic according to Analytics Dec 12 19:58:54 mattblang_: not really. Because if the internet connection is bad, the task may take like 10 seconds. I don’t want to pause everything while it waits. I would rather “cut my losses” and have it move on. Its just a picture file that its fetching. So should I manually end the task after say 5 seconds if its not done anyways? Does that sound like a good way to handle it? Dec 12 19:59:03 mattblang_: depends on if you define phablets as tablets :) Dec 12 19:59:08 but yeah Dec 12 19:59:15 yeah, if the ipad is the ipod, android tables are the zune Dec 12 19:59:41 in_deep_thought: It sounds like you should be telling the background task "we don't need to do stuff anymore". Dec 12 19:59:43 in_deep_thought see if this would help you out http://square.github.io/picasso/ Dec 12 20:00:11 that looks pretty slick Dec 12 20:00:14 Levite haha, the Zune. is that still around? Dec 12 20:00:26 heh, no they killed it several years ago Dec 12 20:00:27 in_deep_thought: yeah, try an image loader library that'll do that for you, or consider canceling the async task when they leave (you can do that) Dec 12 20:00:38 Levite Talking about picasso? Dec 12 20:00:41 TacticalJoke: you mean tell it that if it doesn’t have success after 5 seconds? Is there a way to give an AsyncTask a time limit actually? Dec 12 20:00:48 microsoft was playing catchup in the Mp3 player market while apple was designing the iphone Dec 12 20:00:51 that tells you everything Dec 12 20:00:58 in_deep_thought if you are wanting to just async load an image from a URL, definitely use Picasso Dec 12 20:01:17 in_deep_thought I'm trying to get rid of all my AsyncTasks. they are a mess. have one left that I don't want to touch because it is pretty complicated Dec 12 20:02:38 Something like that, yeah. I don't think AsyncTask has that functionality built in. Maybe Picasso has something like that (I don't know; haven't used it yet). Dec 12 20:03:06 Even if not, it's fairly simple to implement "Do X in N seconds" functionality. Dec 12 20:03:30 mattblang_: do you know if picasso has a time limit built into it? Dec 12 20:03:44 in_deep_thought not sure, wouldn't surprise me Dec 12 20:04:05 in_deep_thought: You're asking about some kind of maximum download wait, right? Dec 12 20:04:20 in_deep_thought: explicit time limits are rarely useful, connections can be slow. is a max time really what you want, or are you just trying to end it safely if they get bored and leave? Dec 12 20:04:34 So I have a webview, which loads a page that contains a button. Upon clicking this button makes an AJAX request. Upon AJAX success it calls another url to open next page. I can intercept AJAX call using onLoadResource and shouldInterceptRequest in my WebViewClient because it was a user interaction; however, how can i intercept the url that was called by success of AJAX? Dec 12 20:05:46 Ok there is a countdown built into the app. Its 3 seconds long. It tries to load an image from a url. If it does it in those 3 seconds, awesome. It will be sent onto the next activity. If it can’t finish in 3 seconds, thats ok. the next activity just wont have a picture. Thats how it should work. Right now everything stops because the async task takes more than 3 seconds Dec 12 20:05:48 iamshercoder: yep. basically: http://stackoverflow.com/questions/4780899/intercept-and-override-http-requests-from-webview Dec 12 20:06:12 in_deep_thought: OkHttp has stuff such as OkHttpClient.setConnectTimeout, .setReadTimeout, .setWriteTimeout. Dec 12 20:06:23 Is that the kind of thing we're talking about? Dec 12 20:07:17 ummm maybe. Ill look into that and picasso Dec 12 20:07:37 in_deep_thought: Note that this isn't really an AsyncTask question. Dec 12 20:07:47 It's more of a question. Dec 12 20:07:58 The AsyncTask can't really be cancelled. Dec 12 20:08:05 Groxx: Methods such as shouldOverrideUrlLoading, onLoadResource and shouldInterceptRequest are not intercepting the url called after AJAX was successful Dec 12 20:08:15 well currently it uses an AsyncTask. I thought that was the way to go, but it sounds like its not really appropriate for this Dec 12 20:08:23 TacticalJoke: er. sure it can, just pass cancel(true) and it'll interrupt the web request. Dec 12 20:08:26 I think, in general, threads cannot be considered interruptible. Dec 12 20:08:41 FYI, not sure if anyone here uses Reddit is Fun, but the latest update is a pretty nice makeover. nav drawer and material design Dec 12 20:08:49 in general, yeah. but in general the halting problem exists too - doesn't mean you can't do useful things with it Dec 12 20:09:09 Groxx: You mean AsyncTask.cancel? Dec 12 20:09:15 I don't see how that'd stop a download. Dec 12 20:09:16 Groxx ahh, the halting problem Dec 12 20:09:34 Unless the AsyncTask subclass handles that and stops the download itself. Dec 12 20:09:43 I think the solution is, at some point, to call Socket.close. Dec 12 20:09:52 or just use the Picasso one liner :P Dec 12 20:09:54 Whether our code does that or library code does that. Dec 12 20:09:58 TacticalJoke: if they're doing a synchronous download in doInBackground, .cancel(true) will interrupt the thread's blocking on IO. unless they're capturing that and intentionally resuming, it'll stop the download. Dec 12 20:10:00 Yeah, something like Picasso. Dec 12 20:10:00 hey all, i am trying to implement a gsm notification using the Android docs from google. My message is getting through (can see it in the logs) but no notification happens when i sendNotification.. any ideas? Dec 12 20:10:15 it's kinda the point of thread.interrupt(). Dec 12 20:11:32 Are you sure that works, Groxx? I thought that was basically impossible. :D Dec 12 20:11:51 Like, my understanding is that Thread.interrupt simply sets a flag, and then some other code has to read that flag and decide to stop doing stuff (such as sleeping). Dec 12 20:12:13 If the other code is blocking on some arbitrary file download, is there anything to check that flag? Dec 12 20:12:56 I haven't tried this in Java, but I remember this being the case in C#/.NET. Dec 12 20:12:57 TacticalJoke, Groxx you'd have to override onCancel and cancel the HTTP request problably Dec 12 20:13:01 The one and only solution was to use Socket.close. Dec 12 20:13:23 sigh .. hey guys, part of a C library I want to build pulls android_frameworks_base from cyanogen mod to use headers (like media/stagefrieght). Is there a better way? Dec 12 20:16:27 so for me being a beginner, it sounds like the best place to start is with picasso, and then if that offer the ability to cancel the task after a time limit, look into AsyncTask.cancel() and see if that permits the file to close (the one that the async task is trying to edit) Dec 12 20:16:42 *and the if that doesn’t offer the ability …. Dec 12 20:17:19 in_deep_thought what is the cancel ability for? Dec 12 20:18:04 cancel the AsyncTask which is trying to edit the file, so that the file can be closed manually, and the app can move on Dec 12 20:19:09 in_deep_thought if you do go the AsyncTask route, you can override onCancel of AsyncTask to do cleanup like closing your file Dec 12 20:20:46 onCancelled(object) it seems Dec 12 20:21:11 after calling cancel() Dec 12 20:22:52 in_deep_thought yeah Dec 12 20:25:29 in_deep_thought: Could you open the file only if the download succeeded? Dec 12 20:25:35 (i.e., it didn't time out and so on.) Dec 12 20:26:27 the file is a bitmap, and the async task is putting another bitmap on top of it. It has to be closed after 3 seconds so that the next activity can begin (showing the bitmap in an imageView) Dec 12 20:26:36 so it has to be opened no matter what Dec 12 20:32:19 Okay. In the worst-case scenario, you can just tell the AsyncTask that it's cancelled, and the AsyncTask can check isCancelled to figure out what it needs to do. Dec 12 20:32:39 But I do wonder whether you could change the code to open the file only after the task has finished/cancelled. Hmm. Dec 12 20:33:53 hey guys, I'm trying to implement a sync adapter Dec 12 20:34:42 question: once i have a service for the adapter, do I need to bind it manually in, let's say, my main activity? Dec 12 20:35:01 in_deep_thought, TacticalJoke it sounds like you just need to do the network call in doInBackground, after the network call finishes (do it synchronously since you are already in a thread) end your doInBackground with either a success or failure, then in onPostExecute close your file. would that logic not work? Dec 12 20:35:20 it seems that the framework binds it directly, but can't see the service being started Dec 12 20:35:48 in_deep_thought if you parameterize your AsyncTask with a boolean, or an Integer, you will have access to that in onPostExecute Dec 12 20:35:48 i have put a bunch of Log calls inside of it and I don't see any results in logcat Dec 12 20:38:24 mattblang_: but its still dependent on how long the doInBackground task takes right? If it takes 10 seconds, onPostExecute won’t be executed for 10 seconds, and the file stays open for 10 seconds. Dec 12 20:38:33 Doesn't "MediaStore.Video.Thumbnails.DATA" return path to thumbnail image file? Dec 12 20:38:50 is there a good logcat viewer you guys can recommend? Dec 12 20:39:01 I am trying to filter through a 10MB capture Dec 12 20:39:08 I get path to video from it, the same as "MediaStore.Video.VideoColumns.DATA" Dec 12 20:39:20 in_deep_thought: Yes. This is why you need to set a download timeout of three seconds. Dec 12 20:39:27 in_deep_thought that is where your timeout came into play I thought Dec 12 20:39:33 astroduck: yes it should work Dec 12 20:40:46 shmooz: I get video's path from it :/ Dec 12 20:40:51 in_deep_thought: Basically, the idea is that threads cannot be interrupted (in general) but some blocking tasks (such as downloads) *can* be interrupted. And once they are interrupted the thread housing them can end. Dec 12 20:41:18 astroduck: try this ... MediaStore.Video.Thumbnails.getThumbnail(cr, id, MediaStore.Video.Thumbnails.MICRO_KIND, null); Dec 12 20:41:49 Threads can be interrupted, why do you keep saying they cant Dec 12 20:41:52 astroduck: where id is BaseColumns._ID Dec 12 20:42:23 astroduck: and cr is ContentResolver cr = getContentResolver() Dec 12 20:42:23 whatitis-: Because, as I understand it, thread interruption is a two-way communication. If your thread is downloading a file, trying to interrupt it won't do a thing. Dec 12 20:42:36 It works only if the file-download code cooperates. Dec 12 20:42:53 shmooz: I actually need path to the file, because I am then transferring it over bluetooth using Intent (LG QPair SDK) Dec 12 20:42:54 quit saying thread if you mean something that encapsulates the use of a thread Dec 12 20:43:15 myThread.interrupt, causes a interrupted exception Dec 12 20:43:23 meaning its interrupted Dec 12 20:43:35 shmooz: and how to I make these thumbnails load in async so my app doesn't look like its lagging. Dec 12 20:43:36 Causes it where? Dec 12 20:43:43 in run Dec 12 20:43:57 TacticalJoke: mattblang_ ok right. so I would implement my 3 second timeout in the doInBackground function right. and the onPostExecute would still execute at the right time Dec 12 20:44:02 Does my custom file-download code get an InterruptedException? I don't think so. Dec 12 20:44:04 astroduck: find an bare asynctask example Dec 12 20:44:09 of a Thread object, or runnable that you pass to thread Dec 12 20:44:24 astroduck: you'll probably have to pass it the Activity and Context Dec 12 20:44:43 tactical cause you arent using Thread, you are probably using some helper Dec 12 20:44:51 in_deep_thought: You'd tell the downloader to use a three-second timeout. Dec 12 20:45:16 in_deep_thought: Then your doInBackground will run for three seconds at most. Dec 12 20:46:03 in_deep_thought: I read that you can use OkHttpClient with Picasso. OkHttpClient supports setting timeouts. Dec 12 20:46:46 I don't know anything about Picasso, so there might be a better way than what I'm saying. Dec 12 20:47:08 ok, looks like I have some reading to do. Thanks for your help TacticalJoke and mattblang_ Dec 12 20:47:11 TacticalJoke: sorry, was afk. interrupting threads: in general it does two things. sets that flag (you're quite right there), _and_ breaks any blocking operation (like .wait() or IO) because "blocking" is just "the java thread handler doesn't run that code for a bit". the normal behavior then is for a library to throw an InterruptedException, so you can decide how to handle it. Dec 12 20:47:50 astroduck: first get it working on the UI thread since you are already doing it there Dec 12 20:48:23 astroduck: then you can see how bad it lags and then move it to asynctask or whatever Dec 12 20:49:00 in_deep_thought so how you do your network call and timeout is independent of the async task, remember that. as far as the asynctask goes, you can return object, and logically do things in your onPostExecute depending on the object. so the object coudl be an Integer or Boolean. you can also cancel it from itself, and have some logic in onCancelled Dec 12 20:49:18 Groxx: If an OkHttpClient is performing a download inside an AsyncTask, would you expect AsyncTask.cancel to stop the download? Dec 12 20:49:19 the reason things tend to say you can't _in general_ interrupt threads is because if you don't .wait or do IO, then it just sets the flag, and most code doesn't check the flag. also because it gets blended with "you can't (safely) cancel threads" because there are only a few guarantees in a multi-threaded system. java's memory model covers those guarantees in wonderful detail. Dec 12 20:49:46 TacticalJoke: if you pass true, yes, unless it's doing its own async operation. if you pass false, no. Dec 12 20:50:36 passing false just sets a flag on the task, it doesn't touch the thread at all Dec 12 20:50:51 200k installs reached Dec 12 20:51:00 Sculptor nice, what app? Dec 12 20:51:12 i'm too ashamed to say ;) Dec 12 20:51:21 it's just a vpn shortcut Dec 12 20:51:38 <_Auron_> I got a trademark complaint from Atari yesterday Dec 12 20:52:11 <_Auron_> So did about a dozen other apps, according to the email. Today none of them apps except mine are still on the store. Dec 12 20:52:19 <_Auron_> none of the* Dec 12 20:53:48 Hmm, this answer suggests that using Thread.interrupt (which is what AsyncTask.cancel ultimately calls) to block an IO operation isn't reliable: http://stackoverflow.com/questions/4425350/how-to-terminate-a-thread-blocking-on-socket-io-operation-instantly/4426050#4426050 Dec 12 20:54:47 Google Activity Recognition com.google.android.gms:play-services-location:6.5.+ Dec 12 20:54:52 who names these things :s wtf Dec 12 20:55:26 yeah Asynctask seems to be not so reliable Dec 12 20:56:49 TacticalJoke: the java docs they link to are pretty specific, not sure why they're claiming vagueness: http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html#interrupt() Dec 12 20:57:26 sometimes when I load elements from a for loop or while loop inside an asynctask, some of those elements are randomly missing! Dec 12 20:58:10 but I suppose it has more to do with concurrency Dec 12 20:58:14 also note that SocketChannel _is_ an InterruptibleChannel (though I'm not 100% certain SocketChannel is used here. seems likely.) Dec 12 20:58:46 Groxx: Hmm. I have seen so many posts on SO with people saying that it doesn't work. I'd be very careful about relying on it (at least on Android). Dec 12 20:59:03 future.cancel(true) calls interrupt, that's used pretty heavily. does that count? Dec 12 20:59:04 of course, docs are outdate Dec 12 20:59:05 http://developer.android.com/training/location/retrieve-current.html#ConnectClient Dec 12 20:59:09 come on man Dec 12 20:59:20 can't get any work done after an update >_< Dec 12 20:59:31 new LocationClient(this, this, this); wat Dec 12 20:59:36 shmooz: Does your code have an issue with stale data, race conditions, or something else? Dec 12 20:59:39 i have a viewpager with a fragmentstatepageradapter. when i swipe to fragment 2 and change orientation, i'm back at fragment 1 of the viewpager. does someone know how i can navigate back to fragment 2 after orientation change? Dec 12 21:00:01 TacticalJoke: god knows Dec 12 21:03:30 TacticalJoke: I mean, in general if you're actually _calling_ thread.interrupt() you're doing it wrong. if you're doing that and you 100% expect an interrupted exception to be thrown, you're doing it wrong, because it might not be blocking and your code might not be checking the flag, or it might have already finished. people build horrible things like that all the time, and java is extremely explicit that those expectations are irratio Dec 12 21:03:41 TacticalJoke: I have a few things that call the adapter before the asynctask finishes, but I fixed that problem mostly now Dec 12 21:03:46 gdrc, LocationClient is deprecated Dec 12 21:03:48 wat Dec 12 21:04:27 right Dec 12 21:04:35 Groxx: Right. So we have to use something such as Socket.close instead. Dec 12 21:04:53 Forget interrupting threads; simply stop the work they're doing. Dec 12 21:05:12 I guess Thread.sleep could be an exception (not sure). Dec 12 21:05:12 now I still load the adapter in the UI thread with the light data and do the heavy data in the asynctask and then reset the adapter again Dec 12 21:05:34 wow, an obfuscated public method in LocationServices called f Dec 12 21:05:37 seriously Dec 12 21:05:42 this is one of those days Dec 12 21:06:28 Afzal: public doesn't mean it's part of the API. don't use it. Dec 12 21:06:41 sinx I know, it should be hidden Dec 12 21:07:05 TacticalJoke: sure. or use AsyncTask.cancel(true) because it exists to do that for you. Dec 12 21:07:26 Groxx: But we'd still have to cancel the download ourselves. Dec 12 21:07:52 Most beginners think that AsyncTask.cancel(true) will cancel *anything*. I believe they are simply mistaken. Dec 12 21:08:57 So IMO they should be told that they need to write code that stops the work being done inside the AsyncTask. Dec 12 21:09:44 TacticalJoke: oh yeah, definitely. and in older versions, the onPostExecute could fire after .cancel(), which is a bug (and was fixed in I think 3.0). also most beginners just don't "get" threading. Dec 12 21:10:51 Yeah, threading is an advanced topic, IMO. Dec 12 21:11:01 if that work involves "only" network access though, .cancel(true) is all that's necessary. if they want to e.g. not resize the bitmap in the background, then the resizing could start after they .cancel, and that's just general threading difficulties. Dec 12 21:12:23 Groxx: I'm not sure whether that's true, though. I've read countless SO posts claiming that AsyncTask.cancel(true) will *not* stop a download/upload. Dec 12 21:12:32 On Java and Android. Dec 12 21:12:43 Well, the equivalent on Java (Thread.interrupt). Dec 12 21:13:15 fwiw I've literally never experienced that. anywhere in Java. Dec 12 21:13:37 I very strongly suspect it's because most things recommend while (true) { try { } catch (InterruptedException) } and people misuse that all over. Dec 12 21:15:44 hi. noob question, I want to perform an http request, initiated from an Activity, which I do using an AsyncTask. When the request is complete, I want to update the Activity to display results from the query, but I can only do that from the Activity's thread. What's the Right way to do this? Using Intents? Dec 12 21:16:31 TacticalJoke: also general threading misunderstandings. SO is beyond overflowing with bad threading examples. Dec 12 21:16:50 fdv: you could use an intent or a callback Dec 12 21:17:04 fdv: override onPostExecute, and do it in there Dec 12 21:17:06 or make the AsynTask an inner class of your activity Dec 12 21:17:16 fdv: onPostExecute runs on the main thread, for this kind of use Dec 12 21:17:25 ah, I see Dec 12 21:17:28 then do the Main thread updates inside onPostExecute Dec 12 21:17:39 then I understand it's purpose Dec 12 21:17:51 great, thanks a lot! Dec 12 21:18:04 asynctask is evil Dec 12 21:18:09 haha Dec 12 21:18:17 how come? Dec 12 21:18:24 * fdv <= noob Dec 12 21:18:25 if you do evil things with, mayhaps? Dec 12 21:18:25 but it's everywhere in the docs, and in at least 4.0+ or so it's fine :) reasonably efficient and easy. Dec 12 21:18:46 yeah it's recommended all over the place Dec 12 21:19:04 or, 4.0+ doesn't seem to have any bugs, I should say. it's a solid piece of code, just slightly over verbose, and the changes in behavior between OS versions is idiotic Dec 12 21:19:11 but I'm generally weary of convenience stuff Dec 12 21:19:41 yeah, but convenience stuff is good for starting, unless you want to take a year or two off to take high-level java courses :) Dec 12 21:21:15 fdv: I kind of like the callback approach, but like you I'm kind of a noob, so I don't if that is overkill Dec 12 21:22:02 an AsyncTask with a callback interface that has the same methods that AsyncTask has except for doInBackground() Dec 12 21:22:23 then I make my main Activity implement this interface Dec 12 21:22:45 that way I keep the AsyncTask a a standalone class and not an inner class Dec 12 21:23:08 Yeah, coupling isn't great. Best to avoid as much as possible. Dec 12 21:23:43 one thing to watch out for with asynctask btw: by default, on most Androids, it runs things on a _single_ background thread. so if you start a long asynctask and then a short one, the short one will have to wait for the long one to finish first. Dec 12 21:23:46 coupling came to mind, yes Dec 12 21:24:05 (this is part of the docs, but it's easy to overlook) Dec 12 21:24:18 that's vital info, yes Dec 12 21:24:28 I avoid long running stuff with AsynTasks altogether Dec 12 21:24:34 also a good policy :) Dec 12 21:25:23 Groxx: and then don't recommend it for things longer than 3 seconds or so ? Dec 12 21:25:35 that's my approach Dec 12 21:25:41 my personal recommendation is to only use asynctask for short, UI-related work. it's very reliable for that, and reasonably simple. Dec 12 21:25:52 fdv: What kinda background stuff are you doing? Dec 12 21:26:01 then you'd use a runnable thread with handler Dec 12 21:26:10 downloads, anything that needs to persist longer than the view, etc, you're probably better off using a separate thread / service / etc. Dec 12 21:26:29 though IntentService is also single-threaded, which I've seen people surprised by. Dec 12 21:26:34 rburgosnavas: one of my thoughts was to implement an interface in the Activity and pass 'this' to the AsyncTask, and finally call the relevant method on the passed 'this' reference from the AsyncTask, but I can't see how that would affect the thread it's called from Dec 12 21:26:59 fdv: That works but it's best to implement an interface. Dec 12 21:27:13 To minimize coupling. Dec 12 21:27:19 TacticalJoke: in the Activity, you mean? Dec 12 21:27:32 The AsyncTask/whatever just calls back to some 'listener'. Dec 12 21:27:39 TacticalJoke: I'm performing a REST request Dec 12 21:27:40 yeah Dec 12 21:27:42 Well, the task class can define the interface. The Activity can implement it. Dec 12 21:27:45 fdv: that will keep the activity around as long as the asynctask exists, but that works. Dec 12 21:28:11 Groxx: don't I want that? Dec 12 21:28:19 TacticalJoke: that sounds like what they're doing, to me at least Dec 12 21:28:23 SO may have MyAsyncTask then MyAsyncTask.MyAsyncTaskListener as an inner interface Dec 12 21:28:42 then make MainActivity implement MyAsyncTask.MyAsyncTaskListener Dec 12 21:28:42 right, that sounds sensible Dec 12 21:28:52 Yeah, the listener pattern is what I'm thinking of. Dec 12 21:28:58 fdv: you might. it's just something to be aware of, if e.g. the asynctask takes a long time. it's a leak, but some level of leakiness is basically normal, and it'll fix itself when the task finishes. Dec 12 21:29:15 MyAsyncTask.MyAsyncTaskListener would have onPreExecute(...), onCancelled(...), onProgressUpdate(...), etc. Dec 12 21:29:33 but not doInBackground(...) because it doesn't make sense Dec 12 21:30:45 rburgosnavas: aaah. I do something like that too, though a bit less explicit. usually just inner static asynctask classes, and then I make a `new MyAsyncTask() { onPostExecute() { do stuff }}`. Dec 12 21:31:14 yeah, I've done that before many times Dec 12 21:31:29 Groxx: makes sense, but that's to be expected as long as the asynctask is a resource the activity uses Dec 12 21:31:38 just recently I had the compulsive need to get rid of all the inner AsyncTasks in my classes Dec 12 21:31:41 I'm not using an AsyncTask (using a manual thread-pool), but my "downloader" class works at a higher level of abstraction. It has events such as "onPostListingDownloaded(PostListing)". Dec 12 21:31:53 That's another option, in general. Dec 12 21:32:33 fdv: yep. just making sure you're expecting it, lots don't :) Dec 12 21:32:40 rburgosnavas: so MyAsyncTask.onPostExecute(...) calls MyAsyncTask.MyAsyncTaskListener.onPostExecute(...) etc? Dec 12 21:32:48 yep Dec 12 21:33:28 and when it does, MainActivity catches it in its implementation of onPostExecute(...) Dec 12 21:33:36 great, then I think I have a decent understanding for now :) Dec 12 21:33:41 TacticalJoke's setup is probably the "more-right" way to do things fwiw. takes a bit more care to set up, but if you can do that, the end result is more flexible Dec 12 21:33:42 thanks a lot! Dec 12 21:33:57 I agree Dec 12 21:34:13 e.g. we're going to eventually have to drop all our asynctasks and build essentially that kind of system, because we have implicit priorities, larger numbers of threads needed, etc, and asynctask doesn't handle that at all. Dec 12 21:34:14 although my cuncurrent skillz are flaky atm Dec 12 21:35:34 I'm the concurrency cop at my job :| thankfully Java is pretty easy, in the grand scheme, as it's one of the few languages that actually has a memory model that works. Dec 12 21:35:55 :) Dec 12 21:36:21 Alright I need to build some native libraries against libOmxCore and other native libs. I need to do this external from the SDK. Someone suggested I just download some CM update to get the libs for linking. There has to be better way Dec 12 21:36:56 I was at a talk by Bjarne Stroustrup where he said that the reason they can't improve C++'s memory model is that its current implementation is required by Java and .NET (iirc) Dec 12 21:37:55 rburgosnavas: you moved your asynctask from inner to outer ? Dec 12 21:38:11 then you have to pass it much more stuff through the constructor probably Dec 12 21:38:13 I like the convenience of inner for being able to access the variables of the MainActivity Dec 12 21:38:48 Groxx: you should write some tutorials for us Dec 12 21:39:13 I think I'll try with the AsyncTask approach for now, and rewrite it if / when necessary. guess it's easier to get started that way Dec 12 21:39:16 yeahyeah, I do pass some thing to the constructor but not much Dec 12 21:40:21 depends on the situation Dec 12 21:41:04 currently I have one where i'm passing Context and and a reference to the class implementing the interface Dec 12 21:42:06 i know it's convenient to have it as an inner class but i really, really dislike clutter :) Dec 12 21:42:19 nevermind, I solved my issue by just pulling the libs from a running instance Dec 12 21:42:39 This is the pattern I'm using (but it's not an AsyncTask): http://pastebin.com/n0Nq7N0d Dec 12 21:42:48 That's not-yet-finished code, of course (hence the comments :D). Dec 12 21:43:08 The Activity calls setListener(this). Dec 12 21:44:35 of course, one could argue that having callback ridden code is also clutter, haha Dec 12 21:45:11 The thing is, a non-static nested class has an implicit reference to its outer class. Dec 12 21:45:43 Using static nested classes or top-level classes avoids this. Then everything becomes explicit (which is better if you find a memory leak). Dec 12 21:46:19 TacticalJoke: yeah, we have a few things like that :) it is nice to have a really-clear separation of code. Dec 12 21:47:52 fdv: alas I'm not familiar with C++'s memory model. I'm under the impression that it's relatively new, and inspired by Java's? Dec 12 21:48:07 Groxx: not at all Dec 12 21:49:08 shmooz: a quick google suggests it's new to C++11 Dec 12 21:49:26 I should clarify though: multi-threaded memory model is what I'm referring to Dec 12 21:49:46 single-threaded is nice, but almost worthless if the language has threading and you ever use it Dec 12 21:50:16 oh I was thinking old C++ Dec 12 21:51:01 One thing that worries me about AsyncTask is that it might encourage newbies to use threading more. Dec 12 21:51:04 But threading is so scary and complex. Dec 12 21:51:12 I mean "multithreading". Dec 12 21:51:31 I think it should be avoided as much as possible, really. Dec 12 21:51:43 eh, threading is clear enough :) but God yes. Android pushes you towards multithreading _immediately_, and there are a lot of people who have never done that. Dec 12 21:52:21 probably that's the argument for using Loaders and whatnot. but Loaders suck. Dec 12 21:52:25 hey at least they get to learn to swim faster Dec 12 21:52:33 just throw them in the water Dec 12 21:52:38 I kinda hate how even startActivity is asynchronous. Dec 12 21:52:59 Google apps have race-condition bugs (IMO) relating to showing activities (e.g., Google Keep). Dec 12 21:53:09 TacticalJoke: yeah. or at least that it's not made painfully obvious everywhere. Dec 12 21:53:10 You can get multiple activities to show when only one should. Dec 12 21:53:18 Yeah, the documentation should state this very clearly. Dec 12 21:53:40 that gets into my main complaint with android's lifecycle. it's complex, and they _hide_ that from you rather than explaining why it is and stating it plainly. Dec 12 21:53:50 Groxx: Wouldn't you say, on the general topic of multithreading, that it's not hard to produce code that's basically impossible for humans to understand? Dec 12 21:54:08 I remember coming to the conclusion years ago that multithreaded code becomes hopelessly complex really quickly. Dec 12 21:54:27 Yeah, too much is hidden. Dec 12 21:54:36 TacticalJoke: easier with threading in general, yeah. actually trying to understand _literally everything_ that is possible and buggy in a piece of multithreaded code is brain-busting. Dec 12 21:54:45 Right. Dec 12 21:55:00 I like Androids lifecycle ... not sure why it's considered hard Dec 12 21:55:07 some things have to be multithreaded Dec 12 21:55:08 but then it's not hard to make math that humans find basically impossible to understand. Ackermann's function, etc. Dec 12 21:55:14 I think I came to that conclusion after spending three months tracking down a multithreading bug. Dec 12 21:55:18 like servers Dec 12 21:55:21 Hours every single day. Dec 12 21:55:28 ouch Dec 12 21:55:36 no regression tools available? Dec 12 21:55:43 hg bisect? Dec 12 21:55:50 Yeah, I had that. I knew the changeset. Dec 12 21:55:56 mmm Dec 12 21:55:58 hard part is recreating it while watching Dec 12 21:56:00 It's just that the problem domain was so amazingly complex. Dec 12 21:56:06 and then understanding wtf just hapened Dec 12 21:56:21 heh --- easier when you've written it I suppose :) Dec 12 21:56:26 I'm trying to remember what it was. Was about 10 years ago. Dec 12 21:56:37 It might've been some kind of HTTP spider (but with a twist). Dec 12 21:56:46 disco spider? Dec 12 21:57:09 I'd have a spider disco shut down. Dec 12 21:57:18 On the basis that spiders would be there. Dec 12 21:58:00 pretty solid argument, yeah Dec 12 22:01:13 my most sadface-inducing discoveries with Android have been the asynctask bug and most of their "notify me of changes" systems (like observables, broadcasts, etc) have bugs similar to asynctask, where you can receive a callback after unregistering. the source code is FULL of places where they shove runnables onto the main thread, and never remove them. Dec 12 22:01:51 they are getting better about it in general though, it seems Dec 12 22:04:51 does the order in which you set a in the manifest matter? Dec 12 22:05:33 Hi, I'm getting a key signing error after trying to run an application on a new machine. It's the same error described here but I have no idea what to do to solve it: http://stackoverflow.com/questions/3185444/ Dec 12 22:05:45 rburgosnavas: not that I'm aware of. possibly if they have the same intent filters though, and you use the filters? Dec 12 22:06:12 I'm trying to run the application from IntelliJ on an emulator Dec 12 22:06:27 spuz: I'm guessing you had e.g. the production version installed on the device, and are now installing the dev version? Dec 12 22:06:41 Groxx, no the device is an emulator Dec 12 22:07:10 no intent-filters for the Dec 12 22:07:12 hmmm Dec 12 22:07:23 hm. well, either way: uninstall the app, it should install then. Dec 12 22:07:54 i'm banging my head here trying to implement a sync adapter Dec 12 22:08:24 spuz: your debug keystore might have changed for some reason. if it's something like that, you'll get this same problem on every "thing" that had the app installed previously. same resolution, uninstall then install. Dec 12 22:08:46 Groxx, uninstall what? It's not installed on the emulator... Dec 12 22:09:57 spuz: that error is given when an apk with "com.example.whatever" package is signed with one key, installed, and then you try to reinstall / upgrade / replace with another apk with the same package name. Dec 12 22:10:10 ok Dec 12 22:10:13 anyone use lombok? Dec 12 22:10:56 Groxx: this talk preceeded C++11 by a few years :) Dec 12 22:11:01 spuz: so you are trying to install an apk on the emulator, and there's already an app with the same package name on there, and it's signed with a different key. the only resolution is to remove the one already installed. Dec 12 22:11:13 Groxx, right Dec 12 22:11:14 I see Dec 12 22:11:18 there was an old version Dec 12 22:11:33 I must have installed it way back Dec 12 22:11:34 fdv: that would kinda makes sense, it takes time to come up with and implement it before the release :) Dec 12 22:11:49 fdv: though it does sound like there was _something_ for C++03, though I didn't see specifics. Dec 12 22:13:15 Thanks Groxx , it's working now Dec 12 22:15:01 spuz: great :) Dec 12 22:15:44 mattblang_: lombok seems like a scary kind of fun. I'd love it if Java supported it natively, but alas. Dec 12 22:16:02 and Jack and Jill will probably spell its downfall. Dec 12 22:16:03 Groxx getters and setters are so stupid Dec 12 22:16:36 mattblang_: yeah :( C# has the right idea there. Dec 12 22:17:52 it's particularly saddening because having a way to define "default" getters and setters means you could modify them later, and until then they can be compiled into direct variable references for speed. Dec 12 22:18:02 all with no api changes Dec 12 22:27:36 lombok isn't that great Dec 12 22:27:43 and jack and jill are unnecessary to building android Dec 12 22:28:22 even when they come of age, it will only become necessary if google decides to break anything Dec 12 22:28:56 are there any good online guides for releasing your first app on play store? Dec 12 22:32:40 first compared to second? there is a tutorial on google for checks and advice, what have you read so far that hasnt clarified? Dec 12 22:32:57 why would you n eed a guide Dec 12 22:33:01 just log into the play developer console Dec 12 22:33:02 and fill shit in Dec 12 22:33:04 done Dec 12 22:33:33 a basic guide I guess can help with setting up your release key Dec 12 22:36:42 does android studio not help you with that? Eclipse does, iirc Dec 12 22:37:17 though arguably the really important bit is "… and back up the production keystore somewhere safe and reliable". don't wanna lose it. Dec 12 22:37:33 help with what? Dec 12 22:37:38 Android Studio does everything, it even makes you coffee in the morning Dec 12 22:37:39 eclipse doesn't help with publishing to the play store Dec 12 22:37:42 ChrisUK: http://developer.android.com/distribute/tools/launch-checklist.html Dec 12 22:37:45 it just generates an apk Dec 12 22:37:49 or at least that's the impression i get Dec 12 22:38:12 in eclipse you need to export to release pk Dec 12 22:38:13 apk Dec 12 22:38:23 and it will ask you for keystore and whatnot Dec 12 22:38:38 and you upload this apk to play store Dec 12 22:46:41 and eclipse kinda sorta helps you generate the correct signing keys for pushing to the play store. Dec 12 22:47:30 nothing helps you publish to the play store in that sense Dec 12 22:47:45 they all just give a signed, zip-aligned APK Dec 12 22:50:55 about AS, lately I've been trying to update to that 0.9.9 build and I keep getting that it's the next-in-line update whenever I restart and check for updates again Dec 12 22:51:00 it's like it doesn't install the update Dec 12 22:51:02 strange Dec 12 22:52:11 Odaym: probably just download 1.0 from scratch? updating to 0.9.9 seems unnecessary, especially if it's not working Dec 12 22:52:20 maybe they didnt update the urls, why the 9.9 build, I dont even remeber 9.9 Dec 12 22:53:26 I've had AS for a long time Dec 12 22:53:33 been updating through the dev branch Dec 12 22:53:56 when I chose stable branch I didn't get that there were any updates, I got that my version 0.8.9 was the latest Dec 12 22:54:14 if for long time, there have been a few canary updates within passed 6months where you couldnt update, you needed to fresh install Dec 12 22:55:15 if I go to canary now, I get that the newest is 1.0.1 Dec 12 22:55:50 I wanna live on the bleeding edge, oh yea! Dec 12 22:56:16 and you may have todo fresh, even some previous you couldnt update betas, the update couldnt work, you had to frssh Dec 12 22:56:42 do it then, but remember to read updates Dec 12 22:56:58 some can update from previous, some cant Dec 12 22:57:49 but where are the workspace settings? Dec 12 22:57:56 hmm Dec 12 22:58:02 meh, when I get to it I'll figure it out Dec 12 22:59:13 if windows, in whatever user you are signed in Dec 12 22:59:24 niiice Dec 12 22:59:34 no Dec 12 22:59:54 I read that wrong, I meant to ask about the settings of AS, the theme, the toolbars that are shown and the hidden ones, etc. Dec 12 23:00:06 so I can have the new one behaving like the old one, through 1 file Dec 12 23:00:37 should be able to import from user Dec 12 23:08:09 I want to set a left margin for my ListView row, but I can't do this in code (AbsListView.LayoutParams doesn't let me set the margin). Is the best solution to wrap everything in a FrameLayout and set the margin of that? Dec 12 23:08:21 I don't like the idea of using another View, though. :/ Dec 12 23:08:49 set padding on your item Dec 12 23:09:20 Hmm. Only problem is that I want to use a background colour and have a margin to the left that isn't the same colour. Dec 12 23:09:22 yay, fixed my idea-sbt-plugin bug in intellij Dec 12 23:09:31 now I can use that stupid toolwindow like normal Dec 12 23:09:50 I guess I could have a placeholder view to the left and set the width of that. Dec 12 23:09:53 set margin on listview? Dec 12 23:10:05 or padding Dec 12 23:10:12 whatitis-: This is for displaying a tree of items in a ListView. The items have different left-margins. Dec 12 23:10:46 use multiple views, and apply padding per depth Dec 12 23:11:05 I wonder whether it's more efficient to wrap everything in a FrameLayout and set the left margin or to use a View that simply moves things to the right by some amount set in code. Dec 12 23:11:10 ahh margin of view Dec 12 23:11:23 Yeah, I could use padding with a parent FrameLayout. Dec 12 23:12:12 I wonder whether nesting Views is more expensive than putting them side by side in a linear layout. Dec 12 23:12:32 if using depth for listview views, just pass the correct view based on depth Dec 12 23:12:50 Having one view per depth? Dec 12 23:12:55 I considered that, but it's limiting. Hmm. Dec 12 23:13:06 I don't know how many levels of nesting I want to support yet. Dec 12 23:13:13 It might be as many as 10, too. Dec 12 23:13:44 if a known depth, use view getitemviewtype Dec 12 23:14:47 that method is a gem Dec 12 23:14:50 discovered it last week haha Dec 12 23:15:08 TacticalJoke, set a padding on the view... Dec 12 23:15:14 don't need an outer container... Dec 12 23:15:19 + Dec 12 23:15:54 bbl Dec 12 23:16:14 pfn: Then my background colour expands over the 'margin'. Dec 12 23:16:26 I want the margin to have a different colour. Dec 12 23:16:42 you want the margin to have the background color, ok Dec 12 23:16:48 Ya. Dec 12 23:16:52 use margin to keep parent color Dec 12 23:17:04 just wrap it in a container view then Dec 12 23:17:04 Can't use margin, whatitis-. Dec 12 23:18:00 you need to show a screen shot, cause what you want is simple, how you are explaining isnt. padding keeps child, margin keeps parent Dec 12 23:19:30 have a good weekend gents Dec 12 23:19:35 I would like to have a "side menu" like the Hello app (for SMS), is there an easy way to do it, or should I implement it myself from scratch ? Dec 12 23:19:59 blusky, ... Dec 12 23:20:15 ? Dec 12 23:20:17 DrawerActivity Dec 12 23:20:38 f Dec 12 23:21:29 thx, gonna look into that :) Dec 12 23:21:30 side menu as in nav drawer or a simple fragment? you are being vague Dec 12 23:23:03 Hey is there any way to turn a checkbox widget into a button with the same functionality? I need a button with text on it that changes colors based on checked state. I can turn the checkbox into a shape but when i set the text value it shows up next to the button. Dec 12 23:24:18 you could set the image of the button, and then in the OnClick, toggle which image is used Dec 12 23:26:52 hmm. still text is displayed next to the button for that right? Dec 12 23:27:02 Hold on ill get screen shots and code Dec 12 23:28:45 TacticalJoke: remember that layout params are partially defined by the _parent_. but you can probably cast the listview's layout params to a MarginLayout - most ViewGroups will give you that. Dec 12 23:29:40 e.g. if this is the root view in your layout, its parent is probably a framelayout provided by the OS (I think?), which supports MarginLayout, so you should be able to cast it. Dec 12 23:30:02 d'oh. reread, you're doing this for rows. Dec 12 23:30:15 same thing: cast to MarignLayout, I think Listview supports that. Dec 12 23:30:27 OK here is the xml files https://gist.github.com/px-amaac/7da69358a74e091236b2 Dec 12 23:30:41 http://prntscr.com/5g63bt Dec 12 23:30:41 http://prntscr.com/5g64qu Dec 12 23:30:53 and the screenshots Dec 12 23:31:18 Text is not on the button Dec 12 23:31:47 TacticalJoke: ugh, guess it doesn't. sorry :( Dec 12 23:32:25 FrameLayout is pretty cheap though, maybe just wrap it. Dec 12 23:33:10 hmm so I just need access to the platform_frameworks_base/include directory. Does anyone know where I can get just the headers? I see the github repo but damn, it's 900mb Dec 12 23:33:15 (for a snapshot) Dec 12 23:33:37 ac_slater: to just read, or do you need them to e.g. compile against? Dec 12 23:33:46 and are there a crap-ton or just like a dozen? Dec 12 23:34:14 Groxx: there is literally 22 Dec 12 23:34:20 (and they're small) Dec 12 23:34:39 I can just zip the current version for you if that would help. Dec 12 23:34:51 it's whatever is in master though Dec 12 23:35:05 Groxx: I appreciate it. I downloaded it, I was just wondering if someone knew of a place/repo just for headers Dec 12 23:35:16 Groxx: like how package managers usually do linux-headers Dec 12 23:35:25 it's all good though, I appreciate the help Dec 12 23:35:49 not that I know of, but that's far from proof :) I forget if git has a way to download only the current code... Dec 12 23:36:06 Groxx: yea, it's called a snapshot Dec 12 23:36:12 it's still 900mb ;) Dec 12 23:36:34 haha, wow, I guess it is Dec 12 23:37:15 lotta code in frameworks/base I guess Dec 12 23:37:54 ac_slater: what app is this for? Dec 12 23:39:57 Lol i got it. Dec 12 23:40:54 You have to set the button to a shape that has no size element. Therefore its is gone. Then set the background to the button shape you want. and add text Dec 12 23:41:26 Is there any way to make the checkbox button be gone without setting the button attribute to a shape with no size? Dec 12 23:43:11 shadynastys: like, just visually hide the box? Dec 12 23:43:16 setVisibilty (View.GONE) Dec 12 23:43:27 umm not on the whole thing.. Dec 12 23:43:42 so, leave the text, hide the check-box? Dec 12 23:43:56 i need the checkbox to show up. but i want the actual checkbox to be gone and text and background to be visibe Dec 12 23:44:10 the widget needs to be there Dec 12 23:44:25 basically, you are just grasping, you just want a spoon. gl Dec 12 23:44:27 that sounds contradictory, fwiw Dec 12 23:44:34 lol Dec 12 23:44:37 i know Dec 12 23:44:46 do you want to show the "check", but not the "box"? Dec 12 23:44:58 i might as well just implement the logic in a button huh? Dec 12 23:45:34 i want the functionality of the checkbox. but i want a button with text instead of a box Dec 12 23:45:47 the button changes color on checked state Dec 12 23:46:26 use state list Dec 12 23:46:26 oooh. maybe a Switch then, with different styles? Dec 12 23:47:00 or yeah, state list. maybe a LevelDrawable would work, then you can have any number of "states" as levels. Dec 12 23:47:18 or toggle button Dec 12 23:47:56 hmm im sorry i forgot there were more types of checkables. Ill bet checked text view with a background would work Dec 12 23:48:12 toggle button still shows the text next to the button Dec 12 23:49:19 thankyou for the helping thoughts. :) Dec 12 23:50:46 you have the option of compound with textview Dec 13 00:04:39 its weird gradle plugin 1.0.0 has been out for almost a week, but no announcement - release notes still show rc 4. Dec 13 00:05:29 g00s: that might be more normal than the quickly-updated behavior :) Dec 13 00:07:03 well its nice that here they list the bugs fixed http://tools.android.com/recent/androidstudio101released Dec 13 00:07:25 that is pretty nice... Dec 13 00:07:42 Groxx i was hoping for 1.0 the gradle team would have their shit together wrt documentation Dec 13 00:07:58 to which I say "me too" and "LOL" Dec 13 00:08:26 there is still stuff in the release notes serving as docs because they never put it in the real docs Dec 13 00:08:39 yeah. which is totally insufficient Dec 13 00:09:16 if those guys conducted their classes & projects like they do here, they would have failed at my school Dec 13 00:10:25 g00s: I'm scoring my results as a not-looking-good kinda thing :/ Dec 13 00:12:20 ok, so navigation drawer seems to be what I want, but it doesn't seems easy to make it "not fully closed" on toggle Dec 13 00:12:35 or is there a "not dirty" way ? Dec 13 00:14:32 blusky almost everything in android is dirty Dec 13 00:14:39 blusky: that does sound kinda hard… I wouldn't be surprised if it fought you, and you had to tweak the source code. Dec 13 00:15:13 it's something used in Hello (the app SMS), which I think the UI is awsome Dec 13 00:17:21 anyone here have experience with sync adapters? Dec 13 00:18:05 Is a FrameLayout intended to be simply a container of a single view? Dec 13 00:18:28 TacticalJoke: nah, though it definitely has limits. you can push things around with gravity and margins. Dec 13 00:19:06 TacticalJoke: i use it kinda like css + floats. gravity-left an image and a textview, add left margin to textview -> viola, fast layout + flexible display Dec 13 00:19:14 Interesting. Dec 13 00:19:46 it's also useful to overlay things, since other viewgroups try to avoid that Dec 13 00:21:38 for example the yellow highlight and calendar-icon in each row here (still kinda placeholdery, so forgive the ugly plz) http://cl.ly/image/3V2I1205273G Dec 13 00:21:46 ah, and textview Dec 13 00:22:44 Nice. :) Dec 13 00:23:04 Looks good to me. Dec 13 00:23:41 Basically, I need some kind of parent container so that the inner ViewGroup can define padding and have its background colour not take up the entire screen. Dec 13 00:23:54 I'm using a FrameLayout for the moment. I guess this is most sensible. Dec 13 00:24:10 probably. it's pretty efficient since its layout behavior is so simple. Dec 13 00:24:17 obviously you could make something better, but it's not bad Dec 13 00:25:10 Okay. Dec 13 00:30:24 Groxx: finally, I won't use NavigationDrawer, but just fragment, it seems doable a lot more cleanly :) Dec 13 00:30:55 anyone, re: sync adapters? i'm about to cry Dec 13 00:34:05 hehe Dec 13 00:34:20 i think the AccountManager apis almost made me cry one time Dec 13 00:34:45 rburgosnavas: what was the question again? I don't remember :| Dec 13 00:35:24 I'm trying to implement a sync adapter, I've followed the samples code from many places Dec 13 00:35:53 problem is that i don't see the services required by the adapter framework to start at all Dec 13 00:36:17 i get an account under the devices "Account" settings for my app Dec 13 00:36:52 I've added a crap load of Log statements to the services to see what's happening and nothing Dec 13 00:37:43 rburgosnavas: I don't suppose you've disabled syncing by accident? I forget if the circle-arrows on the power-widget toggles sync or screen rotation. Dec 13 00:38:20 Groxx: no I haven't. but I've tried disabling and re-enabling to avail Dec 13 00:38:32 (wipe tears) Dec 13 00:39:30 mind pastebinning? I can compare with what we're using, but I don't know much beyond that. Dec 13 00:40:00 I love block (column) selection. So powerful. Dec 13 00:40:26 does AS have that? sublime text's is really nice, I wish everything behaved like that. Dec 13 00:40:42 Eclipse has something crappy Dec 13 00:41:02 Eclipse's is good. :D Dec 13 00:41:25 Does Eclipse's lack anything the others have? Seems as good as any I've tried. Dec 13 00:41:33 Groxx: ok Dec 13 00:41:41 I'm reading that IntelliJ has it, so AS must. Dec 13 00:41:49 Though it seems to require the mouse. Hmm. Dec 13 00:42:04 TacticalJoke: cmd-left/right to go to start/end of line in all cases (I think Eclipse borks at that). been a while since I tried Eclipse's though. Dec 13 00:42:17 Or maybe it doesn't. Dec 13 00:43:02 Shift+Home and Shift+End seems to work well in Eclipse's column-selection mode. Dec 13 00:43:06 is GitHub Gist OK to share? Dec 13 00:43:17 it's more organized IMO Dec 13 00:43:26 Also Ctrl+Shift+Left/Right. Dec 13 00:43:37 rburgosnavas: Of coursae. Dec 13 00:43:39 course* Dec 13 00:43:47 Question... should I increment versionCode for internal QA releases? Dec 13 00:43:52 or is there another better way to manage this? Dec 13 00:44:10 the QA tester wants to be able to distinguish between versions Dec 13 00:44:42 :\ maybe? or you can change the version string without changing the code, add v1.0.< git sha > Dec 13 00:45:01 ok Dec 13 00:45:49 ok I'll just call it 5.0.0.1, 5.0.0.2, etc Dec 13 00:45:55 JakeWharton http://www.androidpolice.com/2014/12/12/brewie-promises-automated-beer-making-for-novices-and-pros-reaches-100k-indiegogo-funding-goal/ Dec 13 00:45:58 leaves us 3 just in case ;) Dec 13 00:51:56 ok, here's my Gist for my failed sync adapter attempt https://gist.github.com/rburgosnavas/f3cd7c7c2e3ff640bda4 Dec 13 00:52:11 If I call someView.setLayoutParams in my Adapter.getView override to set the width of a View, should that work? Dec 13 00:52:17 Because it's not working, for some reason. Dec 13 00:52:50 I don't need to use this solution, but I'm curious. Dec 13 00:56:33 Oh. User error. Dec 13 00:58:45 If I use android:paddingLeft in XML, it warns me to also use android:paddingStart. I can't do the equivalent in code (using setPadding and setPaddingRelative), because my minSdkVersion is 15. Should that worry me? Dec 13 00:59:35 I can use only setPadding in code. Dec 13 01:01:31 TacticalJoke: does paddingStart in xml only work in newer versions maybe? Dec 13 01:01:40 but that is kinda interesting. Dec 13 01:01:56 maybe "isRTL() { left = right ; right = left; }" is the proper way. Dec 13 01:01:56 Yeah. But it lets me declare paddingStart as long as I also declare paddingLeft. Dec 13 01:02:02 aah Dec 13 01:02:14 rburgosnavas: sorry, slow reading. still doing workly stuff. Dec 13 01:02:26 Groxx: np Dec 13 01:13:58 http://arstechnica.com/information-technology/2014/12/microsoft-withdraws-bad-windows-7-update-that-broke-future-windows-7-updates/ Dec 13 01:13:59 yep, that sucked Dec 13 01:17:31 I thought my box got malwared Dec 13 02:00:58 I want to show a left-border outside of my actual view. I tried using [android:left="-1dp"], but that doesn't work. Is it possible to do this? Dec 13 02:01:42 rburgosnavas: I don't know what to tell ya :\ that looks essentially the same as what we're doing. our services aren't exported though, fwiw Dec 13 02:02:22 ok, thanks for checking Dec 13 02:03:14 TacticalJoke: I dunno if drawing outside views officially supported in android or not. we do something horrible: wrap it in another frame layout, add a 1dp marginLeft to the view, and add a background (or a 1dp wide view with a background! blech) Dec 13 02:03:39 TacticalJoke: but that might just be pure horrible :) it's definitely a hack. Dec 13 02:04:20 Okay. :D Dec 13 02:04:49 What I'm doing is I'm showing indented items in a ListView, and I'm wanting to show a left-border only for those items whose indentation level is > 0. Dec 13 02:04:52 i.e., not top-level items. Dec 13 02:05:25 I might have to do something at runtime. Hmm. Dec 13 02:05:34 you can make a 1dp shape in the background, and align it to the left edge. that might do it? Dec 13 02:06:03 Oh, this is a LinearLayout. But I guess one solution is to modify the size at runtime. Dec 13 02:06:59 definitely feels sad-inducing. I might lean towards making a subclass, overriding onDraw, and just drawing a line wherever you please. Dec 13 02:07:18 but I'm just kinda throwing ideas out, haven't done much of this Dec 13 02:12:06 TacticalJoke: can you expand and collapse within the list ? Dec 13 02:12:26 That will be possible soon, yeah Dec 13 02:12:26 . Dec 13 02:12:48 TacticalJoke: you can have it like Windows Explorer with the plus signs beside expandable folders Dec 13 02:12:56 just don't use expandablelistadapter D: good god is that thing problematic Dec 13 02:13:04 Lol. Never heard of that. Dec 13 02:13:18 in theory it's a built-in way to do expandable / collapseable lists. it works superficially Dec 13 02:13:26 then you turn on fast scrolling, and it flips out Dec 13 02:13:27 My solution is to use PresentableComment which wraps Comment(body, author, date, etc.) and adds isCollapsed or whatever. Dec 13 02:13:34 Then my adapter checks for that. Dec 13 02:13:46 Hah. Dec 13 02:13:49 yeah. do it by hand, or maybe there's a version for recyclerview that actually works Dec 13 02:14:28 Yeah, my adapter uses a PresentableCommentListing which is a normal Reddit comment listing wrapped in UI-related goodness. Dec 13 02:14:34 It makes it really easy to add UI-specific stuff. Dec 13 02:15:32 Hmm, I might just give everything a left-border. Is simple and looks very neat. Dec 13 02:16:00 lasserix: Are you here? Dec 13 02:17:32 sigh ... where the hell are the stagefrieght headers :( Dec 13 02:17:42 not in platform_frameworks_base Dec 13 02:18:05 Do you guys know of a site where we can upload screenshots and delete them after? Dec 13 02:18:11 imgur.com doesn't seem to let me delte. Dec 13 02:18:43 TacticalJoke: if you have a google account, just use their photo album stuff. You can set it to public then remove it, etc Dec 13 02:18:44 delete* Dec 13 02:18:49 Ah, true. Dec 13 02:18:51 all your pics is ours Dec 13 02:19:13 ac_slater: I can grep for ya if it would help Dec 13 02:20:09 Groxx: I grepped my frameworks trees and it's not there :( I guess I could get the full AOSP source Dec 13 02:20:40 I have the full aosp, happy to save you the time / tons of GB Dec 13 02:20:45 :D Dec 13 02:21:15 if you would be so kind as to tell me where the /media/libstagefrieght dir lives, I would pay you in virtual beer Dec 13 02:21:42 /media/libstagefright Dec 13 02:21:44 is it that name exactly, and are you sure it's "frieght"? Dec 13 02:21:52 yea, my bad, fat fingers Dec 13 02:21:57 I corrected it Dec 13 02:22:56 ac_slater: might be frameworks/av/media, still browsing the results though Dec 13 02:25:09 Groxx: looks right Dec 13 02:25:10 I appreciate it Dec 13 02:25:42 there is a frameworks/av repo .. maybe that'll be enough Dec 13 02:27:50 I think I just need the headers and some copied libs from my device to link against. But goddamn, they don't make it very easy Dec 13 02:36:39 lasserix: First draft of indenting: http://i.imgur.com/y9yzMws.png Dec 13 02:36:45 Way easier to read with indents. :D Dec 13 02:38:27 I might try to avoid colours because they're too distracting (IMO). Dec 13 02:38:34 Various colours, I mean. Dec 13 02:42:06 TacticalJoke: yeah I'm avoiding colors too Dec 13 02:42:17 I might consider a touch of blue or something, in that theme. Dec 13 02:42:44 But I'm not sure about different colours for different indent levels. It's a nice idea in theory, but it can be so distracting. Dec 13 02:42:50 yeah I might add user optional tint choice for action bar and one for list Dec 13 02:43:06 so they can choose lets say blue actionbar with red list Dec 13 02:43:18 but not for a video player Dec 13 02:43:19 Yeah, I think giving some choice is nice. I might just have dark, light, and pure-black (for AMOLED). Dec 13 02:43:35 any color around the video will distort the video Dec 13 02:43:38 Or I could give themes colours but just have a theme named Boring or something. Dec 13 02:43:42 With black and gray. ll Dec 13 02:43:43 lol* Dec 13 02:43:58 Yeah. I think it's important in certain cases to let the content "colour" stuff on its own. Dec 13 02:45:12 you can make have colors have meaning , like how deep they are in a thread Dec 13 02:45:44 Yeah. Only thing is, I wanna avoid showing too many colours on screen. Reddit is information overload already. Dec 13 02:46:00 I guess one option would be to keep one basic colour and just go darker (or lighter) with deeper nesting. Dec 13 02:46:08 Then it might not be too distracting. Dec 13 02:46:14 yeah Dec 13 02:46:31 could use color to convey age of post, user, #upvotes Dec 13 02:46:44 That's a nice idea. Dec 13 02:46:53 Especially because Reddit makes it so hard to see which posts are new. Dec 13 02:46:57 but deepness is visual anyhow if already indented Dec 13 02:47:24 maybe the indentation itself can have layers of colors Dec 13 02:47:28 I think that's one of the hardest parts of Reddit: coming to a comment list you've read before and scanning for new comments. Dec 13 02:47:35 I need to think of some solution for that. Dec 13 02:47:36 or brighnesses Dec 13 02:48:14 Yeah, that could be the better thing to colour. Dec 13 02:48:55 so if the text is black background the next level indentation would be like #FFAAAAAA and the next layer #FFBBBBBB Dec 13 02:51:02 or no more like #FF151515 #, FF303030 Dec 13 02:53:16 With good Usenet clients, we could sort (discussion) threads by the date of the latest post in a thread. So if someone posted to a thread then that thread jumped to the top of the list. That could be nice to have (as an option) in a Reddit client. Dec 13 02:53:31 Though I dunno. Maybe it wouldn't work. But it's worth considering. **** ENDING LOGGING AT Sat Dec 13 02:59:58 2014