**** BEGIN LOGGING AT Thu Jan 19 03:00:02 2017 Jan 19 03:11:57 cm_at_work, yes Jan 19 03:20:16 Thanks a lot pfn Jan 19 03:36:30 They need to make it very clear that you cannot test IAP on an emulator Jan 19 03:36:57 It prevents the ServiceConnection yet throws 0 errors Jan 19 03:38:09 orbyt_ hm, wouldn't IAP depend on Play Services ? Jan 19 03:38:54 Yea, it uses IPC to talk to the Play Store app, however all emulators I use support Play services Jan 19 03:42:53 <_raw_> Is it possible to post on timeline of another app without using share function? Jan 19 03:43:57 <_raw_> anyobody here? Jan 19 03:45:41 timeline? Jan 19 03:46:14 _raw_: what do you mean? if the service the other app uses to pull its data has a public API you can use then yes Jan 19 03:47:04 <_raw_> I want to post on a application called 'LINE' from my own app. Jan 19 03:48:03 have a look at the line sdk Jan 19 03:48:58 <_raw_> hmm Jan 19 03:50:40 <_raw_> if there is no public API then its impossible right? Jan 19 03:50:59 <_raw_> teasp00n: if there is no public API then its impossible right? Jan 19 04:17:33 "impossible" because there's no public api... lol Jan 19 04:23:58 Impossible to do it reliably, I guess. Jan 19 04:25:30 Lvl4Sword: not impossible but supporting an app that only works by reverse engineering a proprietary protocol is a PITA. Jan 19 04:26:06 teasp00n: well yeah, I wasn't saying it was simple by any means. But it seems like that user just gave up all together Jan 19 04:26:18 Kind of why the lol Jan 19 04:31:57 I think refusing to give up would be more lol-worthy. Jan 19 04:35:25 i lol, therefore i am ! Jan 19 04:35:53 TacticalJoke halp, too many tabs open in my browser ! Jan 19 04:37:45 Cmd+W is a short-term solution. :3 Jan 19 04:38:13 Making it not remember tabs from last time is the ultimate solution. Jan 19 04:38:36 oh no, can't do that with FF - its too unstable. have to quit often Jan 19 04:38:38 I am an ex-addict. I know how bad it is. Jan 19 04:55:33 "A Beginner's Guide To Finding A Therapist" Jan 19 04:55:44 "They’ll ask you why you’re seeking therapy, your experience, if any, with therapy in the past, and your family history with mental illness." Jan 19 04:55:56 "Have you been an Android developer in the past" Jan 19 05:03:20 "I prefer not to answer." Jan 19 05:05:37 "Do you struggle with basic tasks, like getting unit tests to pass" Jan 19 05:05:52 * konk3r shudders Jan 19 05:06:04 "Do you face anxiety when making decisions, like choosing between mvc, mvp, mvvm, and viper" Jan 19 05:06:08 Do we have to bring up unit tests in casual conversation? Some of us have ptsd here Jan 19 05:07:36 Maybe I'm weird, but I love unit tests. :3 Jan 19 05:07:50 TacticalJoke do you use roboelectric / Jan 19 05:07:54 Nah. Jan 19 05:08:00 I do, so long as it doesn’t involve robolectric or espresso Jan 19 05:08:10 Mockito Crew represent. Jan 19 05:08:14 Hahaha Jan 19 05:08:46 TacticalJoke so then technically you are doing instrument tests, with Junit plain runner right ? Jan 19 05:09:13 Yeah, I'm running tests on the JVM with some mocking. Jan 19 05:09:27 oh the jvm Jan 19 05:09:28 Though for the most part I prefer decoupling from Android and testing my decoupled stuff. Jan 19 05:09:42 To be fair, once you start to think of the Android framework as something to be avoided at all costs testing your apps becomes a lot easier Jan 19 05:09:46 I know that's easier said than done. Jan 19 05:09:51 Haha yeah Jan 19 05:09:51 Yeah. Jan 19 05:10:25 I love my tests. They're like little security guards standing at various doors. Jan 19 05:10:52 I think the first word of advice I’m going to give to all incoming Android devs from this point on is to not view the android framework as the base for building your apps on, just view it as a few lifecycle hooks and keep everything else in plain old java classes Jan 19 05:11:08 Heh, “a few” Jan 19 05:11:44 konk3r i think most of us try that to some degree ... Jan 19 05:11:46 Oh yeah. That is a mindset I definitely like. Jan 19 05:11:50 devil in the details tho Jan 19 05:12:17 It’s so hard to actually do without coupling your code so much it defeats the purpose Jan 19 05:12:34 The highest point of Android development for me was when they finally added JVM-testing support to AS. Jan 19 05:12:46 I guess it was mainly about adding it to Gradle. Jan 19 05:12:54 g00s: As soon as you need to tie into a 3rd party library (Facebook) or launch a new activity it gets a hell of a lot more complicated =/ Jan 19 05:14:23 i'm going to be permanently unsatisfiable until i don't need multidex and 64k limit is no more Jan 19 05:14:46 constant reminded i'm using an OS from 2007 Jan 19 05:15:07 Speaking of Gradle, I finally convinced my company to let us switch from our app consisting of the main app and 2 inlined libraries into a single app, this is the happiest day I’ve had at this company Jan 19 05:15:36 Maybe I just don’t understand Gradle well enough, but inlined gradle build files was a nightmare Jan 19 05:18:43 luckily i haven't touched my gradle build files in about a year Jan 19 05:19:08 i came to the conclusion that if you need to go off the path or what cookbook recipes google gives you , by much, its not good Jan 19 05:19:16 Agreed Jan 19 05:19:39 so i gave up trying to master or understand it :D Jan 19 05:19:47 because i just forget it anyhow Jan 19 05:20:07 Honestly, gradle is complicated enough that I’ve come to the realization that I’m never going to be “proficient” in it Jan 19 05:20:33 I’m going to be happy being comfortable enough to slap it around as little as I need to in order to get it to compile Jan 19 05:32:13 Hey, mates, I have no idea what topic you are talking about. Is it Android development? It all went above my head Jan 19 05:50:49 So for IAP I have to bind a service to communicate with the Play store app via IPC. Is the norm to bind the service on app start and keep it bound throughout the life of the app? Or do you bind and unbind only when a purchase is about to be made? Jan 19 05:58:51 during slow gradle builds, they should just show this .. http://i.imgur.com/P5xcORW.gifv Jan 19 06:04:39 ))))) Jan 19 06:04:49 and music? Jan 19 06:06:23 g00s: that track https://www.youtube.com/watch?v=MV_3Dpw-BRY Jan 19 07:01:35 Is it bad practice to call setSelection in the getView method of an adapter? It seems to lead to setSelection being called a lot more often than necessary. Jan 19 07:43:45 Hi, using LocationSettingsRequest is there a way to get notified when user presses cancel instead of ok Jan 19 07:43:55 or dismisses the dialog Jan 19 08:24:16 In AsyncTask. Does all the async operations need to happen in the doInBackground() ? Jan 19 08:24:37 And, do I have to pass the URL to it? and I pass all null's ? Jan 19 08:24:49 can* I pass all null's Jan 19 08:25:34 you can pass any arguments. if you can handle null gracefully then go ahead Jan 19 08:27:35 In my "SplashScreen" Im doing an autologin. calling like if(asyncTask()){ // } Jan 19 08:28:02 will it wait for the bool to return ? Jan 19 08:29:20 how that would work Jan 19 08:30:02 asyncTask is asynchronous. asyncTask.execute() will be done immediately and doInBackground() will do its job Jan 19 08:30:59 struggling to wrap my head around it :S do I need to do a callback to the class doing the asyncTask.execute() ? Jan 19 08:31:54 Depends Jan 19 08:32:20 so asynctask calls the internet for login? Jan 19 08:32:27 yep Jan 19 08:32:28 and internet returns wether successful or not Jan 19 08:33:58 so call internet in doInBackground(), return success. then it will passed to onPostExecute(), which happens in UI so you can do further things from that Jan 19 08:34:36 ok, so it will need to be handled within the asynctask class. and then send result back to the asking class by itself? Jan 19 08:34:59 then im starting to understand it.. i hope Jan 19 08:36:43 yes, hopefully Jan 19 08:52:15 Now new problem m8. Im doing a Volley inside the doInBackground. But I can not return anything before the onResponse is called Jan 19 08:53:31 havent used valley. does it call things asynchronously by itself? Jan 19 08:53:50 yes Jan 19 08:54:43 I guess I can call a my "LoggedIn" class from the onResponse directly. but then the point of this async class is wasted isnt it Jan 19 08:55:03 yes Jan 19 08:55:22 i thought you wanted to handle url connection yourself Jan 19 08:55:39 but if valley has it, then use is and get rid of asynctask Jan 19 08:55:45 :) Jan 19 09:37:17 Fabric is joining Gooble Jan 19 09:38:05 solong simplicity of UI and straightforwardness, you will be missed Jan 19 09:38:44 guys, I have a challenge for you Jan 19 09:39:09 I was not able to achieve this myself, I tried for about 4 days. Jan 19 09:39:47 I will post the challonj in an hour or so, I'd love to hear how wrong it was or what I did wrong and any suggestions, cause I'm baffled Jan 19 09:40:16 it was very wrong Jan 19 09:40:59 it just looks like mud to me now, I can't discern any sense anymore Jan 19 09:41:03 I really dwelled on it Jan 19 09:42:53 Am I paranoid to not trust github libraries? Jan 19 09:43:07 you can't not trust everything, or trust everything Jan 19 09:43:10 deponds Jan 19 09:43:44 no you're not, Zoroaster Jan 19 09:44:22 I'm slightly racist about this paranoia because a seemingly lot of them are from Asian countries Jan 19 09:45:08 I take it you do no reading of the code then Jan 19 09:45:14 if you're putting your trust in names and colors Jan 19 09:45:16 Odaym: nope Jan 19 09:45:21 then you are wrong Jan 19 09:45:29 thus failed zarathustra Jan 19 09:46:09 Odaym: I know I'm wrong, but the point of using open source software is that someone else will do the right reading for me and announce github in the case of foul play. Does this actually happen? Jan 19 09:47:00 using open source libraries doesn't mean that someone will be the better programmer on your behalf Jan 19 09:47:58 Odaym: I don't expect that, but I expect that malware will be filtered out by other people Jan 19 09:48:39 dont know Jan 19 09:48:40 Does this actually happen? Jan 19 09:48:49 why would malware be in the software Jan 19 09:48:59 and how am I going to look out for it Jan 19 09:49:11 too many vague notions of highly unlikely situations Jan 19 09:49:19 who knows Jan 19 09:49:25 Odaym: I'm talking about open source libraries X_X Jan 19 09:49:41 it's a gamble you have to take I guess Jan 19 09:49:48 whats the alternative? closed source libraries? reinventing the wheel Jan 19 09:49:53 but to trust that people will already have cleaned the software? dont think so Jan 19 09:50:03 Will there be people that periodically check the commits to make sure that no malware is being implanted? Jan 19 09:50:06 cause other people are like you, they dont know what's written, they just want to solve their problem Jan 19 09:50:20 and like me Jan 19 09:51:15 Meh, nevermind Jan 19 09:54:01 Too much overhead for simple things anyway Jan 19 09:54:16 welcome to android Jan 19 09:56:41 Zoroaster, i always check the lib i'm using in my projects Jan 19 09:57:33 adq: at first, but then it becomes tedious to check every new version and you're prone to just ignore it sometimes Jan 19 09:57:34 but they are not that big, otherwise it's impossible for a simple human being or you need knowledge, tools, a few more things and dedicate full time on that Jan 19 09:57:48 many got fooled with the argument of: come on it's open source blabla Jan 19 09:58:01 like they would audit millions of line of code, like they would have the required knowledge and experience Jan 19 09:58:33 also using a little android library is highly different than using, let's say, a crypto lib Jan 19 09:58:53 it's not tedious to check new version, since you only have to check the differences Jan 19 09:59:03 adq: indeed. It's very ease to slip in malware if no-one's looking. Jan 19 09:59:06 but that means the previous version(s) have been checked Jan 19 09:59:15 it's also very easy to slip in FUD Jan 19 09:59:20 just stay in the middle Jan 19 10:00:06 anyway, you have to deal with it, or not use it, or do it yourself Jan 19 10:00:17 and part of the beauty of opensource is contributing too Jan 19 10:00:37 not plundering the work of others :) Jan 19 10:01:13 Zoroaster, anyone paranoid enough would not even use any android based device Jan 19 10:02:18 lol Jan 19 10:02:19 +1 Jan 19 10:02:23 if you wanna go that paranoia route Jan 19 10:02:23 best to stick with classic nokias Jan 19 10:02:28 yea nokia is good man Jan 19 10:02:38 adq: I'm concerned about my users' safety (and their right to sue me if things if things go down) Jan 19 10:02:40 or just go full RMS Jan 19 10:03:20 end of conversation Zoroaster, not even if you are trolling Jan 19 10:03:25 Odaym rmmbr the other day, about that horizontal image gallery in each recyclerview item? did it with viewpager and a bit of fuglyasscode Jan 19 10:03:25 when you leave your legacy behind, they will say Zoroaster: "Sweet guy" Jan 19 10:03:31 but they will not say winner Jan 19 10:03:41 adq: ??? trolling? Jan 19 10:03:51 Zoroaster add a privacy policy Jan 19 10:03:52 done Jan 19 10:03:52 But whatever Jan 19 10:03:54 a recyclerview of viewpagers? Jan 19 10:04:02 yessir Jan 19 10:04:08 that can work Jan 19 10:04:14 it does lol Jan 19 10:04:18 that does work Jan 19 10:04:22 lol Jan 19 10:04:26 Zoroaster, it's an application development channel, FYI Jan 19 10:04:30 they insist on it huh Jan 19 10:04:32 strange Jan 19 10:04:50 where do you work raoul11 Jan 19 10:05:05 adq: I asked if Android libraries on github are relatively safe to use. But still, I'll shut up. Jan 19 10:05:08 could have gone with a nested recyclerview with snap, but noo Jan 19 10:05:12 indie Odaym Jan 19 10:05:21 currently doing a project with 2 other guys Jan 19 10:05:36 Zoroaster: you can check them out, i usually do Jan 19 10:06:05 but since someone bothered to put his "malwarish" code on github, id assume its safe enough Jan 19 10:09:58 Hi all, how can an app have permission to be running on top of other apps (like the fb messenger bubble)? I don't want any application be running on top of mine (security reason) to catch touch events Jan 19 10:11:24 its SYSTEM_ALERT_WINDOW Jan 19 10:13:09 afair in 6.0.0 it was needed to ask for runtime permission for it but they dropped it in 6.0.1 Jan 19 10:23:37 `android update sdk` always overwrites my `/opt/tools` directory and makes it empty. Then I don't have `android` and other tools afterwards. Why it happens? Jan 19 10:35:32 Hello Jan 19 10:38:18 ohayo Jan 19 10:38:26 How to create an app that handles downloads automatically in Android? I am making a download manager for. Android Jan 19 10:42:09 Assuming the permissions have been given for the app. When a user has initiated a download my app should handle the download. How do I do this in Android? Jan 19 10:57:03 Does this firebase format look good for an IM app? http://www.jsoneditoronline.org/?id=91e3cbc6242620e852878f65cd0119a9 Jan 19 12:04:59 hmm Jan 19 12:06:24 hmm indeed Jan 19 12:07:27 I'm wondering if I want to drop support for jelly bean Jan 19 12:07:33 maybe even kitkat Jan 19 12:40:44 lollipop+ is still > 50% of all devices Jan 19 12:41:14 kitkat is still ~20% Jan 19 12:41:21 sure Jan 19 12:41:31 android 7? Jan 19 12:42:16 Zharf, depends on your stats. 19 seems to be a decent starting number for new projects now. Jan 19 12:42:37 it does Jan 19 12:42:38 cumulative stats badly rounded: 10=100% 15=99% 16=98% 17=94% 18=88% 19=86% 21=64% 22=54% 23=30% 24=1% 25=0% Jan 19 12:42:53 adq, is that for your app? Jan 19 12:42:58 ??? Jan 19 12:43:10 Where are you pulling these stats from? Jan 19 12:43:11 nope it's the official dashboard Jan 19 12:43:15 https://developer.android.com/about/dashboards/index.html#Platform Jan 19 12:43:20 Those stats are useless. Jan 19 12:43:32 well, i would not say useless, it gives a hint Jan 19 12:43:34 None of them even remotely look like any of the applications we released. Jan 19 12:43:41 on the other hand I'm not even sure if I'll ever actually release this, might just end up being what I use Jan 19 12:43:48 They're utterly wrong because they take a global all-world data. Jan 19 12:43:52 Which you won't ever have. Jan 19 12:43:52 don't they use the playstore app itself Jan 19 12:43:55 to gather those stats? Jan 19 12:44:05 which should independent of any category type Jan 19 12:44:07 Yes, but they don't gather them for YOUR target market. Jan 19 12:44:09 should be* Jan 19 12:44:18 I have apps where almost everyone is on 20+ Jan 19 12:44:20 if you don't have a market, that's the best you can get :p Jan 19 12:44:27 And apps where there are 20% people on 15. Jan 19 12:44:39 let me check one of my app Jan 19 12:44:45 Zharf, eh, it's still pretty wrong, especially if you won't localize. Jan 19 12:45:50 But it's safe to assume that they're shifted towards the higher (newer) API levels Jan 19 12:45:54 most are between 5.1 and 6.0 --- 7.0 is like 2% --- 4.* is like 18% Jan 19 12:46:01 (in category music & audio) Jan 19 12:46:24 35% on 6.0 Jan 19 12:46:40 and it matches more or less the top 10 on the right side Jan 19 12:46:48 in music & audio my app has ~40% < lollipop Jan 19 12:46:54 29% on 6.0 Jan 19 12:47:10 sounds similar too Jan 19 12:47:13 (pun) Jan 19 12:47:45 it's safe to assume most ppl don't have a high-end device with latest OS Jan 19 12:47:56 let's blame the manufacturers for the rom Jan 19 12:48:40 and about localization, you're right Mavrik, but only most spoken languages would count Jan 19 12:48:46 for example, french is ridiculous (i'm french) Jan 19 12:48:58 I have so few users though that the statistics don't align that well with "all apps in" thing :) Jan 19 12:49:12 162 active users \o/ Jan 19 12:49:20 yeah, the user base needs to be big enough to make those stats relatively _not_ meaningless Jan 19 12:49:36 also, user install vs total download is totally different Jan 19 12:49:47 anyway Jan 19 12:50:47 to be honest though, I never expected anyone but me and a friend of mine using the application so... :p Jan 19 12:51:42 Yeah, I made a weekend app Jan 19 12:52:06 Never advertised it, localized only in local language (~2mil speakers) Jan 19 12:52:11 but my current WIP application I'm not even sure if I can release since I'm using not-exactly-public APIs from this site I'm writing a client for Jan 19 12:52:13 Now it has like 10k monthly active Jan 19 12:52:29 I'll ask the authors of the site for their opinion after I'm satisfied with it Jan 19 12:52:46 Mavrik, cool Jan 19 12:52:56 and luckyish Jan 19 12:53:07 *shrug* Jan 19 12:53:15 though it can be annoying if they start asking for support Jan 19 12:53:17 Not enough to make any money so it's just a feelgood thing :) Jan 19 12:53:34 well sure, I don't make my apps for money Jan 19 12:54:08 hi guys. I'm about to create some php scripts to pass and receive xml information to android. Is aXMLRPC a good option? Jan 19 12:54:11 https://github.com/gturri/aXMLRPC Jan 19 12:54:26 better use an REST api Jan 19 12:54:31 ^ Jan 19 12:54:48 why would you torture yourself with XMLRPC Jan 19 12:55:26 well, he's using php too Jan 19 13:00:38 like this one? Jan 19 13:00:43 http://www.androidhive.info/2014/01/how-to-create-rest-api-for-android-app-using-php-slim-and-mysql-day-12-2/ Jan 19 13:02:40 for example Jan 19 13:07:16 i'll try. one good way to access the api in android is using classes like HttpsURLConnection, URL, InputStream, JsonReader, etc. right? Jan 19 13:07:47 hugleo, retrofit + gson or jackson Jan 19 13:08:00 I'm personally starting to prefer jackson over gson Jan 19 13:08:06 but gson's pretty popular among android devs Jan 19 13:08:15 Why do people still use PHP in 2017? Jan 19 13:08:19 yeah, retrofit is awesome Jan 19 13:10:15 Melatonina: what do you recommend instead? i think that php is easy/fast and can work just fine Jan 19 13:10:31 I do my REST APIs in dropwizard nowadays Jan 19 13:10:34 (java) Jan 19 13:11:18 hmm Jan 19 13:12:36 there's various other frameworks available too of course Jan 19 13:13:17 every languages and platform have their pros & cons, let's not troll please Jan 19 13:13:22 dropwizard's nice 'cause you can just run it as a java application and it works... it has a httpd (jetty) bundled so there's no need to configure stuff Jan 19 13:13:42 adq, sure, but if it's php, it deserves it :p Jan 19 13:16:06 hugleo: I use C#. But if your are accustomed to PHP and it's ok and fast for you, go for it. Jan 19 13:18:03 https://www.slimframework.com/ Jan 19 13:18:06 :) Jan 19 13:19:50 servicestack all the way Jan 19 13:19:54 servicestack is love Jan 19 13:20:03 servicestack is life Jan 19 13:24:25 for now i'll go to php since i already have all database scripts done. maybe later i'll think about java Jan 19 13:25:12 linq + entityframework will be a huge relief for you Jan 19 14:07:55 Hey everyone, been dabbling with custom views and viewgroups for the past couple of days and am stuck at at drawing the children from my custom viewgroup Jan 19 14:08:50 after I do the onMeasure and onLayout properly ( I think ) on both the parent viewgroup and the children, the onDraw method of each child is called but has no effect whatsoever Jan 19 14:09:36 On the other hand if I overwrite 'dispatchDraw' and call draw on each child manually it works fine, even though I'm just doing what dispatchDraw does without overwriting Jan 19 14:09:40 Any help? Jan 19 14:40:39 Anyone familiar with the google nearby messages api? Jan 19 14:41:17 I got familar enough to know that it wasn't nearly as useful as they make it sound Jan 19 14:41:56 It's like they're terrified of finally enabling ad-hoc wireless Jan 19 14:42:21 Hah. Yeah I feel ya. Jan 19 14:43:57 Did you ever get subscription message filtering to work? So for example I have 3 devices and one publishes a message with type A, that's only intended for one device. Is that possible? Jan 19 14:45:46 Didn't get that far... I was planning on handling it elsewhere anyway Jan 19 14:46:43 Dagmar, ad-hoc is more or less dead, the wifi standard has been phasing it out for years. The new model is 'wifi direct', which works more like a dynamic AP than ad-hoc Jan 19 14:48:25 What do you mean by "handling it elsewhere"? Jan 19 14:50:42 I was perfectly fine with a mechanism that allowed area-level broadcasts Jan 19 14:50:57 ...and simply filtering out unwanted messages as they're recieved Jan 19 14:51:16 dragorn: Mainly because they can't find a good commercial use for ad-hoc broadcast traffic Jan 19 14:51:24 Mesh networks don't thrill them Jan 19 14:51:39 Dagmar, no; because ad-hoc was a horrible hack and broke a lot of the rest of the wifi spec Jan 19 14:52:10 I didn't notice it breaking anything Jan 19 14:52:20 Dagmar, direct gets the same overall behavior (device to device connection) without the absolute wackiness of ad-hoc Jan 19 14:52:41 Protip: In no way was what I was attempting device-to-device communication Jan 19 14:52:46 they dropped ad-hoc from the official wifi spec around 11g because it broke mpdu aggregation, security stuff, bssts coordination... adhoc was a real crapshow Jan 19 14:52:50 I wanted an explicitly _broadcast_ communication mechanism Jan 19 14:52:56 Gotcha. That's what I'm currently doing, but I wanted to prevent the published message from going to unintended devices. Jan 19 14:52:57 hmm Jan 19 14:53:07 Are you guys talking about ad-hoc wifi or wifi direct? Jan 19 14:53:17 Mavrik, I'm talking about how wifi direct replaced ad-hoc Jan 19 14:53:21 Mavrik, because ad-hoc was awful Jan 19 14:53:25 oh yes it was Jan 19 14:54:10 Still works find for udp broadcast stuff tho Jan 19 14:54:13 now, of course, direct added a ton of crap on top with service discovery and such which is it's own special pain in the butt, but it's still better than ad-hoc was Jan 19 14:55:30 Dagmar, having been a wi-fi guy since about 2001 and having spent 6 years doing r&d for enterprise wi-fi... trust me, ad-hoc broke far, far more than it ever provided, and as soon as you get above 11g it's not a supported operational mode, and it completely screws 11n Jan 19 14:56:16 "as soon as you get above [...]"... Jan 19 14:56:23 My use case isn't bothered by that Jan 19 14:56:42 See, you're wrong, because unless you only care about ancient phones, you have 11n Jan 19 14:56:47 I've used ad-hoc for ephemeral, short message communications before Jan 19 14:57:17 i'm sure you have. welcome to technology moving forwards. it's dead for a reason; use wi-fi direct or btle for that now Jan 19 14:57:27 They do *not* need massive speed, high levels of throughput, low-latency, or even particularly reliably delivery Jan 19 14:58:09 BTLE's range is inadequate, and wifi direct, as has been stated, is a big pita Jan 19 14:58:29 It has nothing to do with any of those things. ad-hoc was a hac on the MAC layer which breaks under a LOT of conditions and is fundamentally incompatible with modern wi-fi MAC layers. Wi-Fi direct works around this by actually going into AP mode and having a controlling node for the PAN Jan 19 14:59:21 Having a controlling node was somehting I was explicitly looking to avoid Jan 19 14:59:32 Well, welcome to modern tech :P Jan 19 14:59:52 You keep saying that but I don't think you've ever worked with token ring. Jan 19 15:00:06 Unfortunately for you, I have :) Jan 19 15:00:14 I've even got some around that I dug up recently Jan 19 15:00:28 Then tell me how you feel about the ability of any node on the ring to simply take over and never return the token to anyone else Jan 19 15:00:34 until 2002 I helped run a 5000-drop tokenring network. tokenring was awesome until cheap switched ethernet ate its lunch Jan 19 15:00:40 You used crap tokenring then Jan 19 15:00:48 No, that was basically part of token ring. Jan 19 15:00:56 If you were a malicious user, you could own the entire segment Jan 19 15:00:59 Sounds like it was purely unmanaged; ours broke the ring into segments and each segment was managed Jan 19 15:01:50 it's trivial to re-gen the token after a timeout, or exclude a failing port from the network @ the CAU Jan 19 15:02:18 but that's getting pretty far into the weeds from android dev, so moving on Jan 19 15:03:10 Throw 20 ad-hoc nodes in a park, all using an essid based on a hilbert-esqe transformation of coarse GPS coordinates, and the nodes can merrily "yell" to each other far beyond the range of IR or bluetooth Jan 19 15:05:01 Do the same with wi-fi direct and you won't have broken security, hidden nodes, bss-ts desyncs, etc. Jan 19 15:05:13 But all this is irrelevant: IEEE has deprecated ad-hoc. Android has removed it. Move on. Jan 19 15:05:28 Don't care about hidden nodes, don't care about desynchs. literally, devices yelling to each other, and over each other Jan 19 15:05:29 you can like ad-hoc all you want, it's dead, move to the modern equivalents or write a different app Jan 19 15:05:40 Wifi direct doesn't replace that Jan 19 15:05:49 It just makes it easier for middle managers to print their emails Jan 19 15:06:51 Dagmar is funny sometimes, like yesterday for emulator issue, and not with dragorn arguing about wifi lol Jan 19 15:06:58 s/not/now/ Jan 19 15:07:13 adq: That guy was a troll Jan 19 15:07:17 what? Jan 19 15:07:34 The dude throwing a tantrum about his HAXM and whether it was working or not Jan 19 15:07:34 i know dragorn (casually since like 2002 with kismet, he knows all the things about wifi) Jan 19 15:07:55 ahh aobut the emu, idk, for me it's a piece of crap, this is why as so many i purchased a genymotion license Jan 19 15:08:05 but it improved, it's less worse than before Jan 19 15:08:18 by the way dragorn, i did not know you worked on the blackphone (saw that recently since i get one) Jan 19 15:08:27 got* Jan 19 15:08:46 adq: ...and I know that aside from people infatuated with mesh networks, hardly anyone ever simply uses ad-hoc as a purely broadcast medium. They wind up jumping through a million hoops trying to make the wireless domain handle too much to be able to do it Jan 19 15:08:58 It's like there's a bloody blind spot Jan 19 15:09:04 oO Jan 19 15:09:12 adq, I did; that was a hell of a thing. Tho I got out of that about a year ago Jan 19 15:09:23 yeah, it's highly controversed unfortunately Jan 19 15:09:33 still i got one BP2 very cheap (like.. 100€) Jan 19 15:09:45 Nice; the 2 was definitely the better of them Jan 19 15:09:53 That's a reasonable price for it ;) Jan 19 15:10:09 lot of false positive on CIDS detection, lik "abnormal network cell id" Jan 19 15:10:22 adq, heh; that's the last thing I wrote Jan 19 15:10:25 adq, like a week before I quit Jan 19 15:10:27 yeah i would not throw the official price, i think only copperhead OS makes sense nowadays Jan 19 15:10:35 but it only targets the nexus/pixel Jan 19 15:10:40 (for obvious reason) Jan 19 15:10:56 adq, copperhead does some great stuff, but you really have to decide you want that more than a general-purpose phone Jan 19 15:11:03 dragorn, at least BP2 is not rootable lol Jan 19 15:11:22 they enforced so much of it, but future sploit or maybe some 0day idk Jan 19 15:11:50 the hardware is too weak on the BP2, i'm just using it for testing app dev Jan 19 15:11:54 bp2 will still be vulnerable to kernel and android system level bugs, but as long as they're still staying on top of the bug stuff they'll be fixed quickly Jan 19 15:12:03 There's no "maybe". Anyone who assumes their code will never fail is doomed. Jan 19 15:12:05 sure Jan 19 15:12:06 the bp2 hw was passable when it launched, a year and a half ago Jan 19 15:12:13 but no more than passable Jan 19 15:13:13 yeah, i would not complain anyway :) Jan 19 15:15:24 Sorry to interrupt with a bit of a noobish question: I've got zero experience in Android, would like to build a game using C/C++ for logic, vulkan shaders for rendering. I'm trying to work out approximately how dependent I'm gonna be on Android Studio (it's pretty resource-hungry for my coffeeshop laptops) and to what extent I can trust the ndk to just work with whatever SPIR-v/C I throw at it Jan 19 15:16:01 you don't interrupt, it sounds highly ambitious if you're new to the platform just because android dev will put many walls on the road Jan 19 15:16:13 I need something to do in my spare time :P Jan 19 15:16:42 adq, https://goo.gl/photos/Ks7cjR4W7CDwPveZ9 blackphones... :) Jan 19 15:16:59 *.* Jan 19 15:17:08 Amras, I agree, that's a bit of a big jump. The NDK is just a gcc toolchain Jan 19 15:17:19 Amras, so you can run that to build the c-side stuff and you end up with shared libs Jan 19 15:18:19 Amras, for the java side you'll need to do JNI to connect the android java apis and your native code; I've never done graphics/vulkan stuff but it's definitely a thing people do :) Jan 19 15:18:54 Amras, you can, in theory, do it purely outside of android studio and use gradle to build from command line, but AS adds a lot of helpful stuff if you're new to android Jan 19 15:22:55 is it not possible to get shared element transitions between an activity and a fragment? I cannot seem to get it to work Jan 19 15:23:48 Way I'm reading that is that the NDK builds my C into something the JNI can parse, Java uses JNI to run my main()? Doesn't sound too complex. Jan 19 15:24:46 the NDK builds native shared libraries, then java has a .so loader and you write the stub functions in your java class Jan 19 15:25:02 and you need to write all the native code which converts to java and back via the JNI bridge Jan 19 15:25:23 Amras, have you ever done anything like integrating native code and python? Jan 19 15:25:44 gotcha Jan 19 15:25:45 and no Jan 19 15:25:58 well, it's like that thing you haven't done :) Jan 19 15:26:20 basically java has it's own idea of how strings, ints, arrays, etc are defined, c/c++ has it's own idea, and the JNI api lets you convert from one to the other Jan 19 15:26:53 but you have to play nice w/ java's typing system, reference counting, etc, and you need to name your functions properly in C/C++ so that the java linker can call them from stub java methods Jan 19 15:31:47 I might be missing something because of inexperience here, but what's stopping me from taking the app's resources, handing them to the C lib, and going "do what you want, I'll halt you when the user wants their phone back"? Jan 19 15:33:42 assuming the C is interfacing directly with vulkan to draw things on the screen, anyway Jan 19 15:33:45 there's an android app lifecycle you need to coexist in Jan 19 15:33:56 to some extent you should be able to pass a surface to the C code and tell it "draw here" Jan 19 15:34:07 but there's still some android stuff you'll need to manage Jan 19 15:34:24 check developer.android.com for the "app lifecycle" section, that should help a little getting acquainted Jan 19 15:41:07 (guessing there's no distinction between app lifecycles and activity lifecycles, since that's the only thing I found) Jan 19 15:41:38 The app lifecycle and activity lifecycles are different. Jan 19 15:44:37 might need a specific link to what dragorn was talking about then Jan 19 15:45:37 hi all, maybe not a dev question, but is it possible to get verbose info about the ipsec vpn connection? I'd specifically like to know what cipher is used when it connects Jan 19 15:46:01 yeah sorry, I am looking. Activity lifecycle diagrams are easy to find, info about the application lifecycle is harder to find. Jan 19 15:46:32 I think dragorn was referring to the activity lifecycle anyway. You dont need to worry as much about the app lifecycle. Jan 19 15:46:49 activities are what do odd things if you are unfamiliar wiht android Jan 19 15:47:33 odd? Jan 19 15:48:44 activities can be destroyed at any time by the operating system, it is your responsibility to ensure that the activity can be recreated properly after a destruction/reconstruction Jan 19 15:49:37 learn all about it https://developer.android.com/guide/components/activities/index.html Jan 19 15:55:16 yup, reading up on it now Jan 19 15:58:26 Seems managable enough; just a matter of writing up 7 functions in the C lib and hooking them up with JNI. I'd imagine the specific implementation will prove more complex though Jan 19 16:22:03 Hi Jan 19 16:23:41 How can I take a snapshot of screen via service and no need of activity(Any screen/ activity of the app or another app or just the home screen of android) which ever screen is viewed by user? Jan 19 16:25:52 there used to be some command line tool Jan 19 16:37:33 OverCoder: any other native way? Jan 19 16:48:02 * OverCoder shrugs Jan 19 17:23:00 Hi! Jan 19 17:23:16 What's the best way to run an application in-background, without the need that the user launches it? Jan 19 17:23:36 It's possible to do that with only one application (one .apk file) or there's needed to create two? Jan 19 17:23:47 Iarfen, applications must run at least one time before being eligible to be started by non-interactive means Jan 19 17:24:09 pfn: Then it's possible to have only one .apk application right? Jan 19 17:24:16 Then the user has to allow the background execution Jan 19 17:25:45 what does one apk have to do with anything Jan 19 17:27:05 pfn: I don't understand your question Jan 19 17:27:18 nor I yours Jan 19 17:27:49 I need to know if with my mobile app I can get data in background without creating another app just for that purpose Jan 19 17:29:23 Why do you think you'd need to create two apps? Jan 19 17:29:40 Dogmar: I have never programmed a background service for now Jan 19 17:29:44 Then I'm not sure xD Jan 19 17:29:48 You could watch for the boot completed intent and start a service then. This would negate the need to open the app Jan 19 17:29:56 Well, you don't need to make a second apk. Jan 19 17:30:23 $ xxd play-services-drive-9.8.0.aar.sha1 Jan 19 17:30:23 00000000: da39 a3ee 5e6b 4b0d 3255 bfef 9560 1890 Jan 19 17:30:32 $ sha1sum play-services-drive-9.8.0.aar Jan 19 17:30:32 5ccddc7be43e4480c7d08f3707619fee2a08bcd2 Jan 19 17:30:33 wtf Jan 19 17:30:59 Interesting Jan 19 17:31:11 the md5 file is correct, though Jan 19 17:31:20 $ xxd play-services-drive-9.8.0.aar.md5 Jan 19 17:31:20 00000000: 808b a6f7 62a1 b625 fd43 6400 8028 8875 Jan 19 17:31:26 $ md5sum play-services-drive-9.8.0.aar Jan 19 17:31:26 808ba6f762a1b625fd43640080288875 Jan 19 17:32:48 If you didn't get taht file from the Play Store, I wouldn't really trust it Jan 19 17:33:09 it's one of the play services aar Jan 19 17:33:51 all of the play-services artifacts are broken this way, the sha1 is incorrect, but the md5 is Jan 19 17:34:39 It's possible the shell utility uses a different implementation Jan 19 17:34:51 Do it via `openssl sha1play-services-drive-9.8.0.aar` Jan 19 17:34:57 er with a space after sha1 Jan 19 17:36:21 there's only one correct sha1 Jan 19 17:44:51 I'd at least make sure openssl and sha1sum report the same sum Jan 19 17:44:58 ...and then reach out to Google about it Jan 19 17:46:45 Timestamps might reveal that there was simply another update that didn't update the sha1 sums Jan 19 17:49:16 FWIW I just pulled a file with the same name from some Finnish dude's git repo and it shows the same sums you were seeing Jan 19 17:49:38 Either he's got the same tainted (and very likely malicious file) or something broke the sha1sum file Jan 19 17:51:34 Okay, here's something _damn_ strange https://lab.baconsvin.org/talla/onion/blob/3b949a946fa8179f928deeb692f989370b281fde/src/onion_binary.erl Jan 19 17:52:11 *foreheadsmack* Jan 19 17:52:30 pfn: Someone fucked up making the sha1 sum. That's the sum matching an _empty file Jan 19 17:52:33 _ Jan 19 17:52:48 there is only one way for sha1, this would be crazy otherwise Jan 19 17:53:05 Yeah but I wouldn't rule out bad RAM or a broken build Jan 19 17:53:12 or solar tempest Jan 19 17:53:18 come on Dagmar :) Jan 19 17:53:30 i verified too pfn, same results Jan 19 17:53:39 When we're dealing with odds past the pick 4, there's a lot of room for strangeness Jan 19 17:53:51 Either way, clearly the sha1 was miscomputed for that file Jan 19 17:54:22 So, no real mystery. Just someone fucked up and published an incorrect sha1sum Jan 19 17:54:23 yeah, google fucked up Jan 19 17:54:24 as usual Jan 19 17:54:38 all the play-services .sha1 files are broken Jan 19 17:54:43 Either that or they're checking to see if people _actually_ check the fingerprints Jan 19 17:54:44 at least the ones I've ever bothered to check Jan 19 17:54:53 they've been broken for months Jan 19 17:54:53 Do they all have the same sum in them? Jan 19 17:55:09 I haven't actually looked, but that's probably likely Jan 19 17:55:16 I boggled a bit when I threw the checksum you posted into Google and got multiple hits back Jan 19 17:55:51 yes Jan 19 17:55:59 they have repeating sums Jan 19 17:56:11 Yeah someone's feeding it /dev/null or something by accident Jan 19 17:56:28 and indeed Dagmar, this is the sha1 of an empty file :') Jan 19 17:57:26 https://gist.github.com/pfn/34c1a34f6008c02c50f519ac7622b5e3 Jan 19 17:58:11 oh, the ones in text format aren't necessarily broken Jan 19 17:58:37 I'm used to people just storing them as text Jan 19 17:58:48 line 106 and 112 are broken, though Jan 19 17:59:26 I guess tools only check the .md5 by default, that has been correct for a long time Jan 19 17:59:31 only the .sha1 is broken Jan 19 18:00:27 Guess that's the reason they've been broken since October Jan 19 18:00:45 Someone should put their pants on and stuff the sha1's or go back to verifying them both Jan 19 18:01:27 adq: ...and the bad RAM thing has happened to me before, actually. I suffered through two weeks of some really freakin' bizarre behaviour before figuring it out Jan 19 18:01:56 It tainted parts of a glibc rebuild. Much fun. Jan 19 18:02:15 ahah Jan 19 18:02:50 happened to the best of us Jan 19 18:02:56 and thx pfn for watching! Jan 19 18:03:24 hey I am seeing something weird in my layout , anyone have a suggestion ? Jan 19 18:03:49 http://stackoverflow.com/questions/41747983/android-layout-leaving-small-gaps Jan 19 18:04:48 adjustviewbounds. Jan 19 18:05:25 Unless you've got a 1:1 pixel match for your image, expect it will screw you Jan 19 18:05:32 idk if i tried that yet Jan 19 18:05:40 You did. It's what's screwing things up Jan 19 18:07:32 Considering that your source art is obviously SVG you might consider saying to hell with the pixmap and using an SVG directly Jan 19 18:08:14 so removed that and changed the scaletype to fitXY. Jan 19 18:09:00 how will svg's help over the png file. the fix XY should look better , but android displays them in the view the same right ? Jan 19 18:10:17 If someone puts that on a display with a significantly higher pixel density, your pixels are going to show Jan 19 18:10:21 ohh that last thought wasnt finished ... so removed that and changed the scale type to fitXY. but that then makes the image large and zilch of space for the UI text and buttons :( Jan 19 18:11:15 so logical what pattern should I have used to force my UI to take the space it needs first and the remaining be the above image. maybe I am facing the problem the wrong way here Jan 19 18:11:41 https://code.google.com/p/android/issues/detail?id=232567&thanks=232567&ts=1484849077 Jan 19 18:12:14 anyone have experience with fileobserver? i'm trying to run it in the background in a service, and it seems to just silently fail at some point Jan 19 18:12:59 dar10s: You could drop the senseless instruction to center the image, make an effort to get an even multiple of pixel size via the use of -xhdpi -xxhdpi and so on assets, or make it a layer-list and put a gradient of the correct colors under it Jan 19 18:13:04 weights in writting seems like the right thing but what i recently learned was the way weights are handled is the larger image gets placed on the screen last, which then seems to ignore the spacing of any value ( although I would have it set to take 1/3 of the screen) Jan 19 18:13:11 dar10s: There's nothin' particularly fancy to this Jan 19 18:13:58 I'm having trouble seeing why you bothered to use a relativelayout instead of a linearlayout for the root Jan 19 18:15:12 Relative was an idea to force the last button to the bottom and everything layered above that. ( I was seeing on small screen sizes 4" just image and no buttons/text at all) Jan 19 18:15:56 You can actually accomplish that with weights Jan 19 18:16:41 Vertically-oriented linearlayout, three items in it all with wrap_content, middle item gets a weight of 1 and on the platforms that don't ignore weights, the middle one will take up all the remaining space, the third one will be flush with the bottom, etc Jan 19 18:18:33 Alternatively, if you're still stuck on the idea of using a pixmap, you can make the car a 9-patch file and let Android stretch the last row of it for you Jan 19 18:19:22 that is what i am working on now ... when i used weights I had just two sections. Now hearing a third layout seems to be a solve. Jan 19 18:26:10 google still hasn't even bothered to update com.android.tools.** on maven central Jan 19 18:26:12 only publishing to jcenter Jan 19 18:26:14 so bad... Jan 19 18:26:23 central is 5 months out of date Jan 19 18:30:31 Afaik noone cares about maven central anymore. Jan 19 18:30:47 A lot of libs aren't even available over there and all new projects are configured for jcenter. Jan 19 18:38:04 android only, not most java libraries Jan 19 18:39:14 com.android.tools kinda implies "android only" :) Jan 19 18:52:27 Hey guys, quick question - does the concept exist for GCM to send a "silent" notificaiton. That is, if the app is open the MessgeReceived handler is processed, but if the app is closed, the OS ignores the notification. Thanks Jan 19 18:56:44 xximjasonxx, GCM messages are "silent" by default - it's your code that creates a notification in the first place Jan 19 18:56:51 Just don't create a notification, ignore it and that's it. Jan 19 18:57:24 Mavrik: aye, when the app is open or running in the background yes, I am asking about when the app is closed (ie flicked out of the recent apps menu, not force stopped) Jan 19 18:57:44 I don't get what you're asking. Jan 19 18:57:47 It's completely the same. Jan 19 18:57:50 The same code is activated. Jan 19 18:58:10 Your BroadcastReceiver gets spun up and it handles the message. Jan 19 18:58:12 Are you sure? Jan 19 18:58:14 Yes. Jan 19 18:58:18 This isn't iOS. Jan 19 18:58:23 cause that is 100% contrary to everything we have been seeing Jan 19 18:58:57 Then you wrote code without knowing about it :P Jan 19 18:59:00 we do have the GcmListenerService in our app Jan 19 18:59:19 Mavrik: While I would not 100% doubt that it does not match our outcomes Jan 19 18:59:29 we see our notifications in the tray as they come in when the app is closed Jan 19 18:59:35 they are silent when the app is running somewhere. Jan 19 19:00:23 I can certainly add it to the tray via NotificationCompat Jan 19 19:00:28 Well, remove the notification creation code from your listener then ČP Jan 19 19:00:34 we have none :) Jan 19 19:00:45 Yes, you do. Jan 19 19:00:50 Nope we do not Jan 19 19:00:55 Either you pulled it in via a library. Jan 19 19:00:56 Or you wrote it. Jan 19 19:01:06 But OS DOES NOT create the notification. Jan 19 19:01:12 Mavrik: I believe your understanding is not wholly accuate Jan 19 19:01:14 Your APP via the BroadcastReceiver or Service does. Jan 19 19:01:29 Mavrik: I can 100% assure you there is no code in this app that creates notifications :) Jan 19 19:01:40 but yet we do get a notification when the app is closed Jan 19 19:01:43 ... Jan 19 19:02:05 You EITHER wrote the code or you ADDED A LIBRARY THAT DOES. Jan 19 19:02:06 when it is open or backgrounded our ListenerService handles it Jan 19 19:02:35 Would the GooglePlayServices provide default functionality that does this? Jan 19 19:04:10 Not trying to be difficult, just being honest Mavrik Jan 19 19:05:38 Go look at the service that's registered as the GCM handler, if anywhere it's there. Jan 19 19:05:50 Might be you pulled in a class that provides default functionality. Jan 19 19:06:28 We inherit from GcmListenerService Jan 19 19:07:00 but i recall having looked at the source for that class and it doesnt seem to do anything Jan 19 19:07:13 The default behavior depends on the type of message you send Jan 19 19:07:22 One shows a notification when in the background, the other doesn't Jan 19 19:07:39 “xhttps://developers.google.com/android/reference/com/google/android/gms/gcm/GcmListenerService Jan 19 19:07:44 er Jan 19 19:07:44 https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmListenerService Jan 19 19:07:47 It also provides functionality such as automatically displaying notifications when requested by app server. Jan 19 19:07:52 Right there in the docs. Jan 19 19:08:08 Override / use your own service. Jan 19 19:08:10 Mavrik: so it might be the base class that is doing this Jan 19 19:10:42 ok, thanks Mavrik I suspected this but the whole thing with Push was a bit confusing back when we first did this so we were just happy it seemed to work Jan 19 19:10:42 https://firebase.google.com/docs/cloud-messaging/concept-options Jan 19 19:10:46 this will help us, thanks Jan 19 19:10:56 Two message types, different behavior Jan 19 19:13:26 yup Jan 19 19:13:29 thanks guys Jan 19 19:13:44 Mavrik: and a big thanks to you for staying with me through my nonsense :) Jan 19 19:14:20 np :) Jan 19 19:15:17 so strange, if I attach a View.OnLayoutListener that has a reference to my view in the listener itself, the view never returns isShown() as true Jan 19 19:15:27 even though its clearly visible Jan 19 19:15:41 admob apparently uses isShown to determine ad visibility Jan 19 19:15:50 so this whole thing is trouble Jan 19 19:22:58 What is the usual flow for determining whether a user has purchased a subscription/premium option in an application? Jan 19 19:23:31 Should I store a value in Prefs indicating they are are premium user after they perfom the initial purchase? Jan 19 19:23:51 Or do I check every time the app is launched and keep some sort of global variable? Jan 19 19:24:48 There might not be network access on every launch Jan 19 19:25:10 the playstore app cache it, but you cannot really fully rely on it Jan 19 19:25:42 so yeah, sharedpref is one way (let's not talk about security for your iab) Jan 19 19:26:01 also the cache does not last long iirc Jan 19 19:26:16 and you should also check everytime independently Jan 19 19:26:55 So the consensus is to just chuck it in SharedPrefs? Jan 19 19:27:03 until you find better Jan 19 19:27:19 What would be defined as a better solution? Jan 19 19:27:25 except if you're willing to let your users who purchased items like they hadn't, which is rarely acceptable Jan 19 19:27:31 Save in SharedPrefs, check every few weeks or something Jan 19 19:27:33 and force them to be connected Jan 19 19:28:06 the fact is the security model is so weak, that it's not that problematic to store it in sharedpref or somewhere Jan 19 19:28:56 Alright thanks adq SimonVT Jan 19 19:29:45 orbyt_, there is only one valid solution which is using a third server + encryption (and it's not applicable to everything, imagine you deliver a text file, it would be applicable), and still ppl can flip a boolean in your code you know Jan 19 19:30:19 simply accept that non legit users not willing to pay, are not willing to pay Jan 19 19:30:25 and avoid annoying your legit users Jan 19 19:30:58 i remember few years ago, LVL was pown in 5 minutes, and LVL sitting in my app was only here to annoy legit users Jan 19 19:31:09 thus, i ditched LVL like many i believe (totally out of date too) Jan 19 19:32:53 I see. Though, even using an external server, you still need a way to determine premium status throughout the application. Jan 19 19:33:11 Heh, yeah, people just copied the sample LVL where you literally had to change 1 line to break it Jan 19 19:33:49 and now there are other "tools" patching IAB or faking server response, no even needing root Jan 19 19:34:16 you can try to make it harder, but it's rarely worth the effort, however it's fun :) Jan 19 19:34:50 what i wanted to do, and did not yet, is to silently detect something not right (and avoiding any false positive, still caring about legit users), for example in a game you increase the difficulty like hell Jan 19 19:35:28 some also choose to put a decent nag screen explaining that the developer is aware of it and let you continue to use it with some blablabla Jan 19 19:35:56 That's hilarious Jan 19 19:36:02 haha kind of like that game developer game where if it was a leaked copy, it would make you run out of money due to people stealing your game Jan 19 19:36:29 I think it was Game Dev Tycoon Jan 19 19:36:33 yeah, you could also gather stats and have fun and drop yourself a modified version Jan 19 19:36:40 i remember that. Jan 19 19:36:48 and yet, none of the pirates caught on Jan 19 19:36:50 be creative Jan 19 19:37:00 http://www.greenheartgames.com/2013/04/29/what-happens-when-pirates-play-a-game-development-simulator-and-then-go-bankrupt-because-of-piracy/ Jan 19 19:37:47 ahah Jan 19 19:38:45 tears of joy > tears of sadness Jan 19 19:39:40 those stats tho Jan 19 19:41:40 i always love seeing the salty tears of pirates and cheaters who run into consequences of their actions Jan 19 19:47:19 Since I've started implementing IAP i've been occasionally getting a RuntimeException: Unexpected exception in dex writer thread Jan 19 19:47:27 Any ideas why? Jan 19 19:50:13 no clue man Jan 19 20:06:44 Yea, it's very odd. Threw the exception on a build, but then re trying the build works fine. Odd. Jan 19 21:49:57 hi mates! Jan 19 21:55:07 Hello Melatonina Jan 19 21:58:49 So, I am back guys - been really working these push notifications. Made some progress, but largely still a bit mystified. What I decided to do was use the JSON on this page (https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages) to test the various scenarios Jan 19 22:00:05 While things are working as they should when the app is in the foreground, i continue to be stumped by the closed app experience. It seems like the Receiver believes everything constitutes a data payload and thus messageReceived is fired each time. I can easily show a notification manually, but I am trying to figure out why providing the notificati Jan 19 22:00:05 on payload does not seem to have the desired effect Jan 19 22:00:39 This is the contents of the Bundle received with the Notification payload: Bundle[{google.sent_time=1484862340531, google.message_id=0:1484862340549608%8a8112ecf9fd7ecd, message={ \"notification\":{ \"body\":\"great match!\", \"title\":\"Portugal vs. Denmark\", \"icon\":\"myicon\" } }, collapse_key=do_not_collapse}] Jan 19 22:23:06 jason: I think you're supposed to receive the callback each time regardless of whether it's a notification or not. Jan 19 22:29:03 dsardari: would see to contradict: https://firebase.google.com/docs/cloud-messaging/android/receive Jan 19 22:32:54 jason: Doesn't that show that if your app state is background then you'll receive only the data payload in the onMessageReceived? Jan 19 23:39:47 Has anyone worked with TaskStackBuilder? When I set my launchMode to singleTask it doesn't seem to work correctly. Some people are saying to set the taskAffinity to "", but when I set it to something specific it still doesnt't work. Jan 19 23:40:03 Just wondering if someone has experience creating an activity with singleTask Jan 19 23:41:31 I basically have 2 activities. I want them both to always be in the same task. 1 activity should only have 1 instance and be the root activity, the other should always be a single instance and on top Jan 19 23:42:49 When I launch them both in TaskStackBuilder using PendingIntent, if the root activity has a launchMode="singeTask", it gets created then destroyed instantly as the parent. If it has a normal launch mode, it doesn't get destroyed. Jan 19 23:46:32 omg. I updated my manifest back to when it was broken and now it's doing the some thing as when the launchmode=normal... I didn't change anything but the manifest... Jan 19 23:46:45 Even after reinstalling the app Jan 20 00:00:52 is it possible to change a value in dimens.xml across all resource folders at the same time? Jan 20 00:01:36 if they’re all the same value, you don’t need it in each dimens file Jan 20 00:01:49 otherwise, no, you’re going to have to go into each of them and do it separately Jan 20 00:02:41 s73v3r: yeah, understood. in anticipation of needing to add multiple values, it would be nice when i add a key, it shows up everywhere initially (which is more what i meant vs changing them all at the same time... bad wording) Jan 20 00:02:59 don’t. it just makes things confusing Jan 20 00:03:22 nevermind, I misread Jan 20 00:03:52 s73v3r: alright, then is it normal to need fine grain control over, let's use dimens.xml or is it a sign there is a better way? Jan 20 00:04:01 so you’re adding a value, and you want the appropriate entries to be placed in the different versions of the file from the start? Jan 20 00:04:08 s73v3r: yes Jan 20 00:05:02 s73v3r: it can match the initial value, but i would change the value accordingly depending on the qualifier(s) Jan 20 00:05:30 if you are going to be putting different values for the different versions immediately, then you might be able to do it with the Extract Value refactoring Jan 20 00:06:34 s73v3r: alright, thank you i'll give that a shot. as a follow up, if i need to have 8 different values for a particular dimen across the qualifiers, does that mean I should re-think the solution? or is that just Android? Jan 20 00:07:45 in XML at least, if you initially type a dp or sp value, and then you use the Exttract Dimension Resource refactoring, it will give you a choice of different buckets to put that value in Jan 20 00:08:04 as for that, it really depends on what you’re doing Jan 20 00:08:25 I guess you’d have 4 buckets landscape, and maybe 4 buckets portrait? Jan 20 00:09:56 s73v3r: that works beautifully... thank you. Jan 20 00:10:29 s73v3r: yeah something like that. i just wanted a general sense if having too many dimens.xml was a sign that i was doing something wrong Jan 20 00:11:18 not necessarily. i would avoid adding versions of the file just to have them around, but if you legitimately find that you need different values for the different configurations, then you need them Jan 20 00:11:34 but the specialized files don’t have to have every entry if it’s not different for them Jan 20 00:11:40 perfect, that was the answer I was hoping for :) thanks for your help. Jan 20 01:18:07 TacticalJoke have you seen anything else with a similar thesis? https://www.amazon.com/Civilization-its-fate-civilization-doomed/dp/1540598977 Jan 20 01:27:13 g00s: Interesting. Nah, I've never read any such book. Jan 20 01:27:38 I actually am inclined to say that Western civilization is doomed (though I realise that the above book is talking more generally). Jan 20 01:27:51 basically seems the idea is, we are adapter to life on the savannah .... the further it gets away from that the worse we are mentally and physically Jan 20 01:29:23 and the better we get to cope with that Jan 20 01:30:02 evolution happens slowly Jan 20 01:30:45 psychology and psychiatry medicine and fitness are higher level adaptive tools. It's what differentiate us from animals and the core of civilization Jan 20 01:31:02 actually we've slowed human evolution down even further with medical advances Jan 20 01:31:20 we are evolving in a different way Jan 20 01:32:32 TacticalJoke only 15 more hours before MAGA! Jan 20 01:33:54 U!S!A! U!S!A! U!S!A! U!S!A! Jan 20 01:35:22 https://www.youtube.com/watch?v=4BL2phayvXc Jan 20 01:35:30 Is there SDK packages list on the web officially? I would like to get the list on web rather than on CLI. Jan 20 01:37:25 I'm using command line to install and update Android SDK. Reading from console is tiresome. Jan 20 01:42:45 cm_at_work: are you looking for a web-based Android SDK management tool? Jan 20 01:44:34 cm_at_work: if you don't like to use the CLI, don't use it. Why don't you just use the Android SDK Manager from Android Studio? Jan 20 01:45:35 Thanks Melatonina! No, I want to have a list of packages on the repo and I can read the information about package from that. Jan 20 01:46:27 No, I need to use CLI to install SDK packages. I'm making a Docker image for APK building automation,. Jan 20 01:47:23 So the `android update sdk` command line would be in RUN line on Dockerfile. Jan 20 01:48:09 Now, I'm trying to list and read SDK packages to see which I want to have on my Docker image. Jan 20 01:50:07 cm_at_work you probably want to look at the new 'sdkmanager' command Jan 20 01:50:15 but its still kinda busted Jan 20 01:50:55 g00s: Yeah, I have been. But I got problem with it. Jan 20 01:51:06 seems to be taking them a very long time to fix a simple report formatting issue Jan 20 02:22:45 Could I please get some assistance with the TaskStackBuilder? The parent is opening in the foreground and sometimes the background without reason Jan 20 02:23:03 I didn't change any code yet it changed how it openend Jan 20 02:49:09 I add an item to the adapter of my recycler view. After a while, my server produces more information and delivers it to my Android application. I change the item in the adapter and call notifyItemChanged() but the item view is not updated. I have to drag the recycler view to have the view updated. What should I do? **** ENDING LOGGING AT Fri Jan 20 03:00:02 2017