**** BEGIN LOGGING AT Sat Jul 14 02:59:59 2012 Jul 14 03:02:38 come on man, you're not helping Jul 14 03:03:06 why do all these people are here yet they don't want to help Jul 14 03:03:32 nostlogia of the days before when IRC ruled the intertubes Jul 14 03:04:24 who're you? Jul 14 03:04:44 there were no days like that, lasserix Jul 14 03:05:23 lol Jul 14 03:05:30 once upon a time irc was populated by chatrooms of topics other than hacking and programming Jul 14 03:05:36 before the days of telnet star wars movies in ascii Jul 14 03:05:40 hehe Jul 14 03:05:41 lasserix: lies Jul 14 03:05:46 all lies Jul 14 03:05:52 pics or it didnt happen Jul 14 03:19:13 ok so i have a mHandler = new Handler() { lots of code here } type thing that i got from an example.. this seems to be the way this sort of thing is donoe most times Jul 14 03:19:33 but i want my handler to NOT be an anonymous class inside my run() part... how would i factor that out? Jul 14 03:19:41 cyz im a bit confused how to do that Jul 14 03:20:20 you could create a class that extends Handler and pass an instance of that where you'd normally pass the anonymous clas Jul 14 03:20:23 s Jul 14 03:20:46 i dont pass the handler Jul 14 03:21:23 public void run() { Looper.prepare mHandler = new Handler() { handler here }; Looper.loop(); } Jul 14 03:21:27 i want the handler factored out Jul 14 03:22:03 i dont want mHandler = new Handler() { code here } Jul 14 03:22:25 i want handler as a separate method within this looper/handler class Jul 14 03:22:38 i am still stuck on exporting an app from eclipse i have tried so many times its not funny to export the app but it exports with no valid icon i followed changing the icon size and format and cleaned it about 20 times now and no dice Jul 14 03:22:39 or a as a separate class referenced by this one Jul 14 03:22:44 i have googled it all day Jul 14 03:23:02 mHandler = new ClassThatImplementsHandler(); Jul 14 03:23:03 droidbuster, you want to stop fighting development tools ALL DAY? stop using eclipse Jul 14 03:23:04 period Jul 14 03:23:08 use intelij idea Jul 14 03:23:10 would that do what you need? Jul 14 03:23:13 and LOVE the devel env Jul 14 03:23:39 ryanm, yea erm maybe let me try Jul 14 03:23:39 i have intellj but my project is all in eclipse including the keystore Jul 14 03:24:07 convert it. take the time to do that. or just "import existing project" Jul 14 03:24:24 abandon eclipse it is the single worst piece of software ever developed Jul 14 03:24:40 it takes horrendously fucked up to entirely new levels Jul 14 03:24:52 o_O Jul 14 03:26:00 I440r: that is your opinion not mine. Jul 14 03:26:40 I'm personally able to work fairly effectively in eclipse. Occasionally something doesn't work, but that's true of a lot of software. Jul 14 03:27:12 i exported 3 apps this week this only one being falty Jul 14 03:27:17 faulty* Jul 14 03:27:17 s/a lot/all/ Jul 14 03:27:22 IJ is good. eclipes doesnt even come close to bad they are that bad Jul 14 03:27:53 with eclipse you have ADT though, which is a huge advantage if you're doing android dev Jul 14 03:28:02 I440r: no offense, but most people here are probably not going to be apt to take programming advice from someone who doesn't know how to extend Handler. Jul 14 03:28:03 i didnt ask for a ide pref i asked for a solution to a problem of it not exporting the icon on the app correctly Jul 14 03:28:26 thus cant send to market Jul 14 03:28:38 droidbuster: I've never seen this error before, but is there anything in the error log or console in eclipse? Jul 14 03:30:00 ryanm no there isnt it is exporting the app correctly i had 4 test devices i put the app on no problem then signed it and exported it right the first time and no icon. did not catch my attention. then uploaded it to play and errors need 48x48 png... Jul 14 03:30:25 so i redid the icon.... 3 times in gimp.... now it is not setting the icon on the file correctly Jul 14 03:31:17 i mirrored the project in a new project and copied the files over again and same thing not exporting the icon... no errors Jul 14 03:32:28 File written by Adobe Photoshop? 4.0 is in the file header hmmm i see a problem here Jul 14 03:33:27 Sorry, I have no idea personally Jul 14 03:33:37 if i send 3 messages to a handler in A, B, C order, what order are they processed in? Jul 14 03:33:37 i know its perplexing Jul 14 03:33:46 i.e. are message queues queues or stacks Jul 14 03:33:59 only thing I can think of is it may not be set correctly in the manifest Jul 14 03:34:43 checked it 3 times Jul 14 03:34:46 :) Jul 14 03:35:10 is it in res/drawable? Jul 14 03:37:58 ryanm: yes it is i think i finally might have got it Jul 14 03:38:13 I'm curious what the issue was if you do get it Jul 14 03:38:18 i checked the file in n++ and the head was for a jpg Jul 14 03:38:38 but the extension was a png Jul 14 03:38:54 not gimp or windows picked it up lemme try to export it Jul 14 03:38:54 ahh Jul 14 03:38:57 ugh thats messed up, gimp did that? Jul 14 03:39:37 if you don't have the box checked for "determine file type by extension" in gimp it's not too hard to do Jul 14 03:47:26 ryanm: nope didnt fix the problem what the fuck is this shit really stupid jesus Jul 14 03:59:30 The icon for your application is not valid. Please use a 48x48 PNG. fucking still jesus Jul 14 04:00:15 You may have checked this already, but is it definitely exporting (correctly) as a 48x48 PNG? Jul 14 04:00:26 both resolution and format? Jul 14 04:01:24 yes i checked the header Jul 14 04:01:27 and the size Jul 14 04:18:14 how do I measure the obnoxiously slow execution time of ant targets? Jul 14 04:18:24 the profile logger is far too fine grained Jul 14 05:06:51 hi all Jul 14 05:07:08 im having trouble finding the right resources to learn how to do something Jul 14 05:07:21 i want to programatically add UI elements Jul 14 05:14:22 Belecan, complelty w/o xml?> Jul 14 05:15:49 view.addview() Jul 14 05:15:53 sorry Jul 14 05:16:00 view.addView(element) Jul 14 05:16:23 view can be anything like scrollview, linearlayout, relativelayout Jul 14 05:17:00 whats the difficulty you're having? Jul 14 05:19:50 yeah Jul 14 05:19:55 umm Jul 14 05:20:00 well im just trying to figure it out really Jul 14 05:20:19 I want to have a loop in my program that adds a layout for each element in a collection Jul 14 05:21:03 So each layout would get its name from the name of the object Jul 14 05:21:27 say the object is called V44 then i want the edit text associated with it to be called etV44 Jul 14 05:21:30 etc Jul 14 05:21:34 im sure its possible Jul 14 05:21:41 yeah it it is Jul 14 05:21:46 have a base layout in xml Jul 14 05:21:57 setcontentview(baselayout) Jul 14 05:21:57 Ok ive got that Jul 14 05:23:09 LinearLayout = findViewById(rootElement) Jul 14 05:23:52 what do you mean by rootElement? Jul 14 05:23:57 for( collectinionItem: collection){ linearLayout.addView(addlayoutelement(collectionItem));} Jul 14 05:24:26 and addlayoutelement will return an edittext with the given parameter Jul 14 05:24:47 like the linearalyout in the xml Jul 14 05:24:59 easiest is linearlyolut coz it just works by adding Jul 14 05:25:09 Ok so that would be the bigger one that everything is going into Jul 14 05:25:13 for relativelayout you have to manipulate the positition everytime Jul 14 05:25:14 yeah Jul 14 05:25:24 yeah all of my things are in linear layouts Jul 14 05:25:27 cool Jul 14 05:25:29 thanks very much Jul 14 05:25:31 ill give it a go Jul 14 05:25:32 and recommendd that you put that linearlayout inside a scrollview Jul 14 05:25:47 so baselayout is the main screen in XML Jul 14 05:25:53 we use R.layout.. Jul 14 05:26:03 ya Jul 14 05:26:14 setContentView(r.layout.mybaselayout) Jul 14 05:26:17 and root element is a template of my button Jul 14 05:26:26 buttons Jul 14 05:26:26 yes Jul 14 05:26:27 () Jul 14 05:26:38 the buttons just controlling off/on? Jul 14 05:26:41 its different everytime based on the parameterss Jul 14 05:27:14 its two buttons, an EditText and a TextView all inside a linear layout or two Jul 14 05:27:48 also considering using a custom listadapter, slightly more advanced learning curve, but highly configurable Jul 14 05:28:09 Ok, ill try to get this working first Jul 14 05:28:10 thanks Jul 14 05:36:12 hmm Jul 14 05:36:31 myLayout = findViewById(R.id.myLayout); Jul 14 05:36:43 myLayout is declared as a LinearLayout Jul 14 05:37:04 it says "cannot convert from view to LinearLayout: Jul 14 05:37:06 : Jul 14 05:37:07 " Jul 14 05:37:15 Belacan: what says that? Jul 14 05:37:25 add cast Jul 14 05:37:27 the red squiggly line Jul 14 05:37:33 myLayout = (LinearLayout) findViewById(R.id.myLayout); Jul 14 05:37:42 ahh ofcourse Jul 14 05:37:44 thanks Jul 14 05:37:49 thats what i suggested but i was unsure Jul 14 05:37:59 Belacan: why do you even care that it's a LinearLayout btw? not much you're gonna do about it in Java. Jul 14 05:38:11 why is myLayout not just a View? Jul 14 05:38:28 I want to manipulate it in java Jul 14 05:40:06 Belacan: and why do you care that the variable's type is LinearLayout? what does LinearLayout offer you that View does not, exactly? Jul 14 05:40:23 Not sure Jul 14 05:40:28 I want to add a button into it Jul 14 05:40:30 this is a very common silly mistake developers make with Android where they insist on casting layouts to their concrete types when they don't actually need to or care. Jul 14 05:41:18 well keep spreading the good word then because i didnt know that Jul 14 05:41:25 Belacan: well then you need ViewGroup, not LinearLayout. Jul 14 05:41:47 and you want LayoutInflater btw. if you call addView, you're probably doing it wrong. Jul 14 05:42:05 how do you add something using LayoutInflater? Jul 14 05:42:12 one of those things where you might say "there's more than one way to do it", but only 1 that makes any god damn sense :) Jul 14 05:42:17 Belacan: docs. Jul 14 05:42:35 Belacan: a cusotm list adapter is the best for what you're doing Jul 14 05:43:06 its easier to get the information from each row of edittext and then button that way Jul 14 05:43:53 well i mean, maybe. i don't know enough about what he's doing to say one way or another. Jul 14 05:44:48 whats the disdvantage of using addView? Jul 14 05:44:49 Im trying to add a group of buttons and textviews all within a linearlayout programatically Jul 14 05:45:19 adding those to an existing linearlayout defined in XML Jul 14 05:46:04 LayoutInflater is used when you want to addview from an xml file Jul 14 05:46:11 infalte from xml Jul 14 05:46:14 *inflate Jul 14 05:46:52 addView works when you have a small number of elements in each row Jul 14 05:46:59 but will that let me change the names of the items within? such as id and sutff? Jul 14 05:47:26 addView? yes, just use the index of collevtionitem sa a marker and setId accordingly Jul 14 05:47:42 what are causes that an app wont export with an icon Jul 14 05:48:02 ok thanks im looking into it a bit more ill let you know how it goes Jul 14 05:49:12 Belacan: using the custom list adapter handles all that for you, but it does have a steep learning curve Jul 14 06:05:47 what are causes that an app wont export with an icon Jul 14 06:09:30 does anyone know how to change the build target of a project in eclipse? I started a project with android 2.2 but I want to change it so android:onclick will work in xml Jul 14 06:17:48 its controlled by the manifest Jul 14 06:18:05 in rare case might need to fix the project properties Jul 14 06:18:21 what are causes that an app wont export with an icon Jul 14 06:26:09 Anyone know if there is a way around installing itunes to browse ios apps? Jul 14 06:26:20 cool Jul 14 06:26:29 i got the inflater working Jul 14 06:26:41 but is it possible to name the elements specifically? Jul 14 06:27:17 You can use setId Jul 14 06:27:21 to whatever you want Jul 14 06:27:33 but what do you mean by "name"? Jul 14 06:27:36 f2prateek: thanks got it :) Jul 14 06:27:48 yeah thats it i think Jul 14 06:27:49 cheers Jul 14 06:33:06 hii all Jul 14 06:37:17 hi juned Jul 14 06:37:21 Ok Jul 14 06:41:55 hi Belacan Jul 14 06:42:14 i want to configure PPTP VPN profile Jul 14 06:43:34 anyone can help me to configure PPTP VPN profile? Jul 14 06:47:08 is there anyone who have idea about VPN connections? Jul 14 06:47:23 Ok, can i use layout inflater to change the text in an element within the layout? Jul 14 06:48:04 Belacan: just call setText()? Jul 14 06:51:26 romainguy_: http://paste.bradleygill.com/index.php?paste_id=380581 Jul 14 06:53:25 why is setText final in TextView? Jul 14 06:54:57 i've wondered the very same thing myself, many times Jul 14 06:55:40 im curious why it wouldn't be? Jul 14 06:55:49 i mean, under what situation would you want to override that? Jul 14 06:55:55 custom text views? Jul 14 06:56:22 I can think of at least 4 places in our code and 1 in ABS where it would've been helpful Jul 14 06:56:27 I wanted to create a edittext that would just put the cursor at the end of the current text when you select it Jul 14 06:56:40 because for some unknown reason, that doesnt happen by default Jul 14 06:57:37 not that i agree with this approach, but of note is that setText(CharSequence, BufferType) is not final Jul 14 06:58:12 honestly for extensibility reasons, I dont know why anything in the widget packages Jul 14 06:58:16 but im pretty sure TextView is one of those classes like ListView where the developers really did not expect you would be subclassing it for any reason Jul 14 06:58:20 would be final Jul 14 06:58:49 ron_frown: because anything we make public/non-final makes backward compatibility a major nightmare when we work on new versions Jul 14 06:58:50 ron_frown: lots of UI toolkits actually design with this pattern you know. where rather than subclassing the controls you just make them flexible enough externally to be highly customizable. and most importantly, compoundable. Jul 14 06:59:01 jasta: the constructor calls setText with whatever was specified in XML Jul 14 06:59:10 romainguy_ fair enough Jul 14 06:59:20 jasta: single-arg setText Jul 14 06:59:22 JakeWharton: i just looked at TextView, you could happily extend the setText method I mentioned and get the effect you want. Jul 14 06:59:28 and to be fair, our widgets are not really designed to be extended Jul 14 06:59:32 jasta - I've ran up against it a bunch of times Jul 14 06:59:34 (except internally by the frameowkr) Jul 14 06:59:57 ron_frown: odds are you may be solving your problem the "wrong" way anyway. or at least, you're swimming upstream for sure. Jul 14 06:59:57 romainguy_ - any reason why you dont expect people to extend? Just use stock controls? Jul 14 06:59:58 as for TextView, our plan is to provide devs with a flexible text framework so you can easily write your own TextView Jul 14 07:00:10 the current text package is a mess Jul 14 07:00:14 haha Jul 14 07:00:49 ron_frown: it was a trade-off at the time between performance and flexibility Jul 14 07:00:53 honestly I walked away from the textview a long time ago... but there are some things that just drive me bat shit nuts =) Jul 14 07:01:05 one of the most customizable UI toolkits I know, Swing, is also one of the slowest Jul 14 07:01:30 it's a joy to work with because you can customize the hell out of it Jul 14 07:01:39 but it's a pita to optimize it Jul 14 07:02:01 romainguy_: if i can hijack the conversation, i was recently taking a very careful look at MapView and noticed that, well, this thing is ancient and hasn't been updated in a long time. It's missing all kinds of features you'd expect would have neatly evolved if anyone was paying attention to it. What gives? Jul 14 07:02:02 believe me, there's not a single day I don't curse at some decisions we made in the past that prevent me from adding sweet, sweet optimizations :)) Jul 14 07:02:08 its also slow because its supposed to be completely self drawn Jul 14 07:02:10 jasta: yeah we know Jul 14 07:02:18 jasta: there are oodles of information on the internet about that same subject Jul 14 07:02:36 romainguy_ I wasnt trying to bash Jul 14 07:02:39 the Q/A and I/O was wasted on people asking about map fragment in every damn talk Jul 14 07:02:42 *at Jul 14 07:02:46 hah Jul 14 07:03:00 summary: we know, thinking & working on it, no ETA Jul 14 07:03:07 does map activity even support stuff like the vector tiles etc? Jul 14 07:03:08 i see. Jul 14 07:03:12 ron_frown: no Jul 14 07:03:24 romainguy_: the Maps app must have abandoned MapView ages ago, no? Jul 14 07:03:37 around 1.x :) Jul 14 07:03:40 besides Jul 14 07:03:56 it had to abandon MapView since then it would be tied to platforms rather than a standalone app Jul 14 07:04:01 that too Jul 14 07:04:05 what are causes that an app wont export with an icon Jul 14 07:04:06 just like Chrome Jul 14 07:04:37 there are no errors anywhere in the project it just blows Jul 14 07:04:44 hey in other news, i got my vector graphics tiling stuff working really well Jul 14 07:04:50 delete gen folder Jul 14 07:05:02 mapping? Jul 14 07:05:50 although i still have a "jank" (you guys seriously use that term?) that i'm just not sure is solveable given the VM budget. basically, i suspect that MapKit is allocating a hell of a lot more tiles than i can get away with ;) Jul 14 07:05:58 yeah that's the term we use Jul 14 07:06:02 butter, not so much ;-) Jul 14 07:06:05 haha I've used janky Jul 14 07:06:09 btw romain Jul 14 07:06:14 excellent work on that shit Jul 14 07:06:19 I am assuming you had part of it Jul 14 07:06:29 ron_frown: thanks Jul 14 07:06:36 I know iphone has always had a percieved more responsive, more live feel to it Jul 14 07:06:50 I feel like jb is now every bit as smooth and fluid Jul 14 07:07:06 we still have work to do Jul 14 07:07:14 romainguy Jul 14 07:07:17 but now we can clearly see when the problem is in the apps Jul 14 07:07:18 you work at google, right? Jul 14 07:07:23 I do Jul 14 07:07:29 the problem is so much in the apps now Jul 14 07:07:31 what happened to ADC? Jul 14 07:07:43 it hasn't been 18 months Jul 14 07:07:48 I need to take a crack at optimizing my datagrid stuff Jul 14 07:07:55 ron_frown: and open sourcing Jul 14 07:07:56 rewrite for more modern platforms Jul 14 07:07:56 ? Jul 14 07:07:59 yessir Jul 14 07:08:03 that was the plan form the get go Jul 14 07:08:04 =) Jul 14 07:08:14 don't leave me hanging romainguy_ lol Jul 14 07:08:18 butter is much better, coz keeping the ui smooth doesnt hijack any activity process like ios! Jul 14 07:08:18 ADC? Jul 14 07:08:25 what happened to Android Developers Challenge Jul 14 07:08:25 the devs contest? Jul 14 07:08:27 yeahhhh Jul 14 07:08:30 nice, I have about 3 libraries I'm trying to get open sourced in the next month or two Jul 14 07:08:32 it brought some badass ideas Jul 14 07:08:33 we don't do it anymore Jul 14 07:08:37 :( Jul 14 07:08:45 anyway Jul 14 07:08:46 I still have my half-baked entry for ADC1 Jul 14 07:08:50 I have tons of cool ideas for optimizations Jul 14 07:08:55 but 90% of them would break your apps Jul 14 07:08:57 fuck :) Jul 14 07:09:01 JakeWharton I'd actually like to get input on it once I get it done Jul 14 07:09:04 and then it went from being a blackberry to an iPhone in the middle of the challenge and i gave up :( Jul 14 07:09:08 I've had problems optimizing Jul 14 07:09:15 gains here, losses there Jul 14 07:09:43 Without those optimizations, the bar will never get any higher and most apps will ever be mediocre Jul 14 07:09:54 romainguy_: i actually would like to get your eyes on this tiling thing i built soon. i'd like to take another crack with systrace to be certain i'm not misunderstanding the issues Jul 14 07:10:21 jasta: let me know Jul 14 07:10:23 jasta what do you draw the vectors with Jul 14 07:10:27 but it's an idea we've been toying with for a while Jul 14 07:10:31 basically, my draw frames can spike high, like up to 60ms, when the tiles cache miss and have to be redrawn. Jul 14 07:10:40 Nicolas and I would like to port WebView's tiling engine to the framework Jul 14 07:10:53 so I want to make sure I don't read non OSS code, etc. Jul 14 07:11:05 haha Jul 14 07:11:07 romainguy_: i would open source it to send it to you :) Jul 14 07:11:07 (WebView in JB is so much faster it's awesome) Jul 14 07:11:16 i mean, i wouldn't send you anything not open. Jul 14 07:11:32 I'll toss my stuff up to github and solicit feedback =) Jul 14 07:12:45 does anyone have any ideas: http://paste.bradleygill.com/index.php?paste_id=380581 Jul 14 07:13:06 romainguy_: btw, i noticed webkit used what appeared to be constant-sized tile bitmaps of 256. is there some reason it's not base 2 rounded based on device density (such that a galaxy nexus would use 512x512 tiles)? Jul 14 07:13:08 view.findViewById Jul 14 07:13:11 http://img716.imageshack.us/img716/7200/drag12.png Jul 14 07:13:13 Belacan Jul 14 07:13:18 I need to make that badboy perform better =) Jul 14 07:13:18 jasta: not WebKit, WebView Jul 14 07:13:33 Yeah Jul 14 07:13:35 i tried that Jul 14 07:13:38 butt Jul 14 07:13:42 and hopefully the dragdrop bugs are fixed in > honeycomb Jul 14 07:13:48 jasta: what matters is the resolution, not the density Jul 14 07:13:57 jasta: 256x256 is based on 1280x720 display Jul 14 07:14:03 and it scales pretty well to lower resolutions Jul 14 07:14:46 interesting, this is in webview? webkit, you know, has tiling cruft in it. Jul 14 07:14:54 and there are recent-ish commits on that stuff too. i looked. Jul 14 07:15:14 I believe the Chrome guys have been working on upstreaming their own tiling stuff for a while Jul 14 07:15:20 but it's not what we're using Jul 14 07:15:27 the tiling is entirely on our side Jul 14 07:15:32 really... Jul 14 07:16:42 well now i've got a ton of new crap i've gotta look at ;) Jul 14 07:16:44 How do I get a handle on audio output (I have created a mediaplayer object and I want to create a visualisation based on the stream's signal) Jul 14 07:18:32 jasta: and tiling just got faster in our internal branch ;-) Jul 14 07:18:39 don't tell me that. Jul 14 07:18:40 :) Jul 14 07:19:21 if i may boast, while my tiling strategy has some jank (that is just an awful term, im not sure i can get used to it) it is only 500 lines. Jul 14 07:19:27 romain in my control i posted screenshot, I basically derived from a listview and horizontal scrollview... each cell is a control, each row uses convertviews Jul 14 07:19:32 Anyone having some troubles with their chromebox from IO? Jul 14 07:19:41 recommendations on how I should change that to improve memory usage and performance? Jul 14 07:19:45 jasta: and we have yet to multi-thread the tiles generation, so it can get even faster :p Jul 14 07:19:50 basically just allocates a pool of bitmaps, tosses them into an LruCache, and re-uses old ones. Jul 14 07:19:57 oh god, i played with multithreading this... Jul 14 07:20:01 what a disaster that turns into fast Jul 14 07:20:04 My display gets a signal but it only display a black screen :( Jul 14 07:20:13 yeah multi-threading is not always easy :) Jul 14 07:20:29 it's just grossly overcomplicated compared to the single threaded model Jul 14 07:20:39 basically, i chose to stutter rather than deal with that cruft Jul 14 07:20:44 for now, anyway Jul 14 07:20:47 jasta: but on quad-core devices it can do wonders :p Jul 14 07:20:53 say that reminds me Jul 14 07:21:07 is android core really able to utilize multiple cores? Jul 14 07:21:11 ron_frown: hard to say without looking at your app through the looking glass of our tools Jul 14 07:21:13 ron_frown: of course Jul 14 07:21:14 is a quad core device really going to benefit me Jul 14 07:21:20 romainguy_ Jul 14 07:21:20 that stupid rumor needs to die Jul 14 07:21:22 our (crappy) image downloading framework gives us callbacks on the main thread when an image is available. I'm trying to update an widget's adapter that backs a StackView and it's flashing about 10 times since the images callbacks all come at different times. Is there a way for me to update without having to recreate the entire widget? Jul 14 07:21:31 alright I'll get it loaded up to github Jul 14 07:21:43 I only want to update the View inside the StackView's adapter with the new image Jul 14 07:21:44 romainguy_: wait, you're already currently doing it on a separate thread? hell, i'm drawing my tiles on the main thread. Jul 14 07:21:45 get a Nexus 7, run a bunch of apps doing a bunch of work, start systrace and watch the 4 cores get busy Jul 14 07:22:08 when the image gets there invalidate the image? Jul 14 07:22:14 imageview Jul 14 07:22:18 JakeWharton: if the image is on screen, grab a reference to the view directly Jul 14 07:22:28 it's a remoteView :( Jul 14 07:22:36 jasta: generating the tiles happens on a background thread, drawing with the tiles happens on the UI thread Jul 14 07:22:43 JakeWharton: then no :( Jul 14 07:22:58 remote views are one of the few areas of android I never botherd with Jul 14 07:23:05 romainguy_: i should have assumed. like i said, i went down that path, but quickly returned to drawing the tiles on the main thread. Jul 14 07:23:12 they suck, but the widget is so damn gorgeous Jul 14 07:23:34 I need synchronous image fetching since you can take your sweet time on updating widgets. Jul 14 07:23:46 romainguy_: how do you avoid the user seeing a not-yet-ready tile? i thought about getting fancy and preemptively drawing soon-to-be-on-screen tiles on a background thread, but then still blocking the main thread if the tile was to become visible Jul 14 07:24:01 basically, favoring stutter over revealing a not-yet-drawn tile. Jul 14 07:24:10 i didn't do that yet tho, still just doing all my drawing on the main thread. Jul 14 07:24:56 jasta: you don't Jul 14 07:25:02 jasta: WebView might show you a tile that's not ready Jul 14 07:25:14 Iv'e seen mapview render dummy tiles Jul 14 07:25:16 ...seriously? i don't believe i've encountered that artifact Jul 14 07:25:39 because the WebView guys worked hard on generating tiles fast enough :p Jul 14 07:25:43 they also use an interesting trick Jul 14 07:25:49 they never show "empty" or a checkerboard Jul 14 07:25:50 i can see it on zooming out, actually Jul 14 07:25:55 they figure out the background of the page Jul 14 07:25:59 now that i look more closely Jul 14 07:26:03 but never on fling, which is what i was looking for Jul 14 07:26:06 and paint the window background with the page's background Jul 14 07:26:09 fling is the case in my implementation that just fails hard. Jul 14 07:26:26 they also have smart scheduling Jul 14 07:26:36 when you fling they prioritize tiles differently I believe Jul 14 07:26:57 well i have some reading to do Jul 14 07:27:09 where is this code btw? all i keep finding is the stuff in webkit. Jul 14 07:27:27 it's in external/webkit Jul 14 07:27:34 but it's not part of webkit Jul 14 07:27:55 oh, is it in Source/WebKit/android/? i had not noticed this before. Jul 14 07:27:57 yep Jul 14 07:29:10 most of it is propbably in the jni/ subdirectory Jul 14 07:29:13 oh wiat, what am i saying, this is exactly what i was reading that told me about the 256 size. Jul 14 07:30:20 for a fragment without a layout, is it neccessary to override onCreateView and return null, or can I skip the onCreateView completely? Jul 14 07:30:44 you don't need to override Jul 14 07:30:49 the base fragment returns null Jul 14 07:30:56 thanks Jul 14 07:31:26 oh! just found it in the apidemos as well Jul 14 07:32:40 yikes, most of this stuff i do not want to touch. i'd rather just add multi-core support and rendering in a background thread and just be done with it :) Jul 14 07:32:45 you're an inspiration. someone that actually reads the documentation and demos Jul 14 07:32:50 keep up the good work Jul 14 07:33:10 oh and do prefetching. clearly, they are as well. Jul 14 07:33:16 thats probably how they're making fling work so nicely Jul 14 07:34:32 haha Jul 14 07:35:54 romainguy_: when does a Bitmap actually get uploaded as a GL texture in the new rendering pipeline btw? if i update bitmaps in a background thread, will i still pay the price for texture upload in the main thread on first draw? Jul 14 07:36:07 jasta: yes you will Jul 14 07:36:22 texture uploads are usually pretty fast Jul 14 07:36:38 unless you've got quite a few of them and they're 256x256? :) Jul 14 07:36:44 nope even then Jul 14 07:36:58 hmm, ok. Jul 14 07:37:17 actually WebView on ICS doesn't even use glTexImage to upload Jul 14 07:37:24 it does a CPU copy line by line Jul 14 07:38:50 there's this innocent looking comment in GLWebViewState.h that reads "updating GL textures in the main GL thread would slow things down" Jul 14 07:38:53 got me wondering ;) Jul 14 07:43:43 kudos to the guy that wrote this documentation tho :) Jul 14 07:46:06 yeah Jul 14 07:46:08 that's Nicolas Jul 14 07:46:17 he gave a talk at I/O about how our WebView works Jul 14 07:46:29 this is almost identical to the basic approach i've taken, i just didn't go quite as far. that's encouraging. Jul 14 07:47:30 is it possible for an object to create its own buttons and views using layout inflater when a new instance of that object is created? Jul 14 07:47:50 Belacan: yes, just use an inflater Jul 14 07:48:10 or programatically instantiate controls if there is no specific layout Jul 14 07:50:35 jasta: funny, Nicolas' comment remind me of the one I put in https://github.com/android/platform_frameworks_base/blob/master/libs/hwui/OpenGLRenderer.cpp at line 461 Jul 14 07:50:45 "warning, this shit is complicated, here is why" Jul 14 07:51:23 i do this same thing all the time. actually, i write this type of stuff sometimes _before_ i even code it up Jul 14 07:51:40 just to search for gotchas and kind of therapeutically go over the design i want to try Jul 14 07:53:55 so if I register OnSharedPreferenceChangeListener in my onCreate Jul 14 07:54:09 and I unregister OnSharedPreferenceChangeListener in onPause Jul 14 07:54:20 then doesn't that effectively negate the whole thing? Jul 14 07:54:29 I mean, it pauses, unregisters, and opens preferences Jul 14 07:54:36 so it never sees the preferences change Jul 14 07:55:04 romainguy_: i'm gonna have to step away from the computer lest i start trying out these enhancements at 1am :) Jul 14 07:55:20 besides, my current task at work is actually documentation. last thing i need is to be distracted by more fun optimizations Jul 14 07:56:53 :)) Jul 14 08:10:29 Ok guys i think i have found my solution is anyone curious as to how? Jul 14 08:11:54 i am, more curious as to what exactly was the goal, coz i wasnt sure if i got it correctly Jul 14 08:12:39 ok Jul 14 08:13:58 So my goal was to have a class create its own layout when it was instantiated using the layout inflater, the object would also create its own onlcicklistener for elements inside its layout Jul 14 08:14:13 such as buttons Jul 14 08:15:14 is that comprehensible? haha Jul 14 08:16:03 a little bit Jul 14 08:16:18 but why woudl a class have its own layout Jul 14 08:16:23 I have a question though, why is it that you always have to redfine your view, such as: view = LayoutInflater.from(getBaseContext()).inflate(R.layout.myLayout,null); before calling the myParent.addview(view); Jul 14 08:16:49 if you simply do it once and then call addview several times then it gives you an error Jul 14 08:17:05 coz once you return Jul 14 08:17:09 th eisntance is lost Jul 14 08:17:14 *the instance Jul 14 08:17:44 so everytime you execute the method, you need a new instance of the view Jul 14 08:18:29 When my app gets killed by system and afterwards recreated on starting it again, the fragments get recreated before the initialization process in my asynctask is finished, any ideas how to solve this? Jul 14 08:19:07 I see Jul 14 08:19:15 Thats interesting Jul 14 08:19:16 thanks Jul 14 08:22:06 dark3n: do the initalization on postExecute? Jul 14 08:23:59 Ok, ive got another question. why is it that LayoutInflater.from(getBaseContext()).inflate(R.layout.pvalve, null); needs to be called in the main activity, and cant be run from the constructor of a separate object? Jul 14 08:24:22 whats the error that you get? Jul 14 08:24:47 the null pointer exeption Jul 14 08:25:54 It must be something to do with the R.layout.pvalve Jul 14 08:26:03 i think because its for the getBaseCOntext() Jul 14 08:26:04 perhaps because the activity is not active? Jul 14 08:26:11 it only works if the class is a activity Jul 14 08:26:18 right Jul 14 08:26:33 well i made my class extend activity Jul 14 08:27:06 f2prateek, seems to make no difference, the problem is i think, i start the ansync task in my FragmentActivity onCreate, but as soon as the async task is started, the activity goes on with its lifecycle , exits the onCreate, and restores the previous fragments. one option would be to tell it to not try to restore previous tabs when the app has been killed in background, but i don't know how Jul 14 08:28:59 dark3n: easy way, use a splash activity for asynctask, onPostExecute startan intent with the bundled data, so fragmetns always laod after completion Jul 14 08:29:07 i'm sure thaeres a more elegant way to do this though Jul 14 08:29:33 f2prateek, the async task creates complex objects all fragments use, its not easy to bundle them Jul 14 08:29:34 i ahve no practical experience with async task Jul 14 08:29:57 i am not fixed on an async task, i just don't want an ANR on my app start up Jul 14 08:30:41 i could call Threap.sleep until async task is done but thats dirty Jul 14 08:34:24 f2prateek, how would you do init stuff on app startup? Jul 14 08:35:23 splash activity if its long Jul 14 08:35:26 if its short Jul 14 08:35:42 show progress dialog with sleeping thread Jul 14 08:36:23 but somebody more experienced might have a better answer, i've only worked with one app that needed to do that Jul 14 08:37:19 i'm not sure where i told it to try to restore the fragments Jul 14 08:37:40 onResume probably Jul 14 08:38:26 nah the app got really purged from mem Jul 14 08:38:43 its almost like a new launch, just that it somehow restores the previous fragments Jul 14 08:50:55 Ok its on the tips of my fingers now Jul 14 08:51:48 then wash em Jul 14 08:55:00 ahahaha Jul 14 08:55:02 good un Jul 14 08:56:48 @romainguy: why is it that you cant call myView = LayoutInflater.from(getBaseContext()).inflate(R.layout.myLayout, null); from within the constructor of an object, you need to call it from the main activity Jul 14 09:01:34 Belacan: you can call it from a constructor Jul 14 09:01:42 the problem is probably getBaseContext() Jul 14 09:01:51 just use the context of the View Jul 14 09:15:42 boom, fixed my widget Jul 14 09:15:49 got Beam in too Jul 14 09:15:59 Jelly Bean notifications Jul 14 09:27:11 hmmmm Jul 14 09:27:15 I tried this view1 = LayoutInflater.from(this).inflate(R.layout.pvalve, null); Jul 14 09:27:24 but thats not the 'right' context Jul 14 09:27:25 what is "this"? Jul 14 09:27:37 Views always receive a Context object in their constructor Jul 14 09:27:40 use that context Jul 14 09:33:19 and how do we know which context object is the correct one? when i created my view i didn't include any context arguments in a constructor i just declared it like this: public view view1; Jul 14 09:34:02 where are you writing this code? Jul 14 09:34:25 inside a class's constructor Jul 14 09:34:36 and what is that class? Jul 14 09:35:47 an activity i suppose Jul 14 09:36:19 well no Jul 14 09:36:25 iits not an activity anymore Jul 14 09:36:33 Its just a nothing Jul 14 09:36:48 then you need to give it a Context as a parameter Jul 14 09:36:55 Views always need a context to be created Jul 14 09:36:58 from XML or not Jul 14 09:37:44 when i put the same code in my main activity i dont need to supply a context Jul 14 09:38:05 because an Activity is a context Jul 14 09:49:15 can you force a widget to an aspect ratio? Jul 14 09:49:47 app widget? Jul 14 09:49:59 yes Jul 14 09:50:04 not that I know of Jul 14 09:51:26 Despite the mediocre communication mechanisms I'm finding widgets to be quite delightful Jul 14 09:52:00 it's all based on the idea that a widget should not need a process running in the background to be useful Jul 14 09:52:42 the system cleares my app from memory, and when i open it again, it restores fragments, even though i didn't tell it too, and before "onRestart" is called.. Jul 14 09:53:48 FragmentManager stores and restores its state in the Bundle and non-configuration instance automatically Jul 14 09:54:06 you should only initialize your fragments from scratch if savedInstanceState == null Jul 14 09:54:54 JakeWharton, the problem is i init a complex object in the FragmentActivity, which my fragments use, but i do this in an async task, which doesn't stop the fragments from being restored, before the init is done Jul 14 09:56:06 normale the fragments are created and added in the postexecute of the async task Jul 14 09:57:41 in onCreate you can query the fragment manager for the fragments and hide them if they really must not be seen. A likely better pattern is to simply notify the fragments that the object is ready for use in onPostExecute and allow them to be attached at any time. Jul 14 09:58:45 hm Jul 14 09:59:33 don't i need both? check if savedInstance != null, if so, detach fragments(!= hide fragments?), and in postexecute attach (!= show ?) the fragments Jul 14 10:01:56 hmm Jul 14 10:02:24 i tried this Jul 14 10:02:25 MainActivity.view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.pvalve, null); Jul 14 10:02:29 that doesnt work either Jul 14 10:02:53 ive been reading a bit about the concept of contexts and im sorry to admit i dont really understand it Jul 14 10:03:23 From what i read a context is something that gives things perspective Jul 14 10:03:41 about its environment Jul 14 10:06:18 hey guys, was wondering if any of you could point me in the direction. I'm looking at adding a little options tab on the bottom right of my app (the three vertical dots), which will allow the user to change the theme of the app and open a site in a browser. I imagine fairly simple stuff.. was just wondering what the api for the three little dots is usually called Jul 14 10:07:58 Timmaah1201, actionbar? Jul 14 10:08:38 thats at the top though.. and the three little dots are usually bottom right in apps arent they? Jul 14 10:09:01 only if you target < API 11 Jul 14 10:09:37 ok.. im targetting api 11 and above.. so its ok to put that in the action bar? Jul 14 10:09:40 those three little dots are usually a litmus teset for how good an api is Jul 14 10:09:41 guess can juts use a drop down spinner? Jul 14 10:09:44 *app Jul 14 10:09:58 dropdown spinner or action item + submenu Jul 14 10:10:02 JakeWharton, do you have a snippet for the pattern you talked about? also i think my problem might be caused by a viewpager Jul 14 10:10:26 thanks for the help JakeWharton Jul 14 10:10:46 dark3n: no, sorry Jul 14 10:11:04 i kind of just picked it up from using fragments as a personal pattern/best practice Jul 14 10:11:23 did you mean getBackStackEntryCount? Jul 14 10:11:24 i'm sure it's mentioned somewhere in the docs or samples but I have no clue where Jul 14 10:11:33 no Jul 14 10:11:46 how do i get the "to be restored" fragments ? Jul 14 10:11:56 to hide them Jul 14 10:12:09 findFragmentByTag() Jul 14 10:12:18 how do i get the tag? :D Jul 14 10:12:39 you assign it when you add the fragment Jul 14 10:12:58 .add(R.id.whatever, coolFragment, TAG_COOL_FRAGMENT) in your transaction Jul 14 10:13:07 then findFragmentByTag(TAG_COOL_FRAGMENT) to get it back Jul 14 10:13:38 hi, I'm using a custom rom and an application (Google Search :/) keeps on FC'ing on me Jul 14 10:14:10 I have a logcat of a session where such a crash happens, but I'm not too proficient on where to look for a solution Jul 14 10:16:08 belgianguy, either custom rom dev or app dev Jul 14 10:17:00 well I'm fairly certain it's the ROM dev as Google Search is made by Google :) Jul 14 10:17:08 and both the app as the search bar crash Jul 14 10:17:21 problem is I've been trying to reach out to them on XDA Jul 14 10:17:32 but they don't seem to notice Jul 14 10:17:54 #xda-devs Jul 14 10:19:11 dark3n: I've been there before, but I'll try again then Jul 14 10:19:30 then either wait or switch rom Jul 14 10:20:08 JakeWharton, whole buisness with actionbar+viewpager is making it difficult for me, i can't find the place where i would add the tag, maybe im sitting too long at this Jul 14 10:21:40 dark3n: I was thinking of tackling it myself Jul 14 10:24:36 Ok heres my latest attempt view = getLayoutInflater().inflate(R.layout.pvalve, parent,false); Jul 14 10:24:45 that didnt work either Jul 14 10:25:05 Belacan, what are you trying to do ? Jul 14 10:25:23 Get the layout inflater to work in the constructor of an object Jul 14 10:25:29 I got it working within the main activity Jul 14 10:25:41 but as soon as i move it to the constructor of an object, kapeesh Jul 14 10:25:49 whats the function you use in your main Jul 14 10:26:37 Belacan, is the object extending view or viewgroup? Jul 14 10:26:44 Its in onCreate Jul 14 10:26:53 no Jul 14 10:26:56 should it be? Jul 14 10:27:04 Depends on what you are doing with it Jul 14 10:27:28 Is this object a data structure about the valves, or a compound view ? Jul 14 10:27:32 *related to a valve Jul 14 10:27:50 how would you make an activty restart itself in 10 seconds? Jul 14 10:27:58 well this object is a data structure i suppose Jul 14 10:27:59 caseofinsani runnable Jul 14 10:28:11 it tells the program how do handle clicking and controlling of the valves Jul 14 10:28:20 but i also want it to create its own layout Jul 14 10:28:26 you want a viewgroup Jul 14 10:28:47 When i do that i can no longer have a constructor though Jul 14 10:28:57 you have to have a constructor for a view group Jul 14 10:29:03 in fact, you have three to choose from Jul 14 10:29:37 Let me paste some code in Jul 14 10:30:38 You are creating these valve objects programmatically right? Jul 14 10:31:14 lasserix: can u briefly describe how to use runnable to close & restart an activity after 10s Jul 14 10:31:18 thx in advance Jul 14 10:32:24 just a guess, but make a handler in the activity, make a runnable that finishes the activity, use the handlers postdelayed method in oncreate Jul 14 10:35:48 JakeWharton, viewpager doesn't seem to support setting tags Jul 14 10:37:29 ok here you go lasserix Jul 14 10:37:31 http://pastebin.com/ncB0UnbH Jul 14 10:37:42 To demonstrate a working one and a not so working one Jul 14 10:38:09 All i tried to do was move the view assignment to inside the constructor of my object Jul 14 10:38:27 that way i dont need to type it out every time i create the object, it'll all be handled by the class Jul 14 10:38:40 its a failure to understand how to use views and viewgroups as objects in object orientated design Jul 14 10:38:54 to be honest i'm only beginning to understand it myself Jul 14 10:38:57 one second Jul 14 10:40:02 That is without a shadow of a doubt the problem Jul 14 10:40:06 my failure to understand Jul 14 10:40:16 Ive been trying to hack at it Jul 14 10:40:18 usually that works Jul 14 10:40:26 but this one is particularly stubborn Jul 14 10:40:30 I say that, only because a few months ago I asked a question of literally the same nature Jul 14 10:42:04 so to summarise i suppose my problem is that view = LayoutInflater.from(getBaseContext()).inflate(R.layout.pvalve, null); cant be moved to outside the activity Jul 14 10:42:45 What is the error? Jul 14 10:42:50 null pointer Jul 14 10:42:53 exception Jul 14 10:43:05 You should really wrap the object as a view/viewgroup Jul 14 10:43:17 I'm pasting it up in a sec Jul 14 10:43:19 What line, stack trace? Jul 14 10:43:56 Hm your parent is static, don't do that :) Jul 14 10:44:41 when i do that i can no longer access my parent from outside the activity Jul 14 10:44:55 It needs to be static so my PValve object can access it. Jul 14 10:44:55 :o Jul 14 10:45:19 It can't be static because it can't be shared by multiple instances of your activity. Jul 14 10:45:43 It's also not true :) Jul 14 10:45:47 my activity is the main activity Jul 14 10:45:53 so theres only one instance of it Jul 14 10:45:57 Wait, PValve isn't actually in your activity class? Jul 14 10:46:05 no Jul 14 10:46:09 Oh Jul 14 10:46:11 its a new object Jul 14 10:46:18 class* Jul 14 10:47:20 Well, shortest way is to pass parent into PValve's constructor. Or just a context (i.e. the activity instance, i.e. "this" from onCreate()) and do the findViewByIds entirely in PValve. Jul 14 10:48:26 Actually you'd need to pass an Activity class, not just a Context. Jul 14 10:49:23 PValve(Activity activity){ View parent = (ViewGroup) activity.findViewById(R.id.vertical_container); ...} etc etc Jul 14 10:50:23 how do you close an activity then restart it in 10 seconds? Jul 14 10:52:20 Belacan: here http://pastebin.com/rvnZnRDx Jul 14 10:53:11 So... with all this reputation of working 80-hour weeks and stuff, I should be able to find all the core Android devs at work today, right? Jul 14 10:53:12 mValveWidget is going to be the compound view representing the object of that valve Jul 14 10:53:21 (through my professional persona, naturally) Jul 14 10:53:42 caseofinsani: make a timertask with startActivity and finish(), I guess. Jul 14 10:53:58 caseofinsani: but rather than doing that, just refresh your activity's data, perhaps? Jul 14 10:54:04 you can instantiate as many as you want in your activity, adding them with addView and manipulating them like you would any other object, as shown with A.mButton.setText Jul 14 10:54:51 for simplicity I didn't add any layout params or anything, which you can Jul 14 10:55:33 oh in the mValveWidget constructor you would also setOnClickListeners and all that jazz Jul 14 10:57:20 Gumboot you missed them by an hour Jul 14 10:58:22 Processing.... Jul 14 11:00:09 Shit i gtg right now shit shit Jul 14 11:00:15 ill save the chat and get back to it Jul 14 11:00:20 ill let you know how it went too Jul 14 11:00:20 np Jul 14 11:00:24 thanks so much for you help!!! Jul 14 11:00:27 one last thing Jul 14 11:00:32 you don't have to inflate it Jul 14 11:00:43 you can add all those basic widgets programmatically in the contrustor Jul 14 11:01:01 goodluck Jul 14 11:01:08 got it. thanks again. Jul 14 11:04:39 lasserix: Who'd I miss? Jul 14 11:05:07 Hi Guys, i an trying to set a touch listener on a "RelativeLayout", i can set it but i only ever get back "ACTION_DOWN" which isn't really usefull. any suggestions? Jul 14 11:06:09 Im trying to change a theme programatically, I have a setTheme() function in onCreate() before I setContentView(), and the app is going into the setTheme() function fine.. but not actually changing the theme.. code I've got is: getApplication().setTheme(android.R.style.Theme_Holo); and Theme_Holo_Light any ideas? :/ Jul 14 11:06:40 Oh. romainguy_. He'd be ideal. Jul 14 11:07:08 is it possible to build a specific android program only? I would like to compile external/srec Jul 14 11:08:08 nvm, figured it out! was the getApplication() bit which was making it not work Jul 14 11:08:27 Stormsys you have to change the return value Jul 14 11:08:39 switch the boolean Jul 14 11:09:16 lasserix, you mean if i want to see ACTION_UP i need to return true on ACTION_DOWN ? Jul 14 11:10:09 oh, that worked thanks :) does it distinguish "drags" from "ups" automatically? Jul 14 11:10:17 yeah Jul 14 11:10:22 drag is action_move Jul 14 11:17:18 im trying to make an alarm popup with remind later option. anyone know a best way to go about dismissing an activity and reopening it later? Jul 14 11:19:15 case that's what services are for Jul 14 11:19:30 so is the nexus 7 available? I was seeing some confusing headlines yesterday Jul 14 11:19:52 lasserix: so make the current activity start a service then let the service start a new activity? Jul 14 11:20:01 i think thats the idea Jul 14 11:23:12 hey guys..! Jul 14 11:23:32 is there an easy way to dynamically change a menu items icon? Jul 14 11:23:56 i know this isn't the best place for my problem, but i didn't find anywhere else to go to Jul 14 11:24:09 can you guys take a look here? androidforums.com/android-applications/582692-whatsapp-deactivation.html Jul 14 11:40:36 Whats the best/recomended way to switch views inside a tab? Jul 14 11:47:57 Hi! I want to fork android alarm clock app. What should I change in my fork? Package name I think, but what else? Jul 14 11:48:28 i don't think that's what 'fork' means Jul 14 11:49:13 I want to extend some features. Not simple rename Jul 14 11:49:33 so you want to extend Jul 14 11:49:42 Udmurt: try using wayback machine to access old "porting AOSP guide" Jul 14 11:49:53 Udmurt: there was a part about modifying system apps etc. Jul 14 11:50:36 you can also try just cloning the repo of the clock app, and rename package name Jul 14 11:50:41 then start hacking Jul 14 11:51:55 I've already clone it, and have some legal questions. Not about coding. Jul 14 11:53:00 I think rename of package is enough but not shure. Jul 14 11:55:09 Udmurt: for legal questions, make sure you remove any Google branding, and read up about Apache License (Chef project has good outline) Jul 14 11:56:28 p_l|backup: thank you! Jul 14 12:35:23 hi! trying to run an emulator with gpu support, but i get libOpenglRender.so: cannot open shared object file: No such file or directory. it is there, however, in tools/lib. I even tried putting the .so files into tools/ and /usr/lib/android-sdk and running ldconfig. why can't it find the file? Jul 14 12:40:12 nvm, got it to find the file, but then the emulator won't start -.- guess it's software mode only for me. Jul 14 12:49:58 How can I start a service only if it's not running already? Jul 14 13:32:00 this XML file : https://dl.dropbox.com/u/19390574/SC20120714-163028.png is producing this layout: http://pastebin.com/7QhSCwx2 Jul 14 13:32:19 the Execute button won't go on par with the Favorites button..any help please? Jul 14 13:33:00 the links are switched, sorry. I posted the screenshot first and then the XML file Jul 14 13:37:35 Sicp: try to change the outer linearlayout to horizontal and remove the two inner linearlayouts Jul 14 13:38:49 samosa! Jul 14 13:38:57 *hugs* :D Jul 14 13:39:12 :'( Jul 14 13:39:28 nope, tors Jul 14 13:39:29 same Jul 14 13:41:55 Sicp: what does "go on par" mean? Jul 14 13:42:05 look at the screenshot Jul 14 13:42:11 I want them to be on the same line Jul 14 13:42:14 they are on different heights Jul 14 13:42:22 sorry for the overly blown grammar, lol Jul 14 13:42:51 aha, yes. you have them in two different horizontal layouts. Jul 14 13:43:02 hmm Jul 14 13:44:06 like I already do Jul 14 13:44:25 well I have 1 layout and inside it there are two Jul 14 13:44:28 ok wait Jul 14 13:48:42 it's back to doing what you saw in the screenshot Jul 14 13:49:05 but you should instead put them in the same horizontal layout. Jul 14 13:49:14 would it be alright if I ask you to show me what you mean? Jul 14 13:49:24 this is how it has become, http://pastebin.com/1J4imbJz Jul 14 13:50:31 Sicp: the second button is in its own layout, put it in the same horizontal layout. Jul 14 13:53:25 same Jul 14 13:53:29 :\ Jul 14 13:53:30 wtf Jul 14 13:53:39