**** BEGIN LOGGING AT Wed Mar 09 02:59:58 2016 Mar 09 03:01:44 "Rusty? Rusty, can we get your input on this?" "Uh... uh... one moment..." Mar 09 03:04:23 "rusty, are your deliverables ready?" Mar 09 03:08:53 quick router bump... http://www.speedtest.net/result/5151920410.png Mar 09 03:11:21 what... Mar 09 03:12:41 Leeds: http://www.speedtest.net/result/5151926584.png Mar 09 03:12:51 g00s: hah that was good Mar 09 03:14:21 As far as MVP goes, does anything need to be done about things like ViewPagerAdapters? Mar 09 03:23:19 hm, noam chomsky gave this book thumbs up, looks like i need to read it Mar 09 03:41:46 Leeds: Neat. I'm supposed to have that speed too, but I can't seem to get above 700. Mar 09 03:42:27 thomasross: That can't be your normal speed? Mar 09 03:48:03 <_xor> Hey guys, I've never really used Kotlin before, but am thinking about looking into it later this week. Mar 09 03:48:30 <_xor> How mature is it, how's the bridge to using existing Android/Java libraries, and are there a non-trivial number of apps in the store that use Kotlin? Mar 09 03:51:54 well 1.0 is out Mar 09 03:51:55 I *love* how facebook sdk force you to do all the stuff in Activity Mar 09 03:51:59 I'd give it a go Mar 09 03:52:09 gordon_: they don't Mar 09 03:52:15 if you have FB installed it uses SSO ;) Mar 09 03:52:37 <_xor> wabz: Ah cool. Mar 09 03:52:39 try to login and dont do it outside activity Mar 09 03:52:40 _xor: it's just fine. using it from M14. check #kotlin or better kotlin channel in JB's Slack Mar 09 03:52:42 if not, webview in a fragment Mar 09 03:52:51 which is not in another activity Mar 09 03:52:55 I'm not talking about that Mar 09 03:52:56 <_xor> wabz: I'm looking at the syntax right now, and it's Swift-eseque. That's good for me, since I do my iOS dev in Swift. Mar 09 03:53:06 I'm talking about callback in onActivtyResult Mar 09 03:53:16 _xor: nope. it's switf is kotlin-like ;P Mar 09 03:53:16 <_xor> vigilancer: Cool cool. Mar 09 03:53:21 <_xor> heh Mar 09 03:53:37 loke: yeah thats my normal speed Mar 09 03:53:41 vigilancer: both are Scala-like Mar 09 03:54:00 thomasross: Wow. What kind of connection is it? Mar 09 03:54:09 *rolf* too fat :D Mar 09 03:54:13 Satellite. Classic Canada :/ Mar 09 03:54:35 thomasross: Woah. Where do you live? Mar 09 03:54:53 do you write more instrumentation tests or unit tests? Mar 09 03:54:55 30m north of toronto, canada Mar 09 03:55:14 minutes, not miles Mar 09 03:55:16 thomasross: 30 minutes from Toronto? That's bare out of the centre? Mar 09 03:55:23 yeah. Mar 09 03:55:34 thomasross: And you have to use satellite? Mar 09 03:55:35 don't get it. is it too fast or too slow Mar 09 03:55:51 yep Mar 09 03:56:08 vigilancer: 4Mb/s. really slow Mar 09 03:56:35 thomasross: hm. two-way satellite? Mar 09 03:56:40 not sure Mar 09 03:56:41 With those speeds, I'd have expected you to live in Ulukhaktok. Mar 09 03:57:28 thomasross: well, do you use landline or 3g for output traffic? Mar 09 03:57:50 not sure Mar 09 03:57:52 lol Mar 09 03:58:12 But sderiously. 30 minutes from Toronto I'd expect to see proper internet conenctivity. Mar 09 03:58:19 wel.. ok :) Mar 09 03:58:47 yeah. rogers and bell dont even reach my house, hae to use some local ISP that just resells rogers basically Mar 09 03:59:53 thomasross: How come it's so bad? Is this is a typical Canada thing? I thought the US had the worst connectivity in the world? Mar 09 04:12:56 loke: hah!! canada has pretty bad internet compared to e us Mar 09 04:17:48 is it possible to globally add an option to the selected text context menu on android? Mar 09 04:18:02 I want to make it so people can look up their selection using my app Mar 09 04:20:42 there is an API for that, AFAIK, but I can't remember what it's called :) Mar 09 04:22:22 good morning Mar 09 04:22:40 grekkos: it may well be M only Mar 09 04:22:46 could someone tell me what does it mean when i get this error in the logcat : java.lang.NullPointerException Mar 09 04:22:55 i have a sqlite database thst needs to be read from on main activity launch, somi am using a launcher. however, when the launcher finishes there is nothing in the sql table, i expect because it has to init first. how can i fix that? Mar 09 04:22:59 app cash when i try switch activity by clikcing on a link Mar 09 04:23:05 you have a nullpointer Mar 09 04:23:16 grekkos: found it... https://medium.com/google-developers/custom-text-selection-actions-with-action-process-text-191f792d2999#.34ge9soh5 Mar 09 04:23:31 JanusJanus: you are trying to reference an object which doesnot exist Mar 09 04:23:35 aka a null ptr Mar 09 04:23:37 yeah what does it mean by nullpointer ? Mar 09 04:23:57 look st the stack trace, itll tell you what line its on Mar 09 04:24:14 oh reference an object ? no, i click on a link on the MainActivity, and it should take me to another activity Register.java Mar 09 04:24:42 oh sorry, not launcher, loader... i am a bit tired lol Mar 09 04:24:43 look at the stack trace Mar 09 04:24:47 but it crash, so what you are saying maybe in the class i am switching to there could be an object i am trying to ref to and it is not getting it ? Mar 09 04:25:07 JanusJanus: maybe you forgot to create the activity or something Mar 09 04:25:18 id have to see the source + the stack trace Mar 09 04:25:27 Leeds: awesome! this is fantastic Mar 09 04:25:50 Leeds: maybe for < M I can offer an annoyingn view that hangs over all windows for a quick one touch Mar 09 04:25:55 no the activity in the manifesto is created ... for 2 others activity and there are working fine, i could switch to the 2 other activity from the MainActivity when i clikc the link Mar 09 04:25:59 like a fab sized one Mar 09 04:26:04 grekkos: have fun :) Mar 09 04:26:46 JanusJanus: nit in the manifest, in code. again, i cant help you without a stack trace + yur code. Mar 09 04:27:29 this is my code, the class i am trying to switch to : http://pastie.org/10753128 Mar 09 04:27:59 the only thing Android studio is pointing out to me is : private Firebase mFirebaseRef; Mar 09 04:28:28 paste the stacktrace Mar 09 04:28:40 ^ Mar 09 04:29:02 ok, this is the main activity : http://pastie.org/10753129 Mar 09 04:29:05 just a sec Mar 09 04:32:40 http://postimg.org/image/5rd006wbr/ Mar 09 04:33:19 that's not the stack trace Mar 09 04:34:26 http://pastie.org/10753130 Mar 09 04:34:55 sorry am new to this, i apologize, trying to get a hold of the stacktrace not sure how Mar 09 04:37:08 this emu is pretty damn fast http://i.imgur.com/IxaRye7.gifv Mar 09 04:37:18 google needs more emus like that Mar 09 04:37:50 JanusJanus: this line: at net.we4x4.we4x4.Register.onCreate(Register.java:49) Mar 09 04:38:13 (if that's not a large flightless bird, I'm going to be very disappointed) (yup) Mar 09 04:38:21 what about that line ? Mar 09 04:38:29 that's where your NPE is occuring Mar 09 04:39:01 if your paste line numbers are the same it's related to your buttonRegister view -- probably doesn't exist in the layout or has a diff name or similar Mar 09 04:39:06 aha Mar 09 04:40:56 thank you, i will try to go over it according to you notes, thank you ... Mar 09 04:41:09 please could you tell me how did you figuer that out ? Mar 09 04:41:17 is it form the log cat ? Mar 09 04:41:25 read the stack trace Mar 09 04:41:47 look for references to your code Mar 09 04:41:48 i am still gooling how to get the stack trace >_< Mar 09 04:41:56 you already pasted the stack trace Mar 09 04:42:00 sorry really a beginner Mar 09 04:42:16 i posted the logcat ? Mar 09 04:42:22 http://pastie.org/10753130 <-- that's your stack trace Mar 09 04:42:27 hmmmmm Mar 09 04:42:37 rumor "HTC signs 3 year deal with Google to make Nexus's?" hmmm Mar 09 04:43:32 ALL RIGHT, thank you for teaching me this, well in the android studio is says its the logcat " or the name of the tab " but i got it ... Mar 09 04:43:55 g00s: I'd be up for that, but it seems fairly unlikely - at that point, it would almost look like Google propping up HTC's business Mar 09 04:44:15 logcat is how you access the logs, the stack trace is the trace of teh stack where the exception occured. kinda like a call trace, i guess Mar 09 04:44:51 hey all. so question, I have a ui element elevated and the element background is the same color as the general background for he activity. without adding the background tag to the elements the elevation doesn't even show up but with the background it only partially works. the top/bottom shadows work but the sides have no shadow and blend in with the background as if they were flat against each other. does anyone know a fix for this? Mar 09 04:45:25 haha VZ removed samsung pay from S7 lol Mar 09 04:46:00 it looks fine in preview in android studio but not on the device :\ Mar 09 04:46:56 bankai_ thank you, it is working, as you pointed out, and yeah at least i know what stacktrace is lol, i always look over it when i get error just didnt know what is called professionally called logs Mar 09 04:49:38 interesting review of mossberg on s7 ; basically saying if you are buying a premium device why all this bloatware. VZ loads 8 apps Mar 09 04:49:46 no unlocked versions available Mar 09 04:50:26 the no unlocked thing is very much USish (North Americanish?) - I could have walked out of a phone shop with a totally unbranded unlocked one here yesterday Mar 09 04:50:56 I've heard it opined that their carrier sales contracts block them from selling unlocked in the US Mar 09 04:51:21 :( Mar 09 04:51:34 in other news, Marshmallow at 2.3% ! Mar 09 04:53:28 Android marching on! Mar 09 04:56:03 Leeds i wouldn't be surprised; if during the I/O when they talk a little about chromeOs + Android merging or sharing pieces, that we see some kind of new OTA mechanism ... Mar 09 04:56:08 they need this badly Mar 09 04:56:32 well, one can hope ;) Mar 09 04:57:00 the brillo devices need OTAs Mar 09 04:57:18 bet android, brillo, chromeOs will share same mechanism Mar 09 04:59:17 200 Nexus 5x with 1 month of project fi Mar 09 04:59:40 a bunch of people have said the 5x was disapointing Mar 09 05:00:02 actually, coworker bought a 6p. The screen is nice, but I thought the haptic feedback was wierd Mar 09 05:00:27 6p is nice Mar 09 05:00:39 kinda huge Mar 09 05:00:53 hope they will show next android Mar 09 05:00:54 I usually put a case on my phones too Mar 09 05:00:55 apparently they're claiming that the 'next update' - not sure if it's going to be a version bump, or just the March security update - will 'fix' the 5x performance Mar 09 05:00:58 which will fix current issues Mar 09 05:01:10 Leeds: any link? Mar 09 05:01:22 I wonder how project fi recepiton is out in the boonies Mar 09 05:01:30 gordon_: http://www.engadget.com/2016/03/08/nexus-5x-update-lag-fix/ Mar 09 05:01:39 project fi is only for US, right ? Mar 09 05:01:42 verizon supposedly works everywhere. Except a popular tourist spot 100 miles from chicago Mar 09 05:01:55 gordon_: hmm not sure about that Mar 09 05:02:26 very much only US Mar 09 05:02:43 Leeds: thanks, seems like security update Mar 09 05:02:57 ironically, it's not particularly great for US use, but it seems it would be amazing for roaming Mar 09 05:08:13 but the US carrier system is still so messy compared with pretty much everywhere else, anyway... Mar 09 05:08:43 apple is coming out with a 4" device, there should be a 4" nexus too imho Mar 09 05:10:05 Yes, lets copy Apple Mar 09 05:11:25 have a standard spot for the power / lock button on all devices. Change the source to closed and make it harder for developers to submit apps Mar 09 05:11:33 do it! Mar 09 05:11:40 wait can I write instrumentation tests with junit 4? Mar 09 05:12:29 unit testing on android is sorta complicated. I can't tell if ApplicationTestCase is JUnit4 or not Mar 09 05:13:37 Does JUnit4 use anotation while JUnit3 does not? Mar 09 05:13:53 seems likes thats the difference. I haven't used junit a whole lot Mar 09 05:15:27 I have, back in the pre-annotation days Mar 09 05:15:29 yes, you need to use the android-test-kit Mar 09 05:16:24 anyone have any advice on diverting a call to another number as it comes in? Docs, etc. Mar 09 05:17:03 RustyShackleford: yes, you can use junit4 now Mar 09 05:17:14 with AndroidJunitRunner Mar 09 05:17:52 dont know about uiautomator Mar 09 05:17:57 but you can for 90% Mar 09 05:18:14 uiautomator isn't unit testing Mar 09 05:18:20 all the examples seem like they are junit3 Mar 09 05:18:34 pfn: I'm talking about functional, integration testing Mar 09 05:18:51 funcitional with espresso, integration with uiautomator Mar 09 05:19:08 RustyShackleford: https://developer.android.com/training/testing/ui-testing/espresso-testing.html Mar 09 05:19:31 https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html Mar 09 05:20:42 okay I found an updated page. There are a bunch of examples in the android docs that use the older library Mar 09 05:32:46 Leeds: does this mean I need to rename my activity or create a small transition activity to use this PROCESS_TEXT thing? My activity's name is "Sentence Analyzer" but it's too long for the menu and it's not an action word do you know if you can customize the name of it for that menu? Mar 09 05:42:25 wyoung: yeah JUnit4 uses annotations, JUnit 3 uses naming conventions for methods Mar 09 05:43:37 grekkos, there's plenty of blog posts that describe how it works Mar 09 05:51:56 woah Mar 09 05:52:00 tablayout is cool Mar 09 05:52:14 tablayout + viewpager .. great combo! Mar 09 05:52:27 the samples must include this Mar 09 05:58:14 pfn: I renamed the activity for now I'll go deeper into detail later ... I might decide to change the flow later Mar 09 06:15:41 if I have classes with the @Inject annotation, then I guess I need to use dagger to provide the dependencies in instrumentations too Mar 09 06:15:51 of course Mar 09 06:18:40 I somehow got it wired together in the app Mar 09 06:18:46 I guess I can pull this one off too Mar 09 06:21:51 public interface TestComponent extends ApplicationComponent {} Mar 09 06:22:59 shit nevermind. Its late. Helps if you look at the ApplicationComponent's definition Mar 09 06:25:06 I added a maven dependency but it's not showing up in my app anywhere Mar 09 06:27:51 right now I have one ApplicationComponent and several injects() that take my fragments/activities as parameters Mar 09 06:28:19 anything wrong with this? I don't think there are enough dependencies that I need to break it up further Mar 09 06:38:24 is there a way to figure out why my dependency isn't being pulled from maven? Mar 09 06:38:28 like a log somewhere Mar 09 06:43:47 who's using facebook sdk hee ? Mar 09 06:43:48 *here Mar 09 06:43:55 then it's because you didn't set the dependency right Mar 09 06:44:15 I used the gui :| Mar 09 06:44:20 it looks right to me Mar 09 06:44:22 is it possible to login with read nad publich permission at the same time ? Mar 09 06:45:29 pfn: https://gist.github.com/hk0i/84e2e0cf03e73a561964 it's not getting kuromoji Mar 09 06:46:14 i added gson as a test, and gson comes in fine Mar 09 06:46:16 that's because that's not a valid artifact Mar 09 06:46:19 grekkos: log ? Mar 09 06:46:25 https://repo1.maven.org/maven2/com/atilika/kuromoji/kuromoji/0.9.0/kuromoji-0.9.0.pom Mar 09 06:46:27 pfn: what makes an artifact `valid` Mar 09 06:46:29 it has no packages Mar 09 06:46:40 oh Mar 09 06:47:02 am I supposed to add all those modules separately, then? Mar 09 06:47:19 yes Mar 09 06:47:22 hey yall, i cant figure out why the button is not responding, nothing on the stacktrace or any reaction from the app ? http://pastie.org/10753208 Mar 09 06:47:28 oh Mar 09 06:47:30 okay Mar 09 06:47:37 why doesn't it do that automatically Mar 09 06:47:40 docs for kuromoji should tell you to Mar 09 06:47:45 because they suck? Mar 09 06:47:52 why should it, they don't set it up to do so Mar 09 06:47:55 docs for kuromoji are specific to maven Mar 09 06:47:55 i have the button set onClick : onClick Mar 09 06:48:07 grekkos, maven docs are the same as gradle docs for all intents and purposes Mar 09 06:48:36 JanusJanus: what error do you get Mar 09 06:49:05 no erro ? nothing, no response from the app, and nothing coming up on the logcat ( stack trace ) ? Mar 09 06:49:22 JanusJanus, never use android:onclick Mar 09 06:49:38 what else then ? Mar 09 06:49:45 add on click listener in code Mar 09 06:49:47 pfn: https://gist.github.com/hk0i/31cd128c62353af71e80 i was following this from the original source (http://www.atilika.org/) Mar 09 06:50:22 i did as you could see in the code .... http://pastie.org/10753208 --- > Unless my syntax is wrong ? Mar 09 06:50:32 i was trying to add the source in but maybe I didn't do it right? idk didn't work for me Mar 09 06:50:43 grekkos: https://github.com/atilika/kuromoji Mar 09 06:51:19 JanusJanus: show layout Mar 09 06:51:45 btw Mar 09 06:51:46 oh thanks gordon_ that's much better than what I was reading Mar 09 06:51:47 http://pastie.org/10753209 Mar 09 06:52:16 JanusJanus: http://pastie.org/10753209#74 remove this Mar 09 06:52:22 OH i see each one uses a separate dictionary Mar 09 06:52:26 cool thanks guys Mar 09 06:52:49 JanusJanus: also, in you onClick implementation you dont set view's id Mar 09 06:53:14 removed ... huh ? ill check Mar 09 06:53:21 man, I need a screenprotector, my 6p is getting all scratched up Mar 09 06:53:37 :| Mar 09 06:54:43 gordon_ what do you mean i dont set view's ? how do i do that ? Mar 09 06:55:08 sorry, you dont *check* view's id Mar 09 06:55:25 well, you have only one click so it doesnt matter in your case Mar 09 06:56:01 personally i prefer anonymous listener, not implementing interface, but whatever you like Mar 09 06:57:10 no response ? Mar 09 06:57:21 not switching to another activity Mar 09 06:57:44 maybe firebase doenst work ;) Mar 09 06:57:48 did you debug ? Mar 09 06:58:02 will check Mar 09 07:05:58 pfn: do you breakdance on sandpaper? my phone from 2011 doesn't have a single scratch anywhere Mar 09 07:07:14 I don't do anything particularly special to baby it Mar 09 07:07:16 just normal use Mar 09 07:07:31 which includes tossing it on the desk, etc Mar 09 07:08:07 so much for gorilla glass 3 Mar 09 07:14:55 normal use is tossing it on a desk? I worry tossing my 5x onto my bed :p Mar 09 07:16:15 can I include a tarball in my app or do I have to extract it somewhere? one of my dependencies has a dependecy on the files in this tarball Mar 09 07:16:24 it's a dictionary that I need to get loaded Mar 09 07:20:10 how do you send a message in the public window here with a nickname of a user without sending a private message ? Mar 09 07:20:25 -_- Mar 09 07:20:50 you mean like this JanusJanus ? Mar 09 07:20:53 that probably would give yall an idea who you dealing with here when i ask a question LOL Mar 09 07:20:55 yeah Mar 09 07:20:57 you type his name. Mar 09 07:21:02 yeah Mar 09 07:21:05 and suffix it wit colon Mar 09 07:21:11 most irc clients have tab completion Mar 09 07:21:18 just the nick name ... Mar 09 07:21:18 grekkos: this is me talking to grekkos Mar 09 07:21:22 but it's purely by convention that you get notified Mar 09 07:21:33 pux like this Mar 09 07:21:36 yep Mar 09 07:22:04 so you see the highlight on your name but i see it a regular text Mar 09 07:22:04 add a colon and you're fine. makes it stand out more who your direct Mar 09 07:22:08 all right, thanx Mar 09 07:22:57 * pfn ponders Mar 09 07:23:05 oh so you guys add a color thats all ... Mar 09 07:23:13 >_< Mar 09 07:24:19 Anyone of you know if there is any way to have both verson 2.0 and 3.0 of Samsung Kies installed at the same time ? Mar 09 07:25:26 does anyone know if I can just include a tarball in my app? Mar 09 07:30:16 How can I convert mp3 file to wav in android? Mar 09 07:31:12 Is there any simple way to generate java classes with simple-xml annotations from an xsd so that i can use retrofit with simple xml to consume a web service? Mar 09 07:33:38 xmlbeans might be able to do something like that Mar 09 07:33:55 cezium, jdk ships with a tool to generate java from wsdl Mar 09 07:34:20 wsgen or wsimport Mar 09 07:34:34 oh, you want to consume a soap service, yeah, no Mar 09 07:37:12 solved it Swedish Samsung support had a good answer on my question :) Mar 09 08:05:14 Samsung Support gave u a good answer? xD Mar 09 08:05:57 hi. i'm on osx yosemite using android studio. When i try to start the emulator, I got a black screen and i can't to anything, what's the problem? Mar 09 08:07:20 that means the agent will most certain loose his job bittin ^^ I'm off to work now, supporting android phones for a big manufactorer ;D Mar 09 08:09:22 mornin Mar 09 08:12:37 LucaS05: try different android version Mar 09 08:12:46 also look for genymotion, normal emulator is very meh Mar 09 08:14:44 not true Mar 09 08:14:49 emulator v2 is pretty good Mar 09 08:20:46 Ashiren: I will try genymotion Mar 09 08:35:37 Hey check this out!! http://www.droid-developers.org/wiki/SBF:Defy -- see how it says "For the rest unmirrored files ask in the IRC channel." ?? Well I'm asking... Is this the right channel? I'd love some help, my mb525s are both useless right now.... Mar 09 08:42:19 freakwent: read the topic.. you want #android-root Mar 09 08:42:42 sweet thanks Mar 09 08:51:12 hmmm... if I only set a boolean on one thread but can read it on another, does it need to be marked volatile ? Mar 09 08:58:03 oh bah, answer seems yes Mar 09 09:12:49 Hi everybody, I have a question: Does CalendarView require some additional initialization to show the days grid? Right now it shows only Year + Day in a week list (Mon, Tue...) without concrete dates. Mar 09 09:13:42 is it possible to draw border around view childred inside parent ViewGroup's onDraw? Mar 09 09:14:46 vigilancer: try to put your view inside another then make padding within the parent + set the background for it Mar 09 09:15:36 android-dev788: i need to enable/disable this border Mar 09 09:16:07 changing bg and padding everytime seems like a dirty hack Mar 09 09:17:50 vigilancer: Yep. Then you have to do it by onDraw(). I have not been trying to do it this way but I think there is now way to make it without adding programmaticly parent with padding Mar 09 09:19:11 guys, does anyone have the samsung galaxy tab E 9.6"? Mar 09 09:19:17 I can draw border inside children, but this way I will get cachedBitmap with borders. I'm looking a way to avoid this Mar 09 09:19:57 capella: or AtomicBoolean Mar 09 09:22:45 DeepMind Alphago beat Lee Sedol Mar 09 09:25:37 vigilancer: oic ! (Reading deeper) ... think I'll wait and see how my reviewer comments ;) Mar 09 09:27:48 volatile may be enough ... one thread is a setter only, the other a getter Mar 09 09:35:26 hence 'or' :) Mar 09 09:40:26 Guys, do you know how to run CalendarView? I am aware that this is a trival question but I faced a problem with not showing the days grid. Mar 09 09:40:56 It just shows << MARCH 2016 >> Mar 09 09:41:06 Mo Tue Wed Thu ... Mar 09 09:41:15 Without days like: Mar 09 09:41:19 1 2 3 4 5 6 7 8 Mar 09 09:41:26 9 10 11 12 13 ... Mar 09 10:03:38 hello? Mar 09 10:03:53 ohai Mar 09 10:05:48 have we spoken b4? Mar 09 10:06:26 i dont know Mar 09 10:06:28 o.O Mar 09 10:09:50 Ashiren, what phone u got? Mar 09 10:12:38 Any1 knows if i can exclude a specific folder from any lint validation? Mar 09 10:16:00 Ashiren: and HyperHorse: HAI Mar 09 10:16:39 yeah yeah hai Mar 09 10:17:01 what a happening room Mar 09 10:22:39 indeed Mar 09 10:23:50 * Leeds recognises HyperHorse from #android Mar 09 10:23:58 o/ Mar 09 10:24:30 o\ Mar 09 10:24:37 and not in a particularly good way... Mar 09 10:24:46 Wondering if anyone can point me in the right direction:- When starting a new activity from a recyclerview item I get lag of around 4 seconds before the activity starts, I've noticed a few other people online are having these issues but can't seem to find a solution? Mar 09 10:25:16 how heavy is the activity Mar 09 10:25:21 Pretty light Mar 09 10:25:30 Just a layout with an imageview and a few textviews Mar 09 10:25:53 it shouldnt be any different if its recyclerview item or some button Mar 09 10:25:59 That's what I thought Mar 09 10:31:05 NoirAvlaa: try reducing the amount of work done in onCreate and onStart Mar 09 10:31:45 Sec, just testing if it's related to the recyclerview (should've tested this before) Mar 09 10:32:29 Ok, so time to async all the things I guess Mar 09 10:33:04 Leeds, lighten up Mar 09 10:37:52 Though I've literally disabled everything in onCreate and there's still lag between when button is clicked and new activity starts Mar 09 10:38:54 how do you start the activity then Mar 09 10:40:09 Intent intent = new Intent(MainActivity.this, InfoActivity.class); Mar 09 10:40:17 startActivity(intent); Mar 09 10:41:48 NoirAvlaa: emulator or devices by the way? Mar 09 10:41:52 *device Mar 09 10:41:56 Emulator Mar 09 10:42:04 genymotion or stock? Mar 09 10:42:10 Stock Mar 09 10:42:15 Canary Channel Mar 09 10:42:17 try on real device Mar 09 10:42:31 God if it's literally that I'm going to so upset hahaha Mar 09 10:42:36 2 secs Mar 09 10:43:02 emulator is fishy Mar 09 10:44:05 Sigh, yeah emulator being fishy Mar 09 10:44:15 Strange as other activities load fine Mar 09 10:44:16 Oh well Mar 09 10:44:21 Thanks guys Mar 09 10:47:39 and don't forget to tip waitresses Mar 09 11:01:29 * HyperHorse licks vigilancer Mar 09 11:05:22 hm. "don't stop" I guess Mar 09 11:05:36 like that ATB track Mar 09 11:06:23 I'm thinking about vacuum cleaner Mar 09 11:06:43 why? Mar 09 11:08:03 in context of licking and continuous movement Mar 09 11:08:30 wrong channel tho Mar 09 11:08:42 I thought I was on #music for a second there Mar 09 11:08:48 with all the licking Mar 09 11:10:54 <_kw> I'm trying to get GCM up and running according to the new style in my old android app.. Grabbed the source provided by google for RegistrationIntentService, but it can't find the com.google.android.gms packages.. Any ideas what could be wrong? Mar 09 11:11:19 <_kw> example I'm using: https://github.com/googlesamples/google-services/blob/master/android/gcm/app/src/main/AndroidManifest.xml Mar 09 11:18:12 Zharf: oO what kind music is that :D Mar 09 11:18:44 vigilancer, #music is weird, I don't talk there anymore Mar 09 11:19:02 guys, what do you think is the most time-effective architecture I should follow if the app im gonna build is heavy on the UI updates (ie. user interactions, listening changes from the API calls etc)? Mar 09 11:19:22 Zharf, this i must investigate. Mar 09 11:19:29 Right now I'm using the normal way, but Im looking forward to learn MVP and Rx as well. Mar 09 11:19:40 I bet Mar 09 11:19:45 HyperHorse, it's also not very active most of the time, sometimes it just goes weird Mar 09 11:19:50 br0mahn: what's normal way Mar 09 11:20:08 vigilancer: mvc Mar 09 11:20:50 where you have sets of different controllers coupled with views and adapters Mar 09 11:21:21 br0mahn: well, MVP looks promising, can't say much about it for now. mvvm is not so usable imo since there is no acceptable binding Mar 09 11:22:39 im just having a hard time figuring out how to update the UI when a new data comes in from the net. Either that, or just simply user interaction. Mar 09 11:22:41 how did all of you guys learn how to code? Mar 09 11:22:57 not sure if mvp is time effective, but code should become somewhat cleaner Mar 09 11:23:30 HyperHorse, 20 years of trial & error Mar 09 11:24:06 that sounds painful Mar 09 11:24:12 it was fun Mar 09 11:24:21 first language? Mar 09 11:24:28 qbasic... Mar 09 11:25:00 oh the horror Mar 09 11:25:03 HyperHorse is HR from Facebook :) Mar 09 11:25:11 I was like 10, I just had my first english classes, I barely knew what half the words meant Mar 09 11:25:14 hmmm? Mar 09 11:25:22 nvm Mar 09 11:25:28 HR? human resources? Mar 09 11:25:47 sharedpreferences saves better when you rememeber to call commit() in the end Mar 09 11:26:04 gordon_, apply(), you mean... :p Mar 09 11:26:21 br0mahn: spend some time on experiments with rx, it'll give you ideas Mar 09 11:26:41 nah, I save facebook token, if calling commit instead of apply would be my biggest problem.... Mar 09 11:27:48 vigilancer: thanks man. yea i was thinking of getting through some examples and work on it (this is the 4th time im saying this) Mar 09 11:28:31 Urgh, facebook APIs are the bane of my life Mar 09 11:29:27 br0mahn: just take a look on all your callbacks and say "never more!" :) Mar 09 11:30:07 fucking callbacks hell lol Mar 09 11:30:17 gordon_, huh? Mar 09 11:30:55 Zharf: apply() async, commit() sync Mar 09 11:30:58 sorry, after moving facebook sdk to newer version I must say: it sucks big time Mar 09 11:31:01 vigilancer, yes Mar 09 11:31:17 I've never seen sdk which sucks that much Mar 09 11:31:27 gordon_, it's like fecesbook in general Mar 09 11:31:30 full of feces :) Mar 09 11:32:19 was not question tho. nvm ) Mar 09 11:32:45 of course you cannot login with post and read permissions on the same time Mar 09 11:32:48 becuase.. no Mar 09 11:33:11 and why do i need this sdk, if it cannot even manage it's own token Mar 09 11:33:43 gordon_: can you use prev version? Mar 09 11:34:10 I can, but facebook will eventually drop support for it Mar 09 11:34:40 that's why I wont use any facebook libs / technologies Mar 09 11:34:42 they all suck Mar 09 11:35:07 hm. maybe there is sutable wrapper around Mar 09 11:35:28 *suitable Mar 09 11:35:54 Might be better using their web api Mar 09 11:36:17 Did that for Spotify when their sdk was still in beta, was much better than that way :p Mar 09 12:14:14 what have i missed? Mar 09 12:27:14 <_kw> is there any fundamental problem with using ant nowadays? our current system uses it and would really prefer not to have to migrate to e.g. grade if not absolutely necessary Mar 09 12:29:06 _kw, other than making it harder than it should be i dont see a fundamental issue Mar 09 12:29:47 _kw: It's recommended to use Gradle. Mar 09 12:32:08 any idea why languageLevel="JDK_1_8" <-this gets changed automatically from time to time by AS? Mar 09 12:32:37 I have set it to JDK_1_7 , but it sometimes changes to 1_8 for no reason (especially because 1.8 isnt supported) Mar 09 12:37:15 why isn't there a getChildren() for Layouts? Mar 09 12:38:38 there's getChildAt Mar 09 12:39:05 lazy developer ? probably theres no specific reason, yea you can just use a loop with count and childat Mar 09 12:40:15 ktwo, you got it Mar 09 12:40:38 JavaFX has it too :P Mar 09 13:17:53 i have a sqlite database that needs to be read from on main activity launch, so I am using a loader. however, when the loader finishes the returned cursor is empty, even though the sql db has data in it, i expect because it has to init first. how can i fix that? Mar 09 13:28:20 hithere Mar 09 13:28:44 I have this problem during compile - it is SharedPreferences related Mar 09 13:29:46 I have created new project to test shared preferences Mar 09 13:29:57 in my former appliacation I have preferences with number picker Mar 09 13:29:59 xml http://pastebin.com/gNwUyQf2 Mar 09 13:30:13 this xml directly coppied to new project does not pass compile Mar 09 13:30:25 it says "Error:(11) No resource identifier found for attribute 'charInputMinimum' in package 'com.example.sharedpreferences'" Mar 09 13:30:55 i have made some search and changed xml header this way http://pastebin.com/wbmY3Gdi Mar 09 13:31:17 NumberPickerPreference class http://pastebin.com/66dGp4E4 Mar 09 13:31:47 thomasross, debug first Mar 09 13:32:03 thomasross, show code Mar 09 13:32:47 problem 2 - NumberPickerPreference sometimes says - cannot resolve symbol R on row "import com.example.sharedpreferences.R;" Mar 09 13:33:45 for this problem helps this http://stackoverflow.com/questions/18154499/android-studio-gradle-error-cannot-find-symbol-variable Mar 09 13:35:06 but after - doing clean / complie it says "cannot resolve symbol NumberPickerPreference_charInputMinimum" Mar 09 13:35:06 :/ I so miss the possibility to open say 2 projects - one main project and one library project - in Android Studio in order to have one depend on the other Mar 09 13:35:58 What is causing that NumberPickerPreference.class linked from PreferenceScreen does not work? Mar 09 13:36:17 did you also copy the NumberPickerPreference style if there is one, bolovanos? Mar 09 13:37:37 divStar, I was looking for it and there is no such thing in former project... Mar 09 13:38:50 second question - what is causing that in new project namespace must be changed from xmlns:app="http://schemas.android.com/apk/res-auto" to xmlns:app="http://schemas.android.com/apk/lib/com.example.sharedpreferences" Mar 09 13:40:05 in my project every preference still has 'xmlns:app="http://schemas.android.com/apk/res-auto"' in it.. Mar 09 13:41:27 divStar, that was my case - until now Mar 09 13:41:31 for this I have found http://stackoverflow.com/questions/5819369/error-no-resource-identifier-found-for-attribute-adsize-in-package-com-googl Mar 09 13:41:51 it seems to me that many other in that thread are confused and do not understand why it happens Mar 09 13:44:33 creating new preference xml without namespace - and correcting it with alt + enter - AS fill PreferenceScreen with res-auto... Mar 09 13:47:13 SuperTyp: alright, one sec Mar 09 13:49:08 SuperTyp: main activity: http://hastebin.com/wifomodeju.java databaseloader: http://hastebin.com/himiroqubi.java teamsopenhelper: http://hastebin.com/kofosamaqa.java Mar 09 13:50:11 It puts Count: 0 to the log even though there are rows in the Db Mar 09 13:55:23 anyone noticed issue(s) with AS monitor? like it continues to shows alloc, cpu spike etc, despite nothing appears in traceview of old DDMS (and despite the application has called finish)? http://imgur.com/c6nZ9Dp Mar 09 13:55:37 which one should I believe oO Mar 09 13:55:59 hm thomasross seems like it is not waiting for the loading to finish Mar 09 13:56:27 SuperTyp: what do you mean? Mar 09 13:56:43 like the loader does not return the cursor it is supposed to? Mar 09 14:00:26 SuperTyp: Maybe I should add a log call from loadInBackground> Mar 09 14:00:28 ? Mar 09 14:00:32 hi! Mar 09 14:00:35 yes try that Mar 09 14:00:37 hi HunterD_ Mar 09 14:02:09 where can I read about the new gradle plugin from Android Studio 2.0? *is Android Studio 2.0 using the new plugin (the one with NDK support) ? Mar 09 14:04:07 thomasross, where do you insert data into the DB? Mar 09 14:05:33 SuperTyp: I inserted data before. Hold on, I will add a new loader to insert test data because I think somehow the DB got wiped. Do I have to commit the database? Mar 09 14:05:53 dunoo Mar 09 14:06:31 isn't it always creating a new DB everytime you launch this? Mar 09 14:08:14 SuperTyp: I don't think so... isn't the point for persistent data storage? :P Mar 09 14:08:42 it creates the db when you instantiate the databasehelper for the first time Mar 09 14:08:49 and then never again unless someone deleted it Mar 09 14:08:53 ok Mar 09 14:09:00 yeah that's what I thought :) Mar 09 14:09:06 I never used it :) Mar 09 14:09:30 if you want to change the database after that, you need to change the database version and do it in the database update method Mar 09 14:12:55 I'm trying to figure out how to inject my dependencies in unit tests Mar 09 14:13:14 danijoo: do I have to commit the database or something before restarting the application to have persistent storage? Mar 09 14:13:18 if I don't need to mock anything out, can I just use my existing dagger setup? Where do I call inject? Mar 09 14:13:31 thomasross, no. Mar 09 14:13:43 database changes get written immediatly Mar 09 14:13:49 okay awesome Mar 09 14:14:08 danijoo: sould database inserts, etc get put inside a loader? Mar 09 14:14:28 loaders are for loading, not inserting ;) Mar 09 14:14:40 but yes - they should be async and not on the main thread if thats what you mean Mar 09 14:14:55 danijoo: alright, how do I make them async without a loader? Mar 09 14:15:25 thread, asynctask, intentservice, RxAndroid .. Mar 09 14:15:26 you already did with using AyncTaskLoader Mar 09 14:15:34 choose your favorite :p Mar 09 14:18:07 alright, I suppose I will use an asynctask because I used a *loader last time :P Mar 09 14:18:13 is there standard way to make group of mutually exclusive Checkable views? Mar 09 14:20:22 ah you talk about inserting Mar 09 14:21:52 vigilancer I thought that's what a radio button is for? Mar 09 14:22:36 also @ thomasross - I'd use AsyncTask if it's possible Mar 09 14:22:57 ah see.. gotta read everything before saying anything *sigh* brb Mar 09 14:24:14 haha Mar 09 14:27:36 divStar, danijoo: how do I actually implement my asynctask? Mar 09 14:27:52 is it AsyncTask? Mar 09 14:27:54 thomasross, start by reading its documentation :p Mar 09 14:28:12 true. Mar 09 14:28:21 :o Mar 09 14:29:10 So if I just want to insert some data that isn't passed to the task nor any data returned I can just do `extends AsyncTask` correct? Mar 09 14:29:32 yeah I guess so Mar 09 14:30:06 no because the first Void would be your input.. The task wouldnt know what to insert if you dont pass anything to it.. Mar 09 14:30:28 danijoo: yeah, but for now I just want to insert hard coded data, so I don't need to pass input _yet_ Mar 09 14:31:13 right? Mar 09 14:31:14 oh he said he had no input and no output, which is why I thought Void, Void, Void was right Mar 09 14:31:51 -* where can I read about the new gradle plugin from Android Studio 2.0? *is Android Studio 2.0 using the new plugin (the one with NDK support) ? Mar 09 14:32:16 its using the new gradle plugin Mar 09 14:32:24 no idea if theres something with NDK in it Mar 09 14:32:46 divStar, danijoo: maybe I do need to pass the context? Mar 09 14:32:55 the changelog of the plugin should tell you HunterD_ Mar 09 14:33:05 thomasross, if you need a context.. Mar 09 14:33:25 danijoo: don't i need to pass the context to construct my SQLOpenHelper or am I doing this wrong? Mar 09 14:33:35 yes Mar 09 14:33:41 alright Mar 09 14:40:45 danijoo: did I do this right? http://hastebin.com/sikavibeyi.java Mar 09 14:40:57 does it work? Mar 09 14:41:19 I don't know. I have to figure out how to launch/call it first :P Mar 09 14:41:58 oh i just have to make it and then call execute Mar 09 14:42:47 people putting the opening braces in new lines always look suspicious to me :p Mar 09 14:43:16 danijoo: like, braces all on their own lines? Mar 09 14:43:25 don't you know, that's the better way^TM :P Mar 09 14:44:27 so wasteful Mar 09 14:44:36 all that space you could save! Mar 09 14:45:02 haha Mar 09 14:45:13 minified java amirite Mar 09 14:46:53 danijoo: the answer is no it didn't work! because i forgot a ) in my SQL. Mar 09 14:48:25 danijoo: the method of getting the context is _extremely_ sketchy, when I pass data how will I get a context? Mar 09 14:48:46 what do you mean? Mar 09 14:49:27 because it will no longer be a AsyncTask, if I want to pass strings itll be a AsyncTask... I guess I could make it a AsyncTask that'd let me pass a context & strings but that seems like the wrong way to do it. What's the write way to get the context? Mar 09 14:49:50 you can do it the same way you do it in other classes Mar 09 14:49:57 passing context to constructor and store it in a field Mar 09 14:50:13 danijoo: ah, true. Mar 09 14:50:29 but be careful with context in AsyncsTasks ;) Mar 09 14:50:38 it leaks if done wrong Mar 09 14:50:39 what do you mean? Mar 09 14:50:59 Memory leaks Mar 09 14:51:39 I have an issue with a Cursor where a cursor.moveToPosition() sometimes takes several seconds. Mar 09 14:52:22 when it takes 0 ms otherwise. does anyone know if there's a way to prevent that? Mar 09 14:52:47 or at least detect if the next move will take that long? Mar 09 14:56:43 Syzygy, a single call to it or multiple? Mar 09 14:57:02 Android Studio: activity_main.xml in Design View changing theme doesn't do anything when launching the app on a device, is it only me? Mar 09 14:57:25 changing the theme there doesnt change app theme Mar 09 14:57:28 danijoo: i'm calling it 16 times in a while loop (binary search), one of those 16 times takes long. Mar 09 14:57:33 its only the previewer Mar 09 14:57:46 danijoo, thats bad Mar 09 14:57:49 thx Mar 09 14:57:50 synthroid, every call to moveToPosiution queries getCount() internally Mar 09 14:58:02 which is a database operation so it can be slow Mar 09 14:58:15 + what else you are doing Mar 09 14:58:33 if its only reads it shouldnt take several seconds though Mar 09 15:01:51 I'm pasting my code plus logoutput, give me a second Mar 09 15:01:59 https://gist.github.com/Syzygy2048/0fcc5c7cbcd17fa7ad5e Mar 09 15:02:17 pedo for pedometer btw... not that other thing. Mar 09 15:02:21 gd it AS... mixing logcat, pid & process when switching device in android monitor -__-' Mar 09 15:03:38 16 is the worst case for a binary search on that size, but that's expected. Mar 09 15:03:50 Syzygy, mh no idea. maybe you have to live with that Mar 09 15:07:19 ...this is painful, IntelliJ is laggy as hell because I am copying a 500GiB disk image to a disk and running an android emulator at the same time :( Mar 09 15:07:52 ssds :) Mar 09 15:08:18 what? Mar 09 15:08:49 i have an ssd, which is what IntelliJ is running on, the disk image is being copied onto a hdd though, and the android emulator is also running off of an internal hdd Mar 09 15:08:57 I have my AS stuff on an SSD and other stuff on a normal HDD Mar 09 15:09:12 hm Mar 09 15:09:23 I guess it might be trying to refresh the database somehow... Mar 09 15:09:44 Syzygy, how big is that DB? Mar 09 15:09:53 its just that intellij eats RAM and so does copying the disk image Mar 09 15:10:00 like, that table? Mar 09 15:10:11 synthroid, yeah. Mar 09 15:10:29 danijoo: cursor.size() return slightly under 70k entries. Mar 09 15:10:44 Syzygy, oh.. Mar 09 15:11:17 well.. if you jump arround on 70k entries like that, the cursor has to load from disc a lot Mar 09 15:11:23 because it wont fit into memory Mar 09 15:11:44 it fits, even on something old like galaxy s 2 Mar 09 15:11:59 the issues are only recent Mar 09 15:12:28 aah, and it's only accessing 3 values from the table Mar 09 15:13:29 I doubt a cursor will keep 70k entries. Mar 09 15:13:29 it's working fine for the other cursor which should have a similar amount of data, with 2 values per row (let me check) Mar 09 15:13:29 Hello, Android API 17 here, I am using a webview in my application and loading a site in the webview is making the whole app unresponsive until the site is fully loaded. Any way to fix this? It's really annoying that the user can not scroll inside the app until the whole page is loaded. Mar 09 15:14:19 ah ok, the other cursor has 14k Mar 09 15:14:30 an that one is working like a charm Mar 09 15:15:20 you should find a way to limit the size of your cursor Mar 09 15:15:28 narrow it down to a smaller dataset or sth like that Mar 09 15:17:10 hmm, its basically to display live data on a graph, can't really think of a way to split this Mar 09 15:17:21 considering pedometer data can be pretty weird Mar 09 15:18:07 like, if i split it in two cursors, I might still have to load them both. Mar 09 15:19:32 Hello. Mar 09 15:19:58 I could try to go at it via threading since the data doesn't exactly have to load in time. Mar 09 15:21:30 I have a problem regarding Activity timeout. I'm starting MyActivity in two ways, and at least two instances of MyActivity may be running at the same time. MyActivity can be started from MyApplication, but MyActivity may also be started by an Intent from one or more other apps. Mar 09 15:22:59 Each MyActivity may start MyOtherActivity. This flow needs to have a timeout, ie. if the app is paused, and later resumed, no more than 60 seconds should have passed; if so, the app will log out and start a MyLoginActivity. Anyway... Mar 09 15:24:24 Each MyActivity/MyOtherActivity should therefore have each their own timer. I used set a flag in MyApplication onPause and checked it onResume, but that was before I realized that my app could be started from outside Intents. Now a common timer is of no use. Mar 09 15:24:56 So! I'm thinking of storing a pausedTime for each Task that the Activity is used in. But how do I get what Task I'm in? Mar 09 15:25:36 Or least a Task id of some sort. Mar 09 15:25:49 are custom permissions shown in the play store? Mar 09 15:26:08 ie if some other app defines some.package.READ_WHATEVER_PERMISSION, and i add that to my app Mar 09 15:27:03 What does the ^= do for example: newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; ? I know ^ is the bitwise or operator. Mar 09 15:27:35 is it okay to call initLoader in onResume()? also, does onResume() get called on activity init? Mar 09 15:27:44 Maybe I can use Activity.getCallingPackage()... Mar 09 15:28:08 no, that's no good.. Mar 09 15:28:38 Ah, Actiivty.getTaskId() =) Mar 09 15:28:38 hi! Mar 09 15:28:43 hi HunterD_ Mar 09 15:30:03 I asked this before, sorry for repeating. where can I find documentation for specific version of the android gradle plugin? Mar 09 15:30:08 Ah it's the bitwise XOR assignment. Mar 09 15:30:20 ex, for the newest one: com.android.tools.build:gradle:2.0.0-beta6 Mar 09 15:32:32 http://tools.android.com/tech-docs/new-build-system Mar 09 15:32:33 also, where can I find if that plugin (com.android.tools.build:gradle:2.0.0-beta6) has support for NDK? Mar 09 15:32:46 ^ gradle plugin changelog Mar 09 15:33:05 * OverCoder craps Mar 09 15:33:34 alright. Mar 09 15:36:56 a get doesn't have to be synchronized right? Mar 09 15:37:37 Okay: I have successfully added a spinner in the actionbar, whenever the item is changed, a Worker is instantiated and assigned to a global variable, now that Worker has an ArrayList objects, now I want to have tabs in my Toolbar, I want each tab to represent a Channel, what is the best approach to do that? note that I need to have an extra added tab that must be the first one and may not be a channel, and Mar 09 15:37:38 it's not in the ArrayList Mar 09 15:37:54 * OverCoder is confused and feels like gonna punch Android Studio Mar 09 15:38:07 OverCoder, TabLayout? Mar 09 15:38:20 Well yeah but I am writing spaghetti code Mar 09 15:38:22 danijoo: thanks for all your help, it wooooooooooorrrrrrrrrkkkkkkkssssss! :D Mar 09 15:38:29 Lemme make a paste Mar 09 15:39:32 like, if i have a thread that requests access to an object and uses that object locally, and another thread that assigns a new object to that variable, it shouldn't be an issue and doesn't have to be syncronized Mar 09 15:39:55 depends .. Mar 09 15:40:31 I still cannot find if that version of the plugin (com.android.tools.build:gradle:2.0.0-beta6) has support for NDK :( Mar 09 15:40:51 if you read from that object twice and another thread writes to that object in the mean time Mar 09 15:40:54 you might get problems Mar 09 15:41:05 namely wrong data Mar 09 15:41:23 danijoo, http://pastebin.com/0nnu7QFN see if you can figure anything out of this paste Mar 09 15:41:59 OverCoder, what is the actual problem? Mar 09 15:42:51 idk, everything is wrong, my adapter takes a list of Channel,however, I want to have one tab that doesn't represent a Channel Mar 09 15:43:03 * OverCoder doesn't even know how to ask help about that Mar 09 15:43:12 I feel like gonna wipe the class and start over :| Mar 09 15:47:16 Hello, Android API 17 here, I am using a webview in my application and loading a site in the webview is making the whole app unresponsive until the site is fully loaded. Any way to fix this? It's really annoying that the user can not scroll inside the app until the whole page is loaded. Mar 09 15:47:51 Load it on another thread, I'd guess? Mar 09 15:48:11 The Webview is suppose to run on the mainthread as far as I know. Mar 09 15:49:17 is it possible to debug an apk (ndk part most concerned of) that was not built with Android Studio in Android Studio? * considerring the debug information is available Mar 09 15:49:50 HunterD_, logcat Mar 09 15:50:10 HunterD_: you mean that was built with eclipse? Mar 09 15:50:21 * this because I have a project that is built with a custom tool that converts a visual studio solution to gcc commands and builds the .so Mar 09 15:50:42 *bypassing the ndk-build command and using pure gcc Mar 09 15:51:21 * thomasross shrugs Mar 09 15:51:39 you can use the logcat tool out of AS too Mar 09 15:52:10 now I have 2 options for debugging the ndk code inside Android Studio: convert the sln to gradle config file or just debug with Android Studio using debug information (if possible) Mar 09 15:52:30 I need more than logcat, I need breakpoints Mar 09 15:52:30 android studio doesn't debug native code Mar 09 15:52:36 use ndk-gdb Mar 09 15:52:59 android studio 2.0 still does not have support for ndk? only the version from canary channel? :(( Mar 09 15:54:46 no ide supports debugging ndk Mar 09 15:55:19 not even visual studio 2015? *for which I have no licence... Mar 09 15:58:42 how can I press the back and home buttons on the emulator? Mar 09 16:01:27 someone here with some help on debugging ndk? :) Mar 09 16:01:34 ndk-gdb Mar 09 16:01:39 said so already Mar 09 16:02:04 Is there an easy way to achieve a visual effect in the Long Click event? Mar 09 16:03:46 pfn: thank you, but is there something available that has a UI? Mar 09 16:04:25 No, learn those 3 GDB commands you need. Mar 09 16:06:40 if app A defines a custom permission, and app B uses that permission in its manifest, how is this displayed in the play store (if at all?) Mar 09 16:09:11 also, I guess custom permissions arent dangerous by default, right? Mar 09 16:16:13 i can't find information about battery usage of motion detector... Mar 09 16:16:20 i wanna count steps in the background... Mar 09 16:19:53 Is it possible for apps installed via apk/unknown sources to auto update like apps installed via the play store? Mar 09 16:20:09 hey, is there a recommended lib for oauth2 interactions? I only saw one thing on android arsenal and not much on google Mar 09 16:20:21 do most android devs just write it themselves from scratch each time? Mar 09 16:24:39 can I use the acceleration sensor to check if bike/car is accelerating from 0 to ~ 15 kmh? Mar 09 16:25:39 thank you for your hints! now, If I want to test the current experimental support of NDK inside Android Studio, where can I get a sample from? Mar 09 16:27:04 WTF AS debugger Mar 09 16:27:09 http://imgur.com/NN2qHd3 -_-" Mar 09 16:27:32 not a single day without any issue with AS Mar 09 16:31:35 adq: that is a known issue with decompiled sources Mar 09 16:31:53 and it seems like you are debugging android.util.Log Mar 09 16:32:02 i was just stepping it into Mar 09 16:32:13 well, it's a decompiled source Mar 09 16:32:22 so being weird is part of the deal Mar 09 16:32:27 i've got a weird issue after finishing all the threads and the activity Mar 09 16:32:32 Starting a blocking GC Alloc keep spawning regularly Mar 09 16:32:34 adq, what's wtf? your image line number doesn't match up with your source lines Mar 09 16:32:58 i would expect it would Mar 09 16:33:05 e.g. your platform sdk is android-23 and you're running a samsung lollipop Mar 09 16:33:13 nope Mar 09 16:33:16 or even your platform sdk is android-21 and you're running samsung lollipop Mar 09 16:33:18 lines won't match Mar 09 16:33:18 it's an avd Mar 09 16:33:21 anyway Mar 09 16:33:26 then your avd doesn't match your compile target Mar 09 16:33:58 there's no wtf there Mar 09 16:34:16 I have two buttons in a horizontal linearlayout, and I'd like to center them both, but right now they are both on the riht. How can I fix that? Mar 09 16:34:17 ok ok, let's take back the wtf Mar 09 16:34:43 thomasross: layout_weight Mar 09 16:35:02 and weightSum Mar 09 16:35:53 thepoosh: ? Mar 09 16:36:16 they are clearly documented in LinearLayout Mar 09 16:36:35 http://stackoverflow.com/a/7452788/1056359 Mar 09 16:42:01 oh, new 5X update fixes lag issues, allegedly Mar 09 16:42:28 kinda took them awhile .. :/ Mar 09 16:43:25 pfn, is there a changelog? Mar 09 16:43:32 I really wonder what was broken with camera driver :) Mar 09 16:43:43 no, just a reddit thread Mar 09 16:43:51 https://www.reddit.com/r/nexus5x/comments/49jwbs/ota_update_for_nexus_5x/d0sh0m6 Mar 09 16:45:30 interesting Mar 09 16:45:31 MHC19J - android-wear-5.1.1_r1 –> android-6.0.1_r22 (Nexus 5X) – special build Mar 09 16:49:25 Sigh. I wish the android developer "training" docs didn't suck so much. Mar 09 16:49:38 they don't Mar 09 16:50:13 They're pretty awful for newcomers to android Mar 09 16:50:26 awful for people new to programming Mar 09 16:50:34 Yeah that would be more accurate Mar 09 16:50:38 that's fine Mar 09 16:50:43 The android docs are amazing. Mar 09 16:50:45 Still a pain in the ass Mar 09 16:50:54 They really aren't. Mar 09 16:50:59 android docs were never targeted at people who don't know programming Mar 09 16:51:04 I actually like them a lot because they don't waste time explaining basics, just subsystems. Mar 09 16:51:10 If you are a proficient programmer they are, if not, you can't expect to be able to understand them. Mar 09 16:51:33 But there is a lack of newbie tutorial for total beginners, I guess Google should funnel them to Udacity or books. Mar 09 16:51:41 pretty much Mar 09 16:51:47 I get it. But most of the time it's baffling why the docs leave certain things out. Mar 09 16:51:58 Ex, incomplete example code. Mar 09 16:52:07 example code is never meant to be complete Mar 09 16:52:14 speaking of docs, d.android.com references still don't reflect support 23.2 ... Mar 09 16:52:18 Not by android standards apparently. Mar 09 16:52:26 not by any standards Mar 09 16:52:36 examples are rarely complete regardless of platform Mar 09 16:52:43 I've learned how to code C# completely from the excellent docs from frameworks like Telerik. Mar 09 16:53:02 naise1 msdn docs are pretty good ... Mar 09 16:53:06 naise1: if you want complete samples, https://developer.android.com/samples/index.html Mar 09 16:53:07 msdn docs aren't that good Mar 09 16:53:17 I'd like traning to be expanded with more advanced stuff though. Mar 09 16:53:21 yeah msdn docs are pretty good Mar 09 16:53:24 Mavrik that would be nice Mar 09 16:53:24 There's practically nothing on USB support, MediaCodec, etc. Mar 09 16:53:33 Mavrik, anything interesting isn't covered Mar 09 16:54:14 http://docs.telerik.com/devtools/aspnet-ajax/introduction example of some seriously amazing docs Mar 09 16:54:28 but I understand given android project is foss and all Mar 09 16:54:58 looks more like familiarity than amazing Mar 09 16:55:04 Example frustration: http://developer.android.com/training/system-ui/immersive.html "stick immersive" code example Mar 09 16:55:08 would drive a newbie nuts Mar 09 16:55:31 learn2java Mar 09 16:55:32 naise1 you just have to choose one of the 8 flags :) Mar 09 16:55:53 Yeah it might be helpful if it actually declared the decorView variable in the code example Mar 09 16:56:49 Oh hey you might want to throw this in there: View decorView = getWindow().getDecorView(); Mar 09 16:56:54 You know.. if you want the code to work. Mar 09 16:57:14 Mentioned literally no where. Mar 09 16:57:23 type decorview into the searchbox Mar 09 16:57:27 naise1 well, you'll increase your SO skills :) Mar 09 16:57:30 Frustrations of a newbie I guess... Mar 09 16:58:15 Hey guys, does anyone here have an AsyncTask example I could use? Mar 09 16:58:29 there are shittons of asynctask examples online Mar 09 16:58:30 asynctask is bad and you should feel bad Mar 09 16:59:28 g00s why is it bad? Mar 09 16:59:49 googling tells you that, as well Mar 09 17:00:02 pfn I've seen examples where people create a class which extends Activity and others which extend AsyncTask which I think is weird Mar 09 17:00:50 Ah, whenever it extends AsynTask it's a sub class Mar 09 17:01:06 is there a way to edit the list nexus services in Android Studio that should be indexed? Mar 09 17:01:16 like in intellij Mar 09 17:01:21 here is a snapshot Mar 09 17:01:21 http://i.stack.imgur.com/RM6ha.jpg Mar 09 17:01:39 heres your example markyosullivan :p http://pastebin.com/rK3QgTs2 Mar 09 17:01:44 be careful its untested :p Mar 09 17:01:57 Hmm, whole IntelliJ toolbox is 200eur/year Mar 09 17:02:00 Not that bad Mar 09 17:02:59 danijoo: I should actually use your example first, so thanks for sharing that code :) Mar 09 17:03:24 also mine will leak because its inline :p Mar 09 17:03:38 leaking in an asynctask is really irrelevant Mar 09 17:03:43 dont hold context in there Mar 09 17:03:46 it's a blown up complaint over nothing Mar 09 17:03:57 given the use-case for asynctask, leaking is meaningless Mar 09 17:04:21 if the leak as a result of asynctask is meaningful, you're asynctasking wrong Mar 09 17:04:36 What do you put inside the attributes? Mar 09 17:04:42 How do I espresso test permissions? I can't click on the dialog to accept or deny. I'm guessing this means, I should wrap my permissionHelper class and mock out some of those methods at run time. Is that a fair assumption? Mar 09 17:04:47 more attributes! Mar 09 17:04:50 1. Params 2. Progress 3. Result Mar 09 17:04:52 eghdk, you cannot Mar 09 17:04:54 I don't understand that? Mar 09 17:04:59 Well Params is fine Mar 09 17:05:04 markyosullivan, read the docs Mar 09 17:05:07 but the other 2, what use case would you use them? Mar 09 17:05:11 Sorry Mar 09 17:05:32 progress - the type of the progress units published during the background computation. Mar 09 17:05:57 I take it that means that it can indicate how close it is to being finished? Mar 09 17:06:01 look at examples and you get it - at least if you know what generics are Mar 09 17:17:47 can I use the acceleration sensor to check if bike/car is accelerating from 0 to ~ 15 kmh? Mar 09 17:18:47 I bet you can, but you'll have to integrate it and calibrate it manually. Mar 09 17:19:11 for that speeds and you could also use gps Mar 09 17:19:15 and check if position changes Mar 09 17:19:37 at least if you only need to know driving yes/no? Mar 09 17:19:54 Well, for 0-15 you have no way of knowing if it's driving, running or whatever it is :) Mar 09 17:20:14 yeah. but same for acceleration sensor i guess Mar 09 17:20:18 mhm Mar 09 17:20:31 well, acceleration rate is different for driving vs cycling Mar 09 17:20:38 might depend on the road and driver :p Mar 09 17:21:00 true pfn. a cycler would accerlate faster Mar 09 17:21:37 especially cyclist crosses the street on red and hits something :P Mar 09 17:21:50 or gets hit :D Mar 09 17:22:17 I don't think most accel sensors are accurate enough to give you a good acceleration profile Mar 09 17:22:43 is that true, I thought they're generally pretty good Mar 09 17:24:49 pfn: How should I test my app having a permission vs not having it? Mar 09 17:25:10 uiautomator Mar 09 17:25:18 Btw people, anyone have a decent idea on how to grant READ_EXTERNAL_STORAGE to test apk on 6.0? Mar 09 17:25:27 Hey guys... why does the Timers not always stop when I quit an intent ...the StopTimer() is in onDestroy and on onStop but it does not matter Mar 09 17:25:34 Mavrik, can't you adb pm grant? Mar 09 17:25:52 hmmm, tried it, still getting access denied Mar 09 17:25:54 which is a bit annoying Mar 09 17:26:04 Since we're reading test files from there Mar 09 17:26:25 Mavrik, probably because testing uninstalls the apk, have to put it as part of the connectedAndroidTest task Mar 09 17:26:38 i think theres no way without UIAutomator Mar 09 17:26:45 Yeah, the other thing I'm worried about is that they changed something about SD handling Mar 09 17:26:52 Where you have to go over SAF, no more direct access. Mar 09 17:30:01 i read somewhere sometime ago that google would be dropping any API calls that allow device tracking, e.g. wifi/bt mac address Mar 09 17:30:11 They did. Mar 09 17:30:29 Could I not stop the Timer from within? Mar 09 17:31:04 did? Mar 09 17:31:13 It it possible to check if the Parent Intent is still active and when its not then just kill the timer from within? Mar 09 17:32:47 cart_man, what do you mean Mar 09 17:33:18 are they going to remove Build.SERIAL too? or Secure.ANDROID_ID? Mar 09 17:33:56 bitkiller, using ANDROID_ID and this stuff will already get you banned off the play store if the bot detects it Mar 09 17:34:06 it's directly forbidden in the policy Mar 09 17:34:18 You have InstanceID and AdvertiserID for those use cases. Mar 09 17:34:41 So you don't do stupid crap when the devices are sold / moved to another owner :) Mar 09 17:36:18 danijoo: I Start a normal Timer... Now I want to kill that timer by running a timer.Cancel timer.Purge() with onStop() and onPause and onDestroy() ... although not ONE catches that and not ONE kills the timer Mar 09 17:37:14 danijoo: Now I am looking for a way to stop the timer from within.. I can not find WHY it does not DIE the way it is soo I need to find a workaround Mar 09 17:37:39 danijoo: -> http://pastebin.com/pawsLjrm Mar 09 17:37:50 pretty basic Timer and its functions Mar 09 17:38:38 danijoo: Interestingly enough the Timer did stop when I did not have the onResume() function BUT as soon as I implemented the onResume() function it just never actaully stops Mar 09 17:39:09 http://hanhuy-acra.appspot.com/public/com.hanhuy.android.irc.lite/1acab03f24c5efb4c6c73261f52b8e4d9a8d41d0 Mar 09 17:39:17 heh, appcompat 23.2.0 breaks on gingerbread Mar 09 17:39:20 I still dont get what you are trying to do. sorry Mar 09 17:39:42 danijoo: Just to kill the timer .... Mar 09 17:39:45 Mavrik, i thought there were some restrictions on using that sort of id for advertising purposes Mar 09 17:39:48 When I quit the intent I want the timer to stop Mar 09 17:40:13 bitkiller, tracking and advertising yes. Mar 09 17:40:19 oh. seems like they are actually trying to fix that Nexus 5x getting slow.. Mar 09 17:40:28 cart_man, from where? Mar 09 17:40:36 danijoo, they like cherrypicked whole Android 6 on top of 5.1 ČP Mar 09 17:40:52 Mavrik, here we have an enterprise client that uses Build.SERIAL for asset tracking, but the app is not distributed using Play Mar 09 17:41:06 Mavrik, lol Mar 09 17:41:46 danijoo: When the Intent starts up it Launches a Timer..the normal one I mentioned above... THEN when I quit the intent I need the timer to stop and when the intent gets back into focus it needs to run the timer again...SOO basically only when the Intent is in focus should the timer run Mar 09 17:42:09 https://code.google.com/p/android/issues/detail?id=202939 Mar 09 17:42:10 weee Mar 09 17:42:22 bitkiller, i've never found those Build fields to be extra reliable, but I guess that's still fine Mar 09 17:42:40 bitkiller, MAC address access has been revoked without coarse location permission for BT tho Mar 09 17:42:43 I forget, but generic/generic is emulator, isn't it Mar 09 17:42:43 cart_man, intents dont have focus. activities have.. Mar 09 17:42:59 activity I mean Mar 09 17:43:00 pfn, Google unit testing ftw :P Mar 09 17:43:15 Mavrik, it should have been caught by lint Mar 09 17:43:24 stop it in the corresponding lifecycle callback Mar 09 17:43:27 onPause or whatever Mar 09 17:43:49 Mavrik, i've seen some manufacturers that do not set Build.SERIAL and others that set it to the same value for all of their devices Mar 09 17:44:13 pfn, it should have been caught by test coverage and test run on 2.3 -_- Mar 09 17:44:20 Just... run the code through ffs. Mar 09 17:44:30 bitkiller, yeah, my experience exactly Mar 09 17:45:14 ok, so my issue with gc alloc periodically spawning in logcat is due to android monitor: http://imgur.com/pEF5IQs the application is doing nothing except being monitored Mar 09 17:45:35 this does not happen with the old ddms stuff or when android monitor is fully disabled (memory, cpu, gpu, net) Mar 09 17:45:41 tabindicators.addTab(tabindicators.newTab.setText(makeTabTitle(0))) // java.lang.IllegalArgumentException: Tab belongs to a different TabLayout. Mar 09 17:45:42 thefuck Mar 09 17:46:06 danijoo: Ok like I said... it does not matter if I stop it in either the onPause() or onStop() or onDestroy() it just continues going Mar 09 17:46:06 BUT Mar 09 17:46:09 ONLY when the onResume is implemented ...If NOT then it acts like it should Mar 09 17:47:01 sTabPool ... Mar 09 17:47:04 seriously google... Mar 09 17:47:20 adq: Are you sure that you don't have a memory leak ? Mar 09 17:47:53 cart_man, that sounds wrong. Mar 09 17:48:38 wviana, no i'm not entirely sure, but when i pause android monitor or use another tools or simply not run AS, i never see art: Starting a blocking GC Alloc each 15 seconds Mar 09 17:48:59 wviana: I am not sure... I do not think so though because I try and stop and .Purge / Cancel on every callback I can Mar 09 17:49:27 wviana: Soz though that was for me Mar 09 17:49:27 danijoo: Yes and its driving me crazy Mar 09 17:50:05 wviana, and by the way the application called finishes(), it's not even running "in front" Mar 09 17:50:13 finish()* ahem Mar 09 17:52:01 https://code.google.com/p/android/issues/detail?id=202940 Mar 09 17:52:02 weee Mar 09 17:52:52 I'm using SupportMapFragment and showing images downloaded on-demand in info windows. The documentation says when the info window content needs to be updated, call showInfoWindow. Does this mean I need to store the downloaded image or even the views, and set them instead of downloading when showInfoWindow is called the second time? Mar 09 17:52:52 also the allocation tracking reveals lot of dumpgfxinfo Mar 09 17:53:29 or does Android store the view already for me? Mar 09 17:55:20 meh, who was the nub who wrote tablayout .... Mar 09 17:58:01 pfn: Why? Mar 09 17:58:11 I just explained why Mar 09 17:58:34 tablayout gets the job done.. kinda Mar 09 17:58:42 quit Mar 09 17:58:52 memory leak and crash from tablayout in 23.2.0 Mar 09 17:59:00 ooohhh Mar 09 18:00:00 pfn: Ohh did ont see that Mar 09 18:00:01 pfn: Ohh did ont see that Mar 09 18:00:40 navigation drawer preferred? Mar 09 18:02:01 guess navigation drawers + tabs - is what most apps use Mar 09 18:02:02 I'm using a jar file which has some binary files included. The library loads these binary files using the class loader. When I try to run the code on my device it's not working, saying it can't find the files. Are the jar files filtered to only copy certain files from them? Mar 09 18:03:25 was it working with emu/ Mar 09 18:03:27 ? Mar 09 18:03:30 first developer api's of android N: http://android-developers.blogspot.co.uk/2016/03/first-preview-of-android-n-developer.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog) Mar 09 18:03:40 https://code.google.com/p/android/issues/detail?id=202939#c3 Mar 09 18:03:43 * pfn kicks chris banes Mar 09 18:03:46 pwnt Mar 09 18:03:49 man these are gonna end up so complicated single developer created apps are gonna be like impossibleu! Mar 09 18:04:45 Improved Java 8 language support - We’re excited to bring Java 8 language features to Android. With Android's Jack compiler, you can now use many popular Java 8 language features, including lambdas and more, on Android versions as far back as Gingerbread. The new features help reduce boilerplate code. For example, lambdas can replace anonymous inner classes when providing event listeners. Some Java 8 language features --like default and stati Mar 09 18:04:45 c methods, streams, and functional interfaces -- are also now available on N and above. With Jack, we’re looking forward to tracking the Java language more closely while maintaining backward compatibility. Mar 09 18:04:47 interesting Mar 09 18:05:11 pfn: Mavrik Why shouldn't I just use my PermissionHelper class and have MockTruePermissionHelper and MockFalsePermissionHelper, and inject a different one depending on the test. Doesn't that make more sense that trying to have UI automator do something? Like... what if that permission dialog changes? What if the custom OS changes that dialog? Mar 09 18:05:12 jack, but not javac... what about library code that is java8 Mar 09 18:06:39 pfn was there some announcement for java 8 features ? Mar 09 18:06:50 g00s, from android-developers post above Mar 09 18:07:10 oh nice Mar 09 18:07:35 "We’re doing something a little different this year by releasing the preview early… really early." Mar 09 18:07:36 I don't see how they can exclude javac, so probably just a techwriter mistake/assumption/simplification Mar 09 18:07:36 lol Mar 09 18:07:57 wow Mar 09 18:08:37 well, it's good either way, further refutes the anti-scala fud Mar 09 18:08:38 wviana, https://code.google.com/p/android/issues/detail?id=202943 made a ticket Mar 09 18:09:26 i really thought it was my app not properly finishing (got threads there) :((( Mar 09 18:09:34 Taios, these what? Mar 09 18:10:34 " Some Java 8 language features --like default and static methods, streams, and functional interfaces -- are also now available on N and above" hm bummer. streams i get, but why not default methods Mar 09 18:10:54 150$ discount for Pixel C Mar 09 18:10:59 i guess that needs revises art ... Mar 09 18:11:01 so its not selling? Mar 09 18:11:06 obviously Mar 09 18:11:13 I want a pixel c Mar 09 18:11:14 hmm Mar 09 18:11:25 g00s: Where did you get it ? Mar 09 18:11:33 i think about getting one for my gf Mar 09 18:11:35 499 too expensive, though Mar 09 18:11:39 I'm crazy about Streams on android. Mar 09 18:11:40 if i got pixel C, would put ubuntu on it right away :P Mar 09 18:12:13 wviana that link above http://android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html Mar 09 18:12:46 If i wanted ubuntu, i get a real pc Mar 09 18:13:20 danijoo yeah but what can you so with a pixel C Mar 09 18:13:35 not HW problem, SW is limiting Mar 09 18:13:59 basically everything someone wants to do if hes not interessted in tech and only needs it for surfin/mail/netflix Mar 09 18:14:17 for example it would be perfect for my girlfriend as laptop replacement Mar 09 18:14:27 wouldn't that be ChromeOS territory ? Mar 09 18:15:00 i guess they share the territory there Mar 09 18:15:42 id prefer a pixel c for laying on the couch and netflixing Mar 09 18:15:57 because i can get rid of the keyboard then Mar 09 18:16:08 Mavrik: Wait... Android unique identifiers were removed? When the heck did that happen? I use that in one of my apps. SHIT. Any android dev team post or anything about it? Mar 09 18:16:24 Are you using AS 2.0 or just waiting for its stable version ? Mar 09 18:16:47 * g00s waiting for stable Mar 09 18:17:09 Would calling Timer = new Timer(); Timer = new Timer(); Create a memory leak? Mar 09 18:18:01 http://www.google.com/android/beta 404 Mar 09 18:18:22 cart_man, no. first timer will get gc´ed Mar 09 18:18:47 danijoo: Ok so I can not get my leak .. Mar 09 18:18:49 danijoo: Thanks Mar 09 18:19:06 so i guess that must mean, they they really did go with OpenJDK 8 Mar 09 18:19:22 i thought consensus was they were using OpenJdk 7 Mar 09 18:19:28 if it has streams ... Mar 09 18:22:05 Is there any cool library to split mp3 files? Mar 09 18:22:10 g00s: omg, so faster than I thought. *_* Lambda, Streams. Mar 09 18:22:33 wviana curb your enthusiasm, android 6 is at 2.3% :D Mar 09 18:22:44 it will be years probably before anyone can start using it Mar 09 18:22:59 they said "you can now use many popular Java 8 language features, including lambdas and more, on Android versions as far back as Gingerbread" Mar 09 18:23:10 yea.. support libs Mar 09 18:23:11 i just want less issue Mar 09 18:23:28 it's exponentially growing from my pov Mar 09 18:24:03 nobody should support back to gingerbreak anymore :p Mar 09 18:24:04 even the docs and samples are not able to keep up.. Mar 09 18:25:06 i really wanted method references; c++ function pointers so useful Mar 09 18:25:44 well anyhow, there is kotlin Mar 09 18:26:56 don't care so much about what java language features are there - just that i can keep using libraries like netty because they expect something somewhat recent Mar 09 18:27:02 btw nice that netty supports android still ;) Mar 09 18:27:25 well at least 4.0 and 4.1, not sure about 5 Mar 09 18:28:11 Hi, can anyone tell me how to debug volley? I have a really strange issue that requests suddenly (they worked fine before and I didnt really change anything) take a really long time (the log entry in the apache log shows up a minute after i pressed the button in the app) Mar 09 18:30:00 Anyone can explain to me why every time i try to open d.android.com redirects me to the russian version of the site? :/ Mar 09 18:30:23 csst0111: OMG. That happens to me. wtf Mar 09 18:30:55 use VPN to hit the Russian version, maybe it redirects you to US :D Mar 09 18:31:52 so N brings with it Java 8 Mar 09 18:32:14 csst0111: What if you go into incognito mode? Mar 09 18:32:35 no problem in incognito mode eghdk Mar 09 18:33:34 csst0111: What plugins do you have going? Mar 09 18:35:05 eghdk, plugins or extensions ? Mar 09 18:35:07 I removed all of mine except for 3, that I really can't remove... and still no go. Mar 09 18:35:11 extensions. Mar 09 18:35:48 adBlock plus, android sdk search, android resource navigator, evernote clipper, feedly Mar 09 18:38:26 How do I call the execute method without it complaining of being a null object? Mar 09 18:38:36 (AsyncTasks) Mar 09 18:39:03 AsyncTask Mar 09 18:39:19 I would have though that when calling the execute() method you wouldn't have to pass anything? Mar 09 18:40:04 I created a FirebaseTasks object which extends AsyncTask? Mar 09 18:40:08 As android studio can support to program in java, scala, groovy. Is there any place where all acceptable languages are moted Mar 09 18:41:52 LegendThinker, add kotlin and you are pretty much done Mar 09 18:42:29 nevermind got it working Mar 09 18:42:35 basically everything that runs in the jvm Mar 09 18:42:37 LegendThinker, anything that isn't java is not officially endorsed Mar 09 18:42:47 but any jvm language can work on android Mar 09 18:43:29 thanks Mar 09 18:43:34 with varying levels of performance Mar 09 18:46:00 why would they call N preview api 23 Mar 09 18:46:01 See in the logcat: 8229-8229 the left hand number is the PID what's the right hand number? Mar 09 18:46:28 What are the limitation in using C/C++ in android development Mar 09 18:46:29 https://code.google.com/p/android/issues/detail?id=202939#c6 Mar 09 18:46:31 lol, pwnt! Mar 09 18:46:54 and he deleted my comments Mar 09 18:47:32 LegendThinker, are you asking about the NDK? Mar 09 18:47:40 LegendThinker somebody said the NDK is getting more restrictive Mar 09 18:48:07 Yes NDK Mar 09 18:48:13 there is no limitation in ndk/c/c++ Mar 09 18:48:45 pfn, We can use any C/C++ lib in there? Mar 09 18:48:52 LegendThinker, one limitation if you're porting existing code is that function names must follow strict guidelines Mar 09 18:49:05 LegendThinker see comment from pjmlp https://www.reddit.com/r/androiddev/comments/49p8jw/android_n_developer_preview_sdk_is_out/ Mar 09 18:49:18 this is all very preliminary so Mar 09 18:49:27 LegendThinker, but it's fairly reasonable to have a few "bridge" functions that can be called from Java with the bulk of your C/C++ code running normally Mar 09 18:49:56 LegendThinker, you may find this helpful, also: https://google.github.io/fplutil/libfplutil_overview.html Mar 09 18:49:56 LegendThinker, yes Mar 09 18:50:14 thanks all Mar 09 18:51:15 basically, that blurb in reddit is just saying that ndk will no longer allow access to non-public API Mar 09 18:51:27 i.e. any on-device libraries that aren't part of CTS Mar 09 18:51:36 at least that's how I read it Mar 09 18:51:39 and that's perfectly acceptable Mar 09 18:51:53 relying on an on-device library that isn't universally available is a recipe for failure Mar 09 18:53:55 pfn, link? Mar 09 18:55:22 pfn, Actually I need to split mp3 file but not able to find a good lib in java. Mar 09 18:55:43 You guys know any such library or place to look for? Mar 09 18:57:49 github is a good place Mar 09 18:58:30 hey has anyone managed to get the over the air beta update t work? Mar 09 18:58:37 "Runaway Piglet Stops Traffic In San Francisco’s Mission District" Mar 09 18:58:55 obviously friends with Lama (Drama) Mar 09 18:59:16 Not got any good one there till yet Mar 09 19:03:00 so is jack 1.0 ? Mar 09 19:03:18 probably not, but on the way Mar 09 19:03:44 guess i'll wait a little while longer then Mar 09 19:03:54 but yeah seems soon :) Mar 09 19:05:51 I wonder what Java 8 features are being backported, and which ones are N+ only. And what that decision is based off of Mar 09 19:06:25 so, dagger2 halp: I have an activity with a fragment and a recyclerview (with adapter) in it that I'm trying to fit into an MVP-style architecture Mar 09 19:06:27 anything API is n+, e.g. streams Mar 09 19:06:34 basic language feature is backported Mar 09 19:06:43 but no default implementations on interfaces Mar 09 19:06:46 or whatever it's called Mar 09 19:07:03 lambdas are easy to backport, as demonstrated by retrolambda Mar 09 19:07:21 I think I need to produce the adapter (which is like a model), then have a presenter coordinate between the recyclerview and a presenter; but I'm not sure how the @Provides and @Inject bits should be set up Mar 09 19:08:26 seems like the adapter should be a singleton that gets instantiated, then the view gets set and injected by the fragment's onCreateView call (that bit gets fired off by the fragment's presenter) -- is this the right way of thinking about this? Mar 09 19:08:49 i can’t really come up with any reason why an adapter should be a singleton Mar 09 19:09:20 hmm, that's a good point, it definitely shouldn't Mar 09 19:09:29 that would be wrong, thinking about it Mar 09 19:11:16 an adapter being a singleton is ok, if you make it completely independent Mar 09 19:11:34 but that's rarely the case Mar 09 19:11:52 yeah, i mean, i might want to reuse or extend it, so that doesn't seem like the right approach Mar 09 19:12:10 i'm more confused by the way that i should be providing and wiring in these subdependencies Mar 09 19:14:58 am i right in thinking that the adapter is basically an mvp-style model? Mar 09 19:17:06 no idea, never even looked at what mvp is Mar 09 19:17:59 it's just an mvc-style pattern to let you separate out UI functionality from the rest of what your app does Mar 09 19:18:13 out of all the projects I've looked at, only one went mvp Mar 09 19:18:27 and they went full on mortar/flow, etc. Mar 09 19:18:42 pfn what did you think of mortar/flow Mar 09 19:18:59 dunno, I didn't really look at it much, except to ripoff some coordinatorlayout-like code Mar 09 19:19:11 (it = that app) Mar 09 19:19:57 kommunicate: Why would the adapter be a model Mar 09 19:22:20 kommunicate: they are all back ported, thats one of the main reasons they built Jack Mar 09 19:22:57 has any one managed to solve the orientation change problem with RxJava & Android yet? Mar 09 19:23:07 last i read ppl were just ok with throwing away the in-flight work Mar 09 19:23:15 what orientation change problem Mar 09 19:23:17 what orientation change problem? Mar 09 19:23:20 there is no problem Mar 09 19:23:23 AS 2.1 preview O.o Mar 09 19:24:05 https://sites.google.com/a/android.com/tools/recent/androidstudio21previewnowavailableforandroidnpreview Mar 09 19:24:10 the fact that u'd lose transactions that were in-flight Mar 09 19:24:18 the problem that the ever shitty Loader system solves Mar 09 19:24:31 there are ways to solve that Mar 09 19:24:46 s73v3r: that was a bad explanation: the adapter handles view interact callbacks, but expects you to get data there too; seems like it's doing both model and presenter tasks Mar 09 19:24:48 rely on headless fragments unfortunatly Mar 09 19:25:07 :/ Mar 09 19:25:55 loaders are a shitty api regardless Mar 09 19:26:00 yes, it solves the recreation problem Mar 09 19:26:01 but that's it Mar 09 19:26:01 our current production app uses Loaders to great effect. We do a lot of expensive work we can't afford to throw away on orientation change. But Loaders ssuuuuccckkk.... Mar 09 19:26:19 yup Mar 09 19:26:23 g00s, lol. so 2.0 they released instant run, and before its even out the next version has it disabled because not supported there yet :D Mar 09 19:26:27 but thats a super important problem Mar 09 19:26:28 store in-flight transactions into a singleton observable Mar 09 19:26:36 and observe that from within your activity Mar 09 19:26:38 lol ya i know danijoo Mar 09 19:26:53 just yesterday i got my project working with instant run... Mar 09 19:26:55 what a waste Mar 09 19:27:14 I dont use it anyways Mar 09 19:27:23 pfn: ya, tracky knowing when to purge things from that though, and how to re-attach them to the newly created fragments Mar 09 19:27:31 *tricky Mar 09 19:28:28 you unsubscribe and subscribe as necessary Mar 09 19:28:33 that's what your pause/resume are there for Mar 09 19:31:06 pfn yup, so at some point ur transaction will have 0 subscribers for a short time, then something will subscribe again, so u must not have thrown it away during that period, so when DO you throw it away, i assume ppl do this, but i havent seen a good example? Mar 09 19:31:32 hi, so I have an activity (Activity2) that modifies a sqlite database and then exits on a button press. The activity (Activity1) that opens Activity2 displays data from the SQLite database (initialized in onStart with a loader), however, the loader returns so fast that the database isnt modified by the time that the loader returns, resulting in old data. How can I fix this? The only solution I've t Mar 09 19:31:38 hough of is polling the database every second or so... is there a better solution? Mar 09 19:31:39 Wavesonics, dunno, not an rx user Mar 09 19:31:43 ya Mar 09 19:32:10 well my last topic of bitchyness, when is that experimental gradle plugin going to be released, i need that NDK integration! Mar 09 19:32:19 (The database modifcation happens in a AsyncTask, ofc) Mar 09 19:33:11 I've only looked at rx as far as coursera took it Mar 09 19:33:25 then I dropped it because I don't need concurrency for emitted values Mar 09 19:33:42 Wavesonics, whenever i need to handle operations that span through orientation changes, i use bound services Mar 09 19:33:58 don't know if that applies to you, however Mar 09 19:34:18 thomasross: Are you not refetching the data when Activity2 finishes? Mar 09 19:34:23 but a cold observable that drains a queue seems like it would do the trick Mar 09 19:34:27 bitkiller: that might be a bit over kill for me, im taling like a network request, parsing that request, and doing some transform on it Mar 09 19:34:51 s73v3r: Yes. I refresh the data in onStart() of Activity1, however finish() is called I assume before the AsyncTask is done modifying the data. Mar 09 19:34:55 doing that process for every single network request Mar 09 19:35:21 thomasross: Where is the AsyncTask started? Mar 09 19:35:36 And why aren’t you refetching after the AsyncTask finishes? Mar 09 19:36:11 s73v3r: The AsyncTask is started when the 'done' button is pressed in Activity2. Mar 09 19:36:41 and you finish the activity before the AsyncTask is done? Mar 09 19:36:59 I think I see where you're going Mar 09 19:37:07 finish the activity in the asynctask finish callback Mar 09 19:37:33 either that, or refetch the data when the asyncTask is done, depending on how your stuff is set up Mar 09 19:38:09 basically, you can’t assume that something is going to take longer than something else. that’s how you get race conditions Mar 09 19:38:16 Wavesonics you can also look at stuff like android job queue Mar 09 19:39:00 or thomasross whoever was asking ;) Mar 09 19:39:03 g00s: do i not know about this? Not JobScheduler? Mar 09 19:39:18 its one of yigit boyars creations Mar 09 19:39:42 s73v3r: Do I have to create my own listener interface (like this: http://stackoverflow.com/a/8623905) or is there a better way? Mar 09 19:40:23 that’s a decent way to do it Mar 09 19:40:47 Alright I'll do it that way. I don't want to finish the activity directly from the task because I want to be able to use this task in other instances. Mar 09 19:41:08 good idea Mar 09 19:45:42 how can I stop onResume from executing the code a couple of times? I only want it to execute once and only when needed...otherwise it keeps on starting my timer even though im nowhere close to the activity Mar 09 19:48:38 cart_man why not put in in `onStart`? Mar 09 19:49:44 "They went back to having a JIT in addition to AOT - which means there is no AOT when the app is installed. When the device is idle/charging then AOT will selectively precompile the used portions of the app and optimize it further using the profiling data" Mar 09 19:50:27 interesting. well thats nice you don't have to wait for your device to recompile all the apks after an OTA - thats really sucked Mar 09 19:52:10 whoa thats kinda crazy Mar 09 19:52:18 ya that did suck Mar 09 19:52:22 where did u read that g00s ? Mar 09 19:52:37 HN Mar 09 19:53:14 areitz: Even if I put it onStart() it still does the same thing as onResume() ... Mar 09 19:53:29 link? Mar 09 19:54:04 areitz: The problem is that as soon as you implement onStart() or onResume() is just keeps on running the code inside those functions even though you are not even in the app Mar 09 19:55:17 oh you want to cancel what you have started? Mar 09 19:55:29 You should do that in onPause onStop Mar 09 19:56:17 has anyone else had screenrecord flake out sometimes? for me it occasionally just won't record anything. Mar 09 19:56:27 I thougth in the past I had done something to fix it, but I can't recall now... Mar 09 20:01:55 s73v3r: Alright, I'm trying to do that now but I'm getting an NPE when I click the button Mar 09 20:02:14 then something is null Mar 09 20:02:25 you’d have to look at your stack trace to figure it out Mar 09 20:03:16 yeah, so I am trying to add the activity (which implements a simple interface called FinishedCallback with a done method) to an arraylist of FinishedCallbacks, but it thinks that my activity/finishedcallback implementation is null Mar 09 20:03:47 don’t use an arraylist Mar 09 20:03:51 Which is the best Android for Windows emulator? (looking for endorsements from people who actually tried/use them) Mar 09 20:03:52 you only need one Mar 09 20:04:31 tried that as well, immediately crashes the app with a NPE, "Attemt to invoke interface method on a null object reference" Mar 09 20:05:57 pretty confused... Mar 09 20:06:41 post your stack trace and your code Mar 09 20:06:42 R for visual studio .. niice. sometimes i wish i was running windows Mar 09 20:08:16 *sigh* it seems something changed in Android Studio 2.1P1.. I don't see UI on the sides.. Mar 09 20:08:35 ST: http://hastebin.com/ximubahawo.txt InsertTeamTask: http://hastebin.com/iciqosoqag.java AddTeam (activity): http://hastebin.com/adavemepis.java FinishedCallback: http://hastebin.com/uzaneqitul.java Mar 09 20:08:39 s73v3r: ^ Mar 09 20:08:39 so annoying.. and I can't find it where it used to be.. stupid me should'nt have updated Mar 09 20:08:56 eeks.. "Tool buttons" enabled it.. hm Mar 09 20:09:48 you shouldn’t need to use @Override if you’re implementing an interface Mar 09 20:10:04 * thomasross shrugs, intellij did it for him Mar 09 20:10:07 alright ill remove it Mar 09 20:11:23 actually whoops i think i gave you the wrong stack trace Mar 09 20:11:52 http://hastebin.com/ezegubodod.txt <-- stack trace (with @override removed) Mar 09 20:15:31 What happens if, instead of having the activity implement the callback, you have an anonymous class implement it? Mar 09 20:15:42 s73v3r: same thing, i tried it :[ Mar 09 20:16:05 does the screen change after you hit the button? Mar 09 20:16:18 what do you mean? Mar 09 20:16:31 after you hit the button, what happens on screen Mar 09 20:16:46 it crashes Mar 09 20:16:56 Anyone know if Android N’s SDK is ready for testing yet? Mar 09 20:17:07 have you put a breakpoint in the task? Mar 09 20:17:22 but currently for some reason onPostExecute is being executed _immediately_ at app start Mar 09 20:17:25 Because having an integrated compiler that allows all JDK 8 features on Android, Gingerbread and above, is pretty much awesome Mar 09 20:17:37 justJanne: Google thinks so. in any case, it was just released an hour or two ago Mar 09 20:17:39 so that means that the app crashes as soon as you open it Mar 09 20:18:50 set some breakpoints so you can make sure that your asynctask is working properly Mar 09 20:19:09 alright Mar 09 20:22:59 Ok I fixed that problem Mar 09 20:23:02 it now crashes when I expect it to Mar 09 20:23:32 I still dont know why it is craashing though Mar 09 20:24:21 oh wait hold on Mar 09 20:25:16 justJanne "all JDK 8 features on Android, Gingerbread and above" <-- not true Mar 09 20:25:31 > Improved Java 8 language support - We’re excited to bring Java 8 language features to Android. With Android's Jack compiler, you can now use many popular Java 8 language features, including lambdas and more, on Android versions as far back as Gingerbread. Mar 09 20:25:32 afaik only lambdas back to gb Mar 09 20:25:46 language features go back to GB Mar 09 20:25:50 api features don't Mar 09 20:25:53 Yeah Mar 09 20:26:14 mh is this 2.1 update the successor to 2.0 beta? or will there still be a 2.0 final? Mar 09 20:26:18 but api features are possible with JarJar and requiring the JSR reference implementation at compile Mar 09 20:26:31 > In N, Doze additionally saves battery whenever the screen turns off Mar 09 20:26:33 THIS Mar 09 20:26:36 IS Mar 09 20:26:40 )§()=(%)b uz74n67bm8 Mar 09 20:26:51 '" Some Java 8 language features --like default and static methods, streams, and functional interfaces -- are also now available on N and above. " Mar 09 20:27:08 so basically retrolambda is built in now Mar 09 20:27:12 hey, whats the easiest way to add a menu to an android app? Mar 09 20:27:16 functional interfaces, do they mean stuff like .map and .filter? Mar 09 20:27:20 s73v3r: i hate myself Mar 09 20:27:24 like the 3 dot menu that you commonly find on apps Mar 09 20:27:31 s73v3r: no, they mean the @FunctionalInterface annotation Mar 09 20:27:34 s73v3r: i was reading the error wrong, the problem was the arraylist wasnt initialized Mar 09 20:27:37 s73v3r i think thats a typo; interfaces with default methods Mar 09 20:27:49 in Java 8, all interfaces having just one single method are technically identical. Mar 09 20:28:05 so, for an interface that requires a call(X x), Mar 09 20:28:16 I can also pass an interface that provides a run(X x) Mar 09 20:28:25 which is useful, because lambdas provide an apply(X x) Mar 09 20:28:47 i mean, an app bar, which has a menu on right edge, a menu whose icon is 3 dots (one on top of the other) Mar 09 20:28:55 if someone can tell me what its called, ill google the rest! Mar 09 20:29:02 supay: overflay menu. Mar 09 20:29:06 supay: https://developer.android.com/guide/topics/ui/menus.html Mar 09 20:29:07 You want onOptionsMenuCreated, Mar 09 20:29:12 and onOptionsItemSelected, Mar 09 20:29:19 and the R.menu ressources Mar 09 20:29:23 oh, okay, awesome! thanks justJanne :) Mar 09 20:29:31 supay: also click thomasross’ link Mar 09 20:29:40 right, on it! Mar 09 20:30:01 pfn any idea based on what you've read, what happened to default methods ? Mar 09 20:30:26 oh nm Mar 09 20:30:43 g00s, same as retrolambda, not supportable without shitty hack Mar 09 20:30:43 hm, so they don't say anything about method references Mar 09 20:30:59 g00s: those are the same as lambdas, practically. Mar 09 20:32:09 And now Google offers the Pixel C for only 349$ for developers! Mar 09 20:32:41 ^^ Mar 09 20:32:45 (Only in the US, only while supplies last, only if Google feels like it, only if the weather is nice, only if our Druid decides he favors you, only if the Groundhog can see its shadow) Mar 09 20:33:04 it’s tempting, but I’ve already got an iPad, and I don’t think I’d use it that much Mar 09 20:33:29 the perfect hearthstone machine :p Mar 09 20:33:42 I’ll continue testing with the amazing hacks that somehow manage to run Android’s recent builds on my Nexus 7, Mar 09 20:33:59 and just refuse to support anything later than what I can get to run on there. Mar 09 20:34:23 I’m sure there’s a way for you to get the discount, or get someone to ship you one Mar 09 20:34:43 Simple for me, if anyone wants me to support a device or OS, and I’ve already bought over a thousand dollars in Nexus devices since 2012, Mar 09 20:34:51 and *still* can’t get recent updates, Mar 09 20:34:54 let them buy me one Mar 09 20:35:06 just wait another 3 months and that will be the price for everyone everywhere Mar 09 20:35:16 they tried the same with the 5x Mar 09 20:35:40 I’m not going to buy another nexus tablet and phone every year, just because updates stop being supported suddenly Mar 09 20:38:53 is it better to do listeners through XML or programatically? Mar 09 20:39:15 how do you do listeners through xml? Mar 09 20:39:24 do you mean onClick=¨..¨ Mar 09 20:39:24 with android:onclick Mar 09 20:39:30 thats horrible - dont do this Mar 09 20:40:21 let code be code and view hierarchy definitions be view hierarchy definitions Mar 09 20:40:39 well, on Android tight coupling is standard. Mar 09 20:40:42 mixing will give you spaghetti Mar 09 20:40:50 no reason to make it worse Mar 09 20:40:52 i need to tell /ant/ the "NDK directory". Where is that, normally? I searched in /opt/android-sdk-linux, and only found docs (/opt/android-sdk-linux/docs/ndk) Mar 09 20:41:15 there are very few libraries for properly building a model/controller/view structure anyway Mar 09 20:41:59 especially considering the model has to call the view in Android, or you have to copy everything, or implement your own libraries for everything (see my own ObservableCollection and ObservableCollectionListenerRecyclerViewAdapter) Mar 09 20:46:01 ah, looks like the ndk is a separate installation Mar 09 20:53:07 * cybrNaut wonders why the /android/ package manager doesn't include NDK Mar 09 21:04:36 Anyone here has some experience with annotation processing in android? Mar 09 21:04:45 casadogg: yes, why? Mar 09 21:05:14 yes Mar 09 21:05:57 also, this is a day to mourn: according to the official release docs of the N preview, from Android N on, no app conformant with European law can send any push notifications anymore. Mar 09 21:06:34 (As all notification content has to be delivered through Google servers, in plaintext) Mar 09 21:06:56 i find that incredibly hard to believe Mar 09 21:07:09 s73v3r: Doze is now also on if the screen is locked. Mar 09 21:07:13 safe harbour II will be ready for N ;) Mar 09 21:07:14 Any time the screen is off, Doze is on Mar 09 21:07:37 Only GCM messages with priority High will be allowed. Mar 09 21:07:53 danijoo: that would make it legal, but not moral to sell out your users’ data. Mar 09 21:08:24 if someone choses an android device, he choses to sell his data. Mar 09 21:08:31 Not true. Mar 09 21:08:41 if someone chooses to use Google services, they choose to sell their data. Mar 09 21:08:48 One can use Android without Google services. Mar 09 21:08:49 many do. Mar 09 21:08:53 not really Mar 09 21:08:54 I dont count that 0.1% Mar 09 21:08:54 Including my parents, or me. Mar 09 21:09:03 or almost all of my friends. Mar 09 21:09:14 thats not representive at all Mar 09 21:09:24 look at some actual statistics Mar 09 21:09:34 Yes, but those people are also not my target demography Mar 09 21:09:47 the target demography "using IRC on Android + knows how to set up an IRC bouncer" Mar 09 21:09:54 didnt know we are talking about your traget demography Mar 09 21:09:59 is almost completely google-free or google-limited Mar 09 21:10:13 justJanne areitz Where should the meta-inf file be located for the annotation processor? Mar 09 21:10:15 Also, it’s not your choice. Mar 09 21:11:01 casadogg: just use Google’s autoservice? https://github.com/google/auto/tree/master/service Mar 09 21:11:17 (but the page also explains how to do it manually) Mar 09 21:11:26 danijoo: anyway, it’s not your choice. Mar 09 21:11:43 casadogg META-INF/services/javax.annotation.processing.Processor Mar 09 21:11:46 Just because Google Chrome is installed on your PC you wouldn’t agree if it would upload your private data and publish it in the web either. Mar 09 21:11:53 justJanne, what is not my choice? sorry I lost track :/ Mar 09 21:12:06 justJanne I am. In my processor's jar, the content is META-INF/services/casadogg.burin,LinkView Mar 09 21:12:06 danijoo: publishing private information of your users to third parties. Mar 09 21:12:13 Why is it generating like this Mar 09 21:12:22 LinkView is an annotation Mar 09 21:12:26 the auto service is pretty cool but it adds in more deps. I was having a weird problem with it when I was trying to use it but I can't rememeber what it was Mar 09 21:12:29 giving up google services also means giving up apps Mar 09 21:12:42 cybrNaut: not really. F-Droid to the rescue! Mar 09 21:12:45 areitz perhaps it was this? Mar 09 21:12:52 its my choice. And its the choice of the user to read the privacy terms and chose if they are ok with that if I do so Mar 09 21:12:55 justJanne: find me a bank that has their app on f-droid.org Mar 09 21:13:15 danijoo: No, not really. Mar 09 21:13:20 yeah, really Mar 09 21:13:21 Currently, in fact, it’s breaking laws. Mar 09 21:13:22 yes Mar 09 21:13:27 banks apps are on google play (most of them, exclusively so) Mar 09 21:13:29 Which apps are you making again? Mar 09 21:13:30 maybe, I don't think it's all that difficult to write it quick. Don't get me wrong automation is awesome, but sometimes it doesn't make sence Mar 09 21:13:44 I’ll download them, and sue you. You even admit to doing it knowingly. Mar 09 21:14:11 i highly doubt you’ll be able to succeed, especially if the privacy policy is posted Mar 09 21:14:15 Oh I remember now, it was pulling in guava 18 which was conflicting with some other lib I was using. Mar 09 21:14:31 what s73v3r said Mar 09 21:14:33 areitz in the case of doing it manually, I create the META-INF folder at the root of my processor's module? Mar 09 21:14:34 s73v3r: privacy policy doesn’t matter. The law is very clear on that. Mar 09 21:14:41 yeah Mar 09 21:15:02 I would recommend checking out https://github.com/JakeWharton/butterknife and see how that's working Mar 09 21:15:07 no. you do not get to complain about what my app does after being told up front what it does Mar 09 21:15:16 Your app, if sold in the EU, may not transmit ANY data without end-to-end crypto through ANY non-EU servers, may not transmit any data withotu end-to-end crypto to third parties. Mar 09 21:15:23 Even if the privacy policy says so. Mar 09 21:15:35 your privacy policy might say you own me as slave afterwards, Mar 09 21:15:43 but such policies are always null and void. Mar 09 21:15:49 hey guys, i have some old src code from pre-android studio. How do I import it as a project into the studio so that I can recompile it? Mar 09 21:15:51 also JakeWharton has a video about annotation processing that's really good. https://www.youtube.com/watch?v=dOcs-NKK-RA Mar 09 21:15:51 no, that comparison is just fucking stupid Mar 09 21:16:01 lets compare apples and oranges please Mar 09 21:16:05 s73v3r: From a legal standpoint, it currently is not. Mar 09 21:16:13 Again, the law is clear on that. Mar 09 21:16:15 areitz will check it out. I've been having a hard time wrapping my head around this lol Mar 09 21:16:19 yes, it is completely fucking stupid, and only serves to undermine your argument Mar 09 21:16:42 casadogg it's a goofy concept but once you understand it, it's not all that bad. Mar 09 21:16:51 theres no point in debating this. have a nice evening Mar 09 21:16:52 s73v3r: It is legally the same. Transmitting user data to a third party is a crime /even if the user wrote you on a piece of paper, and signed, that he is okay with that/ Mar 09 21:17:01 no, it is not legally the same Mar 09 21:17:07 Yes, it is. Mar 09 21:17:13 It’s a term that’s null and void. Mar 09 21:17:34 no. comparing slavery to using GMS is completely stupid, and makes you look foolish Mar 09 21:17:36 just as "you will agree to believe in my religion", or "you agree to allow me to send you spam even if you unsubscribe" Mar 09 21:17:46 areitz can I pm you and ask you a few questions about it? If you're busy it's ok Mar 09 21:17:47 No, s73v3r, that’s a different angle. Mar 09 21:17:54 the legal angle is: The term is completely invalid. Mar 09 21:17:55 no, it’s just stupid Mar 09 21:18:06 it literally does not matter what is written in the paragraph, Mar 09 21:18:14 as it’s automatically completely invalid. Mar 09 21:18:30 how do you know that GMS is going through non-EU servers? Mar 09 21:18:42 s73v3r: because Google’s ToS say so. Mar 09 21:19:00 so you’re saying that Google is just going to ignore all of Europe now Mar 09 21:19:08 No. Mar 09 21:19:25 But that Google is requiring app devs to commit crimes to send notifications. Mar 09 21:19:44 again, I don’t buy it Mar 09 21:19:46 Which is why I put in a formal complaint, which has been accepted and is now under investigation. Mar 09 21:21:13 > In N, Doze additionally saves battery whenever the screen turns off. Mar 09 21:21:26 > GCM high-priority messages let you reliably wake your app to access the network, even if the user’s device is in Doze or the app is in App Standby mode. In Doze or App Standby mode, the system delivers the message and gives the app temporary access to network services and partial wakelocks, then returns the device or app to idle state. Mar 09 21:22:06 justJanne yeah those new rules are BS Mar 09 21:22:12 I already see apps GCM-pinging every hour :D Mar 09 21:22:39 btw using gcm doesnt neccessary mean to send user data over gcm Mar 09 21:22:49 danijoo: metadata is also data. Mar 09 21:22:57 Also, I have now an immense risk. Mar 09 21:23:09 whenever any server globally wants to send data to any other server, Mar 09 21:23:12 please, stop with the hyperbole Mar 09 21:23:16 I have to notify one single server, Mar 09 21:23:16 a ¨please start a sync¨ is no metadata Mar 09 21:23:18 mine. Mar 09 21:23:55 Again, if my own 2$ VPS goes down, all users can’t use their app anymore? Mar 09 21:24:00 that’s ridiculous Mar 09 21:24:12 that’s the same concern that most developers have Mar 09 21:24:16 that’s like your web browser stopping showing images because a random 2$ VPS is down Mar 09 21:24:16 yeah its ridiculous that you use a 2$ vps for that Mar 09 21:24:20 you are right Mar 09 21:24:27 danijoo: why should I use anything else? Mar 09 21:24:32 literally nothing runs over my server, Mar 09 21:24:35 because you need better reliablity Mar 09 21:24:36 or should ever require it. Mar 09 21:24:40 because what you just said Mar 09 21:24:40 I need no reliability! Mar 09 21:24:45 clearly you do Mar 09 21:24:47 my server never transmits anything /yet/ Mar 09 21:24:50 then theres no reason to complain Mar 09 21:24:54 Yes, there is. Mar 09 21:25:01 Google introduced a huge infrastructure cost, Mar 09 21:25:04 with no benefit. Mar 09 21:25:09 and a risk in reliability. Mar 09 21:25:18 justJanne has a point. he/she is saying you need GCM to do X reliably, but using GCM may violate regulations Mar 09 21:25:46 g00s: or, worse, you need to build completely new infrastructure and migrate from a decentralized system to a global singleton server system. Mar 09 21:26:01 nobody cared about safe harbor violations yet and nobody will until we have a replacement Mar 09 21:26:05 where effectively every server that uses this backend, globally, has to ping one server. Mar 09 21:26:10 because theres too much industry behind it Mar 09 21:26:13 Worse, what if one uses a fork of my app? Mar 09 21:26:23 now every server globally has to ping two servers! Mar 09 21:26:35 or, in the case of several hundred forks, and tenthousands of servers, Mar 09 21:26:41 with millions of messages, Mar 09 21:26:53 thats a design issue. Mar 09 21:26:59 we have now requirements for centralizing at least 10% of Freenode’s traffic. Mar 09 21:27:08 i always wondered what Fb uses these days, they were using MQTT - but with doze i can't see how that is working out well. unless they got special treatment from google to request no battery optimizations Mar 09 21:27:26 all routed through hundreds of servers, one per fork of the app. Mar 09 21:27:43 danijoo: what, using IRC is a design issue? Mar 09 21:27:53 using a decentralized protocol is now a *design issue*? Mar 09 21:28:49 Btw, danijoo: http://www.theregister.co.uk/2015/10/15/data_protection_safe_harbor_schrems_facebook/ Mar 09 21:29:45 its still no data transfer to ping via GCM Mar 09 21:29:51 the ULD specifically explains why no transfer is legal, and why they will fine people who continue to transfer 300'000€ – per transfer. Mar 09 21:30:03 danijoo: nope, that is not – but requires a centralized infrastructure. Mar 09 21:30:11 Which is a design issue. Mar 09 21:30:32 ofc you need some infrastrucutre to send data.. Mar 09 21:30:35 That’s like saying "all websites should be hosted on one server" Mar 09 21:30:40 it’s impossible. Mar 09 21:30:56 i dont get it Mar 09 21:31:05 i think im to tired Mar 09 21:31:22 danijoo: You’re requiring all IRC bouncers of every user to send a message "hey, I got a new notification" to every android device with such an app. Mar 09 21:31:23 ah now i did. Mar 09 21:31:41 Now the IRC bouncer has to know which fork of which app the user uses, Mar 09 21:31:46 can anybody make head or tail of this error: java.lang.RuntimeException: Unable to start activity ComponentInfo{in.abhinavdas.qrkey/in.abhinavdas.qrkey.AccountSettings}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' Mar 09 21:31:48 the bouncer has to know how to ping GCM, Mar 09 21:31:51 and do it reliably, Mar 09 21:31:54 well thats a special problem with your specific case. Not common at all Mar 09 21:32:00 why would the IRC bouncer care? They would just have the GCM Id Mar 09 21:32:01 i have named everything correctly Mar 09 21:32:03 the bouncer can NOT be used in countries without access to Google, Mar 09 21:32:24 s73v3r: because each IRC app will use a different protocol for being notified? Mar 09 21:32:38 Or, in fact, because each IRC app already uses a different protocol. Mar 09 21:32:44 thats because you try this global bouncer thing over irc which yes - is a design problem Mar 09 21:32:52 danijoo: No. Mar 09 21:32:57 using GCM with IRC is a design problem. Mar 09 21:33:02 except it’s just telling the app that it has something new. All it has to do is send the GCM poing Mar 09 21:33:06 using push notifications via an IRC bouncer is not. Mar 09 21:33:09 it doesn’t have to know about the app Mar 09 21:33:13 s73v3r: Yes, it does. Mar 09 21:33:14 So I made a menu file for my action bar as explained here: https://developer.android.com/training/appbar/actions.html#add-actions -- but how do I actually add this to my activity? Mar 09 21:33:23 no, it doesn’t. the app knows how to update from the bouncer Mar 09 21:33:29 s73v3r: not really. Mar 09 21:33:35 what channel should it load messages from? Mar 09 21:33:36 then that’s your design flaw Mar 09 21:33:43 app Q might require to know the channel name, Mar 09 21:33:48 app P might be okay with a ping Mar 09 21:33:55 app S might require the messageid Mar 09 21:34:01 I don’t know beforehand. Mar 09 21:34:10 you should Mar 09 21:34:10 yes, you do. you’re the one writing the app Mar 09 21:34:11 I don’t *want* to know beforehand. Mar 09 21:34:17 thats the problem of your design that you dont Mar 09 21:34:18 that makes no sense Mar 09 21:34:19 s73v3r: No, I’m the one writing *one* app. Mar 09 21:34:32 yes, and you only need to solve the problem for your one app Mar 09 21:34:36 No. Mar 09 21:34:38 yes Mar 09 21:34:43 I need to support any app connecting to this bouncer, Mar 09 21:34:48 no you don’ Mar 09 21:34:49 and any bouncer this app might connect to. Mar 09 21:34:51 Yes, I do. Mar 09 21:34:55 that’s the whole thing about IRC Mar 09 21:35:01 if its open source its their job to write other apps to support your bouncer Mar 09 21:35:01 you say, this bouncer does X. other apps can take it or leave it Mar 09 21:35:04 not vice-versa Mar 09 21:35:11 what you suggest is like saying "google.com from tomorrow on only should support Opera 2 or earlier" Mar 09 21:35:13 justJanne oh i thought all this was in context of the medial app you are working on Mar 09 21:35:18 no, it isn't Mar 09 21:35:23 g00s: it is now. Mar 09 21:35:36 the issue is how forks, etc behave. Mar 09 21:35:41 and there are many design flaws. Mar 09 21:35:49 if Opera 9000 comes out it will take google.com as it is and not force google to rewrite Mar 09 21:35:50 how a fork behaves is the responsibility of the person making the fork Mar 09 21:35:51 in the GCM concept. Mar 09 21:36:09 s73v3r: No, it’s not just their responsibility. Mar 09 21:36:13 yes, it is Mar 09 21:36:17 What you suggest is cementing one model in eternity. Mar 09 21:36:21 that’s how we got JavaScript, Mar 09 21:36:31 and it’s not just a design flaw, but pure stupidness. Mar 09 21:36:43 no, I’m saying that if someone wants to do something different, they take the responsibility of doing that different thing Mar 09 21:37:07 s73v3r: So, they should then migrate all users who are even today on a 2010 version of the bouncer over to a new version? Mar 09 21:37:10 the bouncer says that it responds with X, which is it’s public API Mar 09 21:37:15 and now they have to fork the bouncer, too? Mar 09 21:37:16 Great! Mar 09 21:37:17 when you write a piece of software(your server) and make it available to others, its their job to work with what you give them Mar 09 21:37:26 And the bouncer tomorrow has to support 2 dozen sync protocols, Mar 09 21:37:33 again, no, it doesn't Mar 09 21:37:35 a few thousand different GCM message types, Mar 09 21:37:42 or we get two thousand forks of the bouncer. Mar 09 21:37:48 Neither of which is a solution. Mar 09 21:37:52 There should be one protocol, Mar 09 21:37:53 no it has to support 1 sync protocol and every app has to take that protocol or leave it Mar 09 21:37:55 can somebody help me solve my ListView problem? Mar 09 21:38:05 danijoo: that *still* doesn’t solve anything. Mar 09 21:38:06 Again. Mar 09 21:38:09 yes, it does Mar 09 21:38:09 supay, not without you posting it :) Mar 09 21:38:11 Requirements: Mar 09 21:38:18 So I made a menu file for my action bar as explained here: https://developer.android.com/training/appbar/actions.html#add-actions -- but how do I actually add this to my activity? Mar 09 21:38:23 The bouncer MUST NOT ever know about GCM, or Apple Sync, or ANY push protocol. Mar 09 21:38:26 /repost Mar 09 21:38:26 it’s not your responsibility to support every sync under the sun Mar 09 21:38:33 danijoo: im getting the following error: java.lang.RuntimeException: Unable to start activity ComponentInfo{in.abhinavdas.qrkey/in.abhinavdas.qrkey.AccountSettings}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' Mar 09 21:38:39 the app MUST support any bouncer implementation. Mar 09 21:38:55 data MUST NOT ever be exchanged between app and bouncer via a global server. Mar 09 21:38:55 supay, does your content have a listview with android.R.id.list as id? Mar 09 21:38:57 those requirements won’t work Mar 09 21:38:58 Good evening infidelssss :) Mar 09 21:39:02 s73v3r: They do today. Mar 09 21:39:04 hi Yotta92 Mar 09 21:39:10 They are required for any distributed protocol. Mar 09 21:39:15 danijoo: no, its currently — @+id/list Mar 09 21:39:22 supay, problem solved Mar 09 21:39:29 i just have to rename it? Mar 09 21:39:32 yep Mar 09 21:39:36 s73v3r: the "all through GCM" would kill most web technologies, from BitTorrent to IRC. Mar 09 21:39:44 try convincing Freenode to support GCM. Mar 09 21:39:45 danijoo: @android: or just android ? Mar 09 21:39:45 seriously. Mar 09 21:39:49 i never said all through GCM Mar 09 21:39:54 hey all! newb testing question: does anyone test with a framework other than junit? maybe something more spec-like ? maybe even in a different jvm language? Or is that crazy talk? Mar 09 21:40:10 also, aren’t we talking about bouncers? Mar 09 21:40:15 @id/android:list -> as stated here: http://developer.android.com/reference/android/app/ListActivity.html Mar 09 21:40:19 s73v3r: we were. Mar 09 21:40:27 s73v3r: but this issue applies to all distributed protocols. Mar 09 21:40:29 freenode doesn’t have to know about GCM, it does whatever it does, and the bouncer uses GCM Mar 09 21:40:41 s73v3r: so, my app only works with one bouncer, Mar 09 21:40:47 and that one bouncer works only with one app, Mar 09 21:40:51 and only on one platform? Mar 09 21:40:55 danijoo: oh, and not this code — ListView lv = (ListView) findViewById(android.R.id.list); ? here it would remain R.id.list ? Mar 09 21:40:57 Ramone, if you want integration and ui tests appium is a great alternative. and cucumber Mar 09 21:41:09 no. your app can support as many bouncer protocols as you have time and energy to support Mar 09 21:41:10 (s73v3r, additionally, the bouncer guys already said they’d NEVER support GCM) Mar 09 21:41:13 supay, there it would be android.R.id.list too Mar 09 21:41:17 So, the thing is, Mar 09 21:41:17 then you’re fucked Mar 09 21:41:23 danijoo: ah, alright Mar 09 21:41:24 the bouncer CAN NEVER support GCM. Mar 09 21:41:26 s73v3r: See? Mar 09 21:41:29 And that’s the thing. Mar 09 21:41:35 I’d have to make a bouncer for a bouncer. Mar 09 21:41:38 there is no reason why the bouncer can’t support GCM Mar 09 21:41:40 same with any protocol nowadays. Mar 09 21:41:43 s73v3r: yes, there is. Mar 09 21:41:48 no, there isn’t Mar 09 21:41:51 They don’t want any coupling to specific services. Mar 09 21:42:01 As their GCM code would stop working in 6 years. Mar 09 21:42:03 i don’t want a lot of things Mar 09 21:42:10 but people are *still* using the bouncer versions from 2006. Mar 09 21:42:13 IN PRODUCTION. Mar 09 21:42:20 then those people have to update Mar 09 21:42:27 Tell that to Debian Stable. Mar 09 21:42:28 thank you so much danijoo :* Mar 09 21:42:45 Again, s73v3r, those are things I can’t influence. Mar 09 21:42:53 supporting versions forever will cause people to not upgrade Mar 09 21:43:02 My alternatives are: (a) use existing ecosystem, NO GCM, (b) build my own ecosystem, with GCM (and NSA) Mar 09 21:43:03 if they don’t want to update, they can’t be upset when things change and their stuff doesn’t work Mar 09 21:43:03 danijoo: one thing that concerned me about that was that without tight integration like espresso has, you have to put a bunch of sleep()s in your test code, don't you? Mar 09 21:43:10 justJanne: yeah but debian stable actually has security backports Mar 09 21:43:23 thomasross: yes, they do. And they do backports for our project, too. Mar 09 21:43:33 thomasross: but that doesn’t mean they backport GCM integration. Mar 09 21:43:47 Ramone, i have some sleeps in my cucumber specs, yes :( And it was hard trial and error to get them at the right place :D Mar 09 21:43:50 justJanne: they shouldn't put feature backports into main, do they? Mar 09 21:43:56 thomasross: exactly. Mar 09 21:44:02 then they don’t get mobile support Mar 09 21:44:07 s73v3r: So, when you build your next app, do you build a whole social network each time, too? Mar 09 21:44:16 because there’s something called network effect. Mar 09 21:44:27 when you build your apps, do you reinvent TCP/IP? Mar 09 21:44:30 danijoo: ah okay thanks Mar 09 21:44:32 No, s73v3r. Mar 09 21:44:39 that’s why I can’t use GCM. Mar 09 21:44:45 because the *existing protocol* Mar 09 21:44:51 is by design incompatible with GCM. Mar 09 21:44:56 how do I apply a menu from res/menu/*.xml to an activity? Mar 09 21:44:57 (and existing server) Mar 09 21:45:20 s73v3r: so, would you reimplement TCP/IP, just because Google forces you to? Mar 09 21:45:26 that doesnt mean gcm sucks. That just means its incompatible for whatever reason Mar 09 21:45:28 they aren’t Mar 09 21:45:35 yes, they are. Mar 09 21:45:38 and as you said, you refuse to update and drop support for old stuff Mar 09 21:45:38 no, they aren't Mar 09 21:45:39 They are forcing you, Mar 09 21:45:45 no, they aren't Mar 09 21:45:47 because users can’t even turn off doze for your app. Mar 09 21:45:51 There is not even a choice Mar 09 21:46:03 If we could give users the choice "GCM or less battery", Mar 09 21:46:09 they’d at least have a choice. Mar 09 21:46:23 also, the other issues still apply. Mar 09 21:46:25 isnt there this optimization button? Mar 09 21:46:32 danijoo: that doesn’t work for doze. Mar 09 21:46:34 never tried to use it Mar 09 21:46:35 only app standby Mar 09 21:46:36 and then you’d be here complaining that your users have to choose between battery or GCM Mar 09 21:46:43 s73v3r: yes, I would. Mar 09 21:46:52 because the current situation Google presents me with is: Mar 09 21:46:54 they could also carry some solar panels with them Mar 09 21:47:02 fuck google for not building them into phones :) Mar 09 21:47:18 (a) build a completely new ecosystem, (b) spend 1000€+ a month on server costs, (c) send metadata through the US. Mar 09 21:47:27 That’s just not going to happen. Mar 09 21:47:40 then dont do it and drop the app. Mar 09 21:47:43 what’s going to happen is me just making the app incompatible wtih N Mar 09 21:47:49 because thats your choices Mar 09 21:47:55 danijoo: well, there’s one more. Mar 09 21:47:57 Going to court. Mar 09 21:48:07 or just use GCM and send an “update” message, and let the client bother with the update, because it should know how to communicate with the bouncer Mar 09 21:48:07 good luck. im sure it will work. not Mar 09 21:48:10 And over the prospect of "losing 3 years of work" Mar 09 21:48:22 or "spending 1000€ a month, plus rebuilding a whole ecosystem" Mar 09 21:48:30 or "court" Mar 09 21:48:37 "court" sounds like the best option. Mar 09 21:48:46 im not sure what you are trying to do but im currently supporting 1 million users without 1000 dollars a month .. Mar 09 21:49:09 s73v3r: still, I’d have to send for every private message any user of the bouncer receives a message from the bouncer to my server, which would have to send it to GCM. Mar 09 21:49:16 no, you don't Mar 09 21:49:17 which is fucking stupid. Mar 09 21:49:25 maybe not comparable to irc but still - this sounds more and more like an issue with the design of your system Mar 09 21:49:53 danijoo: again, you’d send a message for *every single private message, or every time their name is named* Mar 09 21:50:04 and it’d go through your systems, every single one of them. Mar 09 21:50:05 Does anybody know why writing more than one test of this nature fails with `java.lang.NullPointerException: Attempt to invoke virtual method 'com.myapp.logics.service.ForegroundAudioService com.myapp.logics.service.ForegroundAudioService$LocalBinder.getService()' on a null object reference` >> http://developer.android.com/training/testing/integration-testing/service-testing.html Mar 09 21:50:22 they go through your system anyways because thats how irc works Mar 09 21:50:23 justJanne, yeah, that shit sucks Mar 09 21:50:30 danijoo: no, they don’t. Mar 09 21:50:34 I’m using that vanilla test example and one is fine, but another test using the same setup isn’t able to `getService` Mar 09 21:50:42 danijoo: currently, all notifications go (bouncer) -> (app) Mar 09 21:51:10 the future plan was actually using a raw socket, with a timeout of 28min, and sending a raw message every time a notification arrives. Mar 09 21:51:11 so what’s the notification you currently use? Mar 09 21:51:16 still only bouncer -> app. Mar 09 21:51:21 nothing with google, Mar 09 21:51:27 nothing with a central server. Mar 09 21:51:35 this system has to work inside of companies intranets Mar 09 21:51:39 (no access to the internet) Mar 09 21:51:45 except then you have the issue where your app is constantly running in the background, maintaining a socket connection, draining battery Mar 09 21:51:47 and in systems, Mar 09 21:51:54 where users blackholed all Google IPs Mar 09 21:52:00 s73v3r: which GCM does, too. Mar 09 21:52:06 it’s not any more expensive. Mar 09 21:52:08 What does Google do in China anyway? Mar 09 21:52:24 justJanne: out of curiosity, how do you know the relevant google server is in the US and not the EU? Mar 09 21:52:24 Mavrik, no google play services, right> Mar 09 21:52:28 or are there? Mar 09 21:52:31 in fact, you can run it (I’ve been running it for 3 years nonstop) without noticing any battery issues. Mar 09 21:52:38 danijoo, Google servers are blocked Mar 09 21:52:44 Mavrik: a chinese user a few days ago complained in here. Mar 09 21:52:45 so even if you have them you're not getting GCM connection Mar 09 21:52:49 GCM only works while the app is open. Mar 09 21:52:51 yeah so.. no services -> no gcm Mar 09 21:52:53 surprisingly, it works. Mar 09 21:53:05 Being forced to use Google services to wake device is really annoying :/ Mar 09 21:53:10 Oh yes Mar 09 21:53:19 but danijoo and s73v3r consider it perfectly normal and awesome. Mar 09 21:53:22 Mavrik yeah, seems ... slightly anticompetitive Mar 09 21:53:49 Also Android N looks even prettier Mar 09 21:53:52 is it actually true though Mar 09 21:53:56 never said its awesome. But its not _that bad_ as you make it Mar 09 21:54:01 because it works for a lot of cases Mar 09 21:54:04 pfn: http://android-developers.blogspot.de/2016/03/first-preview-of-android-n-developer.html Mar 09 21:54:10 > Efficiency - We launched Doze in Marshmallow to save battery when your device is stationary. In N, Doze additionally saves battery whenever the screen turns off. Mar 09 21:54:12 and everything that lets my device run half a day longer is welcome to me :) Mar 09 21:54:21 oh cool i did it. Mar 09 21:54:26 danijoo, it's bad enough Mar 09 21:54:39 danijoo: 2 days in a row, with still 20% left, with lots of non-GCM apps running in the background Mar 09 21:54:44 danijoo, and there's no reason why it couldn't let your device run half a day longer and not turn it into a toy Mar 09 21:55:05 F-Droid build of conversations, my IRC app (3 versions of that actually, debug, release, alpha) Mar 09 21:55:06 etc Mar 09 21:55:40 should it be legal for Fragment A to create a nested fragment outside its view hierarchy? the "nested" or child's getParent() would point to A Mar 09 21:55:42 that reminds me, I need to build Email.apk from source again, as the version included in GApps is a stub with no function. Mar 09 21:55:49 sometimes i feel like a pioneer with fragments :) Mar 09 21:56:09 g00s, huh? its not part of A but getParent() points to A? Mar 09 21:56:13 where does it actually sit? Mar 09 21:56:17 g00s: probably not Mar 09 21:56:53 conceptually its parent / child. however, it sits in the Drawerlayout, which is owned by the activity Mar 09 21:57:21 DrawerLayout is owned by activity because thats where the nav drawer stuff is, etc Mar 09 21:57:22 mh.. that doesnt sound good :/ Mar 09 21:57:25 So what we expected with N was correct, it's more for tablets with split screen functionality Mar 09 21:57:48 Has anybody written service tests a la http://developer.android.com/training/testing/integration-testing/service-testing.html at all? Mar 09 21:57:51 M had split screen too. It was removed for release Mar 09 21:58:00 I guess what I could do, is Activity has DrawerLayout with left drawer, and fragment has Drawerlayout with right drawer :P Mar 09 21:58:02 markyosullivan, im more exited about direct reply notifications (from a user point of view) Mar 09 21:58:20 g00s, what about an interface for communication? Mar 09 21:58:46 i could, but conceptually i'd like the child to talk to its parent Mar 09 21:59:05 the parent really isn't really the activity Mar 09 21:59:12 or some kind of observer where one fragment can subsribe Mar 09 21:59:53 too bad DH doesn't answer stuff on google groups any more Mar 09 22:00:51 one thing - even if things appear to work, so many corner cases i still have doubts ;) Mar 09 22:02:47 what the hell is this again.. http://pastebin.com/WR3GjGCi 145 crashes from a SINGLE user Mar 09 22:02:59 what does this guy do.. Mar 09 22:03:22 (samsung ofc) Mar 09 22:05:10 danijoo maybe he likes to rotate your app :P Mar 09 22:05:38 never happend for anyone else. thats really funny Mar 09 22:06:19 uuugggggghhhhhhhhhh Mar 09 22:06:26 that he managed to get into my crash-frontpage is actually a good thing i guess ^^ Mar 09 22:06:55 * justJanne rips off Google manager’s head who decided it was a good idea to prevent users from using Email on their phones Mar 09 22:07:12 my phone has mails :p Mar 09 22:07:18 again, hyperbole, Mar 09 22:07:18 the AOSP mail app, built by Google, is preinstalled on phones as a stub that doesn’t do anything Mar 09 22:07:32 its version code is higher than all versions before, Mar 09 22:07:39 preventing you from installing working versions, Mar 09 22:07:44 and it’s installed as system app Mar 09 22:07:49 only solution being rooting Mar 09 22:08:12 (or building yourself the AOSP mail app, and, every time, using a git patch for a custom package name) Mar 09 22:08:13 you build it from source right? cant you just change packagename? Mar 09 22:08:20 yeah Mar 09 22:08:32 additionally, the latest source version *also* is just the stub Mar 09 22:08:39 I now synced repo over a dozen times, Mar 09 22:08:45 downloaded for 3 days straight, Mar 09 22:08:51 and only got stubs Mar 09 22:08:54 seriously, WTF Mar 09 22:09:02 android is by google for google :) Mar 09 22:09:08 wrong branch? Mar 09 22:09:18 well, right branch, just too late. Mar 09 22:09:27 I think KitKat’s version might still work, Mar 09 22:09:34 but syncing that would take another few hours Mar 09 22:09:37 justJanne too bad canadiancow isn't here any more, he used to work on that Mar 09 22:09:43 and I can only build one build per day Mar 09 22:09:52 (due to syncing all the repos) Mar 09 22:10:11 how big are these repos? Mar 09 22:10:28 40GB combined Mar 09 22:10:31 s73v3r, i think you always need to load whole aosp Mar 09 22:10:32 shallow clone Mar 09 22:10:41 yup, full AOSP build required. Mar 09 22:10:47 someone hasn’t split off these apps into their own repos? Mar 09 22:11:00 they really should make submodules Mar 09 22:11:04 someone might have, but no one findable with a google search easily. Mar 09 22:11:11 well, they have submodules, Mar 09 22:11:17 but no dependency resolution. Mar 09 22:11:19 isn’t K-9 mail a fork of AOSP mail? Mar 09 22:11:24 ^^ Mar 09 22:11:29 if you want to build AOSP mail, you have to manually build all dependencies Mar 09 22:11:33 * danijoo uses inbox. Mar 09 22:11:38 s73v3r: yes, a fork of the ICS build of AOSP mail. Mar 09 22:11:44 *shudder* Holo Mar 09 22:12:13 have they not updated for material yet? Mar 09 22:12:15 Two requirements for an app to end up on my device: (a) Material, (b) Open source or otherwise trustworthy Mar 09 22:12:22 s73v3r: not when I last checked Mar 09 22:12:46 the aosp email app was abandoned i thought Mar 09 22:12:56 how can it be otherwise trustworthy ? Mar 09 22:13:08 g00s: yes, but worse, it’s now been replaced with a stub that says "this app does nothing, click here to go to GMail" Mar 09 22:13:19 lol Mar 09 22:13:24 :D Mar 09 22:13:40 danijoo: if I trust the people who made it, and reversed most of the code myself (and checked)? Mar 09 22:13:41 no point in giving amazon free email client :) Mar 09 22:13:41 now you got me to stand up and search my phone just to see this Mar 09 22:14:05 make a screenshot, so the others don’t have to do so themselves ;P Mar 09 22:14:19 s73v3r: http://xda-university.com/as-a-developer/repo-tips-tricks Mar 09 22:15:03 justJanne, is this actually part of normal android builds? Mar 09 22:15:08 danijoo: yes. Mar 09 22:15:13 is on the Nexus 7 build here. Mar 09 22:15:13 cant find it on the 5x stock rom :/ Mar 09 22:15:18 Nexus 7 stock rom has it Mar 09 22:15:24 theres simply no other mail than gmail Mar 09 22:15:31 danijoo: sorry only getting back to you now but yeah directly replying to notifications sound great! :D Mar 09 22:15:34 (or im just blind) Mar 09 22:15:39 danijoo: 5x is on MM? Mar 09 22:15:50 they might have just not included it on phones delivered with KK or later. Mar 09 22:16:13 seems like. I checked twice and theres only Gmail and inbox Mar 09 22:16:23 Can't remember who it was who told me to use AsyncTask for handling Firebase logic, just tried it there now and no longer getting the message which is excellent Mar 09 22:16:45 danijoo: screenshot incoming Mar 09 22:16:50 one can have own manifest and download only part of asop Mar 09 22:16:50 http://i.imgur.com/71tB17u.png Mar 09 22:17:27 :D Mar 09 22:17:57 thats so mad.. Mar 09 22:18:40 anyone here installing the N preview on their daily river? Mar 09 22:20:33 you know, as I’m already running my own mail server, with my own webinterface, Mar 09 22:20:43 I might as well just write my own android app, too. Mar 09 22:21:07 support libs 24.0.0-alpha1 released to sdk manager Mar 09 22:21:43 I already have a neural network trained on about 4.6 million emails for sorting into categories, so categorizing like Inbox should be no issue either. Mar 09 22:22:15 (sometimes I wish I could clone myself – with a dozen of clones, I actually could reimplement or fix half of the software I use) Mar 09 22:22:47 g00s, alpha support lib.. lets definitly not use that in production :p Mar 09 22:23:01 ha, yeah i'll let somebody else try that :D Mar 09 22:23:32 was hoping 23.2.1 Mar 09 22:24:01 whats broken with 23.2? I hadnt time for andorid for a few weeks now and didnt update yet (fortunatly?) Mar 09 22:24:53 pfn found one thing :P Mar 09 22:25:10 ugh, still waiting for onPermissionResult to work in nested fragments, etc Mar 09 22:25:33 isnt that broken since 23.0.1? Mar 09 22:25:52 23.0.0 yeah Mar 09 22:26:21 some wonkyness with the bottom sheet peek height Mar 09 22:29:05 Is there a way to change the testInstrumentationRunner programmatically? We have a zillion legacy tests using a custom implementation of MultiDexTestRunner, but newer (nicer) tests are using AndroidJUnitRunner. It sucks editing the gradle file to run them all. Mar 09 22:29:30 Skipped x frames! The application may be doing too much work on its main thread. Mar 09 22:29:41 Could this be caused by images which are a large size? Mar 09 22:29:46 yes Mar 09 22:29:51 That makes sense Mar 09 22:29:53 if you load them wrong Mar 09 22:30:01 Yeah I'm not using an image loading library Mar 09 22:30:07 Guess Picasso will be used Mar 09 22:30:13 so most probably wrong :p Mar 09 22:30:20 I've set the background of a layout to an image Mar 09 22:30:45 which is basically just usually the full image size but readjusting it so it fits in the layout Mar 09 22:30:51 are you loading the image in the background? Mar 09 22:31:02 Loading the image on the main thread Mar 09 22:31:06 onCreate Mar 09 22:31:14 I'm setting the position of a view inside of a FrameLayout via setX and setY, however the view's position is not updating correctly. Interestingly enough, if I take a XML snapshot of my activity with the dev tools, the view pops to the correct position. What could I be missing here?... I've tried invalidating and requesting layouts, but nothing is moving the view into the correct location Mar 09 22:31:15 Well, when the fragment is created Mar 09 22:31:35 there’s your problem Mar 09 22:31:56 load and resize it in a background thread Mar 09 22:32:28 using picasso or glide will save you lots of time and headache Mar 09 22:33:36 Does Picssso or glide work in the background? Mar 09 22:33:41 yes Mar 09 22:33:44 Fantastic Mar 09 22:33:51 I can see why people like both Mar 09 22:34:01 I've heard more about picasso, probably because it's made by Square Mar 09 22:34:10 of course, if you’re not seeing much issue in actually using the app, you probably have bigger fish to fry Mar 09 22:34:12 Any major differences between the two? Mar 09 22:34:28 markyosullivan, not really Mar 09 22:34:55 markyosullivan, thats a good read on that topic: http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en Mar 09 22:35:00 Has anyone here dealt much with collapsable toolbars? I'm trying to figure out how to manually set the scroll point on it. The only public methods I can see are on the AppBarLayout and it only lets you set it 100% open or 100% closed Mar 09 22:35:03 s73v3r: I had that 'Skipped x frames! The application may be doing too much work on its main thread.' message before I used AsyncTask, it was up to 40+ frames beforehand Mar 09 22:35:06 compares picasso and glide Mar 09 22:35:20 i know, but do you actually notice anything on the app itself when you run it? Mar 09 22:35:33 It seemed to lag when showing a different fragment Mar 09 22:35:39 skips can happen in onCreate if its not too much Mar 09 22:35:51 just read that blog post careful since its graphs are misleading Mar 09 22:35:55 Though maybe that could be just the transitions Mar 09 22:36:09 yeah I read it and came to the conclusion to still stick to picasso Mar 09 22:36:15 I'm digging into the source code, it looks like if I could access the HeaderBehavior file I may be able to manually set the offset on it, I'm not sure if that would do what I want though Mar 09 22:36:19 JakeWharton: Why would you say the graphs are misleading? Mar 09 22:36:27 its a nice comparision though Mar 09 22:36:32 because Glide and Picasso have different defaults Mar 09 22:36:47 so they show an image loaded with different settings which is a poor way to compare Mar 09 22:37:02 basically the graphs will tell you picasso uses much more memory Mar 09 22:37:13 but you can easily set it to not Mar 09 22:37:50 yeah people look at the charts and are jump to the wrong conclusion Mar 09 22:38:34 So ultimately it just comes down to personal preference? Mar 09 22:39:38 there are feature differences Mar 09 22:40:12 This view positioning stuff is driving me insane... Does anyone know why `setX(float)` and `setY(float)` would both fail to move a view within a FrameLayout properly? Mar 09 22:43:13 Pyuruku: IIRC ViewGroups have final say over how their childviews are laid out outside of setTranslationX. I haven't dealt with it in a while though Mar 09 22:43:50 But a FrameLayout shouldn't care about where children want to be right?... Mar 09 22:44:21 FrameLayout cares as much as other layouts care Mar 09 22:44:37 well, I just fixed it... had to move my positioning code to `onLayout` instead of after `onMeasure` Mar 09 22:46:37 Cool, good to know Mar 09 22:47:38 unrelated note: How many people here have experience Google's In-App billing service returning error code 6 (general error) on a successful purchase? Mar 09 22:48:33 I dont log IAB issues and try/catched the whole shitty api. Mar 09 22:48:44 because its horrible to make this bug free.. Mar 09 22:49:25 danijoo: I developed a general android billing library recently, not open source yet, precisely because of how shitty the iab billing code google provided was Mar 09 22:49:34 hopefully I can get it out to the public soon(tm) Mar 09 22:49:49 Pyuruku, Yeah im using one too now Mar 09 22:49:50 I wanted to put in amazon's billing in first though Mar 09 22:50:08 and I just know that is one of the quirks of working with the IAB api Mar 09 22:50:11 I was on opfiab in the past but switched recently because the project seems dead Mar 09 22:50:15 it will return failure on successful purchases Mar 09 22:50:25 mind telling what you switched to? Mar 09 22:51:01 and after I got it working I was like ¨and now you never touch this part of the code again and screw everyone for who its not working¨ Mar 09 22:51:07 let me see... Mar 09 22:51:25 I'm trying to take away most of the pain from billing related development Mar 09 22:51:29 such as testing purchases... Mar 09 22:52:08 com.anjlab.android.iab.v3 Mar 09 22:52:09 g00s, at least a couple things, one of which banes already fixed Mar 09 22:52:19 danijoo: ah I see, thanks Mar 09 22:52:24 Pyuruku, I was on opfiab mainly because of amazon support Mar 09 22:52:46 hopefully you'll migrate to mine once its public :) It's in production right now to ~10m active users Mar 09 22:52:53 seems to be stable Mar 09 22:52:55 but I recently dropped the amazon version because of 300 downloads vs _a lot_ more on play store Mar 09 22:53:28 Pyuruku, if its good ;) Mar 09 22:53:35 of course, my code is perfect :) Mar 09 22:54:06 for IAB it must be good enough to get me over ¨and now you never touch this part of the code again and screw everyone ..¨ :p Mar 09 22:54:18 oh yeah def, thats the whole point Mar 09 22:55:35 " As of Android N, Doze mode can kick in at any time if the device is not on a charger, even if it is moving." Mar 09 22:56:03 src? Mar 09 22:56:35 conidering that my app is like an activity logger, like google fit, seems like i keep fighting google more and more Mar 09 22:56:42 danijoo https://commonsware.com/blog/2016/03/09/random-musings-n-developer-preview.html Mar 09 22:56:57 maybe android is just the wrong platform for this kind of thing Mar 09 22:56:58 g00s: same what we are doing here. Mar 09 22:57:09 we now decided to drop support for Android in our activity logger app. Mar 09 22:57:14 use Microsoft Band now, Mar 09 22:57:21 which is ironic, because one of the interesting things about mobile is context, and changing context Mar 09 22:57:45 we can at least support it natively, their SDK can be used in our contexts, etc. Mar 09 22:57:46 Lets see whats the exact context on this is. time will tell Mar 09 22:58:00 right now people are acting like doze will kick in right after you turn your screen off Mar 09 22:58:04 i doubt that Mar 09 22:58:06 google is on jihad against sloppy devs :) Mar 09 22:58:12 danijoo: kicking in *ever* is too much. Mar 09 22:58:26 the solution is not "ban app from using this", Mar 09 22:58:29 problem is there is a lot of collateral damage Mar 09 22:58:30 but "allow user to choose" Mar 09 22:58:42 g00s, yeah I don't like doze mode, it directly affects my app idea I've been planning for a couple of years Mar 09 22:58:42 I agree that we should have a disable button Mar 09 22:58:50 if the user can choose themselves if they want to use the app (and risk losing a lot of battery), Mar 09 22:58:51 i disagree that kicking in ever is bad Mar 09 22:58:53 they should. Mar 09 22:58:59 because I like my phone to last more than a day Mar 09 22:59:01 danijoo: kicking in ever by force is. Mar 09 22:59:17 only if the user wants to use doze (or rather, does not want to not use it) Mar 09 22:59:32 yes Mar 09 22:59:57 ¨Also related to the multi-locale support, if you are one of those developers who has been overriding the user’s device locale within your app… test thoroughly on N, please.¨ oh... whats behind this? Mar 09 23:00:25 no context given -_- Mar 09 23:00:36 hi all, I am doing some automated testing on Android Chrome with selenium web driver and appium. What is the cleanest / best way to install Chrome on an emulator or to test on Android's Chrome in an emulated environment? I am finding it annoying having to side load APKs is that the only way? Mar 09 23:00:55 ah nvm. found it ^^ Mar 09 23:00:59 "All the classic JUnit test case base classes, like ActivityInstrumentationTestCase2 and ActivityTestCase, are officially deprecated." Mar 09 23:01:00 http://developer.android.com/preview/api-overview.html#multi-locale_languages Mar 09 23:01:04 yeah Mar 09 23:01:25 ah well. I always do full translations or none. Mar 09 23:01:45 also, wtf? Mar 09 23:01:50 Lint will abort the built if something is missing :) Mar 09 23:02:04 Google implemented /again/ only a subset of java APIs, in this case, android.icu? Mar 09 23:02:12 and /again/ in a different package? Mar 09 23:02:42 will there be at least *some* day where we can use anything without renaming the package, and rebuilding all libs we import? Mar 09 23:02:54 Do they even know how much work it is to get FHIR libs to run on Android? Mar 09 23:03:11 "Future releases of Android may deprecate additional implicit broadcasts, as well as unbound background services." what Mar 09 23:03:12 they can’t have you writing code for the existing packages. you could take that code and run it on something that’s not android Mar 09 23:03:14 what Mar 09 23:03:15 WHAT Mar 09 23:03:22 wait, WHAT? Mar 09 23:03:29 run everything foreground ;) Mar 09 23:03:30 Unbound background services are gone? Mar 09 23:03:31 ... Mar 09 23:03:32 ... Mar 09 23:03:37 Okay, who is with me? Mar 09 23:03:43 not yet, but possibly soon Mar 09 23:03:45 meeting at the local Google office tomorrow at 9 Mar 09 23:03:56 beating the managers? Mar 09 23:04:09 but seriously, Mar 09 23:04:10 WTF Mar 09 23:04:10 they have no influence Mar 09 23:04:20 well, the managers have more than the devs. Mar 09 23:04:35 seems like they want to go the iOS way Mar 09 23:04:46 with close to no background work at all Mar 09 23:04:48 we could try to get a bunch of people into the IO fireside chats, and make every question about this Mar 09 23:04:58 s73v3r: good idea. Mar 09 23:05:13 also get people into IO who disrupt the keynote with megaphone. Mar 09 23:05:19 preferably at least a few dozen. Mar 09 23:05:46 oh god no Mar 09 23:06:06 Also, why can on Android TV now the TV channel specify if it can be recorded or not? Mar 09 23:06:07 WTF? Mar 09 23:06:30 danijoo understandable, if they had the foresight to start that way to begin with - now these are major changes to apps, and even capabilities Mar 09 23:06:31 content providers like control Mar 09 23:06:50 Also, No full device encryption anymore? Mar 09 23:06:50 g00s, yeah nobody would complain if it would have been like that from the beginning Mar 09 23:06:54 now only app encryption? Mar 09 23:06:54 but now its a huge thing Mar 09 23:07:19 to allow "faster boot, and allow some apps to run without the user entering their password, as the decryption key is always available" Mar 09 23:07:21 WTF Mar 09 23:07:51 but: you finally get accessibility apps during encryption unlock Mar 09 23:08:29 i guess thats why they need to allow certain apps to run before password Mar 09 23:08:50 And great, from N on you have a hardware keystore, which can be used for many things – but only supports ECDSA, and only the NIST curve. Mar 09 23:09:24 https://developer.android.com/preview/index.html < N preview! Mar 09 23:09:25 And it doesn’t work if you unlock the bootloader, and locks you out from apps using the keystore. Mar 09 23:09:28 oh shit Mar 09 23:09:34 Napalm you are late :D Mar 09 23:09:35 too late Napalm :p Mar 09 23:09:38 :( Mar 09 23:09:41 i just noticed Mar 09 23:09:42 we are already ranting about it since hours :p Mar 09 23:09:46 Napalm stuff happens 5-6 hours before you wake up :P Mar 09 23:09:56 why did no one mention my name Mar 09 23:09:57 :( Mar 09 23:09:58 :'( Mar 09 23:10:03 Also, great! Mar 09 23:10:06 maybe its Android Napalm Mar 09 23:10:10 You can’t add CAs to the OS anymore yourself. Mar 09 23:10:16 if you do so, all apps will ignore them, Mar 09 23:10:21 unless specifically configured by the dev. Mar 09 23:10:23 danijoo: that would be awesome Mar 09 23:10:47 justJanne, thats actually not so bad Mar 09 23:10:52 danijoo: yes, it is. Mar 09 23:10:55 if you need a custom cert you can configure Mar 09 23:10:58 Nope. Mar 09 23:11:07 if you dont, you want anyone to install one and MITM you Mar 09 23:11:07 use a custom cert in your email app? Mar 09 23:11:14 use a custom cert to debug and MitM apps? Mar 09 23:11:25 yes. just install one and configure for it Mar 09 23:11:28 No. Mar 09 23:11:29 whats the problem? Mar 09 23:11:40 configure = change settings at compile time of app. Mar 09 23:11:54 only if an app, at compile time, sets the flag to allow user-added CAs, they will work. Mar 09 23:12:08 so I can’t add CAs to MitM and debug GMail anymore. Mar 09 23:12:21 small businesses can’t use their CAs with third-party apps anymore. Mar 09 23:12:25 isn’t that normally a good thing? Mar 09 23:12:30 Gmail is Google - they debug it. not you Mar 09 23:12:37 s73v3r: as long as you give the user an option, yes. Mar 09 23:12:43 danijoo: it runs on my device, it is mine. Mar 09 23:12:50 Also, you should read more laws. Mar 09 23:12:57 yes so you can compile the app to run with it Mar 09 23:12:59 but how do you stop bad guys from abusing that option? Mar 09 23:13:08 i dont want some exploit or whatever my phone and add a certificate and then be able to MITM me Mar 09 23:13:17 s73v3r: if the bad guy can modify settings in the settings of the device, Mar 09 23:13:26 they can just as well read the data directly from inside the apps. Mar 09 23:13:33 why modify an obscure setting, Mar 09 23:13:44 if they can just directly read everything? Mar 09 23:13:54 they cant Mar 09 23:13:55 or install apps that sync the content of your SD card to their servers? Mar 09 23:14:12 im not talking about stored data Mar 09 23:14:14 the only way to add a CA is by (a) specifying a PIN or password screen lock, Mar 09 23:14:15 i read about traffic Mar 09 23:14:23 talk* Mar 09 23:14:30 danijoo: and where’s the issue there? Mar 09 23:14:55 the issue is if someone manages to install a certificate on your phone and you dont notice, he can intercept trafic whenever he wants Mar 09 23:15:01 remotly Mar 09 23:15:05 danijoo: but he could also install a VPN. Mar 09 23:15:09 THE NEW SETTINGS APP ON N HAS A DRAWER Mar 09 23:15:10 and configure that. Mar 09 23:15:14 also, EU law specifically says I can decompile and debug anything I want that I have a license to use, and the developer may not intentionally prevent me from doing so. Mar 09 23:15:25 i doubt that Mar 09 23:15:28 Napalm what do you think of this "Future releases of Android may deprecate additional implicit broadcasts, as well as unbound background services. " Mar 09 23:15:34 seriously, I feel like everyone in the Android community is just ignoring existing laws. Mar 09 23:15:43 yeah we are all the bad guys :p Mar 09 23:15:49 further, i doubt that law means they have to make it easy for you Mar 09 23:15:57 s73v3r: no, they don’t have to make it easy, Mar 09 23:16:05 there. done Mar 09 23:16:08 but they can’t prevent me from doing so with non-technical measures. Mar 09 23:16:24 any technical measures are okay. Mar 09 23:16:27 really.. if you want to debug whatever you want to debug, theres nothing that stops you. just decompile it, add the trustmanager and do it Mar 09 23:16:31 clauses in the ToS aren’t Mar 09 23:16:37 this is actually a security feature and a good thing imo Mar 09 23:16:51 corporations can still use their custom certs Mar 09 23:16:54 danijoo: combined with earlier changes, it makes a lot of things harder. Mar 09 23:16:56 and you can use them for debugging Mar 09 23:17:10 but now nobody can exploit it anymore Mar 09 23:17:13 reversing GMail goes from "one afternoon" to "a full week" Mar 09 23:17:19 and people still can exploit it. Mar 09 23:17:20 thats what got harder here. exploiting. Mar 09 23:17:36 for example, by deactivating your GMail app, and install their own com.evil.DMail app Mar 09 23:17:41 with the same icon and name. Mar 09 23:17:50 now in your drawer you still see the GMail app, Mar 09 23:17:58 that requires much more than a simple cert installation which is a simple click Mar 09 23:18:00 and now it sends all traffic to them, too. Mar 09 23:18:04 danijoo: no, it’s not Mar 09 23:18:14 cert installation also requires setting up password or pin lock Mar 09 23:18:18 so Mar 09 23:18:19 which is very easily noticeable. Mar 09 23:18:27 as most users have swipe or pattern lock Mar 09 23:18:37 i dont. Mar 09 23:19:11 LOL! Mar 09 23:19:17 but you can install a work-managing app, Mar 09 23:19:24 it ads security and all that gets a bit harder is debugging (which is just a few lines to instantiate a trustmanager) Mar 09 23:19:31 which then can require a VPN Mar 09 23:19:51 danijoo: but a few days to instantiate a trustmanager in a heavily obfuscated and optimized app. Mar 09 23:20:20 also, ART goes back to JIT in N Mar 09 23:20:22 wtf... Mar 09 23:20:31 it goes to a hybrid Mar 09 23:20:43 it will AOT compile stuff in the background Mar 09 23:20:51 rather than having to do it for everything up front Mar 09 23:21:26 so now, when you update (if you’re on a Nexus, the rest of us will probably never notice), you don’t have to sit through the “Optimizing app X out of N” Mar 09 23:21:31 thats a good change but I dont really care Mar 09 23:21:38 also, suggesting people to switch from backgroundservices to GCMNetworkManager? Mar 09 23:21:39 its just to remove that view minutes sitting in that dialog Mar 09 23:21:40 uggggh Mar 09 23:21:49 gah, need to sleep so I can catch the next alphago - lee sedol game Mar 09 23:21:56 also, in N, Mar 09 23:22:02 CONNECTIVITY_ACTION is gone? Mar 09 23:22:04 wtf... Mar 09 23:23:47 ¨your background service will doze all day anyways :p no need for knowing about connectivity change¨ - Google Mar 09 23:23:48 google tightening the straps justJanne :) Mar 09 23:24:07 ^^ Mar 09 23:24:37 but i am curious, if i want to make an app like My Tracks - how the fuck would you do that now Mar 09 23:24:46 well, you know what? Mar 09 23:24:48 FUCK THIS SHIT Mar 09 23:25:08 Android Napalm will require much on my apps than Marshmallow though :/ Mar 09 23:25:13 I just spent 5 months porting the app from heavy use of a foregroundservice and an always open socket with every IRC message ever going through it. Mar 09 23:25:18 Marshmallow had only permissions Mar 09 23:25:23 to a system with a backgroundservice, Mar 09 23:25:35 and where only a single socket for rare notifications is used. Mar 09 23:25:38 and you know what? Mar 09 23:25:39 fuck that. Mar 09 23:25:54 then I’ll just waste battery like fuck all. Mar 09 23:25:56 fuck this shit. Mar 09 23:26:42 I spend months porting to a more efficient model, Mar 09 23:26:50 and Google just mows over everything. Mar 09 23:26:52 if an app is closed closed not sleep how do i load the same state that the app is in before it was closed Mar 09 23:26:59 soo.. GET_ACCOUNTS is now granted by default? Mar 09 23:27:10 danijoo: wait, WTF? Mar 09 23:27:16 danijoo, wasn't it already a few versions ago? Mar 09 23:27:31 Zharf: in L, it isn’t Mar 09 23:27:54 Beginning with Android 6.0 (API level 23), if an app shares the signature of the authenticator that manages an account, it does not need "GET_ACCOUNTS" permission to read information about that account. Mar 09 23:27:59 Zharf, no. if your app was the authorty provider Mar 09 23:28:01 then yes Mar 09 23:28:05 but not for all accounts Mar 09 23:28:18 > The GET_ACCOUNTS permission is now deprecated. The system ignores this permission for apps that target Android N. Mar 09 23:28:28 you would still need GET_ACCOUNTS permission to access.. lets say google account Mar 09 23:28:29 well, danijoo... Mar 09 23:28:38 that sounds more like you just can’t access Google account Mar 09 23:28:38 but looks like thats not the case anymore Mar 09 23:28:41 if an app is closed closed not sleep how do i load the same state that the app is in before it was closed Mar 09 23:28:44 danijoo: nope Mar 09 23:28:47 justJanne, yeah good question Mar 09 23:28:49 they also added an API to access user info Mar 09 23:28:52 justJanne, you can still listen to connectivity_action, just not with the broadcastreceiver defined in manifest Mar 09 23:28:54 as they have that new API, Mar 09 23:28:56 danijoo: it says its not required anymore. if you target the new api Mar 09 23:29:03 it seems really like they removed the GET_ACCOUNTS Mar 09 23:29:08 and you just don’t get anything Mar 09 23:29:17 well lets not speculate Mar 09 23:29:21 nobody tried it Mar 09 23:29:41 but I also doubt they will get random access to all accounts Mar 09 23:29:45 that would be horrible Mar 09 23:29:49 danijoo: didnt you see the release notes? im not installing that on any of my devices Mar 09 23:30:39 also, all JCE providers are now gone from Android? Mar 09 23:30:41 WTF... Mar 09 23:30:43 plenty of people on /r/android have already flashed it. I’m sure we could ask them Mar 09 23:30:52 so we now have to package BouncyCastle in every single app? Mar 09 23:31:01 uuuuughgggghhhhh Mar 09 23:31:09 s73v3r, or make speculations until justJanne gets a heart attack ;) Mar 09 23:31:48 please help Mar 09 23:32:14 linuxuz3r, thats not how to get help here Mar 09 23:32:14 linuxuz3r: you have to save it before you close Mar 09 23:33:24 I'm mostly just annoyed by dozemode Mar 09 23:33:53 yeah beside doze everything seems handleable Mar 09 23:33:55 Seriously.......,.,.,..,.,.,..,.,,.,.,.,.,..,.,.,.,.,..,.,.,.,..,.,.,...,..,.,.,.,..,.,. Mar 09 23:33:59 )=(&); ¤ ’⅝⅞±¤↑™⅝= Mar 09 23:34:02 some code changes here and there Mar 09 23:34:07 it's getting increasingly hard to make myself an app that notifies me when I should leave for the bus stop Mar 09 23:34:13 and ofc some corner cases Mar 09 23:34:28 Zharf: "Just Use GCM™" ~ danijoo Mar 09 23:34:35 yeah, no Mar 09 23:34:50 Zharf: send a push every 10 seconds .... LOOOOL Mar 09 23:34:51 I don't want to handle user data in servers when there's absolutely no need to Mar 09 23:35:00 Zharf: exactly. Mar 09 23:35:01 that was not in the doze context but .. ok ^^ Mar 09 23:35:18 danijoo: yes, it was - we talked about doze for the last few hours. Mar 09 23:35:23 and you still dont have to sent user data over gcm Mar 09 23:35:24 :) Mar 09 23:35:31 but I still have to use GCM. Mar 09 23:35:37 and sending wakeups all the time is even worse. Mar 09 23:35:44 (and will get me blacklisted) Mar 09 23:35:53 meh. lets not start this again please Mar 09 23:35:56 (which is even worse, Google now can control who can push to apps, and who can) Mar 09 23:36:20 the screen zoom is nice Mar 09 23:36:46 Why did it take so long for a useful builtin accessibility future Mar 09 23:36:51 took* Mar 09 23:37:22 zzz now, need to get up in 4 hours to watch the alphago game -.- Mar 09 23:37:29 Zharf: Local alarms should be able to wake up Doze. Otherwise how would an alarm clock app work? Mar 09 23:37:30 the reply feature on notifications is the best Mar 09 23:37:35 killed my app idea though Mar 09 23:37:49 Napalm, yeah. i like that too Mar 09 23:38:07 so, without resorting to unbound services, how would one build something like a (foreground) music player service? Mar 09 23:38:07 s73v3r: which is useful how exactly when the Bus is (knowingly) 20 min delayed? Mar 09 23:38:23 Maurits-: you bind it to a notification. Mar 09 23:38:32 how would you know that if you’re not connecting to a network? Mar 09 23:38:47 Maurits-, forground is the keyword ;) Mar 09 23:38:52 well, that’s why you are connecting to a network. Mar 09 23:39:02 but he said he didn’t want to Mar 09 23:39:07 yeah, but that's not a 'bound' service in the API sense of the word, right? Mar 09 23:39:11 No, he said he didn’t want to host any data himself. Mar 09 23:39:22 that doesn’t mean he doesn’t want to use the network. Mar 09 23:39:24 Maurits-, but its also not background service in the sense of the word Mar 09 23:39:34 for example, my local transit authority has a neat REST api for delays. Mar 09 23:39:36 its a foreground service Mar 09 23:39:50 oh yeah, you're right Mar 09 23:39:51 but their API is limited to 60 calls per IP per minute. Mar 09 23:39:55 s73v3r, I have a server that tracks busses, my idea is to have the app locally start tracking it before the planned leaving time to see how the busses are doing, etc Mar 09 23:39:56 didn't notice the word background there Mar 09 23:39:57 more than enough for a single device, Mar 09 23:39:58 sorry Mar 09 23:40:10 but not nearly enough for hosting it on a server Mar 09 23:40:19 Zharf: They don’t want that kind of thing on the app, though. Drains battery Mar 09 23:40:26 (and Zharf’s reason of "not storing userdata" is also more than valid) Mar 09 23:40:28 they want you to use push Mar 09 23:40:33 s73v3r: in that case, why use a browser? Mar 09 23:40:36 just push images! Mar 09 23:40:43 no, that is just stupid Mar 09 23:40:44 why even have anything on the device? Mar 09 23:40:46 use VNC! Mar 09 23:40:46 I don't care about user data, I don't want to store it Mar 09 23:40:50 it's not needed Mar 09 23:40:50 ^ Mar 09 23:41:03 the device can handle it just fine Mar 09 23:41:13 not if everyone takes that opinion Mar 09 23:41:18 oh wow this gcm convo is still going on Mar 09 23:41:34 missingno: well, no background services is a big deal. Mar 09 23:41:40 And doze on "screen is off", too Mar 09 23:41:47 s73v3r, yeah. lets all just poll every 5 minutes -_- Mar 09 23:41:57 device can handle it.. for 1 hour Mar 09 23:42:04 danijoo: wrong. Mar 09 23:42:12 ok, 1.5 hours Mar 09 23:42:15 Moto G 2014 can handle it for 46 hours. Mar 09 23:42:21 yeah Mar 09 23:42:22 Source: Running something worse: Mar 09 23:42:25 while plugged in Mar 09 23:42:26 Does using GcmNetworkManager (which I understood to be one of the recommended "workarounds" for background services) in any way imply hosting any data yourself? Mar 09 23:42:26 :) Mar 09 23:42:27 polling every 3 seconds, Mar 09 23:42:28 running how many apps, though? Mar 09 23:42:30 unplugged. Mar 09 23:42:37 3 apps that all poll every 3 seconds. Mar 09 23:42:42 for debug purposes. Mar 09 23:42:48 only 3? bump that up to 20 Mar 09 23:43:00 well, the 20 apps wouldn’t poll every 3 seconds. Mar 09 23:43:07 why not? Mar 09 23:43:09 they’d poll, like you said, every 5min. Mar 09 23:43:11 yeah because other devs are more responsible Mar 09 23:43:35 Again, because the "3 sec" was a demo to simulate 20 apps ;P Mar 09 23:43:38 s73v3r, I'm not saying that doze doesn't have a good idea behind it, it's just being too restrictive with no way for users to manually override it for some apps, Mar 09 23:43:46 if something would poll every 5 min on my phone, it wouldnt get a chance to do that on day 2 Mar 09 23:43:49 the average polling interval that GCM guarantees is 14min Mar 09 23:44:06 who gets to decide which developer gets to poll at what interval Mar 09 23:44:07 if we use that in every app, we can safely run the phone for days. Mar 09 23:44:12 s73v3r: the user. Mar 09 23:44:14 s73v3r, user Mar 09 23:44:36 so now every app has to build in a slider with poll values? Mar 09 23:44:44 is that the same user you dont want allow to decide where his data is stored via privacy policy ? Mar 09 23:45:01 danijoo: no, that’s a law. Mar 09 23:45:08 that’s what politicians don’t want to allow. Mar 09 23:45:12 there’s a difference: Mar 09 23:45:19 clearly they don’t care that much about it Mar 09 23:45:20 I’m not a politician yet. Mar 09 23:45:32 danijoo, I don't understand your point to be honest Mar 09 23:45:39 also, danijoo, nice that your app supports Doze. Mar 09 23:45:50 justJanne, it does. Mar 09 23:45:52 But this just killed a fucking lot of apps that have valid use cases. Mar 09 23:46:00 and which can’t be supported on Doze. Mar 09 23:46:09 like what? Mar 09 23:46:14 Zharf, you missed the start Mar 09 23:46:17 Microsoft Health, for example. Mar 09 23:46:22 and therefor the reference Mar 09 23:46:29 Activity trackers, Mar 09 23:46:32 I also don't think GcmNetworkManager's PeriodicTask has any sort of 14-minute limit. Mar 09 23:46:40 apps connecting to distributed systems Mar 09 23:46:47 never used it so I cant argue that :/ my activity tracker works fine on doze thoguh Mar 09 23:47:07 danijoo: does it use Google Fit as backend? Mar 09 23:47:10 also, apps requiring push notifications in networks without connections to the internet Mar 09 23:47:12 justJanne, no Mar 09 23:47:16 say, company intranets Mar 09 23:47:31 danijoo: then does it only track steps/distance ran/walked/etc? Mar 09 23:47:41 danijoo, current doze is only on if the device isn't moving Mar 09 23:47:57 Zharf, i know Zharf Mar 09 23:48:38 so your device would never doze when you're carrying it around, unless you update to N Mar 09 23:48:41 justJanne, no it also sends notifications to my armband. but no gps tracking if thats what you mean Mar 09 23:49:04 danijoo: so, how would you implement GPS tracking *without* using any Google Play API now? Mar 09 23:49:16 but this thing is a real battery sucker so i dont waer it daily :) Mar 09 23:49:44 mostly in the laboratory because of the built in stopwatc Mar 09 23:50:39 i wouldnt do it without the api because im not a fan of reinventing wheels Mar 09 23:51:17 well, danijoo, imagine your app has no access to the internet. Mar 09 23:51:24 how would you implement push notifications. Mar 09 23:51:29 how do I return to the previous activity? I'm using onBackPressed and it works, but is that the recommended way? Mar 09 23:51:33 wat? Mar 09 23:51:42 danijoo: well, in intranets. Mar 09 23:51:57 hagabaka: there’s a finish() and a setResult for the return as well Mar 09 23:52:05 ah Mar 09 23:53:57 Are AndroidJUnitTests asynchronous or something? I’m testing a service and getting behavior where all my tests pass individually but not together, like the individual tests are actually using the same service even though each one launches its own. Mar 09 23:54:18 I'm still confused as to to what the problem was w.r.t. using GcmNetworkManager (or JobScheduler directly) instead of a background service, in the context of a thing where you don't want to run any servers, just periodically look at some data. Mar 09 23:54:33 should I put my "request codes" in the resource file, or make up constants? Mar 09 23:54:57 hagabaka: constants, usually Mar 09 23:55:02 fizzie, the problem is you wont be able to look periodically anymore Mar 09 23:55:34 danijoo: Why not? Schedule a persistent, periodic task with GcmNetworkManager. As far as I can tell, that doesn't mean you'd have to use GCM for networking or anything like that. Mar 09 23:55:36 then do I need to use different values for each activity? Or just different values for different requests? Mar 09 23:55:39 justJanne, no idea without further investigation on that topic tbh. possibly polling or a socket. I Mar 09 23:55:54 Google wants you to do the periodic looking on a server, and then push to the device Mar 09 23:55:55 danijoo: but those aren’t available during doze ;) Mar 09 23:55:56 fizzie, your periodic task wont run while the phone sleeps Mar 09 23:56:04 ^ Mar 09 23:56:28 now imagine trying to write an app that connects to a server that doesn’t support any kind of push (say, an IRC server directly). Mar 09 23:56:37 justJanne, it will for a foreground service. its not ideal but thres no jack of all trades Mar 09 23:56:56 people must stop expect super long battery lifes without downsites Mar 09 23:57:18 danijoo: well, so now I have a foreground service for quasseldroid, one for my GPS tracker, one for my own email->notification system, etc? Mar 09 23:57:22 irc protocol is not amicable to doze or long battery life Mar 09 23:57:29 stateful protocols are bad like that Mar 09 23:57:30 danijoo: Then I'm very confused. Because I assumed using GcmNetworkManager + PeriodicTask was what the recommendations about "switch to GcmNetworkManager" meant. Mar 09 23:57:53 justJanne, thats a weird combination for a company intranet Mar 09 23:57:59 fizzie: you can get woken up by GCM if you send a high priority message from a server Mar 09 23:58:06 danijoo: the intranet was just an example ;P Mar 09 23:58:18 justJanne: That's not what GcmNetworkManager is all about, though. Mar 09 23:58:19 there are many more use cases like that. Mar 09 23:58:28 pfn, exactly Mar 09 23:58:50 pfn: indeed. But there aren’t many alternatives to such options. Mar 09 23:58:56 I mean, all I have is http://developer.android.com/preview/features/background-optimization.html which is all "For example, JobScheduler and GcmNetworkManager provide robust mechanisms to schedule network operations when specified conditions, such as a connection to an unmetered network, are met." Mar 09 23:59:05 In fact, Mar 09 23:59:17 my plan for the new rewrite of the app was to use push notifications by default, Mar 09 23:59:24 fizzie: And one of those conditions is “not in Doze” Mar 09 23:59:29 via the same concept GCM uses (json via a socket of 28min timeout) Mar 09 23:59:43 fizzie, if you set a task to run once every hour, and dooze kicks in it will be delayed to 2, 4, 8, 16 hours until the device leaves doze Mar 09 23:59:45 and allow people to use the old method if they wish to. Mar 09 23:59:52 (which would use a foreground service) Mar 10 00:00:21 justJanne, i already said im with you on letting people switch that on (off) Mar 10 00:00:33 you know, I think I’m beginning to not like Crashlytics Mar 10 00:00:52 s73v3r, what part of it? Mar 10 00:00:57 the amount of crash reports and stack traces I get with absolutely none of my code in it is too damn high Mar 10 00:01:27 and you dont get them with others? Mar 10 00:01:43 i’ve noticed far more with them than with the others Mar 10 00:02:12 danijoo: did you know? Mar 10 00:02:15 Doze has a whitelist. Mar 10 00:02:18 at compile time Mar 10 00:02:22 yes Mar 10 00:02:25 (but wrong usage gets you banned from store) Mar 10 00:02:37 whitelist is where Mar 10 00:02:54 did you also know that it’s very confusingly written, and depending on interpretation is allowed for IM apps, or only IM enterprise apps Mar 10 00:02:55 but you don’t use the store anyway, so you shouldn’t have a problem Mar 10 00:02:57 http://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases Mar 10 00:03:09 s73v3r: well, I don’t use it – my users do. Mar 10 00:03:47 but IIRC DH said that the whitelist doesn’t work anyway Mar 10 00:03:58 DH? Mar 10 00:04:31 Dianne Hackborn? Mar 10 00:04:35 ahh Mar 10 00:04:46 if an app is closed closed not sleep how do i load the same state that the app is in before it was closed Mar 10 00:04:56 you have to save it before you close Mar 10 00:04:59 linuxuz3r, safe it Mar 10 00:05:01 linuxuz3r: well, store the state somewhere? Mar 10 00:05:09 in file, in db, in sharedpreferences? Mar 10 00:05:12 in persistentstorage? Mar 10 00:05:16 there are many options Mar 10 00:05:19 on clay tablet? Mar 10 00:05:23 if you want, you can also let the user memoize it, Mar 10 00:05:31 and type it back in later on Mar 10 00:05:33 ok will look at it Mar 10 00:05:43 sent it to your server and send it back via GCM when the device wakes up Mar 10 00:05:56 danijoo: ROFL Mar 10 00:07:01 linuxuz3r, sharedprefs will be the easiest way to implement if you only need some key/value pairs Mar 10 00:09:25 just make sure to do the saving periodically, as you don’t always get a warning before your app is killed Mar 10 00:09:47 onStop is your friend Mar 10 00:11:21 is that guaranteed to be called? I thought it wasn’t Mar 10 00:11:49 apps dont get killed in foreground and its called when the app is minimized Mar 10 00:12:00 s/app/activity Mar 10 00:12:08 i thought that was onPause Mar 10 00:12:18 onPause is for focus Mar 10 00:12:24 if there is a dialog on top of your app, onPause is called, Mar 10 00:12:26 but not onStop Mar 10 00:12:30 ^ Mar 10 00:12:34 if there is another full screen app on top, Mar 10 00:12:39 onStop and onPause are Mar 10 00:12:45 if your app is swiped from the recents, Mar 10 00:12:55 onDestroy and onStop and onPause are called Mar 10 00:13:19 what if you’re killed for memory? Mar 10 00:13:24 yup. onDestroy is the one thats not guarantied on a kill though Mar 10 00:13:43 for a swipe its called but not for low memory Mar 10 00:13:45 worst of all: not even finalize is guaranteed to be killed. Mar 10 00:13:50 *called Mar 10 00:14:00 even thought Java standard says it has to be Mar 10 00:14:37 since when has Google cared about Java standards? Mar 10 00:14:40 java standard has no power here Mar 10 00:14:53 because we are not in the jvm Mar 10 00:15:13 at least thats what ##java will tell you :p Mar 10 00:16:12 not related directly to android, but interesting nontheless: Mar 10 00:16:12 An internal report [1] issued by the US Federal Trade Commission in 2012 concluded that Google’s search rankings routinely put Google’s financial interests ahead of those of their competitors, and anti-trust actions currently under way against Google in both the European Union [2] and India [3] are based on similar findings. Mar 10 00:16:22 [1] http://www.wsj.com/articles/how-google-skewed-search-results-1426793553 Mar 10 00:16:30 [2] http://www.bloomberg.com/news/articles/2015-04-14/google-faces-fines-search-constraints-as-eu-decision-approaches Mar 10 00:16:36 [3] http://www.dailytech.com/India+Could+Rock+Google+With+Its+Biggest+Antitrust+Fine+Yet++5B+USD/article34488.htm Mar 10 00:17:45 I have a SeekBar with a linear gradient background. How can I get the color in the gradient at the seek position? Mar 10 00:17:51 ¨in 2012¨ .. ¨currently¨ Mar 10 00:18:10 or how do I get a color of a linear gradient at a percentage of its width? Mar 10 00:18:34 danijoo: politics. Currently = this decade Mar 10 00:18:40 true :( Mar 10 00:19:02 unless greek needs another billion :p Mar 10 00:19:09 "billion" lol Mar 10 00:19:19 200 billion á year Mar 10 00:19:20 isnt it billion? Mar 10 00:19:27 yeah Mar 10 00:19:43 english billion always confuses me Mar 10 00:20:10 me too Mar 10 00:20:34 oh, interesting. in 2010, Facebook started sending "go out and vote" reminders to some of its users. Mar 10 00:20:51 question: what if it would only send those to people of a specific party? Mar 10 00:21:04 I hate the modern world sometimes :/ Mar 10 00:21:05 i believe that was raised every time that story was brought up Mar 10 00:21:16 wasnt there also this big ´mood´ experiement ^^ Mar 10 00:21:20 yeah Mar 10 00:21:24 thats also get retold every time Mar 10 00:21:25 well, which one? Mar 10 00:21:34 the one which ranked the newsfeed differently, Mar 10 00:21:38 the one where they showed negative posts on top Mar 10 00:21:39 yeah Mar 10 00:21:44 or the one where they crashed the app every now and so often, Mar 10 00:21:53 to test impact on the users mood Mar 10 00:21:57 (and loyalty= Mar 10 00:22:42 theres also this super funny story of that guy targeting his roommate with targeted facebook ads :D Mar 10 00:22:58 yeah, I remember that. Mar 10 00:23:00 danijoo: you know, the worst part is, Google might actually do this unintentionally. Mar 10 00:23:05 I laughed hard on that one Mar 10 00:23:13 their results are heavily customized. Mar 10 00:23:38 So, any Rx gurus in here: if I want to make a hot observable am I probably going to want to use a Subject for that? Mar 10 00:23:58 Or does it depend on the situation? Mar 10 00:23:58 what is a _hot_ observable? Mar 10 00:24:35 i use Subjects if im too lazy to write observable classes Mar 10 00:24:41 mostly for views Mar 10 00:24:54 onclicklistener -> subject -> subscriber Mar 10 00:26:22 I want to make an observable on a subclassed imageView that takes any bitmap passed into it and returns a color palette, so a class can subscribe to it and any time the bitmap changes it will get the updated palette Mar 10 00:27:07 that sounds like a lot of code so you might better encapsulate that into an observable Mar 10 00:27:40 im not that good in Rx though - better wait for other responses Mar 10 00:28:56 The biggest part of Rx that confuses me is how to create an observable that can be passed in new information from an outside source. Create an observable from a set of info is easy Mar 10 00:29:22 i guess thats what subjects are for . Mar 10 00:30:21 konk3r: PublishSubject? Mar 10 00:30:28 that’s exactly what it is for Mar 10 00:32:00 Okay, so I do want a subject :) Mar 10 00:32:07 Great, thanks for pointing me in the right direction Mar 10 00:32:36 I knew I could make it work with a Subject, I just wanted to make sure I was understanding its purpose correctly Mar 10 00:35:12 or how do I get a color of a linear gradient at a percentage of its width? < you need too adjust carefuly the values in the positions array and the colors array, it's very annoying because that means recreating a linear gradient if you plan to change the gradient Mar 10 00:37:08 adq, cant you calculate it from start and end hexcolor? Mar 10 00:37:37 i think he wants the gradient to move with the seekbar but it's not very clear Mar 10 00:38:45 oh i thought he wanted to color that the seekbar is pointing to Mar 10 00:39:09 ie bar goes from black to white and when its at 40% he wants the hex of 40% black Mar 10 00:39:34 is there a way to programmatically "clear" the clipboard on android without rebooting? I'm trying to get phone into the proper state to debug something Mar 10 00:39:34 oh then it's easy, with hsv color Mar 10 00:39:44 but he mentionned linear gradient Mar 10 00:40:26 grekkos, http://developer.android.com/reference/android/text/ClipboardManager.html Mar 10 00:40:43 #android Mar 10 00:40:59 oops Mar 10 00:41:33 ClipboardManager#setText(¨¨) should do it Mar 10 00:42:26 danijoo: I have a use case, btw. Mar 10 00:42:52 Next wednesday we won’t have internet in uni, because they rewire everything Mar 10 00:43:05 but we’ll have a local IRC server, bouncers, and local everything. Mar 10 00:43:20 having push notifications when in the cafeteria – 2km from the office – would be neat. Mar 10 00:46:45 I saw earlier on here that I can get banned if I use mac address or hardware identifiers... such as ANDROID_ID is there a blog post about this somewhere from android dev? The last blog post I see from Android dev is http://android-developers.blogspot.com/2011/03/identifying-app-installations.html Mar 10 00:47:22 danijoo: I'm not sure if it'll take null, although I guess that does literally clear the clipboard like I asked haha Mar 10 00:47:46 danijoo: situation i was trying to repro is the initial device boot when there is nothing in the clipboard and getPrimaryClipData could return null Mar 10 00:47:48 grekkos, i didnt say null. empty string was what i meant Mar 10 00:47:58 oh i see Mar 10 00:47:59 danijoo: I know :) Mar 10 00:48:19 but I guess that did answer what I asked, it's funny because I never considered that Mar 10 00:49:18 in any case I think I fixed the bug Mar 10 00:49:26 but that'll be an interesting one to find Mar 10 00:49:29 launching on a clean boot Mar 10 00:49:54 worst debugging scenario ever Mar 10 00:50:00 restart for every try :D Mar 10 00:50:28 eghdk, I don't know of a blog post but this SO answer is detailed: http://stackoverflow.com/a/17625641/1048340 Mar 10 00:54:18 android tv gui is weird Mar 10 00:55:07 eghdk: you could generate a UUID type 1 ;)))))) Mar 10 00:55:11 the normal menu operates in 720p apparently, fooling AIDA64. Yet the screen is 4k ans indeed runs 4k... Mar 10 00:55:16 (the first 64bit of that are the MAC) Mar 10 01:10:05 i'm lucky if i can keep my app working for just a few seconds with all these new background optimizations :/ Mar 10 01:12:10 kroot if you are around, any ideas about "Future releases of Android may deprecate {...} , as well as unbound background services." Mar 10 01:12:27 because the most optimal thing is not to run the app? It realises this and self destructs? :D Mar 10 01:12:48 Taios 100% efficiency :) Mar 10 01:13:04 amazing xD Mar 10 01:13:26 "we have surpassed even iOS in battery life, by not running the apps at all!" Mar 10 01:23:16 sorta wishing I didn't use dagger now hah. Manual dependency injection seems easier Mar 10 01:23:35 can't figure out how to wire up dagger for my tests now Mar 10 01:24:06 can I use the same module/component as I used in the app for my tests? Mar 10 01:36:08 i'm trying to use my webcam as my emulator camera. when i try, i get the popup `Unfortunately, Camera has stopped.` how should i debug this? Mar 10 01:38:31 by not using the emulator Mar 10 01:39:54 pfn: i was afraid that'd be the case Mar 10 01:40:20 are android emulators considered garbage? Mar 10 01:41:06 pfn have you read through the N changelogs Mar 10 01:42:07 what changelogs Mar 10 01:43:39 wondering if you looked at this specifically https://developer.android.com/preview/behavior-changes.html Mar 10 01:45:53 do y'all think `emulator -avd -debug camera` will help? Mar 10 01:47:16 it looks like it will. i'm excited to learn about android as I'm dev-ing this project. any books you recommend? i found one called 'agile android' that looks promising. Mar 10 01:49:29 i'd be skeptical of any book mixing android with "agile", just because .. wtf is unagile android Mar 10 01:49:51 i wonder if there's a way to replace the emulated camera with a static image. my debug didn't display any useful info. Mar 10 02:06:42 what is the pixel C cost w/developer discount ? Mar 10 02:18:48 justJanne: android.icu? What's that? Mar 10 02:19:31 yah .commitNow() \o/ Mar 10 02:22:21 loke: it's where they put burnt out #android-devs Mar 10 02:22:59 snakeryslug: Well yeah, I'm happy that I don't do Android (any mobile development actually) development full time. Mar 10 02:24:03 loke its becoming more stressful :( Mar 10 02:24:20 back in 2010, things were primitive, but ut was wild west and fun Mar 10 02:25:09 g00s: I think a lot of it is made worse by having multiple generations of wildly different API's sitting in the same calsses, shoehorned in eachother. Mar 10 02:25:43 oh yeah, looking at these N changes wouldn't be nearly as daunting if N was all I had to support Mar 10 02:26:43 In a way it's like doing HTML/CSS. You have a real feeling of accomplishment when you manage to do a specific thing, only to be plunged into depression when you realise that this thing you just spent an hour on getting right should, using a decent API, only take 5 minutes. Mar 10 02:27:21 i'm working on my second android project ever so i'm in the shallow end. Mar 10 02:27:37 it took me a while to get multipart web requests w/ file uploads working. Mar 10 02:27:54 another way its like html/css is that i feel like i'm spending too much time banging head against apis, rather then gaining experience and wisdom about solving complex problems Mar 10 02:29:15 g00s: Yes, true. But to be fair, you _are_ gaining experience in solving complex problems. Those complex problems being things like... Putting an element in the centre of the page. Mar 10 02:29:26 loke lol Mar 10 02:29:28 lol Mar 10 02:30:02 I will take that as a nod of agreement. :-) Mar 10 02:30:14 hoooooolyyyyyy shiiiiiit!! Mar 10 02:30:17 Android N PREVIEW?! Mar 10 02:30:19 WUUUUT Mar 10 02:30:30 Afzal snooz, you're late :) Mar 10 02:30:37 the crowd already left :) Mar 10 02:30:42 https://www.reddit.com/r/nexus5x/comments/49jwbs/ota_update_for_nexus_5x/ Mar 10 02:30:45 g00s I had a headache the whole day lol. Didn't checked reddit :D Mar 10 02:30:52 also don't have a Nexus 5x :( Mar 10 02:31:21 i dont think N is coming to nexus 7 2013 :( fuckers Mar 10 02:31:33 I was too busy enjoying the Marshmallow on my Z5C lol Mar 10 02:31:35 got it two days ago Mar 10 02:33:07 wow java 8 Mar 10 02:33:10 crazy stuff man Mar 10 02:33:24 finally in the promised land Mar 10 02:33:34 in 2019 Mar 10 02:34:05 but you can use lambdas :) Mar 10 02:34:58 so scala 2.12 will work on android :> Mar 10 02:35:17 yeah i guess if you say minSdk=N :) Mar 10 02:35:18 ew scala Mar 10 02:35:27 brah, kotlin is where it's at Mar 10 02:35:44 lol, no Mar 10 02:36:03 Afzal the scala presence on #android-dev has doubled recently ... Mar 10 02:36:10 after gordon_ joined the ranks :) Mar 10 02:36:10 that sucks Mar 10 02:36:37 have you tried ? Mar 10 02:36:52 no i just don't ike the scala community for some reason Mar 10 02:37:03 (i don't know the reason) Mar 10 02:37:04 gordon_ i did back in ... 2009 ish ? Mar 10 02:37:12 because.. it doesnt hate everyone ? Mar 10 02:37:19 i dunno Mar 10 02:37:39 monads, I just dislike that word. Mondas Mar 10 02:37:41 monads Mar 10 02:37:44 like gonads Mar 10 02:37:56 valid arguments Mar 10 02:38:05 let me google monads in kotlin for you.. Mar 10 02:38:25 sure, but scala people say it a LOT Mar 10 02:38:35 at least the scala people i met 3 years ago Mar 10 02:38:45 because it solves problems ? Mar 10 02:38:49 i dunno Mar 10 02:38:53 it's the word i don't like Mar 10 02:39:11 like 90% of people who have no idea what they're talking about Mar 10 02:39:17 dont know where hate came from Mar 10 02:39:37 yes exactly, it's just there. Irrational hate is the hardest to get rid of :) Mar 10 02:39:52 suprisingly kotlin and ceylon community hates scala more recently Mar 10 02:39:58 sound I buy nexus 5x for this Android N? Mar 10 02:40:07 should* Mar 10 02:40:18 I miss having the latest dev preview Mar 10 02:51:00 gordon_ don't really see anything in the ceylon community ... Mar 10 02:51:13 not really following the kotlin community Mar 10 02:59:31 am I mistaken or android N has multiwindow support ? Mar 10 02:59:39 it does! Mar 10 02:59:46 yes Mar 10 02:59:46 finally Mar 10 02:59:55 even for small screen? **** ENDING LOGGING AT Thu Mar 10 02:59:58 2016